12 ポイント 投稿者 GN⁺ 2026-02-25 | 2件のコメント | WhatsAppで共有
  • 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からインストール可能
    • 例:
      $ pi install npm:@foo/pi-tools  
      $ pi install git:github.com/badlogic/pi-doom  
      
    • バージョン固定(@1.2.3または@tag)、pi updateで一括更新、pi listで一覧確認、pi configで設定可能
    • pi -eコマンドでインストールせずにテスト可能
  • 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件のコメント

 
qodot 2026-02-26

pi がとても気に入っています

 
GN⁺ 2026-02-25
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で速度差が出る理由が気になる
      私は汎用エージェント相互作用プロトコルを探していて、ACPがその候補だった
      しかしOpenCodeでさえUIではACPを使っていないのを見ると、何か問題があるように思える
      代わりになるより良い選択肢があるのかも知りたい
    • どんなハーネスと比較したのか気になる
    • これ本当に気に入った! 自分で作ろうとしていたものが、すでに実装されている感じだ
    • 「ハーネス」ってどういう意味? 単なるコーディングエージェントではないのか?
  • Piを数日でも使った人で、日常使いしなくなった人を見たことがない
    自分好みにツールをセットアップできる自由を味わうと、もう戻れなくなる
    その上に素晴らしい拡張機能も作れる

    • 聞くところによると、Piはコーディングエージェント界のNeovimあるいはEmacsらしい
    • うれしい話ではあるが、私はPiよりもClaude CLIとOpenCodeのほうがずっと生産的だった
      Piは拡張性は面白いが、実際の作業品質は物足りなかった
    • Claude Codeにはない自作機能のうち、どれがいちばん気に入っているのか気になる
  • なぜわざわざターミナルアプリでコーディングする必要があるのか理解できない
    IDE拡張でも同じことをもっと上手くできるし、VSCodeでもウィンドウ配置をそのまま復元できる

    • CLIエージェントを使うなら、私にはIDEはまったく必要ない
      まるでテキストチャットで同僚の開発者に指示している感覚だ
      たとえばサーバー保守プログラムをClaudeに任せておいて、自分は別のことをし、あとで結果だけ確認する
      テストが通るなら、コードがどうなっているかは重要ではない
      実際、15分ほどの能動的な作業だけで複数の仕事を並行できた
  • 私はEmacs用のpi-coding-agentパッケージでPiを使っている
    RPCモードで入出力用のMarkdownバッファを作るので、他のTUIよりずっと快適だ
    イシュートラッカー連携も簡単にできたし、readwriteコマンドをEmacsバッファベースで再定義した
    editコマンドもEmacsのtree-sitterクエリを活用して改善してみたい
    さらにemacs_evalコマンドでEWW経由のドキュメント閲覧も可能にした

    • すごい! readwriteをEmacsバッファにどうマッピングしたのか気になる
      参考までに、Pi Emacsモードは ここからインストール可能
      readwriteedit呼び出しの結果から、そのファイルをすぐ開ける機能も追加中だ
      近いうちにPiのセッションおよびツリーブラウジングとMagit連携もサポートする予定だ
  • 私はPiから始めて、ここ2週間はoh-my-piを使っている
    oh-my-piリポジトリは、Piの全部入り版

    • oh-my-piを使ってみた感想が気になる
    • サンドボックス環境で動かしているのか、あるいは隔離機能があるのかも知りたい
  • 私も既存プロジェクトを複製して、別の名前で出してみようかと思う
    たとえば「Waterfox — 最小限のウェブ消費者」みたいな感じで

  • 事前構成済みのPiバージョン: oh-my-pi

    • このフォークは素晴らしいが、どこかのリポジトリのツールを無差別に追加するのはセキュリティ上危険に見える
      アプリのように安全にインストール・テストできる隔離環境が必要だ
    • 私はこのフォークの熱烈なファン
      codex/claude code → opencode → pi → oh-my-pi の順で移ってきた
    • 素晴らしいフォークだ! 私も貢献しようとしたが、コミュニティはやや閉鎖的に感じた
    • oh-my-piのウェブツールを、通常のPiプラグインとして分離して使えると良さそうだ
      いつか自分で試してみようと思う
    • ただ、これはPiの本質を見失っている気もする
      Piの魅力は軽さと自律性なのに、oh-my-piは機能が多く、かえってOpenCodeに近い重さを感じさせる
  • Piは本当に素晴らしい設計判断をしている
    MarioとArminに賛辞を送りたい — 良いセンスは結局表に出るものだ

    • でも、なぜこれをJavaScriptで実装したのかは理解できない