Oh My Pi (omp) โ the Rust-Powered Fork
Lesson 9: Oh My Pi (omp) โ the Rust-Powered Fork
Oh My Pi (omp, omp.sh) is a fork of pi by can1357 that keeps the pi experience and adds an IDE's worth of machinery: a native Rust engine (~80k lines) doing the heavy lifting, with the tooling layer in TypeScript/Bun. Its tagline is "a coding agent with the IDE wired in" โ subagents, plan mode, LSP, DAP, hindsight memory, hashline edits, and time-traveling rules.
Installing omp
# macOS / Linux
curl -fsSL https://omp.sh/install | sh
# Homebrew
brew install can1357/tap/omp
# Bun
bun install -g @oh-my-pi/pi-coding-agent
# Nix (run without installing)
nix run github:can1357/oh-my-pi
# Windows
irm https://omp.sh/install.ps1 | iex
The feature tour (highlights)
| Feature | What it does |
|---|---|
| Hashline edits | Patch by content-hash anchors instead of retyping lines โ stale anchors get rejected before they corrupt. omp claims Grok 4 Fast spends 61% fewer output tokens on the same work. |
| Eval kernels | Persistent Python and Bun cells that can call back into the agent's own tools (read, search, task) over a loopback bridge. |
| LSP wired into writes | Renames go through workspace/willRenameFiles; references, symbols, diagnostics, code actions โ the agent knows what the IDE knows. |
| DAP debugging | Drives real debuggers (lldb, dlv, debugpy): breakpoints, stepping, threads, variables. |
| Subagents (task) | Fan out into isolated worktrees; each worker has its own tool surface; results return as schema-validated objects. Agent Hub (Alt+A) supervises the roster. |
| Advisor role | A second model reads every turn on its own context and injects notes โ quiet asides, concerns, or blockers. |
| Time-traveling stream rules | Rules stay dormant until a regex match aborts the stream mid-token, injects the rule, and retries from the same point โ course correction without paying context tax every turn. Injections survive compaction. |
| Memory | retain, learn, recall with pluggable backends (local, Hindsight, Mnemopi), project-scoped by default. |
| /collab | Live session sharing via relay link + QR; omp join from another terminal, or a read-only browser view. |
| web_search | One tool across 23 chained providers with site-aware extraction (arXiv PDFs, GitHub, Stack Overflow โ structured markdown). |
| GitHub as a filesystem | read pr://1428, issue://, agent://, ssh:// โ internal schemes resolve inside every FS-shaped tool. |
| Native everything | ripgrep, glob, find in-process; brush shell with 58 built-in utilities โ no fork/exec per call, works on Windows without WSL. |
| Rules import | Reads Cursor MDC, Cline .clinerules, Codex AGENTS.md, and Copilot applyTo natively โ no migration. |
| omp commit & /review | Atomic commit splitting with dependency ordering; parallel reviewer subagents returning P0โP3 ranked verdicts. |
| Browser & computer | Headless Chromium with Stealth, a relay to adopt your own Chrome tabs, and desktop control (windows, screenshots, input, accessibility tree). |
Model roles โ routing by intent
omp assigns a role to each kind of work: default (normal turns), smol (cheap subagent fan-out), slow (deep reasoning), plan (plan mode), commit (changelogs), plus vision, designer, task, advisor, and tiny. Override at launch with --smol, --slow, --plan; cycle role models with Ctrl+P; swap mid-session with /model. Custom providers go in ~/.omp/agent/models.yml (nine API dialects, from openai-completions to bedrock-converse-stream), with per-role fallback chains, path-scoped model sets, and round-robin API keys.
smol/tiny roles route subagent traffic to the cheapest models while slow reserves the big reasoning model for the hard parts. The flip side: 31 declared tools is a bigger system prompt than pi's four โ pin the active set with --tools read,edit,bash,โฆ when you want the leaner surface.
- Stop Using Claude Code CLI. Use THIS Instead! (Oh-My-Pi) โ Better Stack โ omp vs Claude Code with real workflows.
- This Free Terminal Agent Made Me Delete Claude Code (Oh-My-Pi Full Test) โ AI Stack Engineer โ a full-test walkthrough.
Further Reading
- omp.sh โ home
- oh-my-pi on GitHub
- Full tool reference
- "The Harness Problem" โ omp's benchmark post
๐ง Knowledge Check
1. What is Oh My Pi (omp) relative to pi?
2. What makes hashline edits token-efficient?
3. What is the purpose of omp's "advisor" model role?