Vanilla Pi vs Oh My Pi β€” the Decision Guide

Lesson 10: Vanilla Pi vs Oh My Pi β€” the Decision Guide

You now know both harnesses. The honest answer to "which should I use?" is: it depends on what you optimize for. Here is the comparison and a practical decision path.

DimensionVanilla Pi (pi.dev)Oh My Pi (omp.sh)
EngineTypeScript/Node core, Earendil-maintainedFork with ~80k-line native Rust engine, Bun runtime
Default tool surface4 tools (read/write/edit/bash) + optional read-only helpers31 built-in tools across files, runtime, LSP, DAP, subagents, browser
Extension modelTypeScript extensions: events, tools, commands, UI, stateSame lineage, plus its own tool/devices surface (xd://), magic keywords, roles
SkillsAgent Skills standard, on-demand SKILL.mdAgent Skills + managed skills via learn/manage_skill
PackagesFirst-class: npm/git packages bundling all resource typesNot the focus; config is ~/.omp/agent/*.yml + rules import
IDE wiringTerminal-firstLSP + DAP built in; ACP for editor (Zed) integration
MemorySession tree + compaction + branch summariesThat plus agent-curated memory banks (retain/learn/recall, pluggable backends)
Model routing/model + /scoped-models + thinking levelsTen named roles (smol/slow/plan/advisor/…) with per-role fallback chains
Configsettings.json + models.json (JSON)config.yml + models.yml (YAML)
Team rulesAGENTS.md context filesReads Cursor MDC, Cline, Codex AGENTS.md, Copilot applyTo natively
Update cadenceStable, documented releasesFast-moving community fork

Reach for vanilla pi when…

  • You want a minimal, predictable core β€” you'd rather add exactly what you need than disable what you don't.
  • You want to build your own agent surface on the TypeScript extension API, SDK, RPC, or JSON modes.
  • You care about the packages ecosystem β€” sharing skills/templates/extensions via npm/git and the pi.dev gallery.
  • You trust Earendil's direction and want a stable, well-documented target.
  • You're on a constrained environment where a lean binary and a small prompt surface matter (e.g. a container, a work laptop).

Reach for omp when…

  • You want IDE-grade capability out of the box β€” LSP renames, real debugger sessions, code intelligence without setup.
  • You're doing token-sensitive heavy work and want the aggressive edit efficiency (hashline anchors), summarized reads, and role-based routing.
  • You need subagent fan-out, an advisor model, agent-curated memory, or live collaboration (/collab).
  • You already live in Cursor/Cline/Codex conventions and want those rule files read as-is.
  • You want native performance (in-process ripgrep/glob/shell, no fork/exec, real Windows support).
Decision path Need IDE-grade LSP/DAP, subagents, memory, collab, or max token-efficient edits out of the box? β†’ use omp Want a minimal, stable, package-driven core you extend in TypeScript, or a headless SDK/RPC surface? β†’ use pi Neither is wrong β€” both read AGENTS.md, both save sessions

Token-efficiency, head to head

  • Pi's wins: on-demand skills, prompt-cache-aware compaction, thinking budgets, per-model cost fields, and a four-tool default surface (tiny system prompt). You control the economics with knobs, not defaults.
  • omp's wins: hashline edits (βˆ’61% output tokens claimed on Grok 4 Fast), summarized reads, stream rules that inject only on violation, an advisor on separate context, and role-routed models (cheap smol fan-out, expensive slow reserved for deep reasoning).
  • The catch: omp's 31 declared tools are a larger standing system prompt than pi's four β€” you can pin the surface with --tools read,edit,bash,…. Pi's package/skill ecosystem can grow your prompt too if you install everything; enable only what you use.
Practical advice: Install both. They coexist (different config dirs: ~/.pi/ vs ~/.omp/). Use vanilla pi as your everyday driver and reach for omp when a session needs debugging, refactoring across files, or heavy multi-agent work. The skills and habits transfer in both directions.
πŸ“Ί Watch:

Further Reading

🧠 Knowledge Check

1. Which scenario points clearly to vanilla pi?

2. Why does omp carry a larger standing token cost than vanilla pi?

3. Can pi and omp be installed side by side?