explaingit

can1357/oh-my-pi

⭐ Rising5,915TypeScriptAudience · developerComplexity · 4/5ActiveSetup · easy

TLDR

Terminal coding assistant (omp command) with a 27k-line Rust core, support for ~40 model providers, 32 built-in tools, LSP integration, real debugger attach, and persistent Python and Bun kernels.

Mindmap

mindmap
  root((oh-my-pi))
    Inputs
      Project files
      Natural language tasks
      Model provider keys
    Outputs
      Code edits
      Tool runs
      Confirmation prompts
    Use Cases
      Terminal coding agent
      Cross-file refactoring
      Debugger-assisted fixes
    Tech Stack
      Rust
      TypeScript
      Python kernel
      Bun kernel
      LSP

Things people build with this

USE CASE 1

Run a coding agent in your terminal that can edit files, run shell commands, and ask for confirmation before applying changes.

USE CASE 2

Use omp's LSP integration to rename a symbol and have it update re-exports and aliased imports across files.

USE CASE 3

Attach lldb, dlv, or debugpy to a running process and step through frames while the agent reasons about the bug.

USE CASE 4

Spawn subagents that each get their own working copy and run isolated tasks in parallel.

Tech stack

RustTypeScriptPythonBunLSP

Getting it running

Difficulty · easy Time to first run · 5min

Installs via a single curl, brew script, or Bun global install.

License is not stated in the available content.

In plain English

oh-my-pi (the command you actually type is omp) is a coding assistant that lives in your terminal. You point it at a project, you describe what you want, and it reads files, runs commands, edits code, and looks things up on your behalf, then asks you to confirm changes. It is a fork of an earlier project called Pi by Mario Zechner, with a lot more bundled in. The README claims support for 40 or so different model providers, 32 built-in tools, and around 27,000 lines of a Rust core that does the heavy lifting. A central pitch of the project is that the tool layer around the model has been tuned aggressively for accuracy. The README cites benchmark jumps for several models when run through omp instead of through a default tool layer: for example, Grok Code Fast 1 going from 6.7 percent to 68.3 percent on a coding test, MiniMax more than doubling its pass rate, and Grok 4 Fast using 61 percent fewer tokens because it stops getting stuck retrying bad edits. The point is that the same model behaves much better when the surrounding plumbing is solid. The features that go beyond a basic chat-with-files agent are the most distinctive part. omp ships with a persistent Python kernel and a Bun (JavaScript) kernel that the agent can run code in, and either kernel can call the agent's own read or search tools through a loopback bridge. It connects to Language Server Protocol features (the things your IDE uses for rename, jump-to-definition, find-references) so a request like rename this symbol updates re-exports and aliased imports across files. It can attach a real debugger to running processes (lldb for C, dlv for Go, debugpy for Python) and step through frames instead of asking the agent to add print statements. There is also a subagent system that splits a job into isolated workers, each with their own working copy, and returns structured results. Web search chains 14 ranked providers and feeds URLs back to the same read tool, so PDFs from arxiv come back as marked-up text. Installation is one curl, brew-style script, or a Bun global install.

Copy-paste prompts

Prompt 1
Install omp on macOS via the curl install script and configure it to use Grok Code Fast 1. Walk me through the first 5 minutes of usage.
Prompt 2
Use omp's subagent system to split a refactor across 4 isolated workers, each rewriting a different folder of a Next.js codebase.
Prompt 3
Set up omp with a persistent Python kernel and write a script that calls back into omp's read tool through the loopback bridge.
Prompt 4
Compare omp against Claude Code and Cursor for a Go codebase that needs LSP rename and dlv debugging. Which tools does omp add that the others lack?
Prompt 5
Configure omp's web search to chain its 14 ranked providers and feed PDF results from arxiv back into the read tool as marked-up text.
Open on GitHub → Explain another repo

Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.