Every harness this blog has covered this week — VISTA, Schema, Prime Agent — was built by a lab or a research team, aimed at one benchmark, and published with a chart. oh-my-pi (omp) is none of those things. It's a terminal coding agent, MIT-licensed, forked from Mario Zechner's pi-mono and extended by security researcher Can Bölük, with no benchmark line to defend and 23,600 GitHub stars anyway. It's worth covering for the same reason the others were: it's solving the same underlying problem — stop making the model redo work it's already done — from a completely different angle, at a layer none of this week's ARC-AGI-3 harnesses touched at all.
The problem every harness has and doesn't mention
Ask a model to edit a file and most harnesses have it reproduce the old text exactly, then the new text, and match the old string against the file to find where to apply the change. It sounds trivial. In practice it's a persistent source of failure: whitespace doesn't match, the string appears twice, a stray character breaks the diff, and the model burns a turn retyping lines it already read perfectly well moments earlier.
Hashline is omp's fix, and the idea is almost too simple: when the harness shows the model a file, every line carries a short content hash. To edit line 42, the model writes Line 42:f1 replace and the new content — it points at the anchor instead of retyping the line. Two things fall out of that. Whitespace-matching failures and ambiguous-match errors mostly disappear, because the model is referencing a hash rather than reproducing exact characters. And staleness gets caught for free: if the file changed between when the model read it and when it tries to edit it, the hash won't match, and the harness rejects the patch before it corrupts anything — the same instinct as Muse Code's replay-exact event log, applied to a single file edit instead of a whole session.
The project's own benchmark — 16 models, 180 tasks, 3 runs each, the usual self-reported caveat — puts a number on it: Hashline adds an average of 15 percentage points over standard string-replace editing across all 16 models. The extremes are the more interesting data: Grok Code Fast goes from a 6.7% pass rate to 68.3% — a tenfold jump attributed specifically to the edit format, not the model, "when the edit format stops eating the model alive" — and Grok 4 Fast does the same work using 61% fewer output tokens. Neither of those is a capability gain. Both are a harness stopping a specific, well-understood failure mode from happening at all.
The rest of the toolkit follows the same instinct
Past editing, omp is built around not re-deriving what it doesn't have to. It ships 31 built-in tools and prioritizes running them in-process rather than shelling out — ripgrep and glob run natively, and 58 command-line utilities are compiled directly into the binary, so common operations skip the cost of spawning a subprocess every time. Python and JavaScript cells are persistent: state carries across tool calls instead of restarting an interpreter per call, and tools can re-enter those cells, so a script the model built up over several turns is still sitting there on the next one.
A few of the less obvious features are worth naming on their own:
- Advisor role. A second model instance reads every turn the primary agent takes and injects notes inline — a standing second opinion running on its own context, rather than a review pass bolted on at the end.
- Time-traveling stream rules. A regex match can abort generation mid-token, inject a rule as a system reminder, and resume from the same point — a live constraint that survives session compaction, rather than a static system prompt hoping the model remembers it.
- GitHub as a filesystem. Pull requests and issues are addressable paths (
pr://1428) through the samereadtool as local files — one interface for the model to learn instead of a separate set ofgh pr view-style commands to fail at using correctly. - Schema-validated subagents. Parallel subagents spawned via
taskreturn typed, schema-validated objects the parent reads directly — no prose to parse, no merge conflicts between what two workers each decided to say. - P0–P3 code review.
/reviewspawns parallel reviewers that rank every finding by severity and confidence, so "does this ship" has an actual verdict instead of a wall of comments.
Who's building this, and why it matters that it isn't a lab
omp is a fork, not an original — the credit line in its own license reads "© 2025 Mario Zechner; © 2025–2026 Can Bölük," and the README is direct that the goal was extending pi-mono with the things a daily driver needs: persistent sessions, subagents, slash commands, a plugin architecture. Sixty-plus LLM providers are supported, so it's built to run whatever model you point it at rather than to flatter one. Nobody ran it against ARC-AGI-3, and nothing about it was designed to.
That's the actual contrast worth drawing against this week's other harness coverage. VISTA, Schema and Prime Agent all exist because a benchmark created an incentive to build them, and their numbers are the whole reason to write about them. omp's numbers are a footnote in its own README, buried under a feature list, because the thing that made 23,600 people star it wasn't a leaderboard position — it was that Hashline stopped a specific, everyday failure from happening to them personally. Harness research is being pushed forward by ARC Prize's scoring pressure at one end and by developers just trying to get a tool to stop breaking at the other, and it's not obvious the second group is learning less.
What to expect next
- Expect hash-anchored or similarly stale-aware editing to spread. It solves a problem every harness with a file-editing tool has, not one specific to
omp, and it doesn't require retraining anything to adopt. - Watch whether lab harnesses start citing community tools instead of the other way around. So far the traffic has run one direction — community projects wrapping frontier models. A frontier lab adopting a fix that originated in a 23,600-star side project would be a genuinely new kind of crossover.
- The benchmark table is worth an independent rerun. Same discipline this blog applies to every self-reported harness result: a tenfold jump on one model is the kind of number that deserves someone else's 180 tasks before it's treated as settled.
References: can1357/oh-my-pi (MIT) · badlogic/pi-mono — the project this forks · related coverage: Two Harnesses Solved the Same Benchmark by Disagreeing About Memory · Prime Agent and the Third Theory of Memory · Meta's Muse Code · YC's QM harness