Skip to main content

ZettCode pixel robot with a warm heart

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

ZettCode showing a task, thinking, file reads, a code edit, passing tests, and a Markdown answer

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.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zettcode 0.1.8
File Size Uploaded Provenance Actions
zettcode-0.1.8.tar.gz 616.8 kB Without provenance Details for zettcode-0.1.8.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for zettcode 0.1.8
File Interpreter ABI Platform Actions
zettcode-0.1.8-py3-none-any.whl Python 3 none any Details for zettcode-0.1.8-py3-none-any.whl

Total release size: 1.4 MB

Release files / zettcode-0.1.8.tar.gz

Download URL zettcode-0.1.8.tar.gz
Size 616.8 kB
Tags Source
SHA-256 checksum
How to use checksums
8deaa184daa76a22abaf67fa162edc2594bdd47f91837a7c1b59baa29098244d
BLAKE2b-256 checksum
How to use checksums
7e1e31691983970d72cf0dd125e6591d09ace585bfb871a48141cc9ec679d5c4
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.8-py3-none-any.whl

Download URL zettcode-0.1.8-py3-none-any.whl
Size 766.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a086d413ecfa8a12766d24ea4cae76b19ead9fb1465e07e028f8e208cac34562
BLAKE2b-256 checksum
How to use checksums
e37e093f3d1c94e7d4154bfbdaf95488ea0f0be7f3c0b3bb62d734daf0bdb83d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Security for zettcode 0.1.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page