Claude Code consumes up to 33,000 tokens before even reading the prompt: the direct comparison with OpenCode is ruthless
An independent laboratory placed a logging proxy between Claude Code and OpenCode, both connected to the same Claude Sonnet 4.5 model, to record byte for byte what really travels between the two harnesses and the Anthropic server. The result is quite revealing: in the simplest possible task, a one-line response, Claude Code used about 32,800 tokens before even reading the user's prompt, compared to 6,900 for OpenCode.
The discrepancy arises from the system prompt that each harness carries with it. Claude Code loads a system prompt of 27,344 characters divided into three blocks, plus definitions of 27 tools that alone weigh nearly 100,000 characters. OpenCode stops at a single block of 9,324 characters and ten essential tools, totaling just 20,856 characters of schematics.
Even removing the tools, the gap remains. With zero active tools, Claude Code's system prompt still weighs about 6,500 tokens, more than three times the 2,000 of OpenCode: the difference, in this case, is pure behavioral doctrine, made up of tone rules, safety instructions, and task management.
Sub-agents and unstable cache: where Claude Code loses ground to OpenCode
In articulated tasks, the picture gets complicated. In a task of writing, executing, and correcting code, Claude Code finished in just 3 requests by grouping calls to the tools in a single parallel block, while OpenCode used 9, proceeding one by one: the total, about 121,000 tokens against 132,000, almost equalized. However, the advantage is not a constant of the harness: repeating the same test on Claude Fable 5, Claude Code rose to 298,000 tokens against 133,000 of OpenCode, due to a cache rewrite from 85,686 tokens midway through the session.
The most striking jump comes with sub-agents. Delegating the same work to two parallel sub-agents inflated Claude Code's bill from 121,000 to 513,000 tokens, a multiplier of 4.2 times, because each sub-agent re-reads its system prompt and its tools from scratch at every turn. The profile of OpenCode's sub-agents is much lighter, with a system prompt of just 1,379 characters compared to Claude Code's 3,554.
Another critical node concerns prompt cache. While OpenCode maintained an identical prefix byte for byte in every captured session, paying for the write just once, Claude Code rewrote the cache midway through the work on several occasions, up to 54 times the writing tokens of its rival on the exact same task. The study, conducted by the team at Systima, attributes the phenomenon to three distinct classes of requests generated by Claude Code, each with its own cache prefix.
With a realistic configuration, an instruction file of 72 KB along with some MCP servers, the team "spent" about 75,000 tokens for Claude Code against 90,817 for OpenCode burdened by eleven MCP servers, but with an overall multiplier of about 12 times compared to OpenCode's starting floor. A quality benchmark over ten sessions, however, yielded the same outcome for both, 5 out of 5 passes, with an average cost per session of 268,000 tokens for Claude Code against 72,000 for OpenCode.
The gap, in short, does not touch the quality of the produced code but does affect the final bill. Between advanced orchestration functions and an almost four times higher consumption for the same result, the choice between the two harnesses becomes primarily a question of budget.