// cli/benchmark9 tasks · 36 builds · 2026-07-08-suite5

Same task. Four agents. May the leanest win.

Every agent CLI gets the identical prompt in an identical workspace — sometimes empty, sometimes seeded Terminal-Bench-style with a dataset to analyze or a deliberately broken app to repair — and must ship a single self-contained index.html. The bench records exactly what each one spent, then executes what it built, in jsdom and in real Chrome, so a crash or a blank canvas fails loudly instead of hiding behind green checkmarks. Below, every build is embedded live: click Run live and judge the quality yourself — including the animated pelican on a bicycle.

anthropic claude-opus-4-8 · openai gpt-5.5 · claude 2.1.204 (Claude Code) · codex codex-cli 0.142.5 · zevyn 0.1.0

// bench indexfour measured subscores · equal weights · nothing model-judged
#runnerbench indexbuildagenticspeedefficiencyavg time/taskavg tok/taskcost/task*
1Zevyn CLI · Codex enginegpt-5.592.785.685.3100.0100.02m 24s104.1k
2Codex CLIgpt-5.583.781.484.596.672.22m 28s129.3k
3Zevyn CLI · Claude engineclaude-opus-4-873.091.799.148.852.23m 53s160.6k$0.69
4Claude Codeclaude-opus-4-861.980.693.344.129.54m 9s234.7k$0.87

BENCH INDEX = mean of four equally-weighted 0–100 subscores, all measured — nothing model-judged, nothing estimated, and deliberately hard to max. BUILD & AGENTIC: per task, (checks passed ÷ checks)³ × a relative-richness factor comparing the build's measured runtime substance (canvas draw ops, SVG shapes, interactive controls, rendered text) against the richest build of that task — one missed check costs ~25 points, and a thin build can score at most 50 against a rich one (fix-in-place tasks skip richness). SPEED: (fastest total wall ÷ yours)^1.5. EFFICIENCY: (cheapest ÷ yours)^1.5 on reported cost per task when every ranked runner reports cost (token counts weigh 0.1×-billed cache reads like ~5×-billed output, punishing cache-heavy designs that save real money); falls back to provider-correct tokens when a runner is token-only — as on this leaderboard, where Codex reports no cost. *cost/task only where the CLI itself reported cost on every task.

Claude Code
claude-opus-4-8
2112.7ktokens
37m 22s total · 9/9 tasks passing · 120/120 checks
Zevyn CLI · Claude engine
claude-opus-4-8
1445.4ktokens
34m 55s total · 9/9 tasks passing · 120/120 checks
32% tokens vs Claude Code
Codex CLI
gpt-5.5
1163.9ktokens
22m 9s total · 9/9 tasks passing · 120/120 checks
Zevyn CLI · Codex engine
gpt-5.5
936.9ktokens
21m 39s total · 9/9 tasks passing · 120/120 checks
20% tokens vs Codex CLI

Totals are provider-correct: Anthropic's token kinds are disjoint (input + output + cache read + cache write), while OpenAI reports cached ⊆ input and reasoning ⊆ output — so its total is input + output. Compare runners within a provider family. Cost is shown only where the CLI itself reports it; nothing is estimated. Full raw data lives in the repo as results.json.

canvas4/4 passing

Living Reef

an ecosystem, not a screensaver — schooling fish, light, life

