Oh My Pi (omp): Model Roles, Advisor and Fallbacks

TL;DR
Oh My Pi (omp) is a batteries-included fork of the Pi coding agent. What it adds, how its model roles and fallback chains work, and where to be careful.
Oh My Pi, shortened to omp, is an open-source terminal coding agent that forks Mario Zechner's Pi and bolts on the things most people end up adding themselves: LSP on every write, a real debugger, subagents in isolated worktrees, a second "advisor" model, and per-role model routing with fallback chains. If you searched "oh my pi" because the name keeps showing up next to Claude Code and opencode, this is what the README actually claims, how the config works, and what to check before you swap it in.
What omp is#
The oh-my-pi repository describes it as "a coding agent with the IDE wired in", built by Stencil Labs as a fork of Pi. Its own stat line reads 60+ providers, 31 built-in tools, 14 LSP operations and 28 debugger operations, with roughly 80,000 lines of Rust in the core. Those are the project's numbers, not independent measurements. The repo was moving fast when I opened it on November 2: the latest commit was from the day before, and the listing showed 926 tags.
Install paths from the README: curl -fsSL https://omp.sh/install | sh on macOS and Linux, brew install can1357/tap/omp, or bun install -g @oh-my-pi/pi-coding-agent. The README says the install scripts check a SHA-256 for the prebuilt binary, and you can pin a release with --ref v<version>. Pin it. A tool that lets an agent run shell commands is worth installing from a known version.
If Pi itself is new to you, start with our Pi architecture deep dive and the Pi vs Claude Code vs opencode comparison. omp is easier to judge once you know what stock Pi leaves out on purpose.
What it adds on top of Pi#
The README lists these as the headline differences:
- LSP wired into writes. A rename goes through the language server's file-rename request so re-exports and aliased imports update before the file moves.
- A real debugger. The agent attaches lldb, dlv or debugpy rather than adding print statements.
- Subagents in isolated worktrees. Workers return a schema-validated object to the parent, and an Agent Hub (Alt+A) lets you read a live transcript or kill a stuck worker without aborting the session.
- Stream rules. A regex rule stays dormant until the model drifts, then the stream is aborted, the rule is injected as a reminder, and the turn retries.
- Hashline edits. The model points at content-hash anchors instead of retyping lines, and a stale anchor rejects the patch. The README reports Grok 4 Fast using 61% fewer output tokens and Grok Code Fast 1 going from 6.7% to 68.3% on its edit benchmark. Those are vendor-reported and come from the maintainer's own write-up, so treat them as a reason to test, not a result.
- Inherited config. On first run it reads rules, skills and MCP servers from
.claude,.cursor,.codex,.gemini,.clineand others in their native shape.
That last point matters if you already run Claude Code: your CLAUDE.md-style rules and skills carry over, which makes a side-by-side trial cheap. See our agent harness explainer for why the harness layer, not the model, decides how much of this you feel.
The part worth copying: model roles#
Most agents give you one model and a switch. omp routes by intent. The README names roles: default, smol, slow, plan, commit, vision, task, advisor and tiny. You set them in ~/.omp/agent/config.yml, and each role takes an optional thinking level. A hands-on write-up by DeepakNess shows a real config:
modelRoles:
default: deepseek/deepseek-v4-flash:max
plan: xai-oauth/grok-4.5:high
vision: xai-oauth/grok-4.5:medium
tiny: deepseek/deepseek-v4-flash:high
defaultThinkingLevel: max
His reasoning is the useful part: a cheap, fast model carries the everyday turns, a stronger one plans and handles images because the cheap one is text-only, and tiny jobs like titles never touch the expensive model. That is the same cost logic as sending exploration to a small model in Claude Code, which we covered in cheap subagents with visible work. For one concrete choice of cheap driver, see our DeepSeek 4.1 Flash daily-driver notes.
The README adds three routing controls: per-role or per-model fallback chains under retry.fallbackChains, path-scoped model sets so one repo can pin different models, and round-robin API keys with per-credential backoff. Custom providers go in ~/.omp/agent/models.yml; anything that speaks an OpenAI-compatible API works, and omp models <provider> verifies discovery.
Fallback chains in practice#
DeepakNess's config puts a free secondary model behind the default:
retry:
fallbackChains:
default:
- opencode-zen/nemotron-3-ultra-free
Per the README, when the primary returns 429s or hits a quota wall, the next entry takes the rest of the turn and the primary is restored after a cooldown. He reports long sessions surviving rate limits without intervention. That is a single-user report, but the mechanism is the one our rate limit and retry guide recommends building yourself: retry, then degrade to a second model, then return to the first.
The advisor#
The advisor role pairs a reviewer model that reads every turn the main agent takes and injects notes: an aside, a concern or a blocker. It runs in its own context. Compare this with Anthropic's version of the idea in Claude's advisor tool vs a bigger model. DeepakNess started with a strong model supervising a cheap driver, then turned it off to save cost; it is one toggle.
What a builder does Monday#
- Install a pinned version, run
omp setup, and let it import your existing.claudeor.cursorrules. - Set only two roles first:
defaultto a cheap model andplanto a stronger one. Resist configuring all nine. - Add one fallback chain to a different provider, then deliberately trigger a rate limit on a throwaway task to see the swap.
- Run it on a repo where you can read the diff. Approval mode is a global setting in omp, so decide it once and consciously.
What people are actually saying#
The community lives in r/PiCodingAgent. Threads there are practical rather than hype: one asks how to change the primary agent, noting that omp has agent presets but they can only be used as subagents, unlike opencode's switchable primary. A role-models thread includes the counter-case that the agent config encourages a kind of fragmentation. Another user built desktop and mobile interfaces because they like omp enough to wrap it. I only read the search excerpts of these threads, not the full discussions.
The skeptic's read is fair: 31 tools and nine roles is more surface to configure and to get wrong than a minimal agent. The README's own project-trust section warns that opening a repository loads its settings, extensions, hooks, tools, commands, skills and project MCP config by design. Flags such as --no-extensions and --trusted-extension narrow that, but the default is to trust what the repo ships. That is the same supply-chain risk we flag in agent config files are executable.
Who should try it#
Try omp if you already juggle several model providers and hand-switch between them, or if you want LSP-aware edits and a debugger without writing the plumbing. Skip it if you want the smallest possible agent; stock Pi or opencode fit better. If you only run Claude Code, the interesting thing to steal is not the tool but the config pattern: a cheap default, a strong planner, a fallback chain.
FAQ#
Is Oh My Pi the same as Pi?#
No. It is a fork of Pi by a different team, Stencil Labs, that adds built-in tools and routing on top. Both are MIT-licensed per the README, and omp keeps Pi's terminal-first design.
Does omp work with Claude models?#
The README lists Anthropic with OAuth sign-in among its providers, alongside OpenAI, Google, xAI, DeepSeek and local servers such as Ollama and LM Studio. We did not run a Claude session through it, so verify your plan's terms before routing a subscription through a third-party harness.
Can I use omp with my existing rules and skills?#
The README says it reads rules, skills and MCP servers from .claude, .cursor, .codex, .gemini, .cline, .github/copilot and .vscode on first run.
Continue Reading#
- Pi Deep Dive - the architecture omp forks from
- Pi vs Claude Code vs opencode - the terminal agent comparison
- What Is an Agent Harness? - the layer between model and repo
- Claude Advisor Tool vs a Bigger Model - the advisor pattern from the Claude side
- AI API Rate Limit and Retry Guide - fallback logic you can build yourself
- Claude Code Permissions Guide - choosing an approval mode
- Intro to Agents 101 course - provider-agnostic agent concepts, built hands-on
Sources#
- can1357/oh-my-pi - README, MIT license, feature list and provider routing
- omp.sh - project site
- Setting Up and Testing OMP (Oh My Pi) Agent - DeepakNess, hands-on config
- badlogic/pi-mono - upstream Pi
- r/PiCodingAgent: change primary agent
- r/PiCodingAgent: role models and fallbacks
- r/PiCodingAgent: desktop and mobile interfaces
Get the next deep dive like this in your inbox
One email a week on AI Agents and the rest of the AI dev stack. Free.
Read next on AI coding tools
pi Deep Dive: The Minimal Architecture Behind 95,000 GitHub Stars
pi coding agent toolkit deep dive: five packages, branching JSONL session trees, four run modes, and why it refuses to build sub-agents, plan mode or MCP.
10 min readpi vs Claude Code vs OpenCode: Picking Your Agentic CLI
pi vs Claude Code vs OpenCode vs Codex CLI: a verified capability matrix and pick-X-if verdicts for choosing your main agentic coding harness.
10 min readWhat Is an Agent Harness? A Developer's Map for 2026
An agent harness is everything around the model: loop, tools, context, sandbox. How Pi, DeepSeek, Codex and Claude Code differ, and how to choose.
5 min readNew here? Start with
Technical content at the intersection of AI and development. Building with AI agents, Claude Code, and modern dev tools - then showing you exactly how it works.






