<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Terminal Tools on KnightLiブログ</title>
        <link>https://knightli.com/ja/tags/terminal-tools/</link>
        <description>Recent content in Terminal Tools on KnightLiブログ</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>ja</language>
        <lastBuildDate>Sat, 23 May 2026 19:02:20 +0800</lastBuildDate><atom:link href="https://knightli.com/ja/tags/terminal-tools/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>oh-my-pi とは？ターミナル、IDE、デバッガをつなぐ AI コーディングアシスタント</title>
        <link>https://knightli.com/ja/2026/05/23/oh-my-pi-ai-coding-agent-terminal-ide-lsp-debugger/</link>
        <pubDate>Sat, 23 May 2026 19:02:20 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/23/oh-my-pi-ai-coding-agent-terminal-ide-lsp-debugger/</guid>
        <description>&lt;p&gt;&lt;code&gt;oh-my-pi&lt;/code&gt; は、ターミナルとエディタ向けの AI Coding Agent です。Mario Zechner の &lt;code&gt;Pi&lt;/code&gt; プロジェクトをもとにしたフォークで、&lt;code&gt;can1357&lt;/code&gt; によって拡張されています。目的は単なるコマンドラインのチャット画面を作ることではなく、ファイル読み取り、コード検索、構造化編集、LSP、デバッガ、ブラウザ、サブエージェント、複数モデルプロバイダをひとつのコーディングワークフローに接続することです。&lt;/p&gt;
