Citation and evidence

Oh My Pi

11 min full readUpdated 14 references

This article's verification

Report a problem with this article

More

Use this article

Raw MarkdownExplore connections

Improve this page

Suggest editRevision historyDiscussion

Browse categories

AI AgentsAI Code GenerationDeveloper ToolsOpen Source AI

Cite this article

FieldValue
TypeCoding agent and agent harness
Original authorCan Bölük
Based onPi by Mario Zechner
Repository createdDecember 31, 2025
First npm releaseJanuary 2, 2026 (v1.337.0)
Latest releasev18.2.11 (September 23, 2026)
Written inTypeScript (Bun runtime) with a Rust native core
PlatformsmacOS, Linux, Windows
LicenseMIT
Repositorygithub.com/can1357/oh-my-pi
Websiteomp.sh

Expanded article table

Oh My Pi (command name and common abbreviation omp) is an open-source terminal coding agent created by Can Bölük, who describes himself as a security researcher and reverse engineer [14], as a fork of Mario Zechner's minimalist Pi agent [1][2][3]. Where Pi ships four tools and leaves everything else to user extensions [7], Oh My Pi takes the opposite approach and bundles a large built-in toolset: language-server integration, a debugger driver, subagents, a browser, persistent Python and JavaScript kernels, and a content-hash edit format called hashline, backed by roughly 80,000 lines of Rust [1][4]. The project describes itself as "a coding agent with the IDE wired in" [1]. It is MIT licensed and had 32,870 GitHub stars and 3,472 forks as of September 23, 2026 [2].

History

Bölük created the can1357/oh-my-pi repository on December 31, 2025 [2]. It is not a GitHub network fork of Pi's repository, but its README calls it a "fork of Pi by @mariozechner" and says it was "originally built on" Pi before being "rewritten as a coding-first surface" [1][2]. The first package, @oh-my-pi/pi-coding-agent version 1.337.0, was published to npm on January 2, 2026; that first release still carried Zechner's name in its package author field [3]. The license file keeps copyright notices for Mario Zechner (2025) alongside Can Bölük (2025-2026) and Stencil Labs, Inc. (2026), and the npm package now lists Stencil Labs, Inc. as its author [1][3]. Bölük's own posts about the project are published on his blog under the Stencil name [4].

The project drew wider attention on February 12, 2026, when Bölük published "We improved 15 LLMs at coding in one afternoon. Only the harness changed," a benchmark write-up about Oh My Pi's edit tool (described below) [4]. The post reached 832 points on Hacker News [5]. A Hacker News submission of the omp.sh site in July 2026 drew a further 42 points [6].

Development has been unusually fast. By September 23, 2026 the coding-agent package had 638 published versions, and its major version number had gone from 1 to 18 in under nine months: version 10.0.0 appeared on February 1, 2026, version 15.0.0 on May 13, and version 18.0.0 on August 22 [3]. For part of its life the project accepted pull requests only from vouched contributors; as of September 2026 its README says pull requests are "temporarily open to everyone as a trial" and that the vouch requirement may return [1].

Relationship to Pi

Oh My Pi keeps Pi's package layout, with its own versions of the pi-ai multi-provider client, the pi-agent-core runtime, the pi-tui terminal library and the pi-coding-agent CLI, and adds further packages such as a model catalog, a native addon, a local memory engine and a benchmark runner [1]. Its philosophy section states that it keeps a terminal-first interface but includes "practical built-ins (tools, sessions, branching, subagents, extensibility)" and makes "advanced behavior configurable rather than hidden" [1]. That reverses several of Pi's founding choices. In his November 2025 design post, Zechner listed "No MCP support", "No background bash" and "No sub-agents" among Pi's deliberate omissions and gave the model only read, write, edit and bash by default [7].

AspectPi (as designed by Zechner)Oh My Pi
Default toolsFour (read, write, edit, bash) [7]README advertises 31 built-in tools, some gated behind settings [1]
Edit formatExact-text replacement [7]Hashline content-hash anchors [1][4]
Sub-agentsNone [7]task tool fans out subagents into isolated worktrees [1]
MCPNot supported [7]Imports MCP servers already configured for other agents [1]
ImplementationTypeScript [7]TypeScript on Bun plus about 80,000 lines of Rust [1]

Expanded article table

Oh My Pi can install packages from Pi's package catalog through an omp plugin install command [8].

Hashline and the "harness problem"

Hashline is Oh My Pi's edit format. When the model reads or searches a file, every returned line is tagged with a two- or three-character hash of its content; to edit, the model refers to those tags (for example "replace line 2:f1") rather than reproducing the old text. If the file has changed since it was read, the hashes no longer match and the edit is rejected before anything is written [4]. Bölük's argument was that the two common alternatives both depend on the model reproducing text exactly: OpenAI Codex's apply_patch expects a strict diff format that other models often break (he measured patch failure rates of 50.7% for Grok 4 and 46.2% for GLM-4.7), while the str_replace approach used by Claude Code and most other agents fails whenever whitespace or indentation is not reproduced character for character [4].

