- Piはターミナルベースのミニマルなコーディングエージェントで、ユーザーのワークフローに合わせて拡張できる構造を提供
- TypeScript拡張、スキル、プロンプトテンプレート、テーマを組み合わせて自分だけの開発環境を構築し、それをnpmまたはgitパッケージとして共有可能
- 15以上のAIプロバイダーと数百のモデルをサポートし、セッション中でもモデルを切り替えたり、カスタムモデルを追加したりできる
- セッションはツリー構造の履歴として保存され、以前の地点へ移動したり、HTML・GitHub gistとしてエクスポート可能
- コア機能を最小限に抑え、拡張性重視の設計思想を維持することで、開発者が必要な機能だけを自分で実装したり、パッケージとして追加したりできる
Pi 概要
- Piはターミナルコーディングハーネスであり、ユーザーがワークフローを変えずにツールをカスタマイズできる構造
- 拡張可能な構成要素としてTypeScript拡張、スキル、プロンプトテンプレート、テーマをサポート
- それらを束ねたpiパッケージをnpmまたはgit経由でインストール・共有可能
- 既定設定は強力だが、サブエージェントやプランモードのような機能は含まない
- 4つのモード(インタラクティブ、print/JSON、RPC、SDK)を提供し、clawdbotで実際の統合事例を確認できる
モデルとプロバイダー
- Anthropic, OpenAI, Google, Azure, Bedrock, Mistral, Groq, Cerebras, xAI, Hugging Face, Kimi, MiniMax, OpenRouter, Ollamaなど、15以上のプロバイダーと数百のモデルをサポート
- APIキーまたはOAuthで認証可能
/modelコマンドまたはCtrl+Lでセッション中にモデルを切り替え、Ctrl+Pでお気に入りモデルを巡回
- models.jsonまたは拡張を通じてカスタムモデルを追加可能
セッション管理
- セッションはツリー構造で保存され、
/treeコマンドで過去の地点へ移動可能
- すべての分岐が1つのファイルに保存され、メッセージ種別のフィルタリングとブックマークラベル付けをサポート
/exportでHTMLを書き出し、/shareでGitHub gistへアップロードして共有URLを生成可能
コンテキストエンジニアリング
- 最小限のシステムプロンプトと拡張性により、コンテキストウィンドウを細かく制御可能
- AGENTS.md: プロジェクト指示を開始時に自動読み込み
- SYSTEM.md: プロジェクトごとの既定システムプロンプトを置き換えまたは追加
- Compaction: コンテキスト上限に達した際に以前のメッセージを自動要約し、拡張を通じてトピックベース要約やコード認識要約を実装可能
- Skills: 必要時に読み込まれる機能パッケージで、プロンプトキャッシュを維持しつつ段階的に機能を提供
- Prompt templates:
/nameコマンドで使える拡張可能な再利用プロンプト
- Dynamic context: 拡張を通じてメッセージ挿入、履歴フィルタリング、RAG実装、長期メモリ構築が可能
メッセージキューイング
- エージェントが作業中でもメッセージを送信可能
Enter: 現在のツール実行後に渡されるステアリングメッセージ
Alt+Enter: 作業完了後に渡されるフォローアップメッセージ
拡張構造
- Piは**機能ではなくプリミティブ(Primitives)**を中心に設計されており、ユーザーが自ら機能を実装できる
- 拡張はTypeScriptモジュールの形で、ツール、コマンド、ショートカット、イベント、TUI全体へアクセス可能
- 例となる拡張: サブエージェント、プランモード、権限ゲート、パス保護、SSH実行、サンドボックス化、MCP統合、カスタムエディタ、オーバーレイなど
- 「Yes, Doom runs.」という例のように、ゲームオーバーレイ拡張も存在
- 自分で実装したくなければ、piパッケージのインストールで機能を追加可能
- 50以上の拡張例がGitHubで公開されている
パッケージ管理
- 拡張、スキル、プロンプト、テーマをパッケージとしてバンドルし、npmまたはgitからインストール可能
- npm検索語
pi-packageまたはDiscordチャンネルでパッケージの探索と共有が可能
統合モード
- Interactive: 完全なTUI環境
- Print/JSON: スクリプト用の
pi -p "query"、イベントストリーム用の--mode json
- RPC: stdin/stdoutベースのJSONプロトコルで非Node環境との統合をサポート
- SDK: アプリケーション内に埋め込み可能で、clawdbotに実運用例がある
設計思想
- Piは拡張性を最大化するためにコアを最小化し、ユーザー自身がワークフローを定義できるよう設計されている
- MCP、サブエージェント、権限ポップアップ、プランモード、組み込みTODO、バックグラウンドbash機能は含まない
- その代わり、拡張、スキル、パッケージを通じて同等の機能を実装したり、外部ツールと連携したりできる
- tmuxによる並列実行と監視をサポート
- このアプローチにより、ユーザー主導の開発環境構築が可能になる
- 全体の思想は関連するブログ記事でさらに説明されている
2件のコメント
pi がとても気に入っています
Hacker Newsのコメント
私にとってPiと**「claw」現象が興味深いのは、これがオープンソースの未来を示しているからだ
これからは機能要望やPRを送る代わりに、コーディングエージェントに機能追加の方法を教えるskillファイルをダウンロードする時代になる
ソフトウェアはもはや固定された成果物ではなく、ユーザーごとに異なる生きたツール**になる
こうした新しい協業パラダイムの中で、どんなツーリングが登場するのか気になる
今のソフトウェアは、ユーザーが環境を制御できないように作られていて、疎外感を与える
しかし、パーソナライズされ、安価で柔軟なソフトウェアは、本当の所有感を与えてくれるはずだ
以前はLinuxデスクトップがそうした自由を与えてくれたが、これからは誰もがその恩恵を受けられそうだ
私はこの未来を楽観的に見ている
これからは極度にパーソナライズされたソフトウェアが増えていく気がする — 特定の個人や少人数のグループにしか理解できないレベルで
私も最近Claudeを使って、自分と数人しか使わないツールをたくさん作った
たとえばDnD日程アプリ、ネタバレなしのFormula Eニュース確認ツール、クライミング協同組合の投票サイトなどだ
以前ならこういうものを作る理由がなかったが、今は可能になった
関連する文章は Releasing Software Now にまとめてある
大企業や政府が、このような一貫性のないシステムを許すはずがない
むしろより悪いツールが出てくる気がする
私はOpenCodeに慣れているので、個人用AIワークスペースとして使ってみようか考えている
Piはエコシステムが小さいが、柔軟性と拡張性はより大きく、コミュニティの熱量も感じる
OpenCodeの代わりにPiを使ったほうがよいのか、そしてどんなUIオプションがあるのか気になる
OpenCodeを.mdファイルベースで文章作成や整理に使ってみたが、かなりしっくりきた
今はこの作業にもっと適した新しいハーネスを探している
これは最近の私のお気に入りの**ハーネス(harness)**だ
自分で拡張できるので効率が高く、vibesプロジェクトに統合した
ACPよりずっと速い
私は汎用エージェント相互作用プロトコルを探していて、ACPがその候補だった
しかしOpenCodeでさえUIではACPを使っていないのを見ると、何か問題があるように思える
代わりになるより良い選択肢があるのかも知りたい
Piを数日でも使った人で、日常使いしなくなった人を見たことがない
自分好みにツールをセットアップできる自由を味わうと、もう戻れなくなる
その上に素晴らしい拡張機能も作れる
Piは拡張性は面白いが、実際の作業品質は物足りなかった
なぜわざわざターミナルアプリでコーディングする必要があるのか理解できない
IDE拡張でも同じことをもっと上手くできるし、VSCodeでもウィンドウ配置をそのまま復元できる
まるでテキストチャットで同僚の開発者に指示している感覚だ
たとえばサーバー保守プログラムをClaudeに任せておいて、自分は別のことをし、あとで結果だけ確認する
テストが通るなら、コードがどうなっているかは重要ではない
実際、15分ほどの能動的な作業だけで複数の仕事を並行できた
私はEmacs用のpi-coding-agentパッケージでPiを使っている
RPCモードで入出力用のMarkdownバッファを作るので、他のTUIよりずっと快適だ
イシュートラッカー連携も簡単にできたし、
readとwriteコマンドをEmacsバッファベースで再定義したeditコマンドもEmacsのtree-sitterクエリを活用して改善してみたいさらに
emacs_evalコマンドでEWW経由のドキュメント閲覧も可能にしたreadとwriteをEmacsバッファにどうマッピングしたのか気になる参考までに、Pi Emacsモードは ここからインストール可能 だ
read、write、edit呼び出しの結果から、そのファイルをすぐ開ける機能も追加中だ近いうちにPiのセッションおよびツリーブラウジングとMagit連携もサポートする予定だ
私はPiから始めて、ここ2週間はoh-my-piを使っている
oh-my-piリポジトリは、Piの全部入り版だ
私も既存プロジェクトを複製して、別の名前で出してみようかと思う
たとえば「Waterfox — 最小限のウェブ消費者」みたいな感じで
事前構成済みのPiバージョン: oh-my-pi
アプリのように安全にインストール・テストできる隔離環境が必要だ
codex/claude code → opencode → pi → oh-my-pi の順で移ってきた
いつか自分で試してみようと思う
Piの魅力は軽さと自律性なのに、oh-my-piは機能が多く、かえってOpenCodeに近い重さを感じさせる
Piは本当に素晴らしい設計判断をしている
MarioとArminに賛辞を送りたい — 良いセンスは結局表に出るものだ