← back

πŸ“Š An honest benchmark

A tool-vs-tool comparison β€” Polypus, OpenCode and Aider β€” running the same model (deepseek-v4-flash), on the same tasks, on the same machine. The verdict is objective (real unit tests), and cost is measured from a neutral source (the OpenRouter API, a dedicated key per tool) β€” never what each tool self-reports. Philosophy: diagnosis first, marketing second. The original goal was to find where Polypus breaks β€” and it did (see the fixed bugs below).

18/18
sessions passed (3 tools Γ— 6 tasks), 100% of subtests
6
tasks: algorithms, edge cases, debugging and multi-file
4
real bugs the benchmark found in Polypus β€” all fixed
~$0.04
total cost of the whole round (all three tools)

Methodology

Modeldeepseek-v4-flash (via OpenRouter) β€” the same for all three, single provider (no routing variance).
Verdictnode --test β€” real unit tests. Partial score X/N (how many subtests passed), not just pass/fail.
CostSpend delta on the OpenRouter API, one dedicated key per tool. Neutral source, immune to self-reporting.
IsolationEach task runs in a disposable git workspace. Identical prompt for all three.
Anti-cheatTest files are hashed before/after: if a tool edits the test to "pass", the run is disqualified.
ReproducibleOpen scripts in bench/demo/ in the repo. Run ./run-all.ps1.

A task is a folder with a PROMPT.md (identical instruction), the source file(s) and *.test.mjs. Tools get only the prompt and the workspace β€” they figure out the rest themselves. Tasks range from simple algorithms (leap year) to debugging (the code ships already broken) and multi-file (the bug is in one of two files and the tool has to find which).

Results per task

TaskType Polypus OpenCode Aider
leapleap year7/77/77/7
rleencode/decode12/1212/1212/12
romanedge cases14/1414/1414/14
anagramcase + traps8/88/88/8
fix-flattendebugging8/88/88/8
stats-bugmulti-file7/77/77/7

Correctness: a perfect tie. At this difficulty, with a strong model, all three tools solve everything. On the multi-file task all three found the right file and left the other one (the "decoy") untouched. Where they diverge is efficiency.

What each task is
  • leap β€” "is it a leap year?" by the Gregorian rules (Γ·4, except Γ·100, except Γ·400). Short algorithm.
  • rle β€” run-length encoding: compress "AAAB" β†’ "3A1B" and decompress back.
  • roman β€” integer β†’ Roman numeral (1–3999) with subtractive notation (4=IV, 9=IX). Full of edge cases.
  • anagram β€” given a word and candidates, find the anagrams (case-insensitive, excluding the word itself).
  • fix-flatten β€” debugging: the nested-array flatten code ships BROKEN; the tool has to find and fix the bug.
  • stats-bug β€” multi-file: the bug is in a function that imports from another file; the tool must discover which of the two holds it.
How to read the numbers
  • 7/7 β€” subtests passed / total (partial score, not just pass/fail).
  • In the token table: total tokens processed on the task (less = more efficient).

Round cost (6 tasks)

Aider
$0.0008
Polypus
$0.0204
OpenCode
$0.0204

Tokens processed per task

TaskPolypusOpenCodeAider
leap18,37827,0951,067
rle26,90219,6622,400
roman18,82021,0581,474
anagram25,03528,1521,622
fix-flatten26,95836,0632,500
stats-bug (multi)63,49645,1181,827

The honest nuance behind the numbers. Aider is ~25Γ— cheaper β€” but part of that is because it makes you say which files to edit; it doesn't navigate, it gets everything spoon-fed and solves in one shot. Polypus and OpenCode are real agents: they read the repo, run the tests and iterate on their own β€” and they pay for it in tokens. This is starkest on the multi-file task (stats-bug): Polypus spent 63k tokens discovering which file held the bug; Aider spent 1.8k because it was handed both files. These are different categories of tool β€” a cost comparison has to account for that.

What the data says

βœ… Equivalent correctness

Polypus delivers the same hit rate as established tools, on the same model. The "equivalent quality" thesis holds up in the data β€” it's not an opinion.

πŸ’Έ On par with the agentic competitor

Against OpenCode (the direct agentic competitor), Polypus costs the same or less β€” the prompt-caching advantage shows up once the measurement is honest.

🧭 Correct multi-file navigation

On the task with a scattered bug, Polypus found the right file and never touched the decoy β€” autonomous navigation the one-shot approach can't do without human help.

🎯 A clear improvement target

Polypus's weak flank is token efficiency, especially multi-file. It's a concrete, measurable gap β€” a roadmap item, not an excuse.

The benchmark found 4 real bugs β€” and we fixed them

The value of an honest benchmark isn't the pretty chart β€” it's what it breaks. In the first rounds Polypus failed, and each failure became a fix:

Methodological honesty

This is a small, transparent benchmark, not a definitive leaderboard. Limits we took on purpose: (1) one model this round; (2) 6 self-contained tasks β€” enough for diagnosis, not for a universal ranking; (3) Aider is handed the files explicitly, which makes its cost cheap in exchange for requiring a human in the loop; (4) tasks at this difficulty don't separate the tools on correctness β€” for that, the next step is a weaker model or larger tasks. Everything is reproducible: the scripts, the tasks and the criteria are in the repo.

Want to reproduce it? cd bench/demo and ./run-all.ps1. Each tool uses its own OpenRouter key; the scoreboard lands in runs/results.csv and the neutral cost in ./show-costs.ps1. Open source: github.com/GaberRB/polypus.