explainx.ainewsletter3.5k
TrendingNewsPathwaysSkills
Pricing
explainx.ai

Upskill in AI — 16 free pathways, live workshops & bootcamps, and 50+ courses from practitioners. Plus the skills, tools, and MCP servers to practice on.

follow us

custom AI agents

[email protected]

get started

Find your pathTake Free Evaluation

learn

pathways — start freeworkshopsbootcampscoursescertificationsmock testsexplainx universitycorporate traininglearn skills & mcp

discover

skillsmcp serversexplainx mcptoolsagentsllmsdesignsagi trackerranks

company

aboutvisionmissionteaminstructorscommunityhackathonscareers

content

daily AI newsstate of AI — live resultsblogreleasespromptsgeneratorsresource librarydemofor LLMs

solutions

all solutionsdeveloper upskillingmarketing upskillingproduct manager upskillingleadership upskilling

More from us

InfloqInfluencer marketingBgBlurPrivacy-first blurOlly SocialSocial AI copilotCeptoryVideo intelligenceBgRemoverBackground removal

newsletter · weekly

Get AI news, tools, and insights in your inbox.

supportprivacytermsdata rightssubmission guidelines

© 2026 AISOLO Technologies Pvt Ltd

On this page

  • TL;DR — floor vs whole task
  • Why measure at the API boundary
  • Part I — The floor (22-character prompt)
  • Where the gap closes — T3 inversion
  • Part II — Multipliers (real sessions)
  • Cache economics — stability beats size
  • Fable 5 floor — model-conditional bloat
  • HN debate — malice vs incompetence vs architecture
  • What enterprises should do Monday
  • explainx.ai read
  • Related on explainx.ai
← Back to blog

explainx / blog

Claude Code vs OpenCode Token Overhead — What Systima Measured at the API Boundary

Systima logged every request: Claude Code sends ~33k tokens before your prompt; OpenCode ~7k. Subagents, MCP, cache re-writes, and instruction files multiply the bill. explainx.ai on what enterprises should log and control.

Jul 13, 2026·8 min read·Yash Thakker
Claude CodeOpenCodeToken EconomicsAgent HarnessPrompt CachingMCP
go deep
Claude Code vs OpenCode Token Overhead — What Systima Measured at the API Boundary

The model is half the bill. The harness is the other half — and most teams never measure it.

On July 12, 2026, Systima published a controlled comparison: same machine, same pinned model (claude-sonnet-4-5), logging proxy at the API boundary, 185 tamper-evident request/response records. Hacker News sent it to 456 points — not because anyone doubted models cost money, but because the meter climbs faster under Claude Code than OpenCode for identical "Reply: OK" tasks.

This is the explainx.ai read on what was measured, what HN argued about, and what enterprises should log after Nadella's trust-boundary framing.

Weekly digest3.5k readers

Catch up on AI

Curated AI updates on agents, skills, and MCP — delivered to your inbox. Unsubscribe anytime.

TL;DR — floor vs whole task

MetricClaude CodeOpenCode
T1 floor ("Reply OK")~32,800 tokens first turn~6,900 tokens
Tool count (default)27 (+ orchestration suite)10 (coding core)
T2 file summarise6 requests, ~199k cumulative input4 requests, ~41k
T3 write-test-fix3 requests, ~121k (wins)9 requests, ~132k
Cache prefix stability3 classes; mid-session re-writesByte-identical every run
2 subagents on T3~513k (4.2× direct)Leaner subagent profile

Headline: Claude Code starts ~4.7× hungrier on Sonnet 4.5 floor; ~3.3× on Fable 5. Whole-task totals can invert when batching beats serialization.


Why measure at the API boundary

Systima's setup:

snippet
harness (Claude Code / OpenCode)
  → logging proxy (payload + usage block)
    → model endpoint

The proxy captures ground truth: exact JSON bodies (system blocks, tool schemas, messages) plus API usage (input, cache write, cache read, output).

That mirrors what we tell enterprise clients: treat inference logs like an audit trail, not a dashboard vanity metric. Systima chained records with @systima/aiact-audit-log — same integrity pattern as regulated AI logging. A token benchmark is a toy; a credit-decisioning agent is not.

If your traffic passes through a gateway (Systima used Meridian), measure the envelope with a bare request first. Otherwise you are grading your proxy, not the harness.