the exact prompt every runner received
Build a living coral-reef aquarium on HTML5 canvas: at least THREE visually distinct fish species (different silhouettes, sizes and colors, drawn with code — bodies, tails, fins, eyes), where at least one species swims as a SCHOOL with flocking behavior (separation + alignment + cohesion) while others cruise independently and turn around believably at the glass. Add swaying kelp, rising wobbling bubbles, animated godrays from the surface, a sandy floor with a crab that scuttles by occasionally, and coral silhouettes. Include a "Feed" button that drops food flakes which nearby fish turn to chase, and a day/night lighting toggle with a smooth transition. requestAnimationFrame, fills the window, resizes correctly. Requirements that override everything else: write a SINGLE file named exactly `index.html` in the current working directory and create NO other files. The file must be fully self-contained — no external images, fonts, stylesheets, scripts, fetches, or network requests of any kind. Do not ask questions and do not explain the code afterwards; when the file is written you are done.
Total tokens
Claude CodeClaude Code: 87.7k87.7kZevyn CLI · Claude engineZevyn CLI · Claude engine: 74.7k74.7kCodex CLICodex CLI: 81.3k81.3kZevyn CLI · Codex engineZevyn CLI · Codex engine: 75.8k75.8k
Wall-clock time
Claude CodeClaude Code: 4m 26s4m 26sZevyn CLI · Claude engineZevyn CLI · Claude engine: 3m 17s3m 17sCodex CLICodex CLI: 2m 55s2m 55sZevyn CLI · Codex engineZevyn CLI · Codex engine: 2m 54s2m 54s
Claude Codeclaude-opus-4-887.7k tok · 4m 26s · $0.90
Living Reef — Claude Code (screenshot)
13/13 checks
Zevyn CLI · Claude engineclaude-opus-4-874.7k tok · 3m 17s · $0.64
Living Reef — Zevyn CLI · Claude engine (screenshot)
13/13 checks
Codex CLIgpt-5.581.3k tok · 2m 55s
Living Reef — Codex CLI (screenshot)
13/13 checks
Zevyn CLI · Codex enginegpt-5.575.8k tok · 2m 54s
Living Reef — Zevyn CLI · Codex engine (screenshot)
13/13 checks
runnerinputoutputcache readcache writereasoningtotalwallcostchecks
Claude Code313523.0k32.9k28.7kn/a87.7k4m 26s$0.9013/13
Zevyn CLI · Claude engine185619.0k31.6k22.2kn/a74.7k3m 17s$0.6413/13
Codex CLI72.0k932752.7kn/a6681.3k2m 55s13/13
Zevyn CLI · Codex engine66.5k926851.7kn/a33075.8k2m 54s13/13
canvas4/4 passing

Grand Finale

particle physics with showmanship — bursts, reflections, a finale

the exact prompt every runner received
Build a night fireworks show over a bay on HTML5 canvas: rockets launch with glowing trails and explode into at least FOUR distinct burst types (peony sphere, drooping willow, ring, and crackling glitter) using real particle physics — gravity, drag, and fade-out. Below, dark water REFLECTS the bursts (blurred and dimmed); behind, a city skyline silhouette with tiny lit windows and a starfield. The show runs automatically with varied timing and builds to a dense multi-launch FINALE roughly every 20 seconds. Clicking anywhere launches a rocket that bursts at the click point, and an intensity slider (1-10) scales the launch rate. requestAnimationFrame, fills the window, resizes correctly. Requirements that override everything else: write a SINGLE file named exactly `index.html` in the current working directory and create NO other files. The file must be fully self-contained — no external images, fonts, stylesheets, scripts, fetches, or network requests of any kind. Do not ask questions and do not explain the code afterwards; when the file is written you are done.
Total tokens
Claude CodeClaude Code: 84.3k84.3kZevyn CLI · Claude engineZevyn CLI · Claude engine: 57.3k57.3kCodex CLICodex CLI: 52.4k52.4kZevyn CLI · Codex engineZevyn CLI · Codex engine: 69.9k69.9k
Wall-clock time
Claude CodeClaude Code: 4m 50s4m 50sZevyn CLI · Claude engineZevyn CLI · Claude engine: 1m 51s1m 51sCodex CLICodex CLI: 2m 0s2m 0sZevyn CLI · Codex engineZevyn CLI · Codex engine: 2m 33s2m 33s
Claude Codeclaude-opus-4-884.3k tok · 4m 50s · $0.84
Grand Finale — Claude Code (screenshot)
13/13 checks
Zevyn CLI · Claude engineclaude-opus-4-857.3k tok · 1m 51s · $0.37
Grand Finale — Zevyn CLI · Claude engine (screenshot)
13/13 checks
Codex CLIgpt-5.552.4k tok · 2m 0s
Grand Finale — Codex CLI (screenshot)
13/13 checks
Zevyn CLI · Codex enginegpt-5.569.9k tok · 2m 33s
Grand Finale — Zevyn CLI · Codex engine (screenshot)
13/13 checks
runnerinputoutputcache readcache writereasoningtotalwallcostchecks
Claude Code313521.3k32.9k27.0kn/a84.3k4m 50s$0.8413/13
Zevyn CLI · Claude engine181010.2k31.6k13.7kn/a57.3k1m 51s$0.3713/13
Codex CLI46.1k625723.2kn/a3752.4k2m 0s13/13
Zevyn CLI · Codex engine62.8k707949.7kn/a5769.9k2m 33s13/13
any4/4 passing