&lt;p&gt;README を見ると、これはシンプルなアシスタントというより、AI コーディングのためのツール基盤に近いものです。ターミナルで対話的に使えるだけでなく、ACP 経由でエディタに接続したり、SDK 経由で Node プロジェクトに組み込んだりできます。Claude Code、Codex CLI、Cline、Cursor などをすでに使っている人にとって、&lt;code&gt;oh-my-pi&lt;/code&gt; の面白さは、外部ツールに分散しがちな機能をひとつの内蔵ツール面にまとめている点にあります。&lt;/p&gt;
&lt;h2 id=&#34;何を解決しようとしているのか&#34;&gt;何を解決しようとしているのか
&lt;/h2&gt;&lt;p&gt;多くの AI コーディングツールの弱点は、モデルそのものではなく、その周辺のツールインターフェースにあります。モデルがコードを変更したくても、粗い全文読み取り、壊れやすい文字列置換、一回限りの shell しか使えない場合、失敗率はツールチェーンによって大きくなります。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;oh-my-pi&lt;/code&gt; は、こうした摩擦を減らそうとしています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ファイル読み取りでは、全文をそのままコンテキストに入れるのではなく、構造化された要約を優先します。&lt;/li&gt;
&lt;li&gt;search、glob、find、シンタックスハイライト、token 計数などを可能な範囲でネイティブ実装し、外部コマンドへの依存を減らします。&lt;/li&gt;
&lt;li&gt;コード書き込みでは LSP を利用し、リネーム、参照検索、ファイル移動を IDE の動作に近づけます。&lt;/li&gt;
&lt;li&gt;デバッグでは &lt;code&gt;lldb&lt;/code&gt;、&lt;code&gt;dlv&lt;/code&gt;、&lt;code&gt;debugpy&lt;/code&gt; などの DAP ツールを使い、ログと推測だけに頼らない流れにします。&lt;/li&gt;
&lt;li&gt;複雑なタスクはサブエージェントに分割し、構造化された結果として返せます。&lt;/li&gt;
&lt;li&gt;編集操作では内容アンカーとプレビューを使い、誤った patch が直接ディスクに反映される可能性を下げます。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり重視しているのは「モデルが答えられるか」ではなく、「モデルが実際のコード変更を安定して完了できるか」です。&lt;/p&gt;
&lt;h2 id=&#34;インストール方法&#34;&gt;インストール方法
&lt;/h2&gt;&lt;p&gt;プロジェクトはいくつかのインストール方法を提供しています。macOS と Linux ではインストールスクリプトを使えます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://omp.sh/install &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Bun を使う場合、README では npm パッケージのグローバルインストールが推奨されています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bun install -g @oh-my-pi/pi-coding-agent
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Windows PowerShell では次のコマンドを使えます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;irm &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;https&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;//&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;omp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sh&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;install&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;ps1&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;iex
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;README では &lt;code&gt;mise&lt;/code&gt; によるバージョン固定にも触れています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mise use -g github:can1357/oh-my-pi
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;インストール前に Bun のバージョン要件を確認しておきましょう。README では macOS、Linux、Windows が対象とされ、&lt;code&gt;bun &amp;gt;= 1.3.14&lt;/code&gt; が必要とされています。&lt;/p&gt;
&lt;h2 id=&#34;注目したい機能&#34;&gt;注目したい機能
&lt;/h2&gt;&lt;h3 id=&#34;1-ツール呼び出しが-shell-だけではない&#34;&gt;1. ツール呼び出しが shell だけではない
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;oh-my-pi&lt;/code&gt; には、ファイル読み取り、検索、書き込み、編集、AST 編集、ブラウザ、タスク分割、デバッグ、LSP などのツールが内蔵されています。README では 32 個の内蔵ツール、13 個の LSP 操作、27 個の DAP 操作に触れています。&lt;/p&gt;
&lt;p&gt;そのため、Agent はすべてをコマンドライン出力として扱う必要がありません。参照検索は LSP を使えますし、PR や issue は統一されたファイル風インターフェースで読めます。Web ページや PDF も、リンク構造を保った Markdown に変換してからモデルに渡せます。&lt;/p&gt;
&lt;h3 id=&#34;2-lsp-統合は実際のコードベースで効く&#34;&gt;2. LSP 統合は実際のコードベースで効く
&lt;/h3&gt;&lt;p&gt;大きなプロジェクトでは、リネームやファイル移動の際に re-export、エイリアス import、barrel file、ディレクトリをまたぐ参照を漏らしがちです。&lt;code&gt;oh-my-pi&lt;/code&gt; の README は、書き込み経路が LSP と連携できることを強調しています。たとえばファイルリネームは &lt;code&gt;workspace/willRenameFiles&lt;/code&gt; を通るため、編集が IDE の意味的操作に近づきます。&lt;/p&gt;
&lt;p&gt;これは TypeScript、Rust、Go、Python などの日常的なリファクタリングで役立ちます。特に、手で直せるものの参照漏れが起きやすい場面に向いています。&lt;/p&gt;
&lt;h3 id=&#34;3-デバッガが第一級のツールになる&#34;&gt;3. デバッガが第一級のツールになる
&lt;/h3&gt;&lt;p&gt;多くの AI コーディングフローでは、クラッシュに遭遇するとログを追加し、再実行し、出力を読むという流れにとどまります。&lt;code&gt;oh-my-pi&lt;/code&gt; は DAP デバッガをツール面に接続します。README では C プログラムに &lt;code&gt;lldb&lt;/code&gt;、Go サービスに &lt;code&gt;dlv&lt;/code&gt;、Python プロセスに &lt;code&gt;debugpy&lt;/code&gt; を使う例が紹介されています。&lt;/p&gt;
&lt;p&gt;これにより、Agent のバグ対応は変わります。プロセスを一時停止し、スタックフレームを見て、ローカル変数を読み、そのうえで次の手を決められるようになります。&lt;/p&gt;
&lt;h3 id=&#34;4-hashline-編集で-patch-失敗を減らす&#34;&gt;4. Hashline 編集で patch 失敗を減らす
&lt;/h3&gt;&lt;p&gt;プロジェクトが強調する &lt;code&gt;Hashline&lt;/code&gt; は、内容アンカーに基づく編集方式です。モデルが大きな diff を何度も出すのではなく、変更したい内容のアンカーを指せるようにします。これにより、空白、古いコンテキスト、文字列マッチ失敗による編集エラーを減らせます。&lt;/p&gt;
&lt;p&gt;Agent ツールにとって、この仕組みは重要です。モデルが強くても、書き込みインターフェースが何度も失敗するなら、体験は結局リトライだらけになります。&lt;/p&gt;
&lt;h3 id=&#34;5-サブエージェントとワークスペース分離&#34;&gt;5. サブエージェントとワークスペース分離
&lt;/h3&gt;&lt;p&gt;README では &lt;code&gt;task&lt;/code&gt; サブエージェント機能が紹介されています。ひとつのタスクを複数の隔離された worker に分割し、結果を構造化オブジェクトとして返せます。プロジェクトには、並列タスク、分岐探索、編集の衝突回避に使うワークスペース分離の実装も含まれています。&lt;/p&gt;
&lt;p&gt;これはコードレビュー、移行、まとめての修正、テスト調査に向いています。価値は単に「並列で速い」ことだけではなく、探索経路ごとのコンテキストと変更をきれいに分けられる点にもあります。&lt;/p&gt;
&lt;h3 id=&#34;6-既存のルールと設定を引き継げる&#34;&gt;6. 既存のルールと設定を引き継げる
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;oh-my-pi&lt;/code&gt; は初回実行時に、他のツールが残したルールや設定を読み取れます。対象には &lt;code&gt;.claude&lt;/code&gt;、&lt;code&gt;.cursor&lt;/code&gt;、&lt;code&gt;.windsurf&lt;/code&gt;、&lt;code&gt;.gemini&lt;/code&gt;、&lt;code&gt;.codex&lt;/code&gt;、&lt;code&gt;.cline&lt;/code&gt;、&lt;code&gt;.github/copilot&lt;/code&gt;、&lt;code&gt;.vscode&lt;/code&gt; などが含まれます。&lt;/p&gt;
&lt;p&gt;これは実用的です。多くのチームはすでに複数の AI ツール向けにルールを書いています。新しいツールごとに移行し直すのは負担が大きいため、&lt;code&gt;oh-my-pi&lt;/code&gt; は既存のコンテキストをできるだけ再利用しようとします。&lt;/p&gt;
&lt;h2 id=&#34;4-つの入口&#34;&gt;4 つの入口
&lt;/h2&gt;&lt;p&gt;プロジェクトには主に 4 種類の使い方があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;対話型 TUI：ターミナルで &lt;code&gt;omp&lt;/code&gt; を直接実行します。&lt;/li&gt;
&lt;li&gt;ワンショットコマンド：&lt;code&gt;omp -p&lt;/code&gt; で単発の prompt を送ります。&lt;/li&gt;
&lt;li&gt;Node SDK：&lt;code&gt;@oh-my-pi/pi-coding-agent&lt;/code&gt; を使って Node や TypeScript プロジェクトに組み込みます。&lt;/li&gt;
&lt;li&gt;RPC / ACP：stdio または Agent Client Protocol 経由で、他のプログラムやエディタに接続します。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり、個人のターミナル利用だけでなく、IDE、プラグイン、自動化基盤、社内ツールへの統合も想定されています。&lt;/p&gt;
&lt;h2 id=&#34;誰に向いているか&#34;&gt;誰に向いているか
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;oh-my-pi&lt;/code&gt; は次のような人に向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ターミナルでコード変更、デバッグ、レビューをよく行う人。&lt;/li&gt;
&lt;li&gt;AI Coding Agent を使っているが、ファイル読み取り、patch、検索、デバッグの安定性に不満がある人。&lt;/li&gt;
&lt;li&gt;Agent をエディタ、RPC、Node サービスに接続したい開発者。&lt;/li&gt;
&lt;li&gt;ひとつのツールで複数モデルや複数プロバイダを切り替えたい人。&lt;/li&gt;
&lt;li&gt;LSP、DAP、AST 編集、サブエージェントなどの基盤機能に興味があるツール開発者。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ただし、すぐ使えるチャット型のコードアシスタントだけが欲しい場合は、学習コストが高く感じられるかもしれません。ツールチェーンを理解し、Agent を設定可能な開発環境として扱いたい人に向いています。&lt;/p&gt;
&lt;h2 id=&#34;使うときの注意点&#34;&gt;使うときの注意点
&lt;/h2&gt;&lt;p&gt;第一に、&lt;code&gt;oh-my-pi&lt;/code&gt; はまだ速いペースで進化しているオープンソースプロジェクトです。コミットは頻繁で、issue や PR も多いため、インストール方法や使い方は変わる可能性があります。&lt;/p&gt;
&lt;p&gt;第二に、体験はローカル環境に大きく左右されます。LSP、デバッガ、Bun、モデルプロバイダの認証、ターミナル環境、Windows と Unix の違いが影響します。&lt;/p&gt;
&lt;p&gt;第三に、内蔵ツールが多いからといって、すべての場面で全部を有効にすべきではありません。実際にはタスクに必要なツールを選び、ルール、権限、ワークスペース境界を明確にするほうが安全です。&lt;/p&gt;
&lt;p&gt;第四に、AI Agent はコードを書けますが、誤って変更することもあります。プレビューや内容アンカー編集があっても、重要なプロジェクトではバージョン管理、テスト、人間によるレビューが必要です。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;oh-my-pi&lt;/code&gt; の面白さは、またひとつ AI ターミナルシェルが増えたことではありません。AI コーディングで足を引っ張りがちなツール層、つまりファイル読み取り、検索、編集、LSP、デバッグ、ブラウザ、サブエージェント、SDK をひとつの Agent ワークフローに整理している点です。&lt;/p&gt;
&lt;p&gt;AI コーディング基盤に関心がある人や、複数の Coding Agent の方向性を比較したい開発者に向いています。現在の AI コーディングツールの競争は、モデルの回答品質だけではありません。モデルを実際のコードベース、実際のデバッグフロー、実際のチームルールに安定して接続できるかが問われています。&lt;code&gt;oh-my-pi&lt;/code&gt; は、その方向にかなり踏み込んだオープンソース実装です。&lt;/p&gt;
&lt;p&gt;参考資料：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GitHub プロジェクト：&lt;a class=&#34;link&#34; href=&#34;https://github.com/can1357/oh-my-pi&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/can1357/oh-my-pi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;公式サイト：&lt;a class=&#34;link&#34; href=&#34;https://omp.sh/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://omp.sh/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;SDK ドキュメント：&lt;a class=&#34;link&#34; href=&#34;https://omp.sh/docs/sdk&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://omp.sh/docs/sdk&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