Part I — The floor (22-character prompt)

Task T1: "Reply with exactly: OK" — three runs per harness, fresh config, no MCP, no memory, empty workspace.

ComponentClaude CodeOpenCode
System prompt27,344 chars (3 blocks)9,324 chars (1 block)
Tool schemas27 tools, 99,778 chars10 tools, 20,856 chars
First-message scaffolding7,997 chars <system-reminder>none
Calibrated first-turn payload~32,800 tokens~6,900 tokens

Zero-tools variant: Claude Code system prompt alone ~6.5k tokens; OpenCode ~2.0k — still more than 3× residual doctrine (tone, safety, task management).

explainx.ai note: Tool schemas dominate both harnesses. Progressive tool disclosure — project-scoped MCP, not global kitchen-sink — is the first cost lever most teams skip.


Where the gap closes — T3 inversion

Multi-step FizzBuzz write-run-test-fix inverted the narrative:

Claude CodeOpenCode
Model requests39 (+1 title Haiku call)
Tool styleparallel batchone tool per turn
Cumulative input~121,000~132,000

Formula that matters:

snippet
whole_task_input ≈ baseline × request_count + conversation_growth

Claude Code paid 33k × 3; OpenCode paid 7k × 9. Totals converged.

HN takeaway (PUSH_AX): "Contractor A quoted $33k, Contractor B $7k — are we measuring the right thing?" Systima acknowledged this and promised deeper tasks + qualitative comparison. Fair. Tokens are necessary, not sufficient. But on T1–T2, both harnesses completed correctly — the gap was cost for identical outcome, which is measurable.


Part II — Multipliers (real sessions)

1. Instruction file (+20k each)

72KB production AGENTS.md / CLAUDE.md → ~20,000 tokens per request on both harnesses.

Footgun: Claude Code 2.1.207 ignored AGENTS.md until renamed CLAUDE.md. OpenCode reads either. Silent ignore = zero value, full tax if you duplicate both.

2. MCP servers (~1–1.4k per server)

Five public servers: +4,900 tokens (CC payload) / +6,967 metered (OpenCode). Production APIs ship much larger schemas.

Footgun: project .mcp.json ignored in print mode until --mcp-config passed.

3. Framework templates (size × turns)

8,405-char slash-command template ≈ 2,100 tokens — re-carried every subsequent request. Nine-turn session → nine× template tax.

4. Subagents (largest multiplier)

Same T3 direct: 121k → two parallel subagents: 513k (4.2×).

Each subagent pays its own bootstrap (~3,554-char agent prompt + 24/27 tools); parent ingests transcripts. HN reports of 7, 41, even 415 Fable subagents on one prompt are not outliers — they're the same mechanism runaway.

Mitigations from practitioners:

markdown
CRITICAL: Do NOT spawn sub-agents unless I explicitly request.
Use Explore (Haiku) subagents, not parent-model inheritance.

Or --disallowedTools Task / concurrency caps.

5. Extended thinking

Systima declined to publish numbers — gateway overrode harness toggles. Mechanism still compounds: reasoning blocks join history and re-send.

The "everything" cold start

ConfigFirst-request metered input
OpenCode: 11 MCP + 72KB instructions90,817 tokens (179 tools, 277KB schemas)
Claude Code: 4 MCP + plugins + instructions~75,000 tokens (118 tools, 311KB payload)

~12× OpenCode's lean floor — your config sets the bill, not the harness alone.


Cache economics — stability beats size

Both set cache breakpoints. Discount does not erase:

  1. Write premium — TTL expiry (5 min meeting, lunch) re-primes full stack at 1.25×–2×
  2. Read × request count — subagents and serial loops multiply
  3. Context window — 85k bootstrap = 40%+ of 200k before code; compaction spends more tokens

Decisive difference: prefix stability.

OpenCodeClaude Code
Prefix across runsByte-identicalVaries by session
Mid-session re-write (T2)043k–54k tokens
Cache-write vs OpenCode1×5.9×–54×

Re-writing a byte-identical prefix buys zero quality — pure waste. Prompt caching guide covers breakpoint design; Systima proves harness implementation matters as much as provider pricing.


Fable 5 floor — model-conditional bloat

