Skip to main content

Benchmarks

Small, public, and rerunnable.

Every number on this page comes from benchmarks/smoke in the public phonton-cli repository: fixed goals on pinned fixtures, scored by hidden tests the run never sees. The suite is small on purpose. It catches regressions and shows what a model can do through Phonton; it does not rank tools.

Benchmark evidence packet: fixture, prompt, versions, logs, diff, verification, receipt
Each run keeps its goal, diff, hidden-test output, raw logs and receipt.

How a run is scored

Hidden tests decide, not Phonton

1 · Fresh copy

Each run starts from a new git copy of a fixture in fixtures/, so runs cannot learn from each other.

2 · Hidden tests

After Phonton finishes, tests it never saw are added and the whole suite runs. Accepted means every test passed. Each hidden test fails on the untouched fixture and passes with a reference fix.

3 · Reported usage

Tokens and cost come from the provider-reported usage on the run's receipt. We report medians or totals over every run, never the best one.

Cloud model

Three fixtures · DeepSeek flash · CLI 0.22.2

36 of 36 runs accepted, 193,129 tokens and $0.10 in total. Three runs per task, Windows 11, release build, 2026-10-08. todo-api is four small files, ledger one 339-line module, shop one 28 KB module.

TaskAcceptedMedian sMedian tokensMedian costNotes
todo-remove3/382,028$0.0007
todo-count3/361,931$0.0007
todo-sort3/362,506$0.0011
todo-title-limit3/362,235$0.0008
ledger-thousands3/394,985$0.0019
ledger-parens3/385,104$0.0020
ledger-balance-on3/3137,861$0.0051
ledger-csv-quote3/3188,971$0.0067
shop-coupon-expiry3/3147,924$0.0035
shop-cancel-restock3/3146,504$0.0036
shop-top-ties3/396,475$0.0024
shop-review-duplicate3/3138,119$0.0038

Local model

todo-api · qwen2.5-coder:3b on a 6 GB laptop GPU · CLI 0.22.0

Managed Ollama runtime, no key, no network calls for inference. Same tasks, same hidden tests.

TaskAcceptedMedian sMedian tokensMedian costNotes
todo-remove3/316897$0
todo-count3/316873$0
todo-sort3/312449$0
todo-title-limit0/310313$0Edited the wrong file and still passed the existing tests. Checks are evidence, not proof.

Local model · CPU only · CI

qwen2.5-coder:3b on a GitHub Actions runner, all three fixtures

The workflow local-smoke.yml runs the local arm on a 4-vCPU Linux runner with no GPU, so anyone can rerun it. A false pass is a run Phonton marked review-ready that the hidden tests then failed: the number a coding tool should drive to zero. The other runs ended with Phonton refusing a candidate that failed checks or made no change.

Fixture0.22.10.22.20.23.0, managed runtime0.23.0, 7B, 1 run per task
todo-api9/12 · 3 false12/12 · 0 false12/12 · 0 false4/4 · 0 false
ledger1/12 · 5 false2/12 · 2 false1/12 · 2 false1/4 · 1 false
shop1/12 · 0 false1/12 · 0 false1/12 · 2 false2/4 · 1 false

Accepted runs, then false passes. A 3B model handles small, focused edits; the 339-line and 28 KB modules need a larger one. 0.23.0 made a 3B model's whole-class rewrites parse instead of duplicating the class; acceptance did not move, and two of those rewrites added an unused method that passed the visible tests. CPU decoding is not fully repeatable, so differences of one or two runs per fixture are noise.

Measured, then fixed

Recounting diff ranges halved tokens on mid-file edits

Models often miscount @@ line ranges while quoting every line correctly, and each rejected hunk cost a retry. 0.22.1 recounts each hunk and moves it to where its lines match. Same four ledger tasks (edits inside a 339-line module), DeepSeek flash, three runs each:

BuildAcceptedTotal tokensTotal costTotal wall time
0.22.012/12218,139$0.172533 s
0.22.112/12108,591$0.063238 s

Small n, one model, one machine. Reproduce by running the harness with --bin pointed at each build.

  • Files over 24 KB used to reach the worker as signatures only. Sending excerpts around the names a task mentions took the four shop tasks from 11/12 to 12/12 accepted and from 422,615 to 203,489 tokens.
  • A goal containing “release” (as in “release the stock”) was planned as broad, multi-agent work and split into four or five subtasks, costing 32k-214k tokens per run. Fixed in 0.22.1: one subtask, 4.9k median.
  • Every new function got a generated test-writing subtask, asked for or not. Planning tests only when a goal asks for them kept the suite at 36/36 and cut its cost from $0.186 to $0.096 (0.22.2).

Withdrawn

Earlier numbers are no longer published

This page used to show results and cross-tool comparisons from Phonton 0.16 to 0.21. Those builds contained hardcoded answers for some benchmark fixtures (removed in 0.22.0), and the raw artifacts were never public, so those numbers cannot back a claim. Comparisons with other tools will return when they can be rerun from public fixtures.

Reproduce

Run the suite yourself

git clone https://github.com/phonton-dev/phonton-cli
cd phonton-cli
cargo build --release -p phonton-cli

# uses your provider key; PHONTON_HOME keeps your own memory untouched
PHONTON_HOME=/tmp/phonton-bench node benchmarks/smoke/run.mjs --arm cloud --runs 3
node benchmarks/smoke/run.mjs --arm local --runs 3      # with a local model selected

Product shape, not scores

ADE vs IDE agent vs terminal agent

DimensionTypical IDE agentTerminal agentPhonton
Primary surfaceIDE (file/selection)Terminal sessionTerminal ADE + TUI
Unit of workEdit selection / chat taskPrompt / taskGoal with a visible plan
Before your tree changesProduct-dependentVariesYour checks pass on a patched copy
HandoffDiff in editorDiff + chat summaryReceipt: files, checks, model route, cost
UndoEditor historygitreview reject restores the task’s files
Local modelsRareVariesCalibrated per model; no cloud fallback

Claim boundary

What these numbers support

Supported

  • Acceptance, time, tokens and cost on these fixtures, models and versions.
  • Before/after comparisons of Phonton builds run the same way.
  • A 3B local model completing small, focused edits through Phonton.

Not supported

  • “Phonton beats Claude Code / Codex / Cursor.”
  • Percentage token savings against other tools.
  • Results on large or unfamiliar codebases.