Measured token usage across different tasks and modes. These are our results; yours will vary.
Each benchmark shows raw token counts and the delta versus Claude Code. Negative percentages mean fewer tokens used. We report single runs here; for variance data on repeated runs, see individual task notes.
How we ran these benchmarks:
Token counts include everything, when an agent spawns subagents or delegates work, those tokens are summed into the total. We're working on publishing the benchmark harness so you can try testing them yourself. For now, treat these as indicative, not definitive.
We run many more scenarios internally, but these are an excerpt showing typical real-world use cases where we've seen consistent strengths in our approach.
Navigating unfamiliar codebases to answer questions about structure or behavior.
state_enter() → safe_vgetc() → vpeekc()| Agent | Tokens | vs Baseline |
|---|---|---|
| Claude Code (Sonnet 4.5) — baseline | 45k | — |
| OpenCode (Sonnet 4.5) | 70k | +56% |
| Chippery /balanced | 31k | −31% |
| Chippery /balanced-pro | 27k | −40% |
| Chippery /frugal | 21k | −53% |
Finding and fixing bugs in existing code.
| Agent | Tokens | vs Baseline |
|---|---|---|
| Claude Code (Sonnet 4.5) — baseline | 35k | — |
| OpenCode (Sonnet 4.5) | 28k | −20% |
| Chippery /balanced | 21k | −40% |
| Chippery /balanced-pro | 19k | −46% |
| Chippery /frugal | 17k | −51% |
Restructuring code, fixing issues, and cleaning up without changing behavior.
| Agent | Tokens | vs Baseline |
|---|---|---|
| Claude Code (Sonnet 4.5) — baseline | 64k | — |
| OpenCode (Sonnet 4.5) | 42k | −34% |
| Chippery /balanced | 36k | −44% |
| Chippery /balanced-pro | 34k | −47% |
| Chippery /frugal | 31k | −52% |
Real-world sessions that shift focus, starting in one area, moving elsewhere, then returning. These test how well the agent maintains context and navigates changing requirements.
| Agent | Tokens | vs Baseline |
|---|---|---|
| Claude Code (Sonnet 4.5) — baseline | 98k | — |
| OpenCode (Sonnet 4.5) | 95k | −3% |
| Chippery /balanced | 42k | −57% |
| Chippery /balanced-pro | 36k | −63% |
| Chippery /frugal | 32k | −67% |
Not every benchmark favors our approach. Here's one where Chippery performed worse than baseline.
| Agent | Tokens | vs Baseline |
|---|---|---|
| Claude Code (Sonnet 4.5) — baseline | 110k | — |
| OpenCode (Sonnet 4.5) | 137k | +25% |
| Chippery /balanced | 142k | +29% |
| Chippery /balanced-pro | 130k | +18% |
| Chippery /frugal | 132k | +20% |
Why this happened: Chippery's optimization relies on understanding codebase structure and navigating efficiently. Lucky is written in Crystal which uses patterns that our indexer couldn't rank effectively. When Chippery can't build a reliable mental model of the code, its navigation heuristics work against it, causing more exploration rather than less. This is the kind of project where /all-in mode (no optimization) is a good fallback.
We've seen consistent improvements in these scenarios:
We've observed minimal or no improvement, or occasional regressions, in these scenarios:
Our benchmarks have used these languages. Chippery likely works on others; we just haven't measured them yet.
We're working on publishing our benchmark harness. When ready, you'll be able to run these same tasks on your own machine and compare results. Watch the GitHub repo for updates.
In the meantime, if you run your own comparisons and want to share results, we'd be interested: [email protected]