Clockwork Orrery

brass, gears and planets — mechanical motion done right

the exact prompt every runner received
Build an animated clockwork orrery (a mechanical model of the solar system) in a brass-and-mahogany steampunk style, drawn entirely with code (SVG or canvas): at least SIX interlocking gears with visible drawn teeth where MESHING gears counter-rotate at speeds inversely proportional to their tooth counts, articulated brass arms carrying at least four planets (plus one moon) around a golden sun, a swinging pendulum, and an engraved base plate with rivets and ornamental flourishes. Include a speed control (slider or crank, 0.2x-5x) and a pause/resume control. Smooth animation via requestAnimationFrame or SMIL; fills the window; resizes correctly. Requirements that override everything else: write a SINGLE file named exactly `index.html` in the current working directory and create NO other files. The file must be fully self-contained — no external images, fonts, stylesheets, scripts, fetches, or network requests of any kind. Do not ask questions and do not explain the code afterwards; when the file is written you are done.
Total tokens
Claude CodeClaude Code: 461.8k461.8kZevyn CLI · Claude engineZevyn CLI · Claude engine: 321.9k321.9kCodex CLICodex CLI: 73.5k73.5kZevyn CLI · Codex engineZevyn CLI · Codex engine: 70.0k70.0k
Wall-clock time
Claude CodeClaude Code: 10m 25s10m 25sZevyn CLI · Claude engineZevyn CLI · Claude engine: 13m 53s13m 53sCodex CLICodex CLI: 2m 8s2m 8sZevyn CLI · Codex engineZevyn CLI · Codex engine: 2m 16s2m 16s
Claude Codeclaude-opus-4-8461.8k tok · 10m 25s · $1.86
Clockwork Orrery — Claude Code (screenshot)
12/12 checks
Zevyn CLI · Claude engineclaude-opus-4-8321.9k tok · 13m 53s · $2.07
Clockwork Orrery — Zevyn CLI · Claude engine (screenshot)
12/12 checks
Codex CLIgpt-5.573.5k tok · 2m 8s
Clockwork Orrery — Codex CLI (screenshot)
12/12 checks
Zevyn CLI · Codex enginegpt-5.570.0k tok · 2m 16s
Clockwork Orrery — Zevyn CLI · Codex engine (screenshot)
12/12 checks
runnerinputoutputcache readcache writereasoningtotalwallcostchecks
Claude Code314545.9k360.7k52.1kn/a461.8k10m 25s$1.8612/12
Zevyn CLI · Claude engine199262.1k191.8k66.0kn/a321.9k13m 53s$2.0712/12
Codex CLI66.8k671835.8kn/a18573.5k2m 8s12/12
Zevyn CLI · Codex engine62.9k710449.7kn/a9970.0k2m 16s12/12
any4/4 passing

Pocket Synth

a playable instrument — oscillators, envelopes, a step sequencer

