TopGit
GitHub Repo Review

omp AI Coding Agent: Hash-Anchored Terminal CLI

can1357/oh-my-pi
OTopGit review image for can1357/oh-my-pi
Review by Topgit.dev for can1357/oh-my-pi, with GitHub repository stats and README context.
Quick verdict

omp AI Coding Agent is a terminal-based coding agent, forked from Pi, that adds hash-anchored edits, LSP-wired refactors, and a real debugger to the harness. Reach for it if you live in the terminal and want one CLI that routes across 60+ LLM providers without leaving it; skip it if you want a GUI-first tool or don't want to manage provider credentials yourself.

Stars
★ 22.2k
Forks
⑂ 2.1k
Language
TypeScript
License
MIT
Topic
AI Tools
Updated
Aug 2026
Homepage
GitHub

Introducing the omp AI Coding Agent

omp AI Coding Agent is a command-line coding agent, distributed as the `omp` binary, that forked Mario Zechner's Pi project and rebuilt its tool harness around hash-anchored file edits, an in-process LSP client, and a native DAP debugger. It ships 31 built-in tools and routes requests through 60+ LLM providers from a single terminal session, per the README.

Core Capabilities and Integrations

  • Hashline edits: the `edit` tool points at content-hash anchors instead of retyping whole lines, and a stale anchor gets rejected before it can corrupt the file — the README credits this with a 61% cut in output tokens on Grok 4 Fast.
  • LSP wired into every write: renames go through `workspace/willRenameFiles`, so re-exports and aliased imports update before a file moves, across the README's listed 14 lsp ops.
  • Real debugger control: the `debug` tool drives DAP sessions directly — attaching lldb to a segfaulting C binary or dlv to a hung Go service — across the README's listed 28 dap ops.
  • Persistent Python and Bun kernels: the `eval` tool keeps a Python and a JS worker alive in the same session, and either one can call back into `read`, `grep`, or `task` over a loopback bridge.
  • First-class subagents: `task` fans work out into isolated worktrees and returns a schema-validated object instead of prose the parent has to parse.
  • Internal URL schemes: the README lists 16 of them — `pr://`, `issue://`, `agent://`, `skill://`, `ssh://` and more — so `read pr://1428` returns the same shape as reading a local file.
  • In-process coreutils: ripgrep, glob, and find are linked into the binary, and `bash` ships 46 vendored coreutils as in-process builtins, so there's no fork-exec round trip and no missing binaries on Windows.
  • Editor mode via ACP: running inside Zed gives you the same agent, reading the buffer you're looking at and writing through the editor's own save path.
How this repository's GitHub stars have grown over time. Source: star-history.com.View the star history

Installation and Setup

Install is documented for four platforms. On macOS and Linux, `curl -fsSL https://omp.sh/install | sh` pulls the binary; Alpine/musl users need to `apk add libstdc++ libgcc` first, since the prebuilt binary links those libraries dynamically. Homebrew users run `brew install can1357/tap/omp`. The README calls the Bun path recommended: `bun install -g @oh-my-pi/pi-coding-agent`, which needs bun >= 1.3.14. Windows installs via PowerShell with `irm https://omp.sh/install.ps1 | iex`. Pinned versions go through mise: `mise use -g github:can1357/oh-my-pi`. Shell completions for bash, zsh, and fish generate from the live CLI metadata, so `eval "$(omp completions zsh)"` never drifts out of sync with the actual commands.

Driving the Agent: Commands and Controls

Model routing runs through ten roles — default, smol, slow, plan, commit, vision, designer, task, advisor, and tiny — so a cheap model can handle subagent fan-out while a stronger one takes the main turn. `--smol`, `--slow`, and `--plan` override the role at launch; `Ctrl+P` cycles configured models for the active role, and `/model` swaps mid-session. Slash commands change how a whole session runs: `/vibe` turns the agent into a director driving persistent fast/good worker sessions with a read-only toolset, and `/fresh` resets a wedged provider stream without touching the transcript. Three lowercase trigger words — `ultrathink`, `orchestrate`, `workflowz` — opt a single turn into deeper reasoning or multi-subagent execution when typed in prose.

