oh-my-pi(omp)

can1357/oh-my-pi — IDE の知識をエージェントに渡すターミナル向けコーディングエージェント。Pi(Mario Zechner)のフォークで、README とモノレポ構成から要約したビジュアル解説。

1 — 概要
40+
LLM プロバイダ
32
組み込みツール
~55k
Rust コア行数
14 / 28
LSP ops · DAP ops

omp(@oh-my-pi/pi-coding-agent)は、対話型 TUI を既定とするコーディングエージェント。編集・検索・LSP・DAP・ブラウザ・サブエージェント・長期記憶・advisor・collab まで、ハーネス側に寄せた実装が同梱されている。

公開サイト omp.sh、ランタイムは Bun(推奨 bun ≥ 1.3.14)、ネイティブ処理は Rust の N-API アドオン(pi-natives)経由でプロセス内実行する。

TUI — pi-tui · 差分描画・Markdown
coding-agent — セッション・ツール・MCP・拡張
agent / catalog — ループ・モデルカタログ
ai — 40+ プロバイダ・ストリーム
pi-natives — grep · shell · ast · PTY …
2 — Pi フォークとしての位置づけ

ベースは pi-mono の思想(ターミナルファースト・TypeScript・MIT)を継承しつつ、実運用で足りない層を同梱する方針。代表例は次のとおり。

  • 編集 — Hashline(コンテンツハッシュ錨)、ast_edit のプレビュー+resolve 確定
  • IDE 連携 — LSP(14 ops)、DAP(28 ops)、ACP で Zed 等から同一エージェントを駆動
  • 並列 — task による worktree 分離サブエージェント、hub でライブ監視、スキーマ検証済み yield
  • 監視 — advisor ロール(別モデルが毎ターン note / concern / blocker を注入)
  • 共有 — /collab でリレー+リンク/QR、omp join またはブラウザで参加(RW / view)
  • 記憶 — Hindsight(retain / recall / reflect)、ローカル SQLite(pi-mnemopi)
  • ルール — TTSR(ストリーム途中のルール注入・コンパクション後も維持)
  • 設定の継承 — Cursor / Claude / Codex / Copilot 等の既存ルール・スキル・MCP を初回起動時に読み込み
ベンチ(README 掲載)

Grok Code Fast 1 で編集成功率 6.7%→68.3%、Grok 4 Fast で出力トークン −61% など。編集フォーマットとリトライ設計の影響が大きい、と説明されている。

内部 URL スキーム

