Project

python-steward

experimental

Small Python coding agent with streaming tool use and a readable conversation loop.

Overview

Steward is a small Python CLI that connects to an LLM, exposes file, shell and web-search tools, and runs a streaming conversation loop. The implementation stays in ordinary Python without a plugin framework. It began as a Bun prototype and moved to Python for straightforward installation with pip.

How it works

One conversation loop: the user types a prompt, Steward sends it to the LLM with a list of available tools, the model calls tools, Steward executes them and feeds results back. Repeat until the model is done. Tools are plain Python functions with type annotations -- the JSON schema the model sees is generated automatically. Configuration is a .env file.

Features
🧠
The simplest thing that works

Plain Python functions, no framework or plugin system. One file and one readable conversation loop.

🤖
Multi-provider

Azure OpenAI, OpenAI, any OpenAI-compatible host, and a local echo provider for testing.

🔧
Copilot-style tools

File read/write, shell execution, web search, code running -- the practical toolset for a coding agent.

📦
pip installable

No build step, no Node.js, no separate install beyond Python.

🔄
Streaming

Real-time streaming output with tool call interleaving.

Architecture
User prompt task description Steward turn loop + tool dispatch Tools bash · read · edit Turn state message history LLM provider OpenAI / Anthropic Workspace files + AGENTS.md Simplest coding agent harness — Python, tool use, one file