Advantages of omp's Approach

  • Hashline anchors and the tuned tool harness produce concrete wins the README documents with numbers — Grok Code Fast 1 goes from 6.7% to 68.3% on one benchmark, and Grok 4 Fast uses 61% fewer output tokens.
  • Real LSP and DAP integration means renames and debugging go through the same protocol your editor uses, not a regex-and-guess approximation.
  • 60+ providers and ten routable roles let you pin a cheap model to subagent fan-out and a stronger one to the main turn without changing how you work.
  • It reads eight existing config formats natively — Cursor MDC, Cline .clinerules, Codex AGENTS.md, Copilot applyTo, and others — so a team's existing agent rules keep working without a migration script.
  • PRs are temporarily open to everyone, per the README's note, which lowers the bar for contributing right now.

Potential Considerations

  • It's a fork maintained under one contributor's namespace (can1357), not the upstream Pi project — worth knowing before you commit config or workflows to it long-term.
  • The benchmark numbers in the README are the project's own harness comparisons, not independently reproduced third-party results.
  • A significant portion of the tool's capabilities, including github, security_scan, generate_image, tts, checkpoint, rewind, along with the memory tools, are off by default and require specific configuration before any action can be taken.
  • The PR policy is explicitly temporary: the README says the previous vouch requirement 'may return' depending on how open contributions go, so the contribution bar could tighten again.
View on GitHubHomepage

Comparing with Other AI Agents

Common Questions

What is the license for omp AI Coding Agent?

omp AI Coding Agent is released under the MIT license, per its GitHub repository metadata.

What LLM providers and models does omp support?

omp AI Coding Agent routes through 60+ providers, per the README, including Anthropic, OpenAI, OpenAI Codex, Google Gemini, Google Vertex, xAI, DeepSeek, Mistral, and Groq, plus coding-plan subscriptions like Cursor and GitHub Copilot and local runtimes like Ollama and vLLM.

Can omp integrate with my IDE or editor?

omp AI Coding Agent integrates with Zed through ACP (Agent Client Protocol), running the same agent inside the editor — reading the buffer you're looking at and writing through the editor's save path instead of a separate plugin.

Does omp allow using local large language models?

omp AI Coding Agent supports local model runtimes including Ollama, LM Studio, llama.cpp, and vLLM, plus custom OpenAI-compatible endpoints defined in `~/.omp/agent/models.yml`.

How does omp handle code execution and debugging?

omp AI Coding Agent runs persistent Python and Bun kernels through its `eval` tool for code execution, and its `debug` tool drives real DAP sessions — attaching debuggers like lldb, dlv, or debugpy — across the README's listed 28 dap ops.

What operating systems are supported by omp?

omp AI Coding Agent installs on macOS, Linux, and Windows per the README's install instructions, with in-process coreutils that avoid relying on a WSL bridge on Windows.

The problem it solves

Most terminal coding agents either lock you into one model provider or bolt on tools that shell out to system binaries — ripgrep, grep, find — which may not exist on the machine, and every call costs a fork-exec round trip. Renames usually happen through blind string replacement instead of the protocol your editor already speaks, and debugging still means asking the model to sprinkle print statements because there's no real debugger in the loop. omp skips all three points of friction. omp AI Coding Agent's answer is to link ripgrep, glob, and find in-process, wire renames through `workspace/willRenameFiles`, and give the agent a DAP debugger it can actually drive.

Best use cases

  • Refactoring across a codebase where renames need to update re-exports and aliased imports, not just the literal symbol.
  • Debugging a crash or hang in a compiled or interpreted language by attaching a real debugger instead of adding print statements.
  • Running a coding session against a self-hosted or local model — Ollama, LM Studio, llama.cpp, or vLLM — instead of a hosted API.
  • Reviewing a branch or a set of uncommitted changes with `/review` and getting a P0–P3 ranked verdict before merging.
  • Splitting a messy working tree into atomic, dependency-ordered commits with `omp commit`.

Who should try it — and who should skip

Reach for omp AI Coding Agent if you already work from a terminal, want to route different LLM providers to different roles (a cheap model for subagent fan-out, a strong one for the main turn), and need real LSP renames or DAP debugging instead of a chat window bolted onto your shell. Skip it if you want a GUI-first tool, a single fixed provider with nothing to configure, or you'd rather not manage `~/.omp/agent/models.yml` and provider credentials yourself.

Related repositories

Source & attribution

Based on the can1357/oh-my-pi GitHub repository (github.com/can1357/oh-my-pi), including its README and repository metadata.

GitHub data · last synced Aug 6, 2026Reviewed by Henry
Back to TopGit