Agent stack build plans · oh-my-pi · 2 of 5
Set it up
Twenty minutes, four steps. Commands verified against the
omp README and docs
at v17.0.9 (July 2026) — omp releases near-daily, so if something here has
drifted, trust omp --help over this page and tell us at the
bottom.
1 · Install
Pick one:
# macOS / Linux curl -fsSL https://omp.sh/install | sh # Homebrew brew install can1357/tap/omp # Bun (the README's recommended path; needs bun ≥ 1.3.14) bun install -g @oh-my-pi/pi-coding-agent # Windows (PowerShell) irm https://omp.sh/install.ps1 | iex # Version-pinned via mise mise use -g github:can1357/oh-my-pi
Then run omp in a repo. First launch walks you through
omp setup to pick a default model.
2 · Connect a model (three ways, mixable)
Ride a subscription you already pay for
Inside a session, /login starts OAuth for subscription
providers — anthropic (your Claude account),
github-copilot, cursor, gitlab-duo and
others. No new bill. (One caution about plan terms in
the traps.)
Bring API keys
Env vars work as you’d expect — ANTHROPIC_API_KEY,
OPENROUTER_API_KEY, and the rest of the
provider list
(openai, google, groq, deepseek, amazon-bedrock, openrouter…). For
headless machines: omp auth-broker login <provider>.
Run local, pay nothing
Keyless local providers are auto-detected at their default ports:
ollama (127.0.0.1:11434), llama.cpp (:8080),
lm-studio (:1234). Any other OpenAI-compatible endpoint (vLLM
included) plugs in via models.yml —
next page.
3 · Migrate your Claude Code setup
Mostly you don’t have to. The README: “On first run omp
inherits whatever is already on disk: rules, skills, and MCP servers from
.claude, .cursor, .windsurf,
.gemini, .codex, .cline,
.github/copilot, and .vscode. No migration
script.” Your CLAUDE.md rules, project skills, and MCP servers show
up in the first session. omp’s own MCP config, if you want to add servers
just for it, lives at .omp/mcp.json (project) or
~/.omp/agent/mcp.json (user) — stdio, http, and sse transports.
4 · Fix the one default you shouldn't keep
~/.omp/agent/config.yml:
tools: approvalMode: write
write asks before mutating actions; always-ask
asks for everything; per-tool overrides exist
(tools.approval.<toolName>: allow|deny|prompt). Flip to
--yolo per-invocation when you actually want it.That’s a working replacement. The reason you came — routing — is one more file.