ZettCode
Your terminal. Your coding partner.
A focused coding agent that reads your project, shows its work, and keeps you in control.
English · 简体中文
Get started ·
Documentation ·
Commands
Illustrative conversation, rendered with ZettCode’s actual terminal widgets.
Get running
You need Python 3.10+, a UTF-8 terminal, and an OpenAI-compatible API (or Anthropic's Messages API). Works on macOS, Linux, and Windows (use Windows Terminal).
1. Install
uv tool install zettcode
# or: pip install zettcode
2. Connect a model
Create ~/.zettcode/config.toml (and its parent directory) with one model:
[[models]]
model = "deepseek-v4-pro" # the model id sent to DeepSeek
display_model = "DeepSeek Pro" # the name shown in ZettCode
token = "sk-..." # replace with your DeepSeek API key
base_url = "https://api.deepseek.com" # DeepSeek's OpenAI-compatible API root
context_window = 1000000 # verify against the endpoint's current limits
multimodal = false # this model accepts text, not images
Get a key from the DeepSeek platform, not from
the chat website. Alternatively, omit token and set OPENAI_API_KEY to that
key. Add more [[models]] entries to switch with /model; the first is selected
at startup. See the
configuration reference
for complete examples, defaults, and troubleshooting.
3. Start a task
cd /path/to/project
zettcode
# or: zettcode --workspace /path/to/project
Describe a change and press Enter. Type / for commands, @ to reference a
skill, and Ctrl-C to stop a request. Ctrl-D with an empty composer exits
and prints the command to resume your session.
Built for the way you work
| See every step | Reasoning, answers, and tool calls stream as readable rows — not raw JSON. |
| Keep the decision | Review shell commands before they run. When the agent needs your input, choose an option or type an answer. |
| Keep moving | Type during a reply and choose: steer it now, or queue a follow-up you can edit, delete and reorder with Option+↑/↓. Use /btw for a side question that stays out of later context. |
| Come back later | /resume restores a conversation; /export saves a readable HTML record. |
| Understand the context | Monitor token usage and caching, inspect /context, and compact when needed. |
| Bring your tools | Use project AGENTS.md instructions, skills, MCP servers, and Python plugins. |
The palette follows your terminal’s background, or your own theme.toml.
Select and copy text, scroll through answers, and paste images when your model
supports them.
Find your next step
The user guide is available in English and 简体中文.
| First time | Everyday use | Configuration & extensions |
|---|---|---|
| Getting started | Keys & mouse | Configuration |
| The interface | Commands | Models & context |
| Problems & questions | Sessions | Project instructions |
| Skills & MCP · Plugins |
Development
uv sync # install dependencies
make check # Ruff, mypy, and tests
make hooks # enforce mypy before commits
make demo # browse terminal widgets
make docs # preview the user guide locally
uv run zettcode --workspace . # run from the checkout
ZettCode provides the terminal application; the agent runtime is
zett-agent. Contributor notes and
invariants live in AGENTS.md and
docs/internal/, separately from the user guide. See
docs/internal/site-design.md for preview and
asset-generation instructions.
License
MIT. See LICENSE.
Metadata
Release files for zettcode 0.1.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| zettcode-0.1.6.tar.gz | 383.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| zettcode-0.1.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 862.2 kB
Release files / zettcode-0.1.6.tar.gz
| Download URL | zettcode-0.1.6.tar.gz |
|---|---|
| Size | 383.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5e30f73554f937f84a690e8bd8d66282730f50947cea93f3f63b1c01d088e916
|
|
BLAKE2b-256 checksum How to use checksums |
001b0096bec65c3c86e3a30ac2bf5faa3a93859d4b094874ef78d5e464acdf40
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / zettcode-0.1.6-py3-none-any.whl
| Download URL | zettcode-0.1.6-py3-none-any.whl |
|---|---|
| Size | 479.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7e2a52774ef80f822a6695e36f668a43e55a8bbc72374c7013940e600ebfdc03
|
|
BLAKE2b-256 checksum How to use checksums |
3e0750b2d3c3bd53576f29c262ab13b213c27d56424f070c2804f6a04e02ebf4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|