Oh My Pi (omp)

Harness · Last verified 2026-09-30 · Install verified 2026-09-30

TL;DR

Oh My Pi (omp) is an MIT-licensed terminal coding agent from Stencil Labs, forked from Pi by Mario Zechner. It adds LSP and debugger tools, a task tool that fans work out to subagents, an advisor model, live session sharing, MCP support and an SDK. It targets developers who want a single self-contained harness.

Key facts

Oh My Pi (omp) key facts. Data as of 2026-09-30.
Type Harness
Languages / SDKs TypeScript, Rust
License MIT
Pricing model Open source, free
Orchestration pattern Supervisor
GitHub stars 33,835 (as of 2026-09-30)
GitHub forks 3,641
Last push 2026-09-30
Latest release v18.4.4
Repository can1357/oh-my-pi
Website omp.sh
Documentation omp.sh
Last verified 2026-09-30

Key features

  • A task tool that spawns subagents, one per call or as a batch, with optional isolated workspaces that return patches, background execution, and schema-validated structured output. (source)
  • Agent Hub (Alt+A), a roster of live subagents where the user can read a transcript, send a steering message, revive a parked worker or kill a stuck one without aborting the parent. (source)
  • An advisor role: a second reviewer model reads the main agent's transcript updates, can inspect the workspace with its own tools, and injects concise advice into the session; it does not approve actions itself. (source)
  • /collab shares a live session through a relay link so a teammate can join read-write or read-only from another terminal or a browser. (source)
  • LSP wired into edits, a debugger tool that drives DAP adapters, and a persistent Python and JavaScript eval runtime that can call back into the agent's tools. (source)
  • MCP client with stdio, HTTP and SSE transports, project and user mcp.json files, and import of MCP servers from Claude Code, Codex, Gemini CLI, OpenCode, Cursor, Windsurf and VS Code configs. (source)
  • Four entry points on one engine: the interactive TUI, one-shot omp -p, a Node SDK and omp --mode rpc, plus omp acp for editors such as Zed. (source)
  • Tool approval tiers (read, write, exec) with always-ask, write and yolo modes and per-tool allow, deny or prompt overrides. (source)

Architecture and orchestration pattern

Pattern: Supervisor

omp is a single agent process with its own TUI, tool set and session store, installed as a native binary or through Bun. The README describes about 80,000 lines of Rust for native pieces such as grep, glob, a bash implementation and shell utilities, with the agent, tools and extensions in TypeScript. The fork is described as Pi rewritten as a coding-first surface with sessions, subagents, slash commands and extensions.

Multi-agent work goes through the task tool. The parent session spawns subagents from bundled, user, project or plugin agent definitions, each with its own tool list, model preference and optional output schema. A child can run in the background, in an isolated workspace that returns patches, or inline. Results come back as artifacts addressable through agent://<id>, and peers can message each other through a wait and IRC-style mechanism. Spawn depth and allowed child agents are governed by a spawn policy.

Sessions persist to disk and can be resumed, forked and shared. Memory is optional and off by default: retain, recall and reflect tools sit on a configurable backend (local, Hindsight or Mnemopi). Rules can be injected mid-stream when a pattern matches, and skills, rules and MCP servers are imported from other tools' config directories.

Human in the loop

Interactive runs route ambiguity through the ask tool, a structured picker. Tool approval has three tiers, and always-ask, write and yolo modes; the default is yolo, which auto-approves everything, and --yolo or --auto-approve force it. Per-tool overrides can allow, deny or prompt. In Agent Hub the user can steer, revive or kill any subagent without ending the parent session. Over ACP, editor permission prompts gate edits and shell commands, and read-only /collab view links allow watching without steering.

Protocols

MCP, A2A and AG-UI support for Oh My Pi (omp). See the full matrix.
ProtocolSupportNote
MCP Yes evidence
checked 2026-09-30
Client side: adds and validates MCP servers in .omp/mcp.json or ~/.omp/agent/mcp.json, and imports servers from Claude Code, Codex, Gemini CLI, OpenCode, Cursor, Windsurf and VS Code config files; the transport doc covers stdio, HTTP and SSE.
A2A Unknown
checked 2026-09-30
No A2A / Agent2Agent mention in the README; code search for agent2agent returned nothing, and the search for the short term a2a failed repeatedly with a connection error, so A2A is only checked in the README and by the longer term. Editor integration uses ACP, a different protocol.
AG-UI Unknown
checked 2026-09-30
No AG-UI mention in the README; repo code search for ag-ui returned nothing; not checked against a listing in the AG-UI README.

