The most capable agent surface that ships. Continuously tuned by real-world use — complete out of the box, open all the way down. Hash-anchored edits, optimized tool harness, LSP, Python, browser, subagents, and more.
oh my pi is a fork of Pi by Mario Zechner, rewritten as a coding-first surface: sessions, subagents, slash commands, extensions — all TypeScript, all MIT, all on GitHub.
Perfect edits with fewer tokens. The model points at content-hash anchors instead of retyping lines. Stale patches are rejected before they corrupt anything.
32 built-in tools in a unified namespace. Each tool is benchmaxxed for real-world use — reads that summarize, searches that return instantly, edits that land first try.
Everything your IDE knows, the agent knows. Renames update re-exports, barrel files, and aliased imports before the file moves. Diagnostics, navigation, symbols, code actions.
Run Python or Bun persistently. Either kernel can call back into the agent's own tools — read, search, task — over a loopback bridge.
Drives a real browser with stealth mode by default. Same API works for any Electron app — point it at Slack and the agent reads your DMs like it reads the web.
Fan out work across isolated workers. Each runs its own tool surface and yields schema-validated results. No prose to parse, no merge conflicts between siblings.
From prompt to edit to result — omp keeps every turn fast, inspectable, and reversible.
The agent reads your workspace, rules, and open files. Built-in discovery inherits what Cursor, Claude, Copilot, and other tools already wrote in their native formats — no migration needed.
The model points at content-hash anchors instead of retyping lines. Whitespace battles and string-not-found loops stop happening. Stale anchors are rejected before they corrupt work.
Structural rewrites preview as proposed cards. The agent calls resolve with a reason and the change lands atomically — all or nothing, every time.
Built-in code review with ranked priorities (P0–P3). Conflicts resolve via simple URL commands. Background jobs and subagents keep the main thread moving.
Most harnesses automate execution. omp automates the cycle of understanding, editing, verifying, and iterating.
Content-hash anchoring eliminates whitespace battles. Grok 4 Fast spends 61% fewer output tokens on the same work. Edits land first try or get rejected cleanly.
ripgrep, glob, find, shell — all in-process on the libuv pool. No fork/exec on the hot path. The same binary runs on macOS, Linux, and Windows without WSL.
The agent writes facts mid-run, pulls them back on demand, and compresses each session into a mental model. Project-scoped by default — what it learns stays with your repo.
Roles route work by intent. Fallback chains handle rate limits. Round-robin credentials rotate API keys. One interface to teach the model, one surface to keep correct.
Rules sit dormant until the model goes off-script. A regex match aborts mid-token, injects the rule as a system reminder, and retries from the same point. No context tax.
PRs, issues, agents, skills — all resolve inside every FS-shaped tool. read pr://1428 returns the same shape as read src/foo.ts. No bolt-on API calls to learn.
Every tool lives in the same surface. Pin the active set, or let discovery pull tools back in mid-session.
oh my pi starts where other agents stop. Most coding assistants give you a sandboxed
Python environment and call it done. omp gives you persistent Python and JavaScript
kernels that can call back into the agent's own tools — read, search, task —
over a loopback bridge. The agent loads a CSV with read from inside Python,
charts it from JavaScript, and never leaves the cell.
Hashline: Edits that land on the first attempt. The model references content-hash anchors instead of retyping the lines it wants to change, so whitespace battles and string-not-found loops disappear. Edit a stale file and the anchors diverge — the patch is rejected before it corrupts anything.
Language Server Protocol is wired into every write. Ask for a rename and the call goes
through workspace/willRenameFiles. Re-exports, barrel files, and aliased
imports update before the file moves. Everything your IDE knows, the agent knows.
The debugger drives lldb, dlv, and debugpy natively. A C binary segfaults: the agent attaches lldb, steps to the bad pointer, reads the frame. A Go service hangs: it attaches dlv and walks the goroutines. Most agents are still sprinkling print statements.
Native performance: ripgrep, glob, find — all in-process on the libuv pool. No fork/exec on the hot path. The same binary runs on macOS, Linux, and Windows without WSL. Roughly 27,000 lines of Rust doing the work other harnesses shell out for.
Four entry points: interactive TUI, one-shot prompt, Node SDK, and RPC over stdio. The same engine, four wrappers. Use the TUI for everyday work, the SDK to embed in your own tools, RPC for non-Node hosts, and ACP to speak to editors.
oh my pi inherits what your other tools already wrote. Cursor MDC, Cline .clinerules, Codex AGENTS.md, Copilot applyTo — no migration script, no YAML-to-TOML port, no "supported subset" footnotes. The config your team wrote last quarter works tonight.
Install omp and start coding. macOS, Linux, Windows — one line each.
macOS and Linux:
Windows (PowerShell):
Add to ~/.zshrc:
Run omp in your project directory. The agent automatically discovers your existing rules, skills, and MCP servers. No configuration needed.
Start here if you want to know what omp is, who built it, and what you need to run it.
read and bash.Every claim on this page is based on the repository README, documentation, and linked discussion.