Re-run on Fable 5: Claude Code system prompt 27,787 → 10,526 chars; tool schemas trimmed. OpenCode unchanged. Gap 4.7× → 3.3×.

Implication for July's limit-reset churn: upgrading models changes harness payload, not just capability.


HN debate — malice vs incompetence vs architecture

Three camps surfaced:

CampArgument
Conflict of interestModel vendor ships harness → token merchant incentives
ArchitectureCC is orchestration platform (Cron, Task, skills, subagents); OpenCode is lean REPL
MeasurementCache hits cheapen floor; quality on hard tasks untested

explainx.ai synthesis:

  1. Vendor harness ≠ neutral infrastructure — aligns with Nadella's Control pillar: own traces, private evals, model-agnostic runners
  2. Subscription vs API changes incentives — flat-fee users hit rate limits; enterprise API users hit $/token × unstable cache
  3. Goodhart arrives fast — optimizing "tokens" without $/merged PR or human edit ratio is spec gaming
  4. Pi (~1k), maki.sh, custom 200-line proxies — competition is fierce; gains get copied

Practical floor from HN: --system-prompt "" on Claude Code CLI; verify in /context. Strips doctrine, not tools.


What enterprises should do Monday

ActionWhy
Deploy API-boundary loggingPayload + usage per request; SHA-chained if regulated
Baseline harness A vs BSame golden tasks from private eval set
Score $/successful-taskNot tokens alone — include cache writes
Audit MCP + instruction filesOne team reported $400k/yr zero-value system-prompt waste
Subagent policy in repo rulesDefault-off beats post-hoc budget shock
Decouple model from harnessOpenCode, Pi, claudex

explainx.ai read

Systima did what most "Claude Code vs OpenCode" threads skip: count bytes at the wire.

  1. Floor gap is real — 33k vs 7k is not folklore; it's tool schema + orchestration doctrine
  2. Multipliers are non-linear — subagents are the cigarette of agent economics
  3. Cache instability is a silent tax — bigger than model list price for some session shapes
  4. Whole-task math inverts — batching matters; procurement needs task-shaped benchmarks
  5. Logging is the product — token accounting falls out once you own the boundary

We teach harness literacy in workshops: proxy → baseline → loop → eval → cost dashboard. The model API is rented; what you send is yours.


Related on explainx.ai

  • OpenCode Desktop tabs — session UI, worktrees gap (Jul 15)
  • geohot — labs may not capture AI value
  • How to build your own enterprise AI benchmark
  • Nadella Reverse Information Paradox
  • OpenCode complete guide
  • Prompt caching decision framework
  • Token spend governance — Ramp data
  • GPT-5.6 claudex setup
  • Agent harness engineering
  • Specification gaming & Goodhart
  • PxPipe — cut Claude Code image context
  • Ploy GPT-5.6 migration — harness tuned to incumbent

Figures from Systima's July 12, 2026 study (Claude Code 2.1.207, OpenCode 1.17.18, Sonnet 4.5 + Fable 5 floor re-run). Harness versions change frequently — treat numbers as a snapshot; treat the measurement method as durable.

Yash Thakker

Written by

Yash Thakker

Yash is an AI expert with over 300K learners. Join his workshops →

Related posts

Jul 22, 2026

Top 10 Closed-Source and Open-Source Agent Harnesses (2026)

The model gets the headline; the harness decides whether the agent actually finishes the task. Here are the top 10 closed-source and top 10 open-source agent harnesses builders are running in 2026 — what each one does differently, what it costs, and who should pick it.

Jul 21, 2026

jcode Agent Harness: Swarm, Memory Graph, and Multi-Session RAM Efficiency

1jehuang's jcode is a Rust-native agent harness built for multi-session workflows: ~27.8 MB per session (embedding off), semantic memory retrieval, native swarm on one repo, and self-dev mode that rebuilds its own binary. explainx.ai maps who should switch, who should wait, and how it compares to Claude Code, Cursor, OpenCode, Codex CLI, and pi.

Jul 16, 2026

Claude Code Artifacts + MCP: Live Dashboards With Viewer-Scoped Auth

Anthropic's ClaudeDevs account announced artifact MCP connectors: build a dashboard once, and each viewer pulls live data through their own connectors. explainx.ai explains viewer-scoped auth, plan limits, admin toggles, and how this extends Thariq's thick-artifacts framework.