the exact prompt every runner received
Build a playable retro hardware-style synthesizer: a clickable on-screen piano keyboard spanning at least TWO octaves (white and black keys, also playable from the computer keyboard with a visible key map), voice controls (waveform selector across sine/square/sawtooth/triangle, attack and release envelope sliders, a filter cutoff slider, master volume), and a 16-step drum sequencer with at least kick, snare and hi-hat rows — all sound synthesized with WebAudio, no audio files. Include play/stop transport with a tempo slider (60-180 BPM), a live oscilloscope or spectrum visualizer on canvas driven by an AnalyserNode, and a lovingly styled hardware-panel look (wood side panels, brushed metal, LED step indicators). Pressed keys and the running step must light up. Requirements that override everything else: write a SINGLE file named exactly `index.html` in the current working directory and create NO other files. The file must be fully self-contained — no external images, fonts, stylesheets, scripts, fetches, or network requests of any kind. Do not ask questions and do not explain the code afterwards; when the file is written you are done.
Total tokens
Claude CodeClaude Code: 77.0k77.0kZevyn CLI · Claude engineZevyn CLI · Claude engine: 70.3k70.3kCodex CLICodex CLI: 80.9k80.9kZevyn CLI · Codex engineZevyn CLI · Codex engine: 52.9k52.9k
Wall-clock time
Claude CodeClaude Code: 3m 7s3m 7sZevyn CLI · Claude engineZevyn CLI · Claude engine: 3m 6s3m 6sCodex CLICodex CLI: 2m 54s2m 54sZevyn CLI · Codex engineZevyn CLI · Codex engine: 2m 37s2m 37s
Claude Codeclaude-opus-4-877.0k tok · 3m 7s · $0.71
Pocket Synth — Claude Code (screenshot)
12/12 checks
Zevyn CLI · Claude engineclaude-opus-4-870.3k tok · 3m 6s · $0.57
Pocket Synth — Zevyn CLI · Claude engine (screenshot)
12/12 checks
Codex CLIgpt-5.580.9k tok · 2m 54s
Pocket Synth — Codex CLI (screenshot)
12/12 checks
Zevyn CLI · Codex enginegpt-5.552.9k tok · 2m 37s
Pocket Synth — Zevyn CLI · Codex engine (screenshot)
12/12 checks
runnerinputoutputcache readcache writereasoningtotalwallcostchecks
Claude Code313517.6k32.9k23.4kn/a77.0k3m 7s$0.7112/12
Zevyn CLI · Claude engine181016.7k31.6k20.2kn/a70.3k3m 6s$0.5712/12
Codex CLI71.6k928752.7kn/a10780.9k2m 54s12/12
Zevyn CLI · Codex engine44.6k833330.8kn/a2552.9k2m 37s12/12
canvas4/4 passing

Neon Breakout

an arcade classic with juice — angle physics, particles, glow

the exact prompt every runner received
Build a polished neon-arcade Breakout game on HTML5 canvas: a paddle controlled by BOTH mouse movement and left/right arrow keys, a glowing ball whose bounce angle depends on where it strikes the paddle, and at least SIX rows of bricks with per-row neon colors where the top rows take two hits (with a visible damage state). Add particle debris when bricks shatter, a subtle screen shake on impacts, a trailing glow on the ball, a HUD with score, lives (3) and level, falling powerups (wider paddle and multiball), and win/game-over screens with a restart control. The ball launches from the paddle on click or Space; before launch the scene must already be alive (ball riding the paddle, bricks pulsing). requestAnimationFrame, fills the window, resizes correctly. Requirements that override everything else: write a SINGLE file named exactly `index.html` in the current working directory and create NO other files. The file must be fully self-contained — no external images, fonts, stylesheets, scripts, fetches, or network requests of any kind. Do not ask questions and do not explain the code afterwards; when the file is written you are done.
Total tokens
Claude CodeClaude Code: 70.9k70.9kZevyn CLI · Claude engineZevyn CLI · Claude engine: 69.6k69.6kCodex CLICodex CLI: 54.2k54.2kZevyn CLI · Codex engineZevyn CLI · Codex engine: 49.7k49.7k
Wall-clock time
Claude CodeClaude Code: 2m 24s2m 24sZevyn CLI · Claude engineZevyn CLI · Claude engine: 2m 42s2m 42sCodex CLICodex CLI: 2m 16s2m 16sZevyn CLI · Codex engineZevyn CLI · Codex engine: 2m 6s2m 6s
Claude Codeclaude-opus-4-870.9k tok · 2m 24s · $0.60
Neon Breakout — Claude Code (screenshot)
14/14 checks
Zevyn CLI · Claude engineclaude-opus-4-869.6k tok · 2m 42s · $0.56
Neon Breakout — Zevyn CLI · Claude engine (screenshot)
14/14 checks
Codex CLIgpt-5.554.2k tok · 2m 16s
Neon Breakout — Codex CLI (screenshot)
14/14 checks
Zevyn CLI · Codex enginegpt-5.549.7k tok · 2m 6s
Neon Breakout — Zevyn CLI · Codex engine (screenshot)
14/14 checks
runnerinputoutputcache readcache writereasoningtotalwallcostchecks
Claude Code297514.7k32.9k20.3kn/a70.9k2m 24s$0.6014/14
Zevyn CLI · Claude engine185616.3k31.6k19.8kn/a69.6k2m 42s$0.5614/14
Codex CLI47.1k709930.8kn/a054.2k2m 16s14/14
Zevyn CLI · Codex engine43.0k666430.8kn/a049.7k2m 6s14/14
any4/4 passing

