oh-my-pi(omp)は、TypeScript製CLIとRust製ネイティブコアを組み合わせた、端末で動くAIコーディングエージェントです。Anthropic・OpenAIなど60以上のプロバイダーに対応し、LSP・DAP・Python実行・ブラウザ操作・サブエージェントなどのツールを標準搭載します。README記載の「hash-anchored edits」という独自の編集方式で、コード変更をピンポイントに当てる設計になっています。
CLI本体はBunで動くTypeScriptで、重い処理はRustのネイティブアドオン(pi-natives)にnapi-rs経由で渡します。crates/pi-astはtree-sitterで対象ファイルを解析し、指定行から始まる構文ブロックの範囲を返します。これがREADMEの「hash-anchored edits」、つまり`replace block N:`という編集操作の土台です。crates/pi-builtinsはls・grep・sedなどのシェル系コマンドをRustで再実装し、外部プロセス起動なしで高速に実行します。crates/pi-natives内のutokモジュールはClaude・DeepSeekなど各モデル専用トークナイザーを持ち、公式カウントとの一致をゴールデンフィクスチャで検証しています。エージェントはPythonの永続カーネルとBunワーカーを持ち、ループバック経由でread・grep・taskなど自分のツールを呼び出せます。LSPとDAPの操作もネイティブ層に統合され、書き込み前後で診断情報を取得する仕組みです。
- STEP 01
curl -fsSL https://omp.sh/install | sh を実行すると、プリビルドバイナリがダウンロードされ、Alpineなどmusl環境ではlibstdc++とlibgccの追加インストールを促されます。
- STEP 02
初回起動時にAnthropicやOpenAIなど使いたいプロバイダーのAPIキー設定を求められ、設定なしではモデル呼び出しができません。
- STEP 03
端末でomp cliを起動するとTUI画面が開き、ファイル編集・grep検索・LSPリネームなどのツール呼び出しをエージェントに指示できます。
- STEP 04
コード編集を依頼すると`replace block N:`形式のハッシュアンカー編集が実行され、対象ブロックの行範囲だけが書き換えられる様子を確認できます。
- STEP 05
`omp completions zsh`などを実行すると、実際のコマンド・フラグ情報から補完スクリプトが生成され、シェルに読み込めます。
- STEP 06
Pythonツールでtool.readを使ってCSVを読み込み、続けてJavaScript側でグラフを描くという一連の作業をセルを移動せずに行えます(README記載の例)。
導入後には、コード編集をブロック単位で正確に当てるエージェント、LSP・DAP連携による診断情報、永続Python・JSワーカーによるコード実行、60以上のプロバイダー切り替え、自動生成されるシェル補完が手に入ります。単一バイナリの配布形態で、curlスクリプト・Homebrew・bun・Nix・miseなど複数の導入経路が用意されています。
実際にAPIキーとプロバイダー契約が必要で、無料では動作確認できません。
Rustネイティブアドオンのビルドにはcargo・napi-rs・Bazelなど重い依存があり、ソースからのビルドは簡単ではありません。
ベンチマーク数値(Grok Code Fast 1など)は開発者のブログ記事に基づく自己申告で、第三者検証は資料からは確認できません。
本レビューはREADME・ソース・マニフェストに基づく静的分析であり、実際の対話品質やレイテンシは検証していません。
端末でAIエージェントを使い、コード編集・LSP・Python実行・複数プロバイダー切り替えを一本化したい開発者に向いています。Cargoワークスペース、ゴールデンフィクスチャ付きテスト、BazelとNixの両対応CIなど、エンジニアリングの厚みは資料から確認できます。一方でAPIキー契約やネイティブビルドの重さは避けられず、導入コストは軽くありません。本レビューはREADMEとソースの記述に基づく判断であり、実際の対話体験そのものまでは保証しません。