Graff evaluations.

Every evaluation we have published, in one place: graff against Devin, Codex, Claude Code, OpenCode and Pi on the same models, release-over-release runs, FrontierHarness terminal tasks and verified repository patches. Tune the numbers to your team, then inspect the conditions behind them.

Updated · 9 agent evaluations

All write-ups on the blog

01 / YOUR NUMBERS

What would graff change for your team?

Measured ratios, same model on both sides.
Your team size and workload.

Pick the agent you use today, then set your team's numbers.

Measured on 21 tasks × 3 runs, every run passed, same model on both (one gateway model). Our tasks are not yours: treat this as a ratio, not a promise.

graff against Claude Code

35%less agent time per task
74hagent hours saved / month
$1,408saved each month, out of $2,000 model spend (70%)estimated from prompt tokens per task (only tokens were compared)
$5,559of team time saved each month, at $75 / h

Money saved plus time saved: +$6,967 / month.

Every hour your agent runs in Claude Code takes 39 minutes in graff

How this was measured →

02 / HEAD TO HEAD

Same model, other harnesses.

Each run pins the model and the tasks.
Only the harness changes.

The losses stay in: Pi with codemode was faster before v0.0.302.18, Claude Code is quicker on the smallest coding tasks, and Devin passed one more run.

· gpt-6.1-sol, medium effort

graff and Devin CLI on the same model

7 coding tasks × 3 runs, interleaved · seconds per task, shorter is faster

  • graff v0.0.302.2146s
  • Devin CLI128.2s

2.8× faster and 5.7× cheaper per task ($0.0249 against $0.1416 list). Devin passed one more run: 19/21 against 18/21.

Read the write-up →

· gpt-6.1-sol

Shorter turns against Pi's codemode

11 tasks × 3 runs, every run passed · seconds per task, shorter is faster

  • graff v0.0.302.1833s
  • Pi 1.0 + codemode34.2s
  • graff v0.0.302.1740.8s

32% lower list cost per task than Pi with codemode. On gpt-6-astra Pi stays 0.7 s faster on the mean; graff is 21% cheaper.

Read the write-up →

· gpt-6-astra

Pi 1.0's codemode against graff's rlm

11 tasks × 3 runs per setup · seconds per task, shorter is faster

  • Pi + codemode41.7s
  • Pi48.1s
  • graff v0.0.302.1748.3s
  • graff v0.0.302.1654.1s

Pi with codemode was the fastest of five setups here. The rlm change in v0.0.302.17 cut MCP join tasks by 27%, and v0.0.302.18 then overtook Pi.

Read the write-up →

· gpt-6.1-sol, same ChatGPT account

graff against the Codex app server

21 tasks × 3 runs, every run passed · seconds per task, shorter is faster

  • graff22.2s
  • Codex app server28.6s

22% less time and 69% lower list cost per task ($0.0131 against $0.0426).

Read the write-up →

· one gateway model

graff against Claude Code and OpenCode 2

21 tasks × 3 runs, every run passed · seconds per task, shorter is faster

  • graff8.7s
  • Claude Code13.2s
  • OpenCode 214.1s

Half the time on MCP work and 70% fewer prompt tokens than Claude Code; a little slower on the small coding tasks (7.0 s against 6.0 s).

Read the write-up →

03 / RELEASES AND MODELS

graff against itself.

Release-over-release and model-over-model,
on fixed tasks.

· DeepSeek V4 Pro

DeepSeek gets to work sooner

21 coding and MCP tasks × 2 runs · seconds per task, shorter is faster

  • v0.0.302.1515.9s
  • v0.0.302.1421.6s

26% less time per task, 39% less on sub-agent tasks, 36% fewer output tokens.

Read the write-up →

· Grok 4.6 / 4.7

Grok 4.6 against Grok 4.7 in graff

3 real pull requests, 24-point checklist · wall clock for all three PRs, shorter is faster

  • Grok 4.6507s
  • Grok 4.71,351s

4.7 scored one checklist point higher (21/24) for 2.3× the cost and 3.4× the reasoning tokens.

Read the write-up →

· one task, reused binds

The rlm runtime, before and after

same task, rlm off then on · seconds for the task, shorter is faster

  • With rlm39.2s
  • Before99.6s

Input tokens 135k → 25.3k and model calls 11 → 5 on the same task.

Read the write-up →

04 / TASK COMPLETION

21 terminal tasks.

FrontierHarness, Sep 6, 2026: selected Terminal-Bench 2.1 tasks.
The final environment is graded with public tests.

These Graff runs used additional evaluation instructions and a local Docker runtime.

Completed tasks No recorded pass

Graff / Grok 4.6

20 / 2195.2%

$0.31 / completed task

$6.2335 recorded spend · failures included