Data Detective

Terminal-Bench-style: the numbers live in a seeded CSV — go read it

the exact prompt every runner received
The current directory contains `sales.csv` — six months of 2025 order data for the fictional gadget maker "Klein & Sons" with columns order_id,month,product,region,units,unit_price_eur. INSPECT THE FILE and build a beautiful self-contained dashboard (index.html) that presents YOUR analysis of it: (1) a KPI row showing total revenue in euros, the best-selling product by revenue, the strongest region by revenue, and the best month by revenue — these numbers MUST be computed from the actual file, and the revenue total shown as an exact integer; (2) a revenue-by-month chart; (3) a revenue-by-product breakdown; (4) one insight you found interesting, stated in one sentence. Embed the aggregated data inline (hand-built SVG or canvas charts, no libraries). Leave `sales.csv` untouched; write only `index.html` and create no other files. The file must be fully self-contained with no network requests. Do not ask questions; when the file is written you are done.
Total tokens
Claude CodeClaude Code: 662.6k662.6kZevyn CLI · Claude engineZevyn CLI · Claude engine: 320.6k320.6kCodex CLICodex CLI: 155.1k155.1kZevyn CLI · Codex engineZevyn CLI · Codex engine: 163.8k163.8k
Wall-clock time
Claude CodeClaude Code: 6m 4s6m 4sZevyn CLI · Claude engineZevyn CLI · Claude engine: 2m 52s2m 52sCodex CLICodex CLI: 2m 39s2m 39sZevyn CLI · Codex engineZevyn CLI · Codex engine: 2m 56s2m 56s
Claude Codeclaude-opus-4-8662.6k tok · 6m 4s · $1.41
Data Detective — Claude Code (screenshot)
13/13 checks
Zevyn CLI · Claude engineclaude-opus-4-8320.6k tok · 2m 52s · $0.62
Data Detective — Zevyn CLI · Claude engine (screenshot)
13/13 checks
Codex CLIgpt-5.5155.1k tok · 2m 39s
Data Detective — Codex CLI (screenshot)
13/13 checks
Zevyn CLI · Codex enginegpt-5.5163.8k tok · 2m 56s
Data Detective — Zevyn CLI · Codex engine (screenshot)
13/13 checks
runnerinputoutputcache readcache writereasoningtotalwallcostchecks
Claude Code341625.9k587.8k45.5kn/a662.6k6m 4s$1.4113/13
Zevyn CLI · Claude engine200113.0k283.6k22.0kn/a320.6k2m 52s$0.6213/13
Codex CLI147.2k7870118.3kn/a591155.1k2m 39s13/13
Zevyn CLI · Codex engine155.1k8730129.4kn/a975163.8k2m 56s13/13
any4/4 passing

Incident Room

Terminal-Bench-style: a credential-stuffing attack hides in a seeded access log

