Monospace · AgentsNº 007 · Playbook Edition

Benchmaxx the Tools,
Not the Model

Every coding agent is chasing a smarter model. omp — a security researcher's 1.14-million-line fork of Pi — bet that the harness around the model matters more, and built an edit format good enough to make cheap models land edits on the first try. It's mostly right. It also ships pointed at your foot.

HARNESS OVER MODEL
can1357/oh-my-pi · Fork of badlogic/pi-mono · MITTypeScript + Rust (Bun) · 16.1k stars · tested @ v16.3.6 · model-free harness
The Premise02

Win by fixing the harness, not renting a bigger brain.

The model rarely fails an edit; the harness does — the rigid format the model must retype your code into. omp's bet, straight off its README, is "benchmaxx the tools, not the model." Its edit format, hashline, never makes the model retype code: each read stamps the file with a four-hex tag and edits point at a line number under it — a whole-file content tag, not a per-line hash. Wrong-duplicate and silent stale edits vanish at the format level.

1.14Mlines of code
5.4×upstream Pi's size
29.5%of June's commits by roboomp
0of its own PRs it merges
Pedigree: Can Bölük — VTIL · NoVmp · reverse-engineeringBenchmaxx the Tools, Not the Model
The Machine03

One engine, many front-ends.

Five front-endsTUI · one-shot -p · RPC/NDJSON · ACP (Zed) · Node SDK — plus the roboomp bot, all one AgentSession
Native core53.6k first-party Rust · in-process ripgrep engine · embedded brush bash + coreutils · 57 tree-sitter grammars
Wide reach58 providers / 3,607 models in the box · a custom endpoint is ~6 lines of models.yml, API key optional
Deep toolsheadless LSP + DAP · syntax-tree ast_grep / ast_edit · persistent Python & JS eval kernels that call back into the agent
The hot path — search, shell, parse — drops into Rust, not a subprocessBenchmaxx the Tools, Not the Model
The Bench04 · Why the plays are believable

Graded by a fake model. Zero tokens, fully deterministic.

Every behavioral result comes from a model-free mock-LLM harness: a zero-dependency server plays the LLM, returns scripted tool calls, and we assert on disk state and request bytes — never on stdout vibes. Deterministic, zero API cost, re-runnable by anyone. It measures the machinery of the harness, not how smart a real model is.

15/15adversarial edits landed
2.1×faster search, 5k-file repo
48×bounded-query speedup
995 MBinstall footprint
2.05×slower turn than Pi
What we did NOT test: benchmark scores on live paid models — those stay omp's claimsBenchmaxx the Tools, Not the Model
Play 01Demonstrated An Afternoon

Make a cheap model edit like a pro.

The scenario → the move

Weaker, cheaper models burn turns on the usual edit format: they retype a line of your code to find it, get one space wrong, and the match fails. Retry, repeat, pay again.

omp's hashline format never asks the model to retype old code. It anchors each edit to a line number and a short hash of the file, so "string not found" stops being a failure mode.

