What the coding CLI does today. It is the reference application showing how the lower-level packages fit together.
Modes
Streaming chat with live tool-execution and diff display, built on the tui engine.
Non-interactive --print with text / json / markdown output for scripts and pipelines.
A JSON-RPC front-end for IDE integration.
The initial message is assembled from --prompt, piped stdin, and file arguments.
Sessions
JSON-persisted sessions, resumable by most-recent or explicit id.
Fork a conversation and restore branches to explore safely.
Automatic history compaction keeps long sessions within the model window.
session > project > global precedence via pydantic models.
Tools
filesystem, bash, and current_time — the tools an agent needs to work a real repo.
An extension loader adds capabilities without forking the agent.
Model resolution falls back sensibly when a requested model is unavailable.
Skills
SKILL.md skills — the open Agent Skills format, so a skill written for another client works here — surfaced as /commands.
pip install a package that carries one and its command appears; uninstall and it is gone. Nothing to register, nothing to copy out of date.
A skill's instructions go into the system prompt, not the transcript, so /unload can take them back out — the message-history approach cannot.
An author marks a skill scope: turn and it retires itself. Only the user ends one early; the model can suggest, never execute.