donk
The model reads only what it needs.
A terminal coding agent that decides, by construction, how much of each result the model gets to read, and shows the math on what it saved.
In development
A hundred test lines become twenty
Each tool's full output is stored once. The model reads one cut of it, and the screen shows another: for a 124-line test run, the model gets 20 and a count of the rest.
See how much each call saved
donk stats shows, per tool, the raw output, what went to the model and what appeared on screen, and estimates the time saved against the time to review.
Check what the model was given
donk log lists every call in the session with its arguments and checks what the model read against the full stored output, instead of trusting its summary.
More features
Undo
Every file a tool writes in the repository is copied first, and /undo puts it back as it was.
Asks only what cannot be undone
Writing in the repository asks nothing, paths outside it are denied and commands marked irreversible are asked about at once, in a single plan.
Your choice of model
Any endpoint compatible with the OpenAI API, Anthropic or a server of your own, registered in a configuration file, with no bundled model or key.
About the project
donk is a coding agent for the terminal: it reads, searches and edits the files of your repository and runs commands in it, as the model asks. The conversation is drawn in the terminal itself, with the prompt and the status in a footer.
The core idea is simple. When a tool runs, say a test suite, its full output is stored once and never goes whole to the model. Two trimmed versions are made from it: one for the model and one for the screen. The full output stays stored and can be inspected later, instead of trusting the model's summary of it.
It leaves out a bundled model, a free tier and any switch that turns off the confirmations or the undo. There is no sandbox yet.
Technologies
Rust, in a single static binary, with SQLite and TLS built in.
License: MIT
Install donk
To build, you need Rust 1.98 or newer and a C compiler. ripgrep is optional.
From a release
A static binary for x86_64 Linux, with nothing to install first.
curl -LO https://gitlab.com/alteronauta/donk/-/releases/26.10.0/downloads/donk-26.10.0-linux-amd64.tar.gz
curl -LO https://gitlab.com/alteronauta/donk/-/releases/26.10.0/downloads/SHA256SUMS
sha256sum --check --ignore-missing SHA256SUMS
tar xzf donk-26.10.0-linux-amd64.tar.gz
install -D donk-26.10.0-linux-amd64/donk ~/.local/bin/donk
From source
SQLite and TLS are built into the binary, so no system library is needed.
git clone https://gitlab.com/alteronauta/donk.git && cd donk
cargo install --locked --path crates/donk-cli
donk ships with no model and no key: register yours in models.toml, next to config.toml, as the README shows.