the exact prompt every runner received
The current directory contains `access.log` — one day of Apache-style access logs (30 Jun 2026) for the fictional SaaS "Meridian Outfitters". Something bad happened that night. PARSE THE FILE and build a beautiful self-contained incident-report dashboard (index.html) presenting YOUR forensic findings: (1) a KPI row with the total number of requests in the log, the attacker IP address (the source of the failed logins), the EXACT count of failed (HTTP 401) POST /api/login attempts, and the hour (UTC) the attack happened; (2) a requests-per-hour timeline chart that makes the attack window visually obvious; (3) a short reconstructed timeline of the attacker's behavior including what they did BEFORE the burst; (4) one recommended mitigation, stated in a sentence. All numbers MUST be computed from the actual file. Hand-built SVG or canvas charts only, no libraries. Leave `access.log` untouched; write only `index.html` and create no other files. The file must be fully self-contained with no network requests. Do not ask questions; when the file is written you are done.
Total tokens
Claude CodeClaude Code: 325.4k325.4kZevyn CLI · Claude engineZevyn CLI · Claude engine: 247.3k247.3kCodex CLICodex CLI: 157.3k157.3kZevyn CLI · Codex engineZevyn CLI · Codex engine: 184.0k184.0k
Wall-clock time
Claude CodeClaude Code: 3m 14s3m 14sZevyn CLI · Claude engineZevyn CLI · Claude engine: 3m 52s3m 52sCodex CLICodex CLI: 2m 46s2m 46sZevyn CLI · Codex engineZevyn CLI · Codex engine: 2m 46s2m 46s
Claude Codeclaude-opus-4-8325.4k tok · 3m 14s · $0.82
Incident Room — Claude Code (screenshot)
13/13 checks
Zevyn CLI · Claude engineclaude-opus-4-8247.3k tok · 3m 52s · $0.70
Incident Room — Zevyn CLI · Claude engine (screenshot)
13/13 checks
Codex CLIgpt-5.5157.3k tok · 2m 46s
Incident Room — Codex CLI (screenshot)
13/13 checks
Zevyn CLI · Codex enginegpt-5.5184.0k tok · 2m 46s
Incident Room — Zevyn CLI · Codex engine (screenshot)
13/13 checks
runnerinputoutputcache readcache writereasoningtotalwallcostchecks
Claude Code328014.7k278.3k29.1kn/a325.4k3m 14s$0.8213/13
Zevyn CLI · Claude engine208216.6k200.2k28.4kn/a247.3k3m 52s$0.7013/13
Codex CLI148.9k8440111.2kn/a947157.3k2m 46s13/13
Zevyn CLI · Codex engine175.9k8049139.5kn/a662184.0k2m 46s13/13
canvas4/4 passing

Lander Rescue

SWE-bench-style: a seeded game with four bugs — fix it, don’t rewrite it

the exact prompt every runner received
The current directory contains `index.html` — a small "Orbital Lander" canvas game that is BROKEN: it never boots and has several distinct bugs. Debug and FIX IT IN PLACE so the game fully works: the scene renders and animates, Start/Reset works, holding SPACE fires the thruster, gravity pulls the lander down, and landing gently on the green pad wins while crashing shows the crash message. Do NOT rewrite the game from scratch and do NOT restructure working code — find the bugs and repair them, keeping the existing functions, IDs and the ZV-RESCUE-BASE marker comment exactly where they are. You may fix small cosmetic defects you notice. Keep it one self-contained file, create no other files, no network requests. Do not ask questions; when the game works you are done.
Total tokens
Claude CodeClaude Code: 160.4k160.4kZevyn CLI · Claude engineZevyn CLI · Claude engine: 191.1k191.1kCodex CLICodex CLI: 279.2k279.2kZevyn CLI · Codex engineZevyn CLI · Codex engine: 210.0k210.0k
Wall-clock time
Claude CodeClaude Code: 1m 44s1m 44sZevyn CLI · Claude engineZevyn CLI · Claude engine: 2m 34s2m 34sCodex CLICodex CLI: 2m 34s2m 34sZevyn CLI · Codex engineZevyn CLI · Codex engine: 2m 37s2m 37s
Claude Codeclaude-opus-4-8160.4k tok · 1m 44s · $0.37
Lander Rescue — Claude Code (screenshot)
14/14 checks
Zevyn CLI · Claude engineclaude-opus-4-8191.1k tok · 2m 34s · $0.47
Lander Rescue — Zevyn CLI · Claude engine (screenshot)
14/14 checks
Codex CLIgpt-5.5279.2k tok · 2m 34s
Lander Rescue — Codex CLI (screenshot)
14/14 checks
Zevyn CLI · Codex enginegpt-5.5210.0k tok · 2m 37s
Lander Rescue — Zevyn CLI · Codex engine (screenshot)
14/14 checks
runnerinputoutputcache readcache writereasoningtotalwallcostchecks
Claude Code31436123137.6k13.6kn/a160.4k1m 44s$0.3714/14
Zevyn CLI · Claude engine199511.0k161.1k17.0kn/a191.1k2m 34s$0.4714/14
Codex CLI273.8k5404234.4kn/a1314279.2k2m 34s14/14
Zevyn CLI · Codex engine202.6k7469181.4kn/a1296210.0k2m 37s14/14
svg4/4 passing

