oh-my-pi: a terminal agent that treats the harness as the product

oh-my-piompai-coding-agentharnessharness-engineeringhashline+24high-risk claims
Screenshot of the oh-my-pi GitHub README showing the 'Every tool, benchmaxed' table with four model rows (Grok Code Fast 1 6.7% to 68.3%, Gemini 3 Flash +5 pp, Grok 4 Fast minus 61 percent tokens, MiniMax 2.1x), the 'The Pi you love, with batteries included' heading, the '01 Code execution w/ tool-calling' section intro, and the fork provenance line 'Originally built on Mario Zechner's wonderful Pi, omp adds everything you're missing.'
Source: github.com/can1357/oh-my-pi/blob/main/README.md · Captured 2026-06-26 via Playwright Chromium · License: MIT (project) / screenshot used editorially for the oh-my-pi article

On 2026-06-26, can1357/oh-my-pi — a fork of Mario Zechner’s pi-mono, re-engineered into a terminal AI coding agent called omp — sat at 14,677 stars, 1,287 forks, 369 open issues, 10,671 commits, MIT, created 2025-12-31 (metadata). Three releases (v16.1.19, v16.1.20, v16.1.21) shipped in the 18 hours before publication. That cadence is the signal worth understanding.

What it is

A terminal coding agent, not a wrapper. omp ships as a single Rust binary on macOS, Linux, Windows (no WSL bridge). Install: curl -fsSL https://omp.sh/install | sh on Unix, irm https://omp.sh/install.ps1 | iex on Windows, brew install can1357/tap/omp, or bun install -g @oh-my-pi/pi-coding-agent. Four entry points: TUI, one-shot prompt, Node SDK, stdio RPC / ACP.

The fork relationship. oh-my-pi is a fork of Mario Zechner’s Pi — previously at badlogic/pi-mono. LICENSE: ”© 2025 Mario Zechner / © 2025-2026 Can Bölük.” Upstream Pi: 65.7k stars, MIT, 240 releases. The maintainer’s framing: “The model is the moat. The harness is the bridge. Burning bridges just means fewer people bother to cross.” (blog.can.ac, 2026-02-12).

The four numbers. 40+ providers (Anthropic, OpenAI, Gemini, xAI Grok, Mistral, Groq, Cerebras, Fireworks, Together, Hugging Face, NVIDIA NIM, OpenRouter, Ollama, llama.cpp, vLLM, LiteLLM). 32 built-in tools plus 14 LSP + 28 DAP operations. ~55k lines of Rust in the N-API addon.

Why it matters

The harness is the boundary between “the model knows what to change” and “the change is on disk.” Most agents leave that boundary to a thin wrapper around read, str_replace, and bash. omp treats it as a product surface. Four mechanisms carry the load.

1 · Hashline — edit by content hash. The harness tags every read line with a 2-3 hex character content hash; every patch is anchored to a [PATH#TAG] full-file content hash, and rejects the patch before it corrupts anything if the file has changed. The model never retypes the lines it wants to change; the harness resolves the anchor and applies SWAP / INS / DEL operations (hashline README).

2 · First-class subagents with schema-validated yield. The task tool fans out into isolated worktrees; the final yield is a schema-validated object the parent reads directly — no prose to parse.

3 · Time-traveling stream rules. A regex match against the streaming model output aborts mid-token, injects the rule as a system reminder, and retries from the same point. README example: the model is about to write Box::leak; the request aborts, an amber card injects “Don’t reach for Box::leak in production code paths,” and the agent course-corrects to Arc<str>.

4 · The advisor model. A second model on the advisor role reads every turn and injects notes inline. Stream rules catch mechanical departures from policy; the advisor catches semantic drift.

Plus: native on Windows (ripgrep, glob, find, brush in-process); eight-format config import (Cursor MDC, Cline .clinerules, Codex AGENTS.md, Copilot applyTo); 18-hour release cadence with fixes at the right depth.

The benchmark

The README publishes a 540-task, 16-model benchmark (3 runs per task, fresh session each time):

ModelMetricWhat
Grok Code Fast 16.7% → 68.3%Tenfold lift when the edit format stops eating the model
Gemini 3 Flash+5 ppOver str_replace — beats Google’s own best attempt
Grok 4 Fast−61% tokensOutput collapses once the retry loop on bad diffs disappears
MiniMax2.1×Pass rate more than doubles, same weights, same prompt

All four are project-published and self-attributed. Treat the spread as the order-of-magnitude the harness contribution can deliver, not a contract (README).

Practical implications

What to watch

  1. Independent reproduction of the 16-model × 3-edit-format matrix on a model not in the original sixteen.
  2. Upstream Pi merge cadenceomp is a fork, not a vendor branch.
  3. The advisor model in real sessions — no published benchmark yet.
  4. /collab and the my.omp.sh relay — third-party service, no SLO.
  5. VOUCHED.td governance — a public denouncement list of bad actors.

Risks and caveats

Verdict

can1357/oh-my-pi — the fork of Mario Zechner’s Pi shipping as omp — sat at 14,677 stars, 1,287 forks, 369 open issues, 10,671 commits, MIT, with a Rust core of ~55k lines, 40+ LLM providers, and a project-published 16-model edit benchmark. The 18-hour release cadence is the second load-bearing signal: a project using its own binary. The takeaway is harness engineeringthe model is the moat, the harness is the bridge — a working MIT-licensed demo of a serious agent boundary in 2026. Pin a release tag, read packages/hashline.

Sources