Your coding agent shouldn't truncate its own output
Warden's default interface is a full-screen terminal UI: tool results render as collapsible cards holding the full, untruncated output, file edits render as diffs, and a managed scroll buffer means nothing scrolls off into the void.
When a coding agent runs a command that prints five hundred lines, where do those lines go? In most terminal agents, straight off the top of your scrollback — clipped to a preview, or gone the moment the next tool runs. You’re left trusting a summary of output you were never allowed to read.
Warden’s default interface is built so that doesn’t happen. Run warden in an interactive
terminal and you get a full-screen TUI; pass --simple (or run under a dumb terminal) and you
drop to a plain line REPL instead. The TUI is the default because the default should keep your
output, not discard it.
Nothing gets truncated
| In the TUI | What you actually see |
|---|---|
| A tool call | A collapsible card holding the full, untruncated result — scroll it, don’t lose it |
| A file edit | A real unified diff, line by line — not a “modified app.py” one-liner |
| The model thinking | Tokens streamed live as they arrive, not dumped in a block at the end |
| A terminal resize | A managed scroll buffer that reflows and keeps everything already on screen |
A long test log, a stack trace, a thousand-line search result — each goes into a card you can open, read in full, and collapse again to keep moving. The output is yours to inspect, which is the entire reason you ran the tool.
Built to drive, not just watch
The TUI is a working cockpit. A command palette (Ctrl+P) fuzzy-searches every slash command;
transcript search (Ctrl+F) jumps between matches, case-insensitive and wrapping; /model and
/reasoning open pickers (reasoning runs from off all the way to max); and a keybinding
footer keeps the controls in view. Per-model spend is tracked as you go, against a hard cost cap
you set and the agent can’t run past.
One lean binary
Warden speaks to multiple providers from a single binary — four wired today (Anthropic, OpenAI’s Chat Completions and Responses APIs, and Gemini) with three more scaffolded. It runs as an MCP client and an MCP server, so it can consume other tools and re-expose its own. Its permission engine is fail-closed: a single matching deny blocks a tool call, and hook events let your own scripts veto anything. It resumes a session by id or by working directory, and when context fills it compacts surgically — pruning stale and duplicate turns while preserving the structure of the conversation, rather than flattening it into a summary.
Where it stands
Warden is v0.1.0, pre-alpha, and MIT-licensed. Python 3.14+. Linux, macOS, and WSL are the proven path; native Windows is best-effort for now. The three scaffolded providers aren’t finished — we mark them as such rather than pretend otherwise.
Warden is the part of the stack that acts: it edits against TheAuditor’s deterministic code facts, gets dispatched by Arbiter, draws standards from Curator, and acts on findings measured by BenchProctor.
Get launch updates — or read how it pairs with TheAuditor.
Was this useful?