Hand-off benchmark: Claude Code to Codex, measured

By Arun Dass · Published 13 October 2026 · Updated 14 October 2026

When Codex took over a bug Claude Code had already found, a Friday hand-off used a median of 21% fewer tokens than starting Codex over, and Codex explored half as much before its first edit. We ran 14 tasks, 6 of them in Express, the most used Node web framework. Every fix passed the project’s own tests.

What did it measure?

Claude Code first found and explained a bug, changing nothing. Then Codex fixed it three ways, each in its own fresh copy, with one message from the person: a Friday hand-off with a one-line note, a fresh Codex session with the task restated, and a fresh Codex session with Claude Code’s whole answer pasted in.

Everything was measured from Friday’s session log, not the tools’ own claims, and checked by running the project’s own tests in the folder Codex worked in.

What held, against starting over?

  • Tokens: fewer in 13 of 14 tasks, a median of 21% (about 49,000 per hand-off), and 592,827 in total. In Express alone, fewer in 6 of 6.
  • Exploring before the first edit: a median of 2 steps against 4, fewer in 14 of 14.
  • First edit sooner in 12 of 14, and finished sooner in 11 of 14, by a median of about 7 seconds. In Express alone the finish times were even, so we make no speed claim.
  • Fixed: 14 of 14 every way. In Express, all 1,288 of its tests passed after every fix.

What did not hold?

Pasting Claude Code’s whole answer into Codex by hand did about as well: the same tokens and the same exploring, and in Express it finished faster. So we make no claim against a careful copy and paste. What a hand-off gives you is that handover, with what was asked, what was found, which files were read and what was run, in one click, every time.

Why do fewer tokens matter?

Coding agents on Claude and ChatGPT plans stop you at a usage limit rather than billing per token. Codex hit our own plan’s limit twice during this benchmark. As an estimate from the median, 21% fewer tokens per hand-off is about a quarter more hand-offs before you reach your limit.

Express: the results

Median, Codex’s fixing runFriday hand-offFresh, task restatedFresh, answer pasted
Fixed (all 1,288 tests pass)6 of 66 of 66 of 6
Total tokensabout 182kabout 234kabout 182k
Steps before first edit242
Time to first edit29s32s28s
Wall time58s59s49s
Task and repetitionHand-off: wall, first edit, stepsRestated: wall, first edit, stepsPasted: wall, first edit, steps
cookie-maxage 164s, 36s, 260s, 32s, 450s, 27s, 2
proxy-protocol 152s, 28s, 259s, 39s, 448s, 26s, 2
merge-params 158s, 27s, 261s, 32s, 448s, 30s, 2
query-parser 158s, 28s, 255s, 32s, 446s, 23s, 2
charset 155s, 29s, 261s, 34s, 558s, 32s, 2
cookie-maxage 265s, 37s, 352s, 30s, 458s, 34s, 3

Small library: the results

Median, Codex’s fixing runFriday hand-offFresh, task restatedFresh, answer pasted
Fixed (all tests pass)8 of 88 of 88 of 8
Steps before first edit1.542
Time to first edit35s56s44s
Wall time46s64s54s
Task and repetitionHand-off: wall, first edit, stepsRestated: wall, first edit, stepsPasted: wall, first edit, steps
slug 192s, 75s, 2102s, 89s, 650s, 40s, 5
query 140s, 30s, 247s, 37s, 457s, 46s, 2
date 160s, 46s, 282s, 74s, 476s, 64s, 2
limiter 192s, 79s, 1105s, 95s, 367s, 61s, 1
cart 234s, 21s, 172s, 64s, 451s, 43s, 2
slug 252s, 40s, 255s, 48s, 578s, 62s, 4
date 237s, 31s, 146s, 36s, 433s, 27s, 2
limiter 228s, 22s, 136s, 26s, 326s, 20s, 2

Tokens and every other field are in the raw data: Express and small library.

How was it set up?

  • When: 13 and 14 October 2026, on one Windows 11 laptop (Intel Core i7-1255U, 16 GB RAM).
  • Tools: Claude Code 2.1.251 on Sonnet, and Codex CLI 0.159.3 on gpt-6.1-sol, signed in to our own accounts, run through Friday in Auto mode, with Friday’s second review and decision log off.
  • Express 4.21.2: 4,050 lines of core and 1,288 tests. Five one-line bugs planted in its core: cookies, proxy headers, nested routers, the query parser and charsets. The failing test often points away from the cause.
  • Small library: 96 lines of JavaScript and 5 tests, with five one-line bugs, each in a different file from its failing test.
  • Each task ran twice, every run in its own fresh copy of the code.

What was set aside?

Codex’s plan limit refused runs twice. A task’s three ways are compared together, so a task where any was refused is set aside whole, not counted as a failure: 4 tasks in Express’s second repetition and 2 in the small library. Two runs that failed to start were rerun. One check was corrected: a fix that also added tests was first marked failed, though every test passed.

What are the limits?

  • 14 tasks, one-line bugs, one machine and one account.
  • Claude Code handing to Codex only.
  • The saving should grow with longer investigations, where there is more to re-read. That is a hypothesis we have not measured yet.
  • Cursor background agents and Codex cloud were not run. They need their own cloud products, which this setup could not drive fairly.

Common questions

Is a hand-off better than pasting the answer myself?

Not measurably, in this test: a careful paste did about as well. A hand-off does that handover for you in one click, with the files read and the commands run included.

Was Cursor tested?

No. Cursor background agents and Codex cloud run in their own cloud products, which this setup could not drive fairly, so they are left out rather than estimated.

Can I check the numbers?

Yes. The raw data has every run, including those set aside, with times, steps, tokens and each agent’s final answer.

Run your next task in Friday.

Free on your own, in your browser or on Windows and Mac. A new team gets Team Basic free for 7 days. No card required.

One email, nothing else. No newsletter.