AI Coding Workflows · Part 3

Oh My Pi (omp.sh): A Quick Look at the Hardened Coding Agent CLI

Oh My Pi (omp.sh): A Quick Look at the Hardened Coding Agent CLI

A deep-dive tour of Oh My Pi (omp.sh) — examining 'The Harness Problem', why edit tools swing model pass rates by up to 10×, built-in Hashline patching, AST refactoring, visual Snapcompact, and how it compares to OpenCode, Claude Code, and Cursor.

19 min read

Most developers evaluate coding agents by comparing frontier models: Claude Opus 5 vs GPT-5.3 vs Gemini 3.7. That framing assumes the underlying model weights are the sole variable dictating coding performance.

Assign an agent to a large brownfield codebase, however, and you quickly discover the real chokepoint: the execution harness.

When an agent fails to resolve an issue, it is rarely because it lacked the intelligence to diagnose the bug. More often, it fails at the mechanical interface: fuzzy diffs drift, whitespace mismatches break string replacements, compiler logs blow out context windows, and concurrent subagents clash over shared files.

As Can Bölük (creator of oh-my-pi) articulated in The Harness Problem, blaming the model for these failures is like “blaming the pilot for the landing gear.” Optimizing the edit tool alone can swing model pass rates by up to 10× with zero training compute.

To solve this execution bottleneck, Oh My Pi (omp.sh) emerged as a hardened, high-performance CLI harness. Evolving from Mario Zechner’s minimalist pi-mono foundation, omp combines native Rust execution, deterministic Hashline patching, AST structural refactoring, and multi-agent coordination without vendor lock-in.

This article is a deep-dive tour of Oh My Pi: the core thesis behind The Harness Problem, the empirical 16-model benchmark results, its 4 built-in architectural differentiators, why open harnesses beat proprietary walled gardens, and how omp compares directly to OpenCode, Claude Code, Cursor Agent, and Pi.dev.