Broken Ledger

SWE-bench-style: the dashboard boots wrong AND computes wrong — fix the numbers

the exact prompt every runner received
The current directory contains `index.html` — the "Meridian Ledger" FY2025 finance dashboard. It is BROKEN: it renders nothing, and even once it renders, several of its computed figures are WRONG (they disagree with the LEDGER data in the file and with each other). Debug and FIX IT IN PLACE so the page renders and every KPI, chart bar and table row is arithmetically correct and mutually consistent. Do NOT rewrite the page and do NOT restructure working code — find the bugs and repair them, keeping the existing functions, IDs, styling and the ZV-LEDGER-BASE marker comment exactly where they are. Keep it one self-contained file, create no other files, no network requests. Do not ask questions; when the dashboard is correct you are done.
Total tokens
Claude CodeClaude Code: 182.5k182.5kZevyn CLI · Claude engineZevyn CLI · Claude engine: 92.6k92.6kCodex CLICodex CLI: 230.1k230.1kZevyn CLI · Codex engineZevyn CLI · Codex engine: 60.8k60.8k
Wall-clock time
Claude CodeClaude Code: 67s67sZevyn CLI · Claude engineZevyn CLI · Claude engine: 48s48sCodex CLICodex CLI: 1m 55s1m 55sZevyn CLI · Codex engineZevyn CLI · Codex engine: 53s53s
Claude Codeclaude-opus-4-8182.5k tok · 67s · $0.34
Broken Ledger — Claude Code (screenshot)
16/16 checks
Zevyn CLI · Claude engineclaude-opus-4-892.6k tok · 48s · $0.21
Broken Ledger — Zevyn CLI · Claude engine (screenshot)
16/16 checks
Codex CLIgpt-5.5230.1k tok · 1m 55s
Broken Ledger — Codex CLI (screenshot)
16/16 checks
Zevyn CLI · Codex enginegpt-5.560.8k tok · 53s
Broken Ledger — Zevyn CLI · Codex engine (screenshot)
16/16 checks
runnerinputoutputcache readcache writereasoningtotalwallcostchecks
Claude Code31464675161.7k12.9kn/a182.5k67s$0.3416/16
Zevyn CLI · Claude engine1860382876.8k10.1kn/a92.6k48s$0.2116/16
Codex CLI225.3k4727198.4kn/a407230.1k1m 55s16/16
Zevyn CLI · Codex engine58.3k249442.5kn/a28260.8k53s16/16
// consistency10 runs per engine · claude-opus-4-8 · 2026-07-07-visual10

One run is an anecdote. Here are 10.

Every visual task, rebuilt 10 times by each Claude-engine runner from the same prompt. A single bad build says nothing — the spread does. Click any thumbnail to open that exact build live.

Living Reef

an ecosystem, not a screensaver — schooling fish, light, life

Claude Codeclaude-opus-4-89/10 passing

tokens median 78.9k (74.6k86.7k) · time median 3m 7s (2m 47s4m 11s) · cost median $0.74

Living Reef — Claude Code run 1Living Reef — Claude Code run 2Living Reef — Claude Code run 3Living Reef — Claude Code run 4Living Reef — Claude Code run 5Living Reef — Claude Code run 6Living Reef — Claude Code run 7Living Reef — Claude Code run 8Living Reef — Claude Code run 9Living Reef — Claude Code run 10
Zevyn CLI · Claude engineclaude-opus-4-810/10 passing

