svkozak/pi-acp

ACP adapter for pi coding agent

解決する問題

pi-acp は、pi コーディングエージェントを、Zed エディタなど Agent Client Protocol (ACP) をサポートするエディタやクライアントで使用できるようにするアダプタです。pi エージェントの内部 RPC と ACP 標準の間のギャップを埋め、元々ターミナル用に設計されたツールにヘッドレスまたはエディタ統合のエクスペリエンスを提供します。

仕組み

このアダプタは、標準入力/出力 (stdio) を介して JSON-RPC 2.0 で ACP クライアントと通信します。pi エージェントを RPC モード (pi --mode rpc) で起動し、クライアントとエージェントの間でリクエストとイベントを変換します。主な変換は次のとおりです。

  • ツール実行: pi ツール呼び出しを ACP の tool_call および tool_call_update イベントにマッピングし、相対ファイルパスを絶対パスに解決して、エディタが追跡できるようにします。
  • ストリーミング: アシスタントの応答を ACP の agent_message_chunk イベントとしてストリーミングします。
  • セッション管理: ACP セッションのロードと作成を pi 独自のセッション永続化ファイルにマッピングします。
  • コンテキスト追跡: usage_update イベントを介して、pi のリアルタイムのコンテキスト使用量とトークン使用量をクライアントに報告します。

対象読者

pi コーディングエージェントを使用しており、別のターミナルウィンドウを使用する代わりに、IDE(特に Zed)に直接統合したい開発者。

ハイライト

  • Zed エディタ統合: セッション履歴、起動情報、ツール位置の表示を完全にサポート。
  • 構造化差分: 行番号を推測し、ファイル編集に対して構造化差分 (oldText/newText) を出力しようとします。
  • スラッシュコマンドサポート: ファイルベースのプロンプト、組み込みコマンド(/compact や /export など)、スキルコマンドをサポート。
  • セッション永続化: 異なる ACP クライアントや pi ターミナルエージェント間でセッションを再開できます。
  • ターミナル認証: ACP レジストリのターミナル認証をサポートし、エージェントのセットアップとログインを処理します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト