As published: as published (nothing added)

Measured · Study2views

kalanu index crossed block — WindTunnel — claude-agent-sdk and opencode on claude-sonnet-5-5

WindTunnel · 50 tasks · 2 harnesses · 1 model

Claude-agent-sdk / claude-sonnet-5-5 won the shootout on the benchmark's verdict.

Ranked leaderboard of agents under As published: cells ranked by the composite score — the benchmark's own graders, then efficiency — claude-agent-sdk / claude-sonnet-5-5 leads.

From the publisher

kalanu.ai crossed block (owner-approved D5, 2026-10-03). The full WindTunnel corpus (50 tasks), the same pinned version as the 13-setup seed study, run once through the two setups that complete the block {claude-code, claude-agent-sdk, opencode} x {claude-haiku-4-5, claude-sonnet-5-5}: claude-agent-sdk and opencode on claude-sonnet-5-5 at their default configuration. The other four setups of the block were run in the seed study. Graded by the benchmark's own grader. One repeat per task.

Abstract

The benchmark's own pass/fail verdict decided this shootout: runs on the As published setup achieved a 99% pass rate across 50 tasks. On efficiency, the As published setup posted a median cost of $0.07 (mean $0.08), median tokens of 125.8k (mean 185.6k), and median duration of 21.1s (mean 32.8s). This leaderboard ranked 2 harness/model cells under a single group. The claude-agent-sdk / claude-sonnet-5-5 cell led the ranking.

The result

Color by

claude-agent-sdkopencode

Best setup: Claude Agent SDK / Claude Sonnet 5.5 (94.4 of 100)

  1. 1Claude Agent SDK / Claude Sonnet 5.594.4best
  2. 2opencode / Claude Sonnet 5.593.3

Overall score per cell, 0–100 points (not a pass rate): 75% benchmark pass rate (the benchmark's own graders carry the outcome share — no judge grades or evals on this board) + 25% efficiency (cost · tokens · duration, vs the board's best agent). Absent components renormalize. Best at the top — the board's best setup is tagged.

Leaderboard

Cells ranked by the composite score — outcome (the lenses that graded) × efficiency — absolute values, no other group. Tokens, cost and duration are per-cell medians, the efficiency the score folds.

#HarnessModelScorePass rateQualityEvalsGoalTokensCostDurationRuns
1Claude Agent SDKClaude Sonnet 5.594.4100%−−−161.6k$0.0711.7s50/50
2opencodeClaude Sonnet 5.593.398%−−−78.3k$0.0630.6s49/50

Pass rate

100%over 83 graded runs
  • Task text is withheld from public pages until an admin verifies this licence. Running this benchmark is unaffected.
CellPass rateTasksRunsRan asMatcher
claude-agent-sdk/claude-sonnet-5-5100%4242 (+8 unmeasured)harness defaulttext_predicate
opencode/claude-sonnet-5-5100%4141 (+9 unmeasured)harness defaulttext_predicate

Each run's answer was extracted from its response and matched against the benchmark's own key — no model in the loop. Two-stage: the mean over repeats per task, then the mean over tasks, with the interval taken over tasks.

Quality × efficiency clusters — normalized per task