[auth.ts#A3F2]        # tag minted when the model read the file
SWAP 9.=9:            # replace line 9 — no old code retyped
  return verify(pw)
The receipt

Across 15 adversarial edit scenarios — five identical lines, emoji and CJK, Windows line endings, a file changed mid-edit, a 3,000-line file — the format landed all 15 byte-exact, and refused edits to code the model had never actually been shown.

The eye-popping score jumps omp advertises (one cheap model going 6.7% → 68.3%) are its own numbers, measured on an older version of the format. We verified the mechanism, not the scores — that needs paid model APIs.

The strongest, cleanest evidence in the studyBenchmaxx the Tools, Not the Model
Play 02Verified An Afternoon

Point one agent at every model you own.

The scenario → the move

You juggle Claude, GPT, a local Llama, and a work endpoint — each behind its own tool, each configured differently.

58 providers and 3,600+ models ship in the box, and a custom OpenAI-compatible endpoint is about six lines of YAML — with the API key optional.

# ~/.omp/agent/models.yml — a keyless local endpoint
- id: my-endpoint
  baseUrl: http://localhost:8080/v1
  api: openai-completions
  auth: none          # API key optional
The receipt

We drove the shipped binary against a homemade endpoint with a fake key and no internet — one models.yml block, api: openai-completions, auth: none — and ran full agentic turns through it. It just worked.

58 providers / 3,607 models catalogued in-box against the README's advertised "40+" — the breadth is real, and then some.

Best-in-class multi-provider breadthBenchmaxx the Tools, Not the Model
Play 03Verified A Weekend

Wire the IDE into the loop.

The scenario → the move

Your agent guesses at types and greps blind, because all it really has is text search and hope.

omp gives the model real language-server diagnostics, structural (syntax-tree) find-and-replace, and search that runs ripgrep in-process instead of shelling out.

$ omp lsp diagnostics src/broken.ts
7:8 [error] [typescript] Type 'string' is not
   assignable to type 'number'. (2322)
The receipt

Headless, it returned compiler-grade errors — "Type 'string' is not assignable to type 'number'", code 2322, exact line and column — did structural edits, and its search beat spawning ripgrep by 2.1× on a typical 5k-file repo.

Bring your own language server — none is bundled. And native search silently stops reading a file past 4 MB, a real blind spot on large generated or data files.

Real signal, sharp edges — server not includedBenchmaxx the Tools, Not the Model
Play 04Verified A Weekend

Test a coding agent without spending a cent.

The scenario → the move

You want to know whether an agent's edit-and-run loop actually holds up, but real models are non-deterministic and every test run costs money.

Script a fake model that returns exact tool calls, point the agent at it, and assert on what actually lands on disk. Deterministic, free, repeatable.

omp --model mock/mock-model -p "fix the bug" --mode json
# assert on disk state, not stdout vibes
# SSE cut mid-tool-call → exits 0 with empty stdout (bug)
The receipt

This entire review ran that way: a zero-dependency mock server driving omp through scripted read → edit → run turns, checking byte-exact file state. It caught real bugs — including a mid-stream network drop that makes the agent exit successfully with no output.

It tests the machinery — does the edit land, does the retry back off — not how smart a real model is on your actual code.

The trick this whole review is built onBenchmaxx the Tools, Not the Model
Play 05Demonstrated A Sprint

Let the agent fix its own bugs.

The scenario → the move

Issues pile up faster than anyone triages them, and most are small, reproducible, and boring to fix.

The roboomp pattern: an agent watches the issue tracker, reproduces the bug in an isolated worktree, fixes it on a branch, opens a PR — and a human merges.

issues.opened → classify → reproduce in worktree
  → fix on branch → open PR   # gh-proxy alone holds the PAT
human reviews & merges     # roboomp never self-merges
The receipt

omp already does this to itself. Its roboomp account authored 15% of all commits in the repo's history and 29.5% of June 2026's — agent-written, human-gated. It opens the PRs; it never merges its own.

With the default settings, an untrusted issue is a command-execution risk — the bot isolates credentials behind a proxy precisely because the agent underneath does not sandbox itself.

A changelog substantially written by the agent itselfBenchmaxx the Tools, Not the Model
The Fine Print10

Clean supply chain. The danger is the defaults.

No critical issues · no backdoors · every default above is documented in-repoBenchmaxx the Tools, Not the Model
The Ledger11 · The forwardable summary

Five plays, priced by evidence.

PlayTierEffortReceipt
01 Make a cheap model edit like a proDemonstratedAN AFTERNOON15/15 adversarial edits byte-exact; refuses unseen-code edits
02 Point one agent at every model you ownVerifiedAN AFTERNOONDrove a keyless localhost endpoint via 6-line models.yml; full turns ran
03 Wire the IDE into the loopVerifiedA WEEKENDCompiler-grade 2322 diagnostics; in-process search 2.1× faster on 5k repo
04 Test a coding agent without spending a centVerifiedA WEEKENDMock-LLM harness asserts on disk; caught the SSE-cut silent exit-0
05 Let the agent fix its own bugsDemonstratedA SPRINTroboomp authored 29.5% of June commits; opens PRs, never self-merges
Tiers: Verified — we drove it end-to-end · Demonstrated — evidenced by omp itself, not fully re-run hereBenchmaxx the Tools, Not the Model
The Kicker12

Best for power users who'll flip one dangerous default first.

Best for power users who want a batteries-included, multi-provider terminal agent with a best-in-class edit format — and will flip one dangerous default before they start. Run one play tonight: point omp at the cheapest model you can stand, leave hashline on, and hand it a rename buried in near-identical lines. An afternoon, and you'll know whether a cheap model plus a good harness covers work you've been paying a frontier model for.

bun i -g @oh-my-pi/pi-coding-agent   # 995 MB, ~1 s to boot
# before pointing it at code you didn't write:
tools.approvalMode: write              # ← flip off yolo first
MONOSPACE · monospacemag.comTake it off yolo, then let it run
← → / space · F fullscreen