letscode¶
A minimal, OpenAI-compatible coding agent for the terminal — written in Python.
Point it at any OpenAI-API-compatible endpoint (Ollama, Fireworks, OpenRouter, vLLM, llama.cpp's llama-server, …) and get a streaming agent loop with the four tools that cover 95% of coding sessions — read, write, edit, bash — plus skills, slash commands, and a plugin system you can extend.
-
Get started in 60 seconds
Install, set an API key, type a prompt.
-
Configure to your taste
User and project TOML, env vars, CLI flags — predictable precedence.
-
Extend with plugins
Pluggy + entry points. Bring your own tools, commands, skills, frontends.
-
Understand the model
Stable contracts, ten hooks, versioning rule, what's internal vs public.
What it is¶
A three-layer Python application: LLM client at the bottom (openai.AsyncOpenAI with base_url set), agent loop in the middle (event-driven async generator, parallel tool execution, hooks for everything), basic terminal frontend on top (prompt_toolkit + rich). Plugins extend any layer.
flowchart TD
User[User input] --> Frontend
Frontend[Basic TUI<br/>prompt_toolkit + rich] --> Agent
Agent[Agent loop<br/>event-driven async] --> LLM
LLM[LLM client<br/>OpenAI Chat Completions] --> Provider[(Any OpenAI-<br/>compatible<br/>endpoint)]
Agent --> Tools[Built-in tools<br/>read · write · edit · bash]
Plugins[(Pluggy + entry points)] -.extend.-> Tools
Plugins -.extend.-> Frontend
Plugins -.lifecycle hooks.-> Agent
What it isn't¶
Deliberate non-goals
- Not a Claude Code competitor. Anthropic ships its own first-class harness; letscode is for people who want a small, hackable Python harness against whatever endpoint they prefer.
- Not a framework. It's an application. The plugin system shapes this app; it isn't a library for building agents.
- No subscription OAuth flows, no bespoke package manager, no permission popups, no built-in to-dos. See the full list.
Providers¶
letscode speaks the OpenAI Chat Completions wire format, so any endpoint that implements it works without per-provider code paths.
Works without changes against Groq, DeepSeek, Together, vLLM, LM Studio, xAI, Cerebras, Mistral, ZAI — anything OpenAI-compatible.
Status¶
Latest release: v0.3.0 — 2026-05-13. Extension model design + reference plugin + ergonomics. 549 tests passing, ruff + mypy --strict clean.
The roadmap tracks where the project is going. The lessons learned tracks what we've learned along the way.