npx draht-claude install Routing, TDD, orchestration, and audit logs slot into the Claude Code session you already use.
bun add -g @draht/coding-agent Full agent, seventeen providers. Works with or without a Claude subscription.
The Model Router grades each task on reasoning depth, context size, and latency budget, then hands it to the cheapest model that can actually do it. Haiku for scaffolds, Sonnet for refactors, Opus when the architecture is genuinely hard. You stop paying Opus prices for boilerplate.
The agent writes a failing test before it writes any implementation. It reads your domain model first — bounded contexts, aggregates, the names you actually use — and edits through that vocabulary. It can't commit past a red bar.
The Orchestrator runs independent work across sub-agents in parallel. The CI guardian blocks broken merges before they land. The compliance layer logs every model call with enough provenance to pass a GDPR audit or an invoice review — whichever comes first.
Policies are plain TypeScript. Match on file glob, task type, context size, or budget, then route to Haiku, Sonnet, Opus, GPT, Gemini, or something self-hosted. Override per repo, per branch, per session.
Every run is a tree in a single JSONL file. Jump back, fork a branch, swap the routing profile, come back. Nothing is thrown away, and every token you spent is still on disk if you need to prove it.
The orchestrator splits work that doesn't depend on itself, runs the pieces in parallel, and merges the diffs back. Each sub-agent runs on Haiku where Haiku can handle it, and every step lands in the log.
Interactive REPL, print mode, JSON event stream, or RPC over stdin/stdout. Drop draht into CI, a cron job, or a Slack bot. Embed the SDK if you'd rather wire it into your own app.
No single model is right for every task. The router grades the work and assigns accordingly. You pay for Opus only when Opus is what the job requires.
The failing test is the specification. The agent can't commit any implementation until a test exists, fails, and then passes. If you don't want TDD, draht is the wrong tool.
Bounded contexts, aggregates, the words your team actually uses. The agent reads your domain model first and edits through that vocabulary. Otherwise it's guessing, and guessing gets expensive.
Independent work runs in parallel sub-agents. The orchestrator merges results. One long task becomes three short ones.
Every model call is logged, costed, and invoiceable. Whether it's your client's auditor asking, the Finanzamt, or you trying to remember what happened last quarter, the receipt is on disk.
Policies are files. State lives on disk. The harness is TypeScript you can read through in an afternoon. If something surprises you, it's because you haven't opened the file yet.