12 種(pr://、issue://、skill://、agent://、rule://、conflict:// 等)。FS 系ツールから PR 差分・サブエージェント JSON・マージ競合をパス指定で扱える。

Python / JS eval

永続 Python と Bun ワーカー。どちらもループバック経由で read や search を再入可能。

/review と omp commit

/review は P0–P3 と verdict 付きでレビュアサブエージェントを並列起動。omp commit は hunk 単位で依存順にアトミック分割し、循環依存はコミット前に拒否。

advisor

メインとは別モデルを advisor ロールに載せ、毎ターンを監視してインライン注記を注入する。独自コンテキストで「急ぎ過ぎた判断」を拾う。

/collab

ライブセッションをリレーへ載せ、リンクと QR を返す。フレームはクライアント側で暗号化。リレーは鍵を見ない。

3 — モノレポとネイティブ層
flowchart TB
  subgraph surfaces["起動面"]
    TUI["omp(TUI)"]
    SDK["Node SDK"]
    RPC["omp --mode rpc"]
    ACP["omp acp"]
  end
  subgraph ts["TypeScript ワークスペース"]
    CA["@oh-my-pi/pi-coding-agent"]
    AG["@oh-my-pi/pi-agent-core"]
    CAT["@oh-my-pi/pi-catalog"]
    AI["@oh-my-pi/pi-ai"]
    TUIL["@oh-my-pi/pi-tui"]
    HL["@oh-my-pi/hashline"]
    MEM["@oh-my-pi/pi-mnemopi"]
    WIRE["@oh-my-pi/pi-wire"]
    CW["@oh-my-pi/collab-web"]
  end
  subgraph rust["Rust / N-API"]
    NAT["@oh-my-pi/pi-natives"]
    PN["pi-natives crate"]
    PS["pi-shell"]
    PA["pi-ast"]
    PI["pi-iso"]
  end
  TUI --> CA
  SDK --> CA
  RPC --> CA
  ACP --> CA
  CA --> AG --> AI
  CA --> CAT
  CA --> TUIL
  CA --> HL
  CA --> MEM
  CA --> WIRE --> CW
  CA --> NAT --> PN
  PN --> PS
  PN --> PA
  PN --> PI
      

TypeScript パッケージ(README 表より)

パッケージ役割
@oh-my-pi/pi-coding-agentCLI・SDK・セッション・ツール・MCP・拡張の本体
@oh-my-pi/pi-agent-coreツール呼び出しとエージェント状態
@oh-my-pi/pi-aiマルチプロバイダ LLM クライアント・ストリーミング
@oh-my-pi/pi-catalogバンドル済みモデル DB・プロバイダ記述・identity
@oh-my-pi/pi-tuiターミナル UI(差分レンダリング)
@oh-my-pi/pi-nativesgrep / shell / 画像 / ハイライト等の N-API バインディング
@oh-my-pi/hashlineedit 用の行錨パッチ言語と適用器
@oh-my-pi/pi-mnemopiローカル SQLite メモリエンジン
@oh-my-pi/pi-wire / collab-webcollab ライブセッションのプロトコルとブラウザゲスト
@oh-my-pi/snapcompactビットマップフレーム型コンテキスト圧縮
@oh-my-pi/pi-utils共有ユーティリティ(ログ・ストリーム・dirs 等)
@oh-my-pi/omp-statsローカル利用統計ダッシュボード
@oh-my-pi/swarm-extensionスウォーム拡張(任意)

Rust モジュール(README 抜粋)

他ハーネスが rg や bash を子プロセス起動するのに対し、ホットパスは libuv スレッドプール上の in-process 実装。プラットフォーム別バイナリ(linux/darwin/win × x64/arm64)。見出し合計は約 55,000 行(glue / tests 除外のモジュール表)。

モジュール内容概算 LoC
shell組み込み bash(brush ベンダ)、永続セッション3,700
grep並列 regex 検索・glob1,900
keysKitty キーボードプロトコル・PHF ルックアップ1,490
textANSI 幅・切り詰め・SGR 保持ラップ1,450
summary / asttree-sitter 要約・ast-grep1,040 / 1,000
fs_cacheread / grep / lsp 共有の mtime キャッシュ840
ptyネイティブ PTY(sudo 等)455
isoworktree 分離(APFS / btrfs / overlay 等)245

README には highlight / glob / workspace / appearance / power / task / fd / prof / ps / clipboard / tokens / sixel / html なども含む。詳細は upstream README の Rust 表を参照。

補足: python/robomp は GitHub イベント連携など別系統の Python ホスト。python/omp-rpc は RPC クライアント用。エージェント本体の TypeScript ツリーとは責務が分かれている。
4 — 組み込みツール(32)

README のカテゴリ分けに沿った一覧。--tools で表示セットを絞り、稀に使うツールは xd:// デバイスとして発見できる(tools.xdev 有効時)。

ファイル・検索
  • read — ファイル・URL・PDF・SQLite・内部スキーム
  • write / edit / ast_edit / ast_grep
  • search / find
ランタイム
  • bash · eval · ssh
コードインテリジェンス
  • lsp — 診断・定義・リネーム等
  • debug — DAP(lldb / dlv / debugpy 等)
協調
  • task · hub · todo · ask
外部・メディア
  • browser · web_search · github
  • generate_image · inspect_image · tts
記憶・状態
  • checkpoint · rewind
  • retain / recall / reflect(Hindsight)
  • resolve — プレビューの確定 / 破棄

設定でデフォルト OFF: github, inspect_image, tts, checkpoint, rewind, retain, recall, reflect(README 記載)。

5 — モデルとルーティング

ロール default / smol / slow / plan / commit で用途別モデルを切替。/model スラッシュコマンドと Ctrl+P でセッション中に変更できる。モデルカタログは @oh-my-pi/pi-catalog が担う。

区分例(README)
Frontier APIAnthropic, OpenAI, Gemini, xAI, Groq, OpenRouter, …
Coding plansCursor, Copilot, Kimi, MiniMax plan, Qwen Portal, …
Self-hostedOllama, LM Studio, vLLM, LiteLLM(OpenAI 互換)

web_search は auto が 25 プロバイダのチェーンを歩き、GitHub / レジストリ / arXiv / フォーラム向けの構造化抽出と NVD / OSV / CISA KEV の脆弱性ルックアップを持つ(README の Search providers 表)。

カスタム定義は ~/.omp/agent/models.yml。フォールバックチェーンは retry.fallbackChains、パス別ロールは modelRoles.paths。

6 — 起動面
面入口用途
対話 TUIomp既定。ツールカード・編集プレビュー・ask ピッカー
ワンショットomp -p単発プロンプトで終了
Node SDK@oh-my-pi/pi-coding-agentcreateAgentSession 等をプロセスに埋め込み
RPComp --mode rpcNDJSON over stdio(非 Node ホスト向け)
ACPomp acpAgent Client Protocol — Zed 等のエディタ統合
SDK 最小例(README より)
import { ModelRegistry, SessionManager, createAgentSession, discoverAuthStorage } from "@oh-my-pi/pi-coding-agent";

const auth = await discoverAuthStorage();
const models = new ModelRegistry(auth);
await models.refresh();

const { session } = await createAgentSession({
  sessionManager: SessionManager.inMemory(),
  authStorage: auth,
  modelRegistry: models,
});
await session.prompt("list .ts files");
ACP マッピング(README): bash → ターミナル API、read/write → ファイル API、破壊的操作は session/request_permission。
7 — インストール
macOS / Linux
curl -fsSL https://omp.sh/install | sh
Homebrew
brew install can1357/tap/omp
Bun(推奨)
bun install -g @oh-my-pi/pi-coding-agent
Shell completions(zsh 例)
eval "$(omp completions zsh)"

Windows は irm https://omp.sh/install.ps1 | iex。バージョン固定は mise use -g github:can1357/oh-my-pi。bash / fish も omp completions で生成できる(README)。

8 — 参照

本ページは docs-site 用の要約であり、公式ドキュメントの代替ではない。数値・ベンチマークは README 掲載時点の記述に依存する。