TL;DR

  • The Harness Problem: The coding agent bottleneck is often not model intelligence, but the interface between model tokens and workspace mutations. Improving the edit tool format alone swings model coding success rates by up to 10× (6.7% → 68.3% on Grok Code Fast) and cuts output tokens by 61%.
  • What Oh My Pi Is: A high-speed, open-source terminal coding harness built on Bun and Rust native bindings (@oh-my-pi/pi-natives). It pairs multi-model portability with deterministic execution guardrails.
  • The 4 Competing Edit Tool Paradigms:
    1. Codex apply_patch: OpenAI diff blobs biased at the API gateway; fails on 46–51% of turns for non-Codex models.
    2. Claude Code str_replace: Exact character/whitespace matching; prone to “string not found” error fatigue.
    3. Cursor Instant Apply: Dedicated 70B fine-tuned merge model; falls back to full-file rewrites under 400 lines.
    4. Oh My Pi Hashline ([PATH#TAG]): Content-hashed line anchors with Optimistic Concurrency Control (OCC); zero whitespace recall needed.
  • 4 Key Built-In Differentiators:
    1. Deterministic Hashline Patching: Checksum-tagged line anchors prevent silent offset drift across multi-file edits.
    2. Native AST-Grep Staging: Language-aware syntax tree refactoring staged in memory before touching disk.
    3. Snapcompact Visual Compaction: Compresses long transcripts by rendering historical turns into 1-bit bitmap PNGs for multimodal vision models.
    4. The Agent Hub: A live TUI dashboard (Alt+A) and peer-to-peer IRC broker supervising concurrent subagent swarms in copy-on-write sandboxes.
  • Open Harnesses vs Walled Gardens: Proprietary vendors (Anthropic, Google) will never optimize their CLI harnesses for competitor models. An open-source harness serves as a neutral bridge and cross-model R&D layer for the entire AI ecosystem.

What You Will Learn Here

  • Why model benchmarks miss the primary source of agent failure in production.
  • How the 4 main code editing paradigms (apply_patch, str_replace, 70B merge models, and Hashline) compare mechanically.
  • The quantitative results of the React Edit Benchmark across 16 LLMs (8,640 test runs).
  • How omp.sh implements Hashline patching, AST-grep staging, and visual context compaction.
  • How the Model Roles architecture decouples logical tasks from concrete model providers.
  • A feature-by-feature comparison matrix against Claude Code, OpenCode, Cursor, and Pi.dev.

What is Oh My Pi? (The 30-Second Tour)

At its core, Oh My Pi (omp.sh) is a developer-centric CLI engine designed to execute long-horizon coding tasks safely.

flowchart TB
    subgraph UserInterface ["Terminal Layer (Bun Runtime)"]
        CLI["omp CLI & Interactive TUI"]
        HubHUD["Agent Hub HUD (Alt+A)"]
        Router["Model Tier Router (Opus, GPT-5, Gemini)"]
    end

    subgraph HardenedCore ["Hardened Engine (@oh-my-pi/pi-natives)"]
        Hashline["Hashline Snapshot Tagging Engine"]
        AST["ast-grep & Tree-Sitter Modding Core"]
        Compact["Multi-Tier Compaction (Snapcompact & Shake)"]
        PAL["Platform Abstraction Layer (APFS CoW / OverlayFS)"]
        Mnemopi["Mnemopi Episodic Memory (SQLite-Vec)"]
    end

    UserInterface --> HardenedCore

omp executes its core operations through compiled Rust N-API bindings rather than interpreted scripts. This provides sub-millisecond workspace scanning, syntax-aware code parsing, and fast checksum calculations.


The Harness Problem: Why Model Benchmarks Miss the Real Bottleneck

In AI engineering, discourse is dominated by leaderboard battles between frontier models. Yet when you trace agent failures in realistic brownfield repos, the breakdown rarely occurs in high-level reasoning.

Instead, the failure happens in the harness: the tool schemas, edit formats, error messages, and state reconciliation layers that translate model thoughts into filesystem writes.

flowchart LR
    A["Industry Obsession<br><b>'Which Model is Best?'</b><br>(Opus vs GPT-5 vs Gemini)"] -.->|Misses the Real Chokepoint| B["The Execution Harness<br><b>Tool Schemas & Edit Anchors</b><br>(Where most agent failures occur)"]
    B --> C["The Finding<br><b>'Blaming the pilot for the landing gear'</b><br>Models understand the task but fail at diff syntax"]

The 4 Edit Tool Paradigms

How does an LLM communicate a change to a file? Today’s developer tools take four distinct architectural approaches:

flowchart TD
    subgraph Paradigms ["Code Modification Approaches in 2026"]
        P1["1. apply_patch (Codex)<br>OpenAI diff blob with gateway token bias"]
        P2["2. str_replace (Claude Code)<br>Exact string match; zero whitespace tolerance"]
        P3["3. Dedicated 70B Model (Cursor)<br>Fine-tuned model trained solely to merge diffs"]
        P4["4. Hashline [PATH#TAG] (Oh My Pi)<br>Content-hashed line anchors + Optimistic Concurrency"]
    end
ParadigmPrimary ToolsHow It WorksPrimary Failure Mode
apply_patchOpenAI CodexLLM outputs a unified diff string following strict structural formatting rules.Gateway Bias: Non-Codex models (Grok, GLM) fail patch formatting on 46–51% of turns.
str_replaceClaude Code, Gemini CLILLM outputs the exact old text chunk and the new text chunk.Whitespace Drift: A single missed space or indentation error triggers “String not found” failures.
Dedicated ModelCursor (Instant Apply)A fine-tuned 70B neural network inspects draft edits and merges them into the file.High Compute Overhead: Heavy latency; Cursor notes full-file rewrites outperform diffs <400 lines.
Hashline ([PATH#TAG])Oh My Pi (omp.sh)Every line is returned with a 2–4 char content hash. The LLM edits by referencing line tags.Stale View (Safe): If the file changed, tag mismatch triggers fast rejection before corruption.

Why Naive Edit Tools Break in Practice

  1. The Exact-Recall Trap (str_replace): To replace 5 lines of code, the model must reproduce every single character, indentation space, and newline perfectly. In large files, minor whitespace drift causes the dreaded “String to replace not found in file” error (Claude Code Issue #3471 + 27 related issues).
  2. Proprietary Gateway Bias (apply_patch): OpenAI trains its models with gateway-level token sampling constraints that force adherence to their diff schema. When you feed that same format to Grok 4 or GLM-4.7, patch failure rates hit 50.7% and 46.2%. The models understand the code; they simply fail to speak OpenAI’s proprietary diff dialect.
  3. Academic Confirmation: The JetBrains Diff-XYZ benchmark confirmed systematically that no single edit format dominates across models. EDIT-Bench found that only one model achieves over 60% pass@1 on realistic editing tasks.

4 Built-In Features That Make omp.sh Different

flowchart TD
    subgraph HardeningPillars ["Oh My Pi Hardening Architecture"]
        F1["1. Deterministic Hashline Patching<br>Line-level checksums + OCC rejection"]
        F2["2. Native AST-Grep Staging<br>In-memory syntax tree refactoring"]
        F3["3. Visual Snapcompact<br>1-bit bitmap PNG transcript compaction"]
        F4["4. Supervised Agent Hub<br>CoW sandboxes + peer IRC messaging"]
    end

1. Deterministic Hashline Patching ([PATH#TAG])

Rather than forcing the model to reproduce verbatim code or guess shifting line numbers, Oh My Pi tags every read file view with a 4-hex checksum fingerprint:

[src/auth/session.ts#4F1A]
1:export interface SessionConfig {
2:    ttlMs: number;
3:    jwtSecret: string;
4:}
5:
6:export function createSession(config: SessionConfig) {
7:    return new SessionStore(config);
8:}

When modifying code, the agent targets the snapshot tag using syntactic block operators:

[src/auth/session.ts#4F1A]
PUT 6*:
+export function createSession(config: SessionConfig, logger?: Logger) {
+    if (logger) logger.info("Initializing session store");
+    return new SessionStore(config);
+}
  • PUT N*: replaces the entire AST node (function, class, interface) starting on line N, resolved automatically by Tree-sitter.
  • Optimistic Concurrency Control (OCC): If another process or subagent modifies session.ts, the file tag changes (for example, to #9B2E). When the agent submits an edit against #4F1A, the engine instantly rejects the patch, stopping silent code collisions before disk writes occur.
sequenceDiagram
    autonumber
    actor LLM as Coding Agent
    participant Harness as Oh My Pi Harness
    participant FS as Local Filesystem

    LLM->>Harness: Read src/auth/session.ts
    Harness-->>LLM: Returns content with fingerprint [session.ts#4F1A]
    Note over LLM,FS: Background process updates session.ts (tag becomes #9B2E)
    LLM->>Harness: PUT 6*: [session.ts#4F1A] (New implementation)
    Harness->>Harness: Verify current tag (#9B2E) == Request tag (#4F1A)
    Harness-->>LLM: ERROR: Tag mismatch. File modified since last read. Re-read required.
    Note over LLM,FS: Code corruption prevented! Agent re-reads fresh state and succeeds.

The React Edit Benchmark Results

To measure the impact of edit tool design in the real world, Can Bölük ran the React Edit Benchmark: 16 models × 3 runs × 180 tasks from the React codebase (8,640 total sessions) comparing apply_patch, str_replace, and hashline:

ModelPatch Pass RateHashline Pass RateNet ImprovementOutput Token Reduction
Grok Code Fast 16.7%68.3%+61.6 pp (10× jump)-52%
GPT-5.1 Codex Mini60.0%77.5%+17.5 pp-24%
Gemini 3.7 Flash73.3%78.3%+5.0 pp-18%
MiniMax 2.522.2%48.9%+26.7 pp (2.2× jump)-38%
Grok 4 Fast31.1%62.8%+31.7 pp-61% (Retry loops eliminated)

Key Takeaways from the Data:

  1. Hashline beat patch in 14 out of 16 models, and Hashline v2 improved scores further in 12 of 16 models.
  2. Weaker models gained the most: Grok Code Fast 1 jumped from 6.7% to 68.3% because its actual coding capability was previously masked behind mechanical edit failures.
  3. Massive Token Reductions: Grok 4 Fast output tokens dropped by 61% because the agent stopped burning context in endless “patch failed, re-reading file” retry loops.
  4. Zero Compute Cost: Gemini 3.7 Flash gained +5.0 to +8.0 pp over Google’s best attempt, achieved with zero model retraining and ~$300 in benchmark API spend.

2. Native AST-Grep Staging (ast_edit)

For multi-file refactoring, regex search-and-replace is notoriously dangerous. Oh My Pi includes native structural AST transformations via ast_edit:

sequenceDiagram
    autonumber
    actor Agent as Coding Agent
    participant Rust as Rust AST Engine (ast-grep)
    participant Staging as Memory Staging Buffer
    participant FS as Local Filesystem

    Agent->>Rust: Send AST Pattern (e.g. async function $F($$$ARGS))
    Rust->>Rust: Parse CST & Match Structural Nodes
    Rust->>Staging: Stage Proposed Diff
    Staging-->>Agent: Preview Structured Diff [PATH#TAG]
    alt Apply Verified Edit
        Agent->>FS: write xd://resolve
        FS-->>Agent: Atomic Disk Commit Applied
    else Discard
        Agent->>Staging: write xd://reject
        Staging-->>Agent: Staging Buffer Discarded
    end

AST edits match syntax nodes rather than whitespace or characters. As a result, comments, formatting, and adjacent methods remain intact.


3. Visual Context Compaction (Snapcompact & Shake)

When a coding session runs for hours, managing token usage is critical. Oh My Pi uses a multi-tier compaction pipeline:

  1. Shake (Log Elision): Large compiler logs and test runs are intercepted upon arrival. Head and tail lines stay in context, while the full stream is written to session storage: artifact://12. If needed, the agent retrieves slices on demand via read(path="artifact://12:500-550").
  2. Snapcompact (Visual Compression): For vision-capable models (Composer 2.5 Fast, Gemini 3.7 Flash, GPT-5), older turns render into 1-bit monochrome PNG bitmaps using custom pixel fonts (11on16-bw). The multimodal model reads past context directly from the image, cutting active token count while preserving OCR recall.

4. The Agent Hub & Isolated Swarms

To parallelize work without risking your working directory, Oh My Pi provides the Agent Hub:

flowchart TB
    Main["Coordinator Agent<br><code>task(tasks=[{AuthMigrator}, {DbAuditor}])</code>"]

    subgraph Swarms ["Supervised Subagent Fleet"]
        Auth["Subagent: AuthMigrator<br>(Role: task)"]
        Db["Subagent: DbAuditor<br>(Role: scout)"]
    end

    subgraph Sandboxes ["Platform Abstraction Layer (PAL)"]
        S1["APFS Copy-on-Write Clone #1"]
        S2["OverlayFS Mount #2"]
    end

    Main --> Swarms
    Auth --> S1
    Db --> S2
    Auth <-->|Peer-to-Peer IRC Messaging| Db
  • Workspace Virtualization: Uses APFS copy-on-write clones on macOS and OverlayFS mounts on Linux. Each subagent gets an isolated sandbox in <10ms.
  • Peer-to-Peer IRC: Subagents communicate directly over structured messages (hub(op="send", to="DbAuditor")) without bloating the main conversation transcript.
  • TUI Dashboard: Pressing Alt+A opens the live Agent Hub HUD to monitor subagent progress, inspect logs, and manage background dev servers.

Vendor Walled Gardens vs The Open Harness Moat

In early 2026, Anthropic blocked OpenCode from accessing Claude via user subscriptions. Around the same time, Google banned benchmark developer accounts testing Gemini models through third-party open harnesses.

These actions signal an aggressive push toward vendor-locked developer tools: “Don’t build harnesses. Use ours.”

flowchart LR
    subgraph WalledGardens ["Proprietary Single-Vendor CLIs"]
        Anthropic["Claude Code<br>(Anthropic only)"]
        OpenAI["Codex CLI<br>(OpenAI only)"]
        Google["Gemini Code<br>(Google only)"]
    end

    subgraph OpenBridge ["The Open Harness Moat (omp.sh)"]
        OMP["Oh My Pi Harness<br><b>Neutral Cross-Model Bridge</b>"]
    end

    WalledGardens -.->|Will never optimize for competitors| OMP
    OMP --> SharedRD["Shared Ecosystem R&D<br>Tuned for all models simultaneously"]

Why Closed Harnesses Limit Developer Velocity

  1. No Vendor Optimizes for Competitors: Anthropic will never tune Claude Code’s edit schemas for Grok. OpenAI will never optimize its patch tooling for Claude. xAI will never tune for Gemini.
  2. Open Harnesses Provide Free Ecosystem R&D: When an open-source harness tunes an edit tool (like Hashline) and lifts Gemini Flash by +8% or Grok by 10×, it provides free optimization for the model creators.
  3. The Harness as the Bridge: As Can Bölük noted: “The model is the moat. The harness is the bridge. Burning bridges just means fewer people bother to cross.”

By keeping the harness open, modular, and model-agnostic, omp ensures developers are never held hostage by any single vendor’s CLI limitations.


How Model Roles Work: Decoupling Architecture from Endpoints

One of the cleanest design choices in Oh My Pi is its Model Roles system (omp.sh/docs/roles).

Most coding agents force you to either hardcode model strings (like cursor/composer-2.5-fast) across all configurations, or lock you into a single vendor. Oh My Pi decouples the functional role a model plays from the concrete provider endpoint serving it.

flowchart LR
    UserPrompt["Agent Workflow Step"] --> Roles

    subgraph Roles ["Logical Model Roles"]
        Default["@default<br>Primary coding & edits"]
        Slow["@slow<br>Complex reasoning & architecture"]
        Smol["@smol<br>Fast scouting & log processing"]
        Tiny["@tiny<br>Session titles & memory indexing"]
        Reviewer["@reviewer<br>Adversarial security audit"]
    end

    subgraph Providers ["Configured Provider Endpoints"]
        Composer["Composer 2.5 Fast"]
        Opus["Claude Opus 5 High:high"]
        Gemini["Gemini 3.7 Flash:minimal"]
        Local["Local Llama / Ollama"]
        GPT["GPT-5.6 Sol"]
    end

    Default --> Composer
    Slow --> Opus
    Smol --> Gemini
    Tiny --> Local
    Reviewer --> GPT

The Standard Role Roster

RolePurposeInvocation / CLI FlagRecommended Mapping
defaultMain conversational loop, standard code edits, and tool responses.Primary CLI workhorsecursor/composer-2.5-fast
slowArchitectural planning, deep refactoring, and complex root-cause synthesis.--slow or --model slowanthropic/claude-opus-5-high or openai/o3
smolFast directory sweeps, git archaeology, and Snapcompact vision OCR.--smol and subagent scoutsgoogle/gemini-3-7-flash or anthropic/claude-3-5-haiku
tinyZero-latency local tasks: session titles, memory indexing, stop detection.Built-in background loopsLocal quantized model or gemini-flash
planStructural blueprint generation in read-only plan mode.--plananthropic/claude-opus-5-high
reviewerAdversarial critic, auth review, and acceptance validation.Subagent reviewer personaopenai/gpt-5.6-sol
advisorPassive watchdog daemon providing turn-by-turn verification notes.Background watchdog runtime@smol or @default

Key Economic Optimizations

  1. Role Aliases & Thinking Modifiers: You can chain aliases and pin thinking effort levels directly to a role in config.yml (e.g. slow: "anthropic/claude-opus-5-high:high" or smol: "google/gemini-3-7-flash:minimal").
  2. Prewalk Cost Handoff (--prewalk): When you run --prewalk, omp begins the session using @slow or @plan to generate a high-level architecture and task breakdown. The moment the first code edit or file write begins, the engine automatically steps down into @smol (--prewalk-into), saving up to 70–80% on inference bills during mechanical implementation.
  3. Context Promotion Chains: If a small-context model hits a length limit, omp can automatically promote the active turn to a larger sibling model (e.g. codex-sparkgpt-5.5) before falling back to compaction.

Production Use Case: Pareto-Tiered Roles in CI/CD Swarms

In our earlier breakdown of building ultra-fast agent platforms on Kubernetes with ArgoCD and Ante, we analyzed the 2026 Speed-vs-Quality Pareto Frontier. The core finding was clear: assigning every agent task to a heavy frontier model causes severe latency bottlenecks and 5–10× cost overruns.

Oh My Pi’s role system allows you to configure an optimal multi-provider Pareto pipeline in config.yml:

flowchart TD
    Webhook[Git Push / Jira Webhook] --> Pod[Ephemeral Kubernetes KEDA Job]
    
    subgraph SwarmPipeline ["Oh My Pi Pareto Execution Pipeline"]
        Scout["1. Fast Triage & Archaeology<br><b>@smol (Gemini 3.7 Flash @ 362 tok/s)</b><br>Runs git log, directory sweeps & log parsing"]
        Plan["2. Architectural Decomposition<br><b>@slow (Claude Opus 5 High:max)</b><br>Emits test contract & plan with --prewalk"]
        Exec["3. Deterministic Implementation<br><b>@default (Composer 2.5 Fast)</b><br>Applies Hashline [PATH#TAG] edits in APFS sandbox"]
        Review["4. Orthogonal Security Gate<br><b>@reviewer (GPT-5.6 Sol)</b><br>Adversarial review to eliminate single-model cognitive blind spots"]
    end

    Pod --> Scout
    Scout --> Plan
    Plan --> Exec
    Exec --> Review
    Review --> PR[Green PR Opened with Verified CI Tests]
  1. High-Throughput Exploration (@smol → Gemini 3.7 Flash): Generating output at 362 tok/s, Gemini Flash performs broad codebase sweeps, test log triage, and Snapcompact OCR in seconds without burning expensive tokens.
  2. Deep Architectural Synthesis (@slow → Claude Opus 5): Reserved for plan mode (--plan), root-cause analysis, and defining failing test specifications.
  3. Surgical Implementation (@default → Composer 2.5 Fast): The primary coding loop that writes code against the snapshot-anchored hashline contract.
  4. Orthogonal Adversarial Review (@reviewer → GPT-5.6 Sol): When an executor model reviews its own output, it shares the same cognitive blind spots. Routing final PR validation to an independent model family (OpenAI GPT-5.6) catches edge-case logic bugs before code merges.

How omp.sh Compares to the Competition

DimensionOh My Pi (omp.sh)OpenCodeClaude CodeCursor AgentPi.dev (Minimal Core)
Runtime CoreBun + Rust N-API (@oh-my-pi/pi-natives)TypeScript / Node.jsNode.js CLIElectron / C++ CoreNode.js (pi-mono)
Code ModificationHashline Tags ([PATH#TAG]) + AST-GrepUnified Diffs (diff -u)Exact Line Range / str_replaceInstant Apply (70B Model)Line Range / Whole File
Edit Failure HandlingOCC Tag Verification (Zero Whitespace Recall)Patch Re-try Loops”String Not Found” ErrorsNeural Merge DriftTruncation / Overwrite
Context StrategySnapcompact (Visual PNG) + ShakeText SummarizationDynamic TruncationVector Sliding WindowManual /compact Summary
Subagent ModelBounded Swarms with PAL SandboxesSub-processesNative Sub-agentsCloud Background AgentsSingle-threaded CLI
Model FreedomUniversal (Anthropic, OpenAI, Google)Universal (15+ Providers)Anthropic Lock-inMulti-Model (Hosted)Universal (pi-ai)
Daemon SupervisionBuilt-in hub start/logs with checksShell backgrounding (&)Approval-gated ShellVS Code TasksBare bash tool
Long-Term MemoryMnemopi (4-Voice RRF over SQLite)Local vector cacheProvider Memory StoreShadow WorkspaceNone (Stateless)

A 2-Minute Quickstart: Configuration and Multi-Model Routing

Configure your model tiers in ~/.omp/agent/config.yml:

# ~/.omp/agent/config.yml
models:
  default: "cursor/composer-2.5-fast"
  slow: "anthropic/claude-opus-5-high"    # Architectural planning
  smol: "google/gemini-3-7-flash"         # Fast scouting & Snapcompact
  reviewer: "openai/gpt-5.6-sol"          # Adversarial code review

task:
  batch: true
  maxConcurrency: 8
  isolation:
    mode: "auto" # APFS on macOS, OverlayFS on Linux

compaction:
  enabled: true
  methodOrder: ["remote", "snapcompact", "handoff", "shake", "soft"]
  asyncEnabled: true

memory:
  backend: "mnemopi"

mnemopi:
  scoping: "per-project"
  autoRecall: true
  autoRetain: true

Launch a refactoring task from your terminal:

omp "Refactor user authentication to support Passkeys/WebAuthn and update DB schema"

Inside the session, omp provisions an APFS copy-on-write sandbox, loads project memory, dispatches background scouts on Gemini Flash, and applies verified AST patches with Opus.


When to Choose Oh My Pi

flowchart TD
    Start{What is your primary development workflow?}
    Start -- "IDE / GUI Pair Programming" --> Cursor[Choose Cursor Agent]
    Start -- "Anthropic-Only Terminal Coding" --> Claude[Choose Claude Code]
    Start -- "Multi-Model Hardened Monorepo CLI" --> Omp[Choose Oh My Pi<br><b>omp.sh</b>]
    Start -- "Build Custom Agent from Scratch" --> Pi[Choose Pi.dev]

Choose Oh My Pi (omp.sh) When:

  • You work on large brownfield monorepos where str_replace whitespace drift or fuzzy patch matching causes silent code breakages.
  • You want multi-model routing without locking yourself into a single AI provider’s CLI walled garden.
  • You run long autonomous tasks that need visual context compaction (Snapcompact) that preserves accuracy without ballooning token costs.
  • You want supervised subagent swarms that execute concurrently in isolated, copy-on-write sandboxes.

Sources

  1. The Harness Problem: Can Bölük, We Improved 15 LLMs at Coding in One Afternoon. Only the Harness Changed, stencil.so/blog/the-harness-problem (2026).
  2. React Edit Benchmark: Stencil & Oh My Pi Team, React Codebase Multi-Model Edit Benchmark Harness, github.com/can1357/oh-my-pi (2026).
  3. Diff-XYZ Benchmark: JetBrains Research, Diff-XYZ: A Systematic Benchmark of Code Modification Formats for Large Language Models, arXiv:2510.12487 (2025).
  4. EDIT-Bench: Microsoft Research & UIUC, EDIT-Bench: Evaluating LLMs on Multi-File Realistic Software Engineering Tasks, arXiv:2511.04486 (2025).
  5. Aider Leaderboard & Edit Format Benchmarks: Paul Gauthier, Aider LLM Code Editing Benchmarks and Format Evaluations, aider.chat/docs/benchmarks.html (2024–2026).
  6. Cursor Instant Apply: Cursor Engineering, Instant Apply: Training a 70B Model for Code Merging, cursor.com/blog/instant-apply (2025).
  7. Oh My Pi Architecture Reference: Oh My Pi Team, Oh My Pi (omp.sh) Architecture Reference and Tool Specifications, omp.sh (2026).
  8. Pi Minimal Harness: Mario Zechner, pi-mono: A Minimal Terminal Coding Agent Harness, github.com/badlogic/pi-mono (2025–2026).
  9. AST-Grep Tooling: Herrington Darkholme, ast-grep: Fast Polyglot Code Structural Search and Replace, ast-grep.github.io (2025).
  10. Tree-sitter Incremental Parser: Max Brunsfeld et al., Tree-sitter Parser System, tree-sitter.github.io (2025).
  11. Anthropic Claude Code: Anthropic Engineering, Claude Code CLI Architecture, docs.anthropic.com (2026).
  12. OpenCode Terminal Agent: OpenCode Team, OpenCode Agentic CLI Repository, github.com/opencode-ai/opencode (2026).
  13. Reciprocal Rank Fusion: Cormack, Clarke, and Buettcher, Reciprocal Rank Fusion in Information Retrieval, SIGIR (2009).