The number that should make you check your API bill
Someone finally put a logging proxy between an agentic coding CLI and the model endpoint instead of trusting the usage meter. The result, published this week and sitting at 500+ points on Hacker News: Claude Code sends ~32,800 tokens before your prompt is read. OpenCode sends ~6,900.
Same task. Same "22 character" prompt. A 4.7x gap that has nothing to do with what you typed.
This isn't a vibes complaint about "Claude feels expensive lately." It's a wire capture — actual JSON payloads, actual usage blocks, measured against a hash-verified test suite where both harnesses got the right answer. If you're running agentic coding tools in a loop all day, this is your context budget, and someone is spending it before you get a turn.
Where the 33K actually goes
The breakdown, from the Systima writeup:
Claude Code, first request:
- System prompt: 27,344 characters across 3 blocks
- Tool schemas: 99,778 characters for 27 tools
- First-message scaffolding: 7,997 characters
- Your actual prompt: 22 characters
OpenCode, first request:
- System prompt: 9,324 characters, 1 block
- Tool schemas: 20,856 characters for 10 tools
- Scaffolding: none
- Your actual prompt: 22 characters
27 tools versus 10. That's the headline lever — every tool definition is a schema blob shipped on every single request, whether you use the tool or not. Strip tools entirely and the system prompt alone is still 3x bigger on Claude Code (26,891 chars vs 8,811).
The part that's worse than the baseline
Baseline overhead is at least predictable — pay it once, cache it, move on. The uglier finding is cache behavior under a real multi-step task:
| Cache writes (5 requests, same task) | |
|---|---|
| Claude Code | 53,839 tokens |
| OpenCode | 1,003 tokens |
53.7x more cache writes for identical work. OpenCode "emitted byte-identical prefixes across every request and every run." Claude Code showed three distinct request classes per session with system bytes shifting underneath it — meaning the cache breakpoint keeps moving, meaning you keep re-paying for a prefix that should've been free.
Anthropic's own pricing model depends on stable prefixes to make prompt caching worth anything. If the harness itself is the thing invalidating the cache, you're paying full input-token price for context you already sent.
The number that actually matters: identical outcomes, 3.7x the cost
Forget the cold-start number — that's a one-time tax. The real damage shows up on the ten-lane benchmark, five runs each, both harnesses passing every test:
- Claude Code: ~268,000 input tokens per passing run
- OpenCode: ~72,000 input tokens per passing run
Same correctness. 3.7x the token spend. That's not overhead you pay once at session start — that's overhead compounding every turn of a working session.
And it gets worse with agent fan-out. Spin up 2 subagents on Claude Code and cumulative tokens go 121K → 513K. A 4.2x multiplier stacked on top of the baseline 4.7x. If you're running subagent-heavy workflows, the two multipliers don't add — they compound.
Before you torch your CLAUDE.md file, read the caveat
The researchers were honest about the hole in their own methodology, and you should weigh it before treating this as gospel: "A single mid-task cache miss could in principle be our gateway evicting rather than the harness moving its cache breakpoints; reproduction across runs makes systematic harness behaviour the likelier explanation."
Translation: they think it's the harness, not their proxy, because it reproduced — but they only ran this on one machine, with small sample sizes (three Sonnet runs, two Fable runs, five quality lanes), one implementation per condition, and a July 2026 snapshot of both tools. Both harnesses ship fast. This ratio could shrink or widen by the time you read this.
What to actually do with this
- Audit your MCP server count. Five MCP servers added 4,900–6,967 tokens per request in the study — before you send a single prompt. If you've got a dozen servers wired in "just in case," you're paying rent on tools you never call.
-
Watch your instruction file size, not just its content. A 72KB
CLAUDE.md-equivalent added ~20,000 tokens per request on both harnesses. This one isn't Anthropic's fault — it's yours. Trim it. - Be deliberate about subagent fan-out. 4.2x multiplier on top of baseline overhead means "let me spin up a few agents to parallelize this" is not a free move. Know the multiplier before you reach for it.
- If cost-per-task is your actual constraint — not raw capability — this data says try OpenCode side-by-side on your real workload before assuming the flagship harness is the efficient choice. "Every token of harness payload is a token of working context you cannot spend on your task."
The tools that win the next two years of agentic coding won't just be the ones with the best model behind them. They'll be the ones that don't spend 33K tokens clearing their throat before they start working.
Source data: Systima's wire-level analysis, methodology via logging proxy between harness and model endpoint, cross-referenced against the Hacker News discussion (500+ points, 300+ comments as of publication).
Top comments (0)