// the find
can1357/oh-my-pi
⌥ AI Coding agent for the terminal — hash-anchored edits, optimized tool harness, LSP, Python, browser, subagents, and more
oh-my-pi is a terminal coding agent forked from Mario Zechner's Pi, substantially rewritten with ~55k lines of Rust native core, full LSP/DAP integration, multi-provider LLM routing (40+ providers), and a parallel subagent system. It targets developers who want a Claude Code-style experience without being locked to one provider or model. The benchmark numbers for Hashline-format edits are the most interesting thing here — not marketing, they show real task-success improvements across multiple models.
The Hashline patch format is genuinely clever: edits reference content hashes instead of line numbers, so stale-anchor detection happens before the file is touched and the model spends far fewer output tokens retyping context. The in-process Rust bindings (ripgrep, glob, bash via brush) eliminate fork/exec overhead on the hot path — this matters when the agent runs hundreds of searches in a session. LSP renames go through workspace/willRenameFiles before the file moves, so re-exports and barrel imports update correctly instead of leaving broken references; most agents skip this entirely. The fallback chain + round-robin credential routing is production-grade: per-role model assignment, per-path model scoping, and automatic failover when a key hits quota — useful for teams sharing one agent config.
The Rust native addon is platform-tagged (5 targets) and required for basic operation, so building from source means a full Rust toolchain plus zig for cross-compilation; PRs that touch native code have a high barrier to test locally. The vendored brush forks (brush-core-vendored, brush-builtins-vendored) are a quiet maintenance burden — upstream bash-compatibility fixes won't flow in automatically, and the vendored copies will drift. Bun ≥ 1.3.14 is a hard runtime requirement, which is fine for personal use but creates friction for teams or CI pipelines that standardized on Node. The config surface is enormous — 40+ providers, role-based model routing, path-scoped overrides, stream rules, tool discovery modes — and there's no single reference showing a minimal working config for a team; you piece it together from a dozen separate docs sections.