Nobody talks about how much your AI coding agent costs before you type a single word.
A developer on Reddit tracked 100 million tokens of Claude Code usage over a month. Their bill? Not from clever code generation or complex refactors. Most of it was input tokens, the invisible tax your coding agent charges just for existing. One user posted that a simple "hi" consumed 31,000 tokens before any code was discussed. That's roughly 108,000 characters of system prompt, config files, and tool schemas attached to your two-letter greeting.
The Systima team ran the numbers head-to-head between Claude Code and OpenCode, and the gap is staggering. In an empty directory, before you say anything, Claude Code sends about 33,000 tokens of system prompt. OpenCode sends 7,000 for the same setup. Same models underneath, same tools available, but one harness eats four times more context before the conversation even begins.
What makes this worse is what happens next. On an identical file-summarization task, Claude Code wrote 53,839 cache tokens across five requests, including one complete mid-task rewrite of its entire 43,000-token prefix. OpenCode, doing the same job, wrote dramatically less. The Claude Code approach doesn't just start fat, it stays fat. It re-writes its own instructions mid-session, burns through cache stability, and leaves less room for the actual code you wanted it to work on.
This isn't a model problem. The underlying Claude models are excellent. The issue is the harness layer, the scaffolding that wraps the model with tool definitions, behavioral instructions, permission schemas, and context assembly logic. Anthropic has been piling features onto Claude Code at a pace that outstrips context management. Between versions 2.1.89 and 2.1.96 in early April, a span of about five days, the initial system prompt grew by roughly 70,000 tokens. The context window fills before you complete any non-trivial task.
The community has been measuring this obsessively. One analysis found that Claude Code's system prompt is now around 65,000 tokens with all tools enabled, versus 12,000 with everything disabled. MCP servers add another 10,000 to 20,000 tokens each, per session. So if you have three MCP servers running, you're paying 30,000 to 60,000 tokens of overhead before writing a line of code.
There's a telling contrast. Armin Ronacher, the creator of Flask, recently built a coding agent called Pi with just four tools and a system prompt under 1,000 tokens. The entire behavioral instruction set, plus all tool definitions, fits in what Claude Code burns before you hit enter. The design philosophy is the same instinct that made Flask successful: do less in the framework, trust the user.
Microsoft gave thousands of its own engineers Claude Code licenses in December 2025. By May 2026, the company was canceling most of them. The internal reasoning was described as "also a financial one." When a company that can afford Azure bills calls your token consumption a financial problem, something is structurally off.
The OpenCode approach handles this differently. It strips the system prompt cruft, removes the behavioral overhead that Claude Code injects, and relies more on user-authored configuration files. The result is a harness that starts lean and stays lean. One developer described it as getting the same Claude model without paying for 26,000 tokens of scaffolding you never asked for.
None of this means Claude Code is bad at its job. When it works, it works. But the economics of token consumption have shifted. Developers are realizing that the real cost of an AI coding agent isn't the cleverness of its suggestions, it's the weight of its invisible overhead. And when the overhead itself consumes more context than the code you're trying to write, the tool starts working against you.
The cache economics are the real trap. Claude Code re-writes its prompt prefix mid-session, invalidating the cache and forcing the API to reprocess everything. Systima measured this on an identical task: Claude Code consumed 53,839 cache tokens across five requests, while OpenCode stayed lean. The prompt cache is supposed to save money by reusing previously processed tokens. But when the harness keeps rewriting its own instructions, the cache becomes a liability instead of an optimization. Developers on the $200/month Max plan are hitting limits faster than expected, not because they're writing more code, but because the harness is doing more invisible work.
Sources
- Systima: Claude Code vs OpenCode token overhead: primary measurement study with cache analysis and multipliers
- Reddit r/ClaudeCode: Hidden token overhead measurements: community-measured overhead of 16k-23k tokens in empty vs real directories
- GitHub Issue #45188: System prompt grew 70K tokens in 5 days: version-by-version prompt size tracking
- Towards AI: Flask creator's 1,000-token system prompt agent: alternative approach with minimal overhead
- Firecrawl: 12 Ways to Cut Token Consumption in Claude Code: practical optimization guide with baseline measurements
- Hacker News discussion on Claude Code token overhead: community reaction and workaround strategies