This is the Python version of agent-chat-cli, which uses the claude-agent-sdk under the hood. Terminal UI is built on top of the very impressive Textual.
overview.mp4
This tool is for those who want slightly more behavioral control over their MCP servers via configurable system prompts, and a minimal terminal-based MCP form factor for interaction.
Many different things are possible here thanks to the underlying Claude Agent SDK -- think of this as a light-weight claude-code -- but the main purpose, at least for me, is a simple and performant MCP interface to whatever tools I typically use day-to-day, something that lives outside of an editor or claude itself.
Note: The Python/Textual version is visually sturdier than the Node.js/React Ink version. No more crazy Node.js terminal jank in long-running sessions!
This app uses uv for package management so first install that. Then:
git clone https://github.com/damassi/agent-chat-cli-python.git
# Install deps and setup .env
make installUpdate the .env with your ANTHROPIC_API_KEY and then run:
# Start the agent
make agent
# Alternatively, if in dev (see below)
make devAdditional MCP servers are configured in agent-chat-cli.config.yaml and prompts added within the prompts folder.
- Install pre-commit hooks via pre-commit
uv run pre-commit install
- Type-checking is via ty:
make type-check
- Linting and formatting is via Ruff
make lint
- Testing is via pytest:
make test
See docs/architecture.md for an overview of the codebase structure.
Textual has an integrated logging console that one can boot separately from the app to receive logs.
In one terminal pane boot the console:
make consoleNote: this command intentionally filters out more verbose notifications. See the Makefile to configure.
And then, in a second terminal pane, start the textual dev server:
make dev