Best for

  • Developers who want one terminal agent with LSP, debugger, browser and search tools built in, rather than assembling plugins. (shortlist)
  • Fanning a job out to typed subagents, optionally in isolated workspaces, with a live roster to steer or kill them. (shortlist)
  • Using one agent from the terminal, from Zed over ACP, or from a Node or stdio host through the SDK and RPC modes.
  • People migrating from Claude Code, Cursor or Codex who want rules, skills and MCP servers picked up from existing config. (shortlist)

Not for

  • Users who need approvals by default; the default approval mode is yolo, which auto-approves reads, writes and exec.
  • Users who want a minimal, small-surface agent; the README describes a large batteries-included tool set.
  • Windows users who depend on parallel subagent spawns or native tools without checking the tracker; open Windows issues exist.

Quickstart

curl -fsSL https://omp.sh/install | sh

Install verified 2026-09-30 (temp dir, Node v22.22.3, macOS arm64: local npm i bun @oh-my-pi/pi-coding-agent (no -g) ok; omp --version run with the locally installed Bun 1.4.2 prints omp/18.4.4. The package declares bun >=1.3.14; with an older system Bun (1.3.10) the same CLI failed with a syntax error. The official installer script and bun install -g were not run. Packages came from the registry.npmmirror.com mirror, so the version is the one that mirror served on this date. Install and version check only; not a functional test.). What this means

# macOS, Linux
curl -fsSL https://omp.sh/install | sh
# alternatives from the README
brew install can1357/tap/omp
bun install -g @oh-my-pi/pi-coding-agent

# Interactive TUI in a project
omp

# One-shot prompt
omp -p "list the TypeScript files that import the auth module"

# Editor and host integrations
omp acp
omp --mode rpc --no-session

# Shell completions
eval "$(omp completions zsh)"

Common pitfalls

  • Needs Bun 1.3.14 or newer for the Bun install path.
  • On Alpine, the prebuilt musl binary needs apk add libstdc++ libgcc.
  • The default approval mode is yolo; set tools.approvalMode to always-ask or write if you want prompts.
  • Memory tools (retain, recall, reflect) and several other tools are setting-gated and off by default.
  • Open issues report --approval-mode write hanging in RPC mode because there is no approval channel, and a relative --session-dir breaking parallel subagent spawns on Windows.
  • The project is a fork of Pi; the docs include a porting-from-pi-mono guide.

Official quickstart

Pros

  • Subagents have documented lifecycle controls: a live roster, steering, revive, kill, background and isolated modes, and structured outputs. (source)
  • Approval tiers and per-tool policies are documented, and MCP server tools default to the write tier. (source)
  • Four entry points (TUI, one-shot, SDK, RPC) and ACP mean the same agent can be embedded or driven from an editor. (source)
  • Reads rules, skills and MCP servers from other tools' config directories on first run, so migration needs no conversion. (source)
  • MIT licensed, with a release roughly every day or two and a per-package changelog. (source)

Cons

  • The default approval mode is yolo, which auto-approves read, write and exec tools; prompts must be enabled by the user. (source)
  • Windows has open issues, including parallel subagent spawns failing with a relative session directory and a native tool crash. (source)
  • An open issue reports --approval-mode write hanging forever in RPC mode because no approval channel exists. (source)
  • Isolated subagent workspaces are opt-in through task.isolation.enabled, and an isolated agent is torn down at completion and cannot be revived. (source)
  • The README shows performance and pass-rate figures that are the project's own claims and are not reproduced or verified here. (source)

Alternatives

FAQ

Does Oh My Pi support MCP?

Yes, as a client. It adds and validates servers in .omp/mcp.json or ~/.omp/agent/mcp.json, imports servers from other tools' config files, and supports stdio, HTTP and SSE transports. It documents no MCP server mode.

How does it run subagents?

The task tool spawns subagents from agent definitions, individually or in a batch. They can run in the background or in isolated workspaces that return patches, and Agent Hub lets you steer, revive or kill them.

Is it a fork of Pi?

Yes. The README says it is a fork of Pi by Mario Zechner, extended with a coding-first workflow. A separate Pi record exists in this directory.

Is it free?

The repository is MIT licensed and no paid plan is documented. The docs site has no pricing page (omp.sh/pricing returned 404). Model provider usage is billed by your provider.

Is it safe to run with default settings?

The default approval mode is yolo, so tools run without prompts. Change tools.approvalMode to always-ask or write for approvals.

Sources

Unknown fields: protocols.a2a: no mention in the README; the code search for the short term a2a failed repeatedly with a connection error, and a search for agent2agent returned nothing. protocols.agui: no mention found. harnesses: the README says omp imports rules, skills and MCP servers from Claude Code, Codex, OpenCode and other tools' config directories, but it does not launch, drive or install into those harnesses, so the list is empty. No pricing page exists (omp.sh/pricing is 404).

Something wrong or out of date, or do you maintain Oh My Pi (omp) and want this page removed? Report a correction or request removal.