His benchmark took random files from the React codebase, introduced mechanical bugs such as operator swaps, boolean flips and removed guard clauses, and asked each model to fix them from a plain-English description, with 180 tasks per run, three runs, and a fresh agent session each time; he put the benchmarking cost at about $300 [4]. The published results cover 16 models and three edit formats (patch, replace, hashline) [4]:

FindingReported result
Hashline versus patchHashline beat patch for 14 of 16 models [4]
Grok Code Fast 1Rose from 6.7% to 68.3%, a tenfold improvement [4]
MiniMaxPass rate more than doubled [4]
Grok 4 FastOutput tokens fell 61% as retry loops disappeared [4]
Hashline v2 revisionImproved further for 12 of 16 models; largest gain GPT-5.1 Codex Mini, 60.0% to 77.5% [4]

Expanded article table

The measurements are the developer's own, on a single synthetic bug-fix task set. The post also argued that model vendors restricting third-party harnesses were acting against their own interests, since an open harness "tunes for all of them" [4].

Features

The README groups the built-in tools by purpose [1]:

GroupTools
Files and searchread (files, directories, archives, SQLite, PDFs, notebooks, URLs, ssh:// paths), write, edit (hashline), ast_edit and ast_grep (structural rewrites and queries via ast-grep over 50+ tree-sitter grammars), grep, glob
Runtimebash (workspace shell with in-process coreutils), eval (persistent Python and JavaScript cells that can call back into the agent's tools)
Code intelligencelsp (diagnostics, navigation, renames, code actions), debug (Debug Adapter Protocol sessions), security_scan
Coordinationtask (parallel subagents), hub, todo, ask
Desktop and webbrowser (Puppeteer over headless Chromium or the user's Chrome), computer (host windows, screenshots, input, accessibility tree), web_search, github, generate_image, tts
Memory and skillscheckpoint, rewind, retain, recall, reflect, memory_edit, learn, manage_skill

Expanded article table

Several of these, including github, security_scan, generate_image, tts and the memory tools, are off by default [1]. The debugger integration attaches lldb, dlv (Go) or debugpy (Python) to a running process so the agent can set breakpoints, step and read variables instead of adding print statements [1][8]. Other features described in the README include "time-traveling stream rules", which abort a response mid-stream when a user-defined regex matches, inject the rule as a reminder and retry; an optional "advisor" role in which a second model reviews each turn and injects notes; a /collab command that shares a live session through a relay, with frames sealed on the client; a /review command that spawns reviewer subagents and ranks issues P0 to P3; and an omp commit command that splits working-tree changes into ordered atomic commits [1]. On first run the agent reads rules, skills and MCP server definitions already written for other tools, including .claude, .cursor, .codex, .gemini, .cline and .github/copilot directories [1].

Models and providers

Oh My Pi routes work through nine model roles: default, smol (cheap subagent fan-out), slow (deep reasoning), plan, commit, vision, task, advisor and tiny. The README lists more than 60 providers, covering direct APIs such as Anthropic, OpenAI, Google Gemini and Vertex, xAI, DeepSeek, Mistral, Groq, Cerebras, Amazon Bedrock and Azure OpenAI; gateways such as OpenRouter and the Vercel and Cloudflare AI gateways; subscription coding plans including Cursor, GitHub Copilot, Kimi Code, MiniMax, Z.AI/GLM and Alibaba plans; and local servers such as Ollama, LM Studio, llama.cpp, vLLM and LiteLLM [1]. Custom OpenAI-compatible or Anthropic-compatible endpoints can be declared in a YAML file, with per-role fallback chains for rate limits, path-scoped model sets for individual repositories, and rotation across multiple API keys [1]. A web_search tool chains up to 23 search backends [1].

Interfaces and architecture

The same engine runs as an interactive terminal UI, as a one-shot command (omp -p), as an embeddable Node/TypeScript SDK, over newline-delimited JSON RPC on stdio (omp --mode rpc), and as an Agent Client Protocol server (omp acp) for editors such as Zed, where file reads and writes go through the editor and destructive tools require a permission prompt [1]. Performance-sensitive work runs in Rust crates compiled into a single N-API addon: an embedded bash engine based on a vendored fork of brush-shell, with dozens of command-line utilities ported in-process so common commands avoid a fork and exec; a parallel filesystem walker; tree-sitter and ast-grep matching; workspace isolation using APFS, btrfs or ZFS clones and overlay filesystems; desktop control; and audio [1]. The native addon is built for Linux, macOS and Windows on x64 and ARM64 [1].

Adoption and reception

Two model and runtime vendors document Oh My Pi in their own materials. DeepSeek added an Oh My Pi integration guide to its awesome-deepseek-agent repository on April 29, 2026, and its API documentation carries a "Using DeepSeek with Oh My Pi" page with a full model configuration for DeepSeek V4 Pro and Flash. The guide warns that Oh My Pi's built-in DeepSeek V4 entries lacked three compatibility settings, so that long thinking-mode sessions with tool calls would fail with HTTP 400 errors unless users supplied a custom models.yml [9][10]. Ollama added documentation on June 8, 2026 for an ollama launch omp command that configures Ollama as the model provider, sets up web search and starts a session [11][12].

Better Stack's community guide (June 2026) singled out the pairing of language-server and debugger integration as the project's "most distinctive technical contribution" [8]. In a comparison published on September 1, 2026, Composio, a company that sells agent tooling, ran Oh My Pi against Pi and six other harnesses on 30 tasks routed through its own hosted MCP router, all using DeepSeek V4 Flash. In that test Pi passed 20 tasks and Oh My Pi 17, Oh My Pi's cost per successful task was $0.103 against Pi's $0.028, and its median task time of 272.4 seconds was the slowest of the eight harnesses, although it still placed second overall ahead of Claude Code, Codex and opencode on the same model [13]. Composio's summary was that Oh My Pi's tooling is useful but "costs you tokens, time, and money on every single task" [13].

See also

References

  1. ^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8 ^9 ^10 ^11 ^12 ^13 ^14 ^15 ^16 ^17 ^18 ^19 ^20 ^21 ^22 ^23 ^24can1357/oh-my-pi repository README and LICENSE. GitHub. Retrieved September 23, 2026. github.com/...oh-my-pi
  2. ^1 ^2 ^3 ^4can1357/oh-my-pi repository metadata (created December 31, 2025; MIT; TypeScript; not a GitHub network fork; 32,870 stars and 3,472 forks as of September 23, 2026). GitHub API. api.github.com/...oh-my-pi
  3. ^1 ^2 ^3 ^4@oh-my-pi/pi-coding-agent package metadata (first published January 2, 2026 as v1.337.0; 638 versions; v18.2.11 published September 23, 2026). npm registry. npmjs.com/...pi-coding-agent
  4. ^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8 ^9 ^10 ^11 ^12 ^13 ^14Can Bölük. "We improved 15 LLMs at coding in one afternoon. Only the harness changed." Stencil blog (blog.can.ac), February 12, 2026. blog.can.ac/...the-harness-problem
  5. ^"Improving 15 LLMs at Coding in One Afternoon. Only the Harness Changed" (832 points, February 12, 2026). Hacker News. news.ycombinator.com/item
  6. ^"Oh-my-pi: A coding agent with the IDE wired in" (42 points, July 21, 2026). Hacker News. news.ycombinator.com/item
  7. ^1 ^2 ^3 ^4 ^5 ^6 ^7Mario Zechner. "What I learned building an opinionated and minimal coding agent". mariozechner.at, November 30, 2025. mariozechner.at/...2025-11-30-pi-coding-agent
  8. ^1 ^2 ^3Stanley Ulili. "OMP (Oh My Pi): AI Coding Agent with LSP, DAP Debugger, and Hashline Edits". Better Stack Community, updated June 1, 2026. betterstack.com/...oh-my-pi-ai-coding-agent
  9. ^DeepSeek. "Using DeepSeek with Oh My Pi". DeepSeek API Docs. Retrieved September 23, 2026. api-docs.deepseek.com/...oh_my_pi
  10. ^DeepSeek. "docs/oh-my-pi.md" (added April 29, 2026). deepseek-ai/awesome-deepseek-agent, GitHub. github.com/...oh-my-pi.md
  11. ^Ollama. "Oh My Pi". Ollama documentation. docs.ollama.com/...oh-my-pi
  12. ^Ollama. "docs: omp (#16552)" (commit adding docs/integrations/oh-my-pi.mdx, June 8, 2026). ollama/ollama, GitHub. github.com/...oh-my-pi.mdx
  13. ^1 ^2Shrijal (Composio). "Pi vs OMP (Oh My Pi Agent): Everything You Need to Know". Composio, September 1, 2026. composio.dev/...pi-vs-omp
  14. ^Can Bölük (can1357). GitHub user profile. Retrieved September 23, 2026. github.com/can1357

Improve this article

Add missing citations, update stale details, or suggest a clearer explanation. Every suggestion is reviewed for sourcing before it goes live.

1 revision · v2 · 2,184 words · full history

Fact-checks are independent of edits: a reviewer re-verifies the article against its sources and stamps the date. How we verify

Research and drafting on this wiki are AI-assisted, under named human editorial standards. How AI is used here

Reviewer note: xg06 V7 independent verification; 1 minor fixed 2026-09-23

Cite this page: AI Wiki. "Oh My Pi." aiwiki.ai, updated 23 Sept 2026, fact-checked 23 Sept 2026. CC BY 4.0. https://aiwiki.ai/wiki/oh_my_pi

Suggest edit