Demerzel
An open-source terminal coding agent in Rust: one small binary that runs the agent loop in your terminal against the model provider you choose.
Overview
Demerzel is a terminal coding agent written in Rust. One small binary runs the agent loop in your terminal and connects to the provider you choose: a ChatGPT subscription, an Anthropic API key, or any server that speaks the Chat Completions or Responses protocol, local model servers included. It is open source under the MIT license.
Three goals set the order of work: a rich ecosystem, deep customization, and low overhead. The overhead claims come with reproducible benchmarks, not adjectives.
Features
- Interfaces: a full-screen terminal interface, a
--plainline interface, and a one-shot mode for a single prompt - Four provider adapters:
openai-codex,anthropic,openai-compat, andopenai-responses, with named instances for any compatible server - Approval modes:
read-only,ask, andauto, switchable during a session - Sessions: resume the latest session in a project, or any session by id
- Layered config: flags, environment variables, a project file, and a user file
doctor: reports config, credentials, and tool checks, and whether a session can start, without printing credential values
Technical Details
- Language: Rust, split into core, providers, tools, terminal interface, binary, and test-mock crates
- Contracts: the core crate owns the provider contract, engine events, tool interface, and session format; adapters translate into that contract and own their wire format
- Platforms: Linux and macOS
Measurements
Measured in September 2026 on the project’s two reference machines:
- Linux x86_64: 8.59 MB stripped binary, 1.6 ms median warm start to prompt, 4.96 MB idle PSS
- macOS arm64: 7.26 MB stripped binary, 9.0 ms median warm start to prompt, 1.61 MB idle footprint
PSS and footprint are different metrics, so the memory numbers do not compare across platforms. Each number has a receipt in the repository’s bench/results/ directory, tied to the machine and revision that produced it.
Design Decisions
Provider-neutral. New model ids stay in configuration and protocol differences stay in adapters, so the engine stays the same for every vendor.
Hash-anchored edits. Each file read returns numbered lines under a short tag of the whole file. An edit sends the tag back and applies only while the file still matches it, so an edit against a stale read fails with an error the model can recover from.
Receipts or no claim. A performance number only ships with a committed receipt. The repository’s benchmark rules compare like metrics on the same operating system and do not treat shared CI runners as evidence.
Honest safety. Approval modes control which tools Demerzel offers and asks to run. They are not an operating-system sandbox, and the docs say so. Write tools stay inside the project root, but bash in auto mode can write wherever the process can.
Judgments, planned. The next differentiator is a fast model beside the main one that answers narrow questions about the loop with probabilities, while code applies the thresholds and picks the action. It is the same idea as truthsayer, built into the loop.
Status
Pre-alpha and usable from source, with no packaged release yet. The current milestone adds the ecosystem work: routing, skills, hooks, MCP, subagents, memory, and judgments. None of that has shipped, and a packaged release with dmz as the short command comes after it.