can1357/oh-my-pi
ターミナルのAIエージェントに、IDEの言語解析とデバッガを直結する
どういうものか
ターミナルで動く、コードを書くためのAIエージェントだ。Mario Zechner 氏の Pi(pi-mono)から枝分かれしたもので、README は元の Pi に「足りないものを全部入れた」と位置づけている。本体は TypeScript(実行環境は Bun)と Rust で書かれ、ライセンスは MIT。macOS・Linux・Windows で動き、Windows でも WSL を挟まないとしている。
中心にあるのは、IDE が裏で使っている道具を、エージェントに直接持たせるという考え方だ。ファイルを書き換えるたびに言語サーバー(LSP)を通す。たとえばファイルの名前を変えると、そのファイルを読み込んでいる側の記述が、移動の前に書き換わる。不具合を調べるときは、lldb・dlv・debugpy といった本物のデバッガにつないで、1行ずつ進めたり変数の中身を読んだりする。検索やシェルは、ripgrep や bash 互換のシェル(brush)などを Rust の実装として同じプロセスに組み込み、よく使う操作では別のコマンドを立ち上げない。編集は、行の中身から作った目印(ハッシュ)を指して行う方式で、ファイルが途中で変わっていれば、書き込む前にはじく。
周りの仕組みも厚い。モデルは60以上の提供元から選べ、「通常」「安く大量に回す下請け」「じっくり考える」「計画を立てる」といった役割ごとに別のモデルを割り当てられる。作業を分けて並列に動かすサブエージェント(作業場所を分けて動かすこともできる)、別のモデルに毎回の手順を見張らせて注意を差し込ませる「advisor」も入っている。また、初回の起動時に .claude・.cursor・.codex などに置かれたルール・スキル・MCP サーバーの設定を、そのまま読み込む。
どんなときに使うか
名前の変更や不具合の調査まで、エージェントに任せたいとき
ファイルの名前の変更は言語サーバーを通るので、読み込んでいる側の記述もそろえて直る。不具合の調査では、print 文を足して回る代わりにデバッガで止めて中身を見る、という進め方をエージェント自身が取れる。
いまのエージェントの設定を持ったまま、別のものを試したいとき
初回の起動で、Claude Code・Cursor・Codex などが置いたルールやスキル、MCP サーバーの設定を読み込む。README は「移行用のスクリプトは要らない」としている。モデルは API キーのほか、Cursor や GitHub Copilot などの契約を経由してつなぐ方法も用意されている。
注意点
機能がとても多い。 標準で入っている道具だけで30前後あり、ブラウザやデスクトップの操作、画像生成、読み上げまで含む。一部(GitHub 操作、セキュリティ診断、画像生成、読み上げ、記憶まわりなど)は設定で有効にするまで止まっている。小さく単純なエージェントが欲しい人には合わない。
README の性能の数字は、条件が一行ずつしか書かれていない。 モデルごとに「成功率が何倍になった」「出力が何割減った」といった表が載っているが、どんな作業で測ったかといった詳しい条件は作者のブログ記事に回されている。数字をそのまま受け取らず、手元の作業で確かめたい。
ライセンスは MIT。ただし一部は別。 中に取り込んでいるシェルの実装(brush)や、コマンド群の一部は、それぞれの元のライセンスに従うと README にある。組み込んで配る場合は、同梱の第三者ライセンスの一覧も確認しておきたい。
新しく、動きが速い。 リポジトリができたのは2025年の末。プルリクエストは現在「試験的に」誰からでも受け付けていて、以前の推薦制に戻る可能性があると書かれている。