Every graded run, standardized WITHIN its task so difficulty cancels out: → right = fewer tokens than the field on the same task, ↑ up = higher quality index (85% the benchmark's own pass/fail + 15% outcome) than the field. The field pools every harness and model, so a setup's left–right position largely reflects its own token habits. Dots are runs; each harness logo is a harness × model × group centroid — hover it for the model and averages. Up-right wins.

Label
Task
Harness
99 of 99 runs match
Show
better · cheaperworse · pricier
← pricier than the fieldefficiency (σ, per task)cheaper than the field →

1 runs not plotted (missing a grade or token count — infra failures included).

Every metric, per harness × model

Benchmark pass rate

  1. Claude Agent SDK / Claude Sonnet 5.5100%
  2. opencode / Claude Sonnet 5.598%

Task completion

  1. Claude Agent SDK / Claude Sonnet 5.5100%
  2. opencode / Claude Sonnet 5.5100%

Cost per run

  1. opencode / Claude Sonnet 5.5$0.06
  2. Claude Agent SDK / Claude Sonnet 5.5$0.07

Tokens per run

  1. opencode / Claude Sonnet 5.578.3k
  2. Claude Agent SDK / Claude Sonnet 5.5161.6k

Duration per run

  1. Claude Agent SDK / Claude Sonnet 5.511.7s
  2. opencode / Claude Sonnet 5.530.6s

By model

Benchmark pass rate

By model

  1. Claude Sonnet 5.599%

Task completion

By model

  1. Claude Sonnet 5.5100%

Cost per run

By model

  1. Claude Sonnet 5.5$0.07

Tokens per run

By model

  1. Claude Sonnet 5.5125.8k

Duration per run

By model

  1. Claude Sonnet 5.521.1s

Distributions

Every completed run is one dot — the spread the averages hide. Click a dot to replay that run's journey.

Cost per run

As published
Claude Agent SDK · Claude Sonnet 5.5
opencode · Claude Sonnet 5.5
0$0.41

Token composition — average per run

InputOutputCache readCache write
Claude Agent SDK · Claude Sonnet 5.5 · As published
249.3k
opencode · Claude Sonnet 5.5 · As published
118.4k

Statistics

MetricGroupnMeanMedian (pooled)MinMaxStd dev
CostAs published100/100$0.08$0.06$0.01$0.41$0.07
DurationAs published100/10032.7s26.3s7s3m 30s30.1s
Total tokensAs published100/100183.8k121.6k10.6k1.3M203.4k
Output tokensAs published100/1001.2k64608.1k1.4k
Cache-read tokensAs published100/100169.7k110.5k01.2M197.6k
Cache-write tokensAs published100/10012.9k10.5k66846.1k9.3k
TurnsAs published51/1007.151286

n = runs carrying the fact / completed runs in the group; every statistic runs over present facts only — a missing fact is never counted as 0. Std dev is the sample form (n−1), withheld below n = 2. Every figure here POOLS all runs. The typical-run figures in the abstract, the head-to-head decision and the per-setup panels take each task's median first and then the median across tasks, so a task that ran more often never outweighs one that ran once; the two medians can differ. A promise study's headline (“cut average tokens”) compares per-group means.

Task text withheld

Task text withheld — this benchmark is guarded and its tasks are not republished here.

Tasks

Runs

Every run is inspectable — open one to replay the agent's journey step by step, with the analyst's read underneath.

Every run, filterable… of 100Show runs
Task
Harness
Outcome
Status
… of 100 runs match
Sort
HarnessModelTaskCompletedPassTokensCostDuration

Loading runs…

Methodology

What each metric means
Completed
The run finished and the harness returned a response. It does NOT mean the answer was correct — a completed run can score zero on quality.
Denominator: Terminal runs, excluding those killed by our own infrastructure.
Quality index
A composite used only in the quality x efficiency plot, built from whichever grader scored this study's runs — the judge's rubric, the pre-registered checks or the benchmark's own verdict — plus whether the run's own outcome was success. The map's caption names the grader and its weights.
Denominator: Graded runs — runs the study's grader scored.
Infra-excluded
A run killed by our own infrastructure. It is a missing measurement, never a loss for the group, and is excluded from every rate denominator.
Denominator: Reported as a count beside every affected panel.
One group
Every task runs once per harness × model cell — a leaderboard with no other group. The readout is absolute (quality, success, tokens, cost) and the cells are ranked into a leaderboard.
Run budget and harness builds
Each run had a wall-clock budget and ran on a recorded harness build — disclosed, never used to split a comparison: Claude Agent SDK: 30 min per run, 1 harness build; opencode: 30 min per run, 1 harness build.
One run per task
Every task ran once per cell, in one phrasing. Run-to-run variation is therefore not measured: a single task's difference can be one lucky or unlucky attempt. Every row of the reference table treats the TASKS as the unit: its intervals resample the tasks and its p-values come from a paired test over them, so they describe how much the result depends on which tasks were drawn — not how it would change if the same tasks were run again. With few tasks no difference can reach significance (five tasks cannot go below p = 1/16).
Sample size
2 cells × 50 tasks × 1 group = 100 runs.