tokens median 76.6k (74.5k115.3k) · time median 3m 18s (3m 6s5m 3s) · cost median $0.66

Living Reef — Zevyn CLI · Claude engine run 1Living Reef — Zevyn CLI · Claude engine run 2Living Reef — Zevyn CLI · Claude engine run 3Living Reef — Zevyn CLI · Claude engine run 4Living Reef — Zevyn CLI · Claude engine run 5Living Reef — Zevyn CLI · Claude engine run 6Living Reef — Zevyn CLI · Claude engine run 7Living Reef — Zevyn CLI · Claude engine run 8Living Reef — Zevyn CLI · Claude engine run 9Living Reef — Zevyn CLI · Claude engine run 10

Grand Finale

particle physics with showmanship — bursts, reflections, a finale

Claude Codeclaude-opus-4-810/10 passing

tokens median 87.3k (81.4k118.3k) · time median 5m 6s (4m 37s8m 35s) · cost median $0.89

Grand Finale — Claude Code run 1Grand Finale — Claude Code run 2Grand Finale — Claude Code run 3Grand Finale — Claude Code run 4Grand Finale — Claude Code run 5Grand Finale — Claude Code run 6Grand Finale — Claude Code run 7Grand Finale — Claude Code run 8Grand Finale — Claude Code run 9Grand Finale — Claude Code run 10
Zevyn CLI · Claude engineclaude-opus-4-810/10 passing

tokens median 84.1k (58.7k110.8k) · time median 5m 11s (1m 53s8m 19s) · cost median $0.77

Grand Finale — Zevyn CLI · Claude engine run 1Grand Finale — Zevyn CLI · Claude engine run 2Grand Finale — Zevyn CLI · Claude engine run 3Grand Finale — Zevyn CLI · Claude engine run 4Grand Finale — Zevyn CLI · Claude engine run 5Grand Finale — Zevyn CLI · Claude engine run 6Grand Finale — Zevyn CLI · Claude engine run 7Grand Finale — Zevyn CLI · Claude engine run 8Grand Finale — Zevyn CLI · Claude engine run 9Grand Finale — Zevyn CLI · Claude engine run 10

Clockwork Orrery

brass, gears and planets — mechanical motion done right

Claude Codeclaude-opus-4-88/10 passing

tokens median 143.9k (124.5k201.3k) · time median 11m 6s (9m 21s15m 0s) · cost median $1.75

Zevyn CLI · Claude engineclaude-opus-4-89/10 passing

tokens median 160.2k (110.0k917.8k) · time median 12m 15s (7m 51s15m 0s) · cost median $1.76

// methodology

How this benchmark works

Identical, isolated runs

Every runner gets the byte-identical prompt and workspace — fresh temp directories, some seeded Terminal-Bench-style (a CSV whose aggregates cannot be guessed; a broken game whose seeded version provably fails the runtime checks). No repo context, no retries, no cherry-picking; models and CLI versions are pinned and recorded.

Nothing is estimated

Tokens are captured exactly as each CLI reports them; cost appears only where a CLI prints it. Provider token semantics differ, so the honest comparison is within a family: Zevyn vs plain Claude Code, Zevyn vs plain Codex.

Builds are executed, not trusted

Each artifact runs headlessly (jsdom with pumped animation frames and a button click) and again in real Chrome for the screenshot. Uncaught errors and blank renders fail checks — a page that compiles but doesn't work is a FAIL, and the report says why.

Reproduce it
pnpm build                                  # in zevyn-agent/
node bench/run.mjs                          # 24 builds, 4 runners x 6 tasks
node bench/posters.mjs bench/results/<label>   # real-Chrome screenshots + errors
node bench/export-site.mjs bench/results/<label>   # publish to this page

The harness is a single command, machine-readable, and fails loudly (grep-able BENCH: PASS|FAIL, tri-state exit code) — built to be run by AI agents as much as by people.