Graff / Kimi K3

17 / 2181.0%

$0.21 / completed task

$3.6463 recorded spend · failures included

Each segment represents one task in the total, not a specific task identity. Costs use the evaluator’s historical list-price estimates.

05 / PATCH VERIFICATION

One pass. Eight misses.

Nine DeepSWE tasks.
Submitted patches face the project’s real verifier.

Both Graff runs passed the KaTeX multicolumn-array-spans task. The other eight did not pass. Patch-application failures and test failures remain part of the result.

Graff / Grok 4.6

1 / 911.1%

$25.56 / completed task

$25.5616 recorded spend · failures included

Graff / Kimi K3

1 / 911.1%

$21.91 / completed task

$21.9148 recorded spend · failures included

A near-pass is still a failure. A missing verifier result never becomes an inferred success.

06 / THE WIDER FIELD

Compare the configurations.

The published FrontierHarness field contains twelve Kimi K3 configurations. Graff used different instructions and runtime conditions; those differences belong alongside the numbers.

Costs include failed attempts. ≥ marks a lower bound where some task costs are missing.

Recorded Graff configurations

Extra terminal instructions · local Docker runtime · historical list-price estimates

21 terminal tasks — Graff
ConfigurationCompletedRecorded USDUSD / passCosted tasksMedian attempt
Graff / Grok 4.620/21$6.2335$0.3121/21Not reported
Graff / Kimi K317/21$3.6463$0.2121/21Not reported

Published Kimi K3 field

Shared published runtime and instructions · first-turn-cold pricing

21 terminal tasks — published Kimi K3 configurations
ConfigurationCompletedRecorded USDUSD / passCosted tasksMedian attempt
Codex15/21$4.8584$0.3221/216m 51s
DSH Creator15/21≥ $3.3749≥ $0.2218/217m 33s
Claude Code16/21$15.5788$0.9721/219m 38s
Pi16/21$5.4599$0.3421/218m 06s
DSH PTC16/21≥ $3.0198≥ $0.1918/217m 55s
DSH Standard16/21≥ $8.1457≥ $0.5119/217m 04s
Oh My Pi16/21$5.4428$0.3421/217m 24s
Kimi Code14/21$9.3918$0.6721/217m 56s
DSH Minimal15/21≥ $6.2995≥ $0.4217/216m 55s
Exo Harness16/21$6.4250$0.4021/216m 51s
OpenCode15/21$3.4771$0.2321/217m 43s
Hermes13/21$11.3272$0.8721/219m 08s
Read the comparison analysis →

07 / CODEDB AND EDITS

The tools under the agent.

08 / HOW TO READ THE RESULTS

Keep the conditions attached.

Checking your own patch? Follow the verification workflow to retain commands, outcomes and a reviewable diff.

Results are repository-reported evaluations checked against the tracked summaries and protocol at revision b4bd80c, not a fresh rerun or an independent audit. The Graff terminal runs shown here used additional evaluation instructions. Models and execution environments differ across some rows. Published Exo costs are taken from FrontierHarness revision 8f11b13; the terminal subtotal is calculated from its public task-level records.

What does each task set measure?

The selected 21 Terminal-Bench 2.1 tasks grade the environment left behind by the agent. The nine DeepSWE tasks grade submitted patches against real project verifiers. These results cover those slices, not the full Terminal-Bench leaderboard.

Combined totals add both slices: Graff / Grok completes 21/30 and Graff / Kimi completes 18/30. Keep the individual slices visible when interpreting those totals.

Why are Graff and the published field separate?

Graff’s later terminal runs received BENCH_APPEND: additional evaluation guidance about final files and persistent services. They used a local Docker runtime. The published Kimi K3 field used a shared setup with prepared VM checkpoints and did not receive Graff’s append.

Grok also differs from the published field’s model. The recorded outcomes describe those complete configurations; they do not isolate the effect of switching harnesses alone.

How are cost and time calculated?

Cost per pass is recorded spend divided by completed tasks, including spending on failures. Graff uses historical evaluator list-price estimates. The published field uses cost_first_cold_usd, which reprices first-turn cache reads. These are different accounting methods, not current provider price quotes.

Where task costs are missing, ≥ denotes a lower bound. No passes means the ratio is undefined, not free. Median attempt time includes successful and failed attempts where timings are available. Graff medians are not reported; summary maxima are not medians.

Can I inspect the underlying evidence?

These are repository-reported results, not a new rerun or independent audit. Graff records are pinned to b4bd80c; the published board is pinned to 8f11b13. Publication and page-update dates do not imply new evaluation runs.

THE FULL WRITE-UP

What happened inside the runs?

Task failures, model differences, pricing methods, and the reasoning behind the comparisons.

Read the experiment and methodology