can1357/oh-my-pi
Developer ToolsA terminal coding agent with LSP, debugger, subagents, browser and multi-provider model routing built in.
What it is
oh-my-pi (the omp CLI) is a fork of Mario Zechner's Pi coding agent, extended into a batteries-included coding harness for the terminal. The agent reads and writes files, runs a shell, queries LSPs, drives real debuggers over DAP, spawns subagents in isolated worktrees, and can open browsers or control the desktop. It supports many LLM providers and routes different roles (default, small, slow, plan, advisor) to different models. It is aimed at developers who want a single agent surface rather than assembling tools themselves.
Much of the heavy lifting is written in Rust as an N-API addon: an embedded bash engine, in-process grep/glob/find, AST utilities, and workspace isolation. The TypeScript packages provide the CLI, SDK, model catalog, and agent runtime (monorepo layout).
Quick start
The recommended install is via Bun (requires Bun ≥ 1.4.4):
bun install -g @oh-my-pi/pi-coding-agent
On macOS/Linux you can also use the install script, and on Windows the PowerShell equivalent:
curl -fsSL https://omp.sh/install | sh
irm https://omp.sh/install.ps1 | iex
Homebrew (brew install can1357/tap/omp), Nix, and mise are also supported; the prebuilt binary checks its SHA-256 before installing. After installation, run omp for the interactive TUI, or omp -p "your prompt" for a one-shot answer. The first launch can inherit rules and MCP servers from existing .claude, .cursor, .codex, and similar directories. Use /login to attach a provider account and /model to pick a model.
Embedding and automation
The same engine is exposed as a Node SDK (createAgentSession, ModelRegistry, SessionManager), an RPC mode over stdio (omp --mode rpc), and an ACP mode for editors such as Zed. Custom OpenAI-compatible providers are declared in ~/.omp/agent/models.yml and verified with omp models <name>.
Constraints
omp loads project inputs by design when you open a repository, including settings, extensions, hooks, tools, skills, rules, and project MCP configuration. --no-extensions, --trusted-extension, and --config can narrow this, but the repository-trust model still applies. The embedded musl binary on Alpine needs libstdc++/libgcc installed first. Nodes and ACP integrations depend on the editor advertising the relevant capabilities. The project is MIT-licensed, with third-party components carrying their own notices.
HotRepo's take
Between 2026-05-20 and 2026-05-23, the repository grew from 5,262 to 6,553 stars in the daily all-language snapshots, adding roughly 450–500 stars per day. By the 2026-11-06 TypeScript weekly snapshot it had reached 38,015 stars with 4,294 forks, ranked 16th in that language weekly list. The daily star curve is not available in the provided data, so the long-term growth pattern between those two clusters cannot be characterized. What stands out technically is the choice to move search, shell, AST, and process control into an in-process Rust addon rather than shelling out, which is the differentiator the README emphasizes.
Written by AI from the project's README, updated . The project's own docs are the source of truth.