ZettCode
ZettCode is a focused terminal coding agent built on zett-agent. Its TUI owns
raw terminal input, component layout, mouse interaction, and cell-level
differential rendering directly; it does not use prompt-toolkit or another TUI
framework.
The agent runtime is published separately as
zett-agent; this repository owns
only the terminal client.
Install
ZettCode needs Python 3.14 or newer and is published on PyPI as zettcode:
uv tool install zettcode
# or
pip install zettcode
Run
DeepSeek:
export DEEPSEEK_API_KEY=...
zettcode --provider deepseek --model deepseek-chat
OpenAI or an OpenAI-compatible endpoint:
export OPENAI_API_KEY=...
zettcode --provider openai --model gpt-5-mini
zettcode --provider openai --model my-model --base-url https://example.com/v1
Pass a workspace path as the final argument. It defaults to the current directory.
Session data is stored in ~/.zettcode/sessions.sqlite3 by default.
From a source checkout, run the same commands through uv:
uv sync
uv run zettcode --provider deepseek --model deepseek-chat
Keys
Enter: sendEsc, thenEnter: insert a newlineCtrl-C: stop the active request, or clear the inputCtrl-D: delete the next character; exit when the input is empty and the agent is idleCtrl-A/Ctrl-E,Home/End: move to the start or end of the current lineCtrl-B/Ctrl-F,Left/Right: move by one characterAlt-B/Alt-F,Ctrl-Left/Ctrl-Right: move by one wordCtrl-Home/Ctrl-End,Alt-</Alt->: move to the start or end of the whole inputCtrl-U/Ctrl-K: delete to the start or end of the current lineCtrl-W/Alt-Backspace,Alt-D: delete the previous or next wordCtrl-Y: paste the last text removed with a line or word deletionCtrl-Z/Ctrl-_: undo the latest input editUp/Down: move between input lines, then browse submitted input historyCtrl-P/Ctrl-N: browse submitted input history directlyCtrl-R: search backward through submitted input historyCtrl-L: redraw the terminalCtrl-T: expand or collapse the latest thinking blockPage Up/Page Down: scroll history while keeping the composer focused- Click the transcript and use
Up/Down,Home/Endto browse it - Drag in the transcript to select text; dragging past an edge automatically scrolls
- Double-click a transcript row to select the complete visible line
Shift-click extends the existing selection- Completed mouse selections are copied to the system clipboard automatically
Ctrl-Calso copies a transcript selection and returns focus to the inputTab/Shift-Tab: complete slash commands
Thinking is collapsed by default. Click a Thinking row to inspect it; moving the pointer outside that block collapses it again. Tool calls keep their output and completion status visible in the transcript. Active thinking and tool rows use a low-frequency moving highlight wave with an animated activity icon. Tool results show a five-row preview by default; click a completed tool row to expand it. Expanded output is still bounded so a large command result cannot take over the terminal or exhaust renderer memory.
Assistant text renders common terminal-friendly Markdown: bold and emphasis, headings, inline and fenced code, links, quotes, unordered bullet lists, and GFM-style tables. Tables preserve left, center, and right alignment, account for wide CJK characters, and fit or truncate columns to the current terminal width.
Use /help inside the application to see session commands.
Metadata
Release files for zettcode 0.1.0
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.0.tar.gz | 27.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| zettcode-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 59.3 kB
Release files / zettcode-0.1.0.tar.gz
| Download URL | zettcode-0.1.0.tar.gz |
|---|---|
| Size | 27.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
69ff3c88721c87f98c543906694515bb0e8687e10f765e62bd41e99731d45627
|
|
BLAKE2b-256 checksum How to use checksums |
ffe00482f057af16cf58226e2384a82064ca80fe5c1a5121d823d88fdadf7780
|
| 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.0-py3-none-any.whl
| Download URL | zettcode-0.1.0-py3-none-any.whl |
|---|---|
| Size | 32.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
29c011c33ab79bed6163571bf2f264b8c362c37f3cf5f1e28082c05e83cc54ef
|
|
BLAKE2b-256 checksum How to use checksums |
0eed075526c2e6076f134a15112622cb6ec4562f5c48d486e29484c9d2a7ae4b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|