Pi Agent Harness: LLM API とコーディング CLI を分離して組み立てる TypeScript モノレポ
Pi は、プロバイダー中立の LLM API、エージェント ループ、ターミナル インターフェイス、およびコーディング CLI を TypeScript ツールキットに組み合わせています。
ひと目でわかる
- これは何?
- pi-ai、pi-agent-core、pi-coding-agent などを分け、複数プロバイダー、ツール呼び出し、状態管理、端末 UI を組み合わせるエージェント基盤です。
- 誰に向いている?
- Pi Agent Harness: LLM API とコーディング CLI を分離して組み立てる TypeScript モノレポ は、README に記載された機能と前提が一致する利用者に候補になります。Pi は MIT ライセンスの TypeScript モノレポであり、README はパッケージ構成、コンテナ化の選択肢、ビルド手順、サプライチェーン管理に重点を置いている。
- 商用利用できる?
- できます。MIT は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
- 今もメンテナンスされている?
- されています。直近 1 日以内に新しいコミットがあります。
- 何の言語で書かれている?
- 主に TypeScript です(GitHub の言語統計による)。
回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。
オープンソース詳細解説
Pi Agent Harness、Pi を構成するパッケージ
README は、このリポジトリを Pi エージェントハーネスプロジェクトの本拠地と説明し、自己拡張可能なコーディングエージェントを中心に置いている。公開されているパッケージは 3 つある。@earendil-works/pi-ai は OpenAI、Anthropic、Google などをカバーする統一マルチプロバイダー LLM API、@earendil-works/pi-agent-core はツール呼び出しと状態管理を扱うエージェントランタイム、@earendil-works/pi-coding-agent は対話型コーディングエージェント CLI である。4 つ目のパッケージ @earendil-works/pi-tui は、差分レンダリングを備えたターミナル UI ライブラリを提供する。README にはこれらのパッケージの API 詳細や使用例は含まれておらず、pi.dev/docs/latest のドキュメントかパッケージのソースで確認する必要がある。
Pi Agent Harness、権限はホストに委ねられる
README は Pi が何をしないかを明確に述べている。ファイルシステム、プロセス、ネットワーク、認証情報へのアクセスを制限する組み込みの権限システムはない。デフォルトでは、エージェントは起動したユーザーとプロセスの権限で動作する。より強い境界が必要な場合はコンテナ化またはサンドボックス化を指示しており、3 つのパターンを文書化している。Gondolin 拡張は pi とプロバイダー認証をホストに置いたまま、組み込みツールをローカルの Linux マイクロ VM にルーティングする。通常の Docker は pi プロセス全体をローカルコンテナで実行して単純な隔離を行う。OpenShell はポリシー制御のサンドボックスで pi プロセス全体を実行する。README はこれらのパターンのセキュリティ特性については主張していない。
Pi Agent Harness、開発スクリプト
モノレポでの開発は、ライフサイクルスクリプトをスキップする npm install --ignore-scripts から始め、続いて npm run build を実行する。これはモデルデータを更新して全パッケージをビルドする。npm run build:offline はネットワークなしで既存のモデルデータを使って再ビルドする。npm run check は lint、フォーマット、型チェックを実行する。テストは ./test.sh で実行され、API キーがない場合は LLM 依存のテストをスキップする。./pi-test.sh は任意のディレクトリからソースで pi を実行する。README は使用するテストフレームワークの具体的な名前やディレクトリ構造の詳細には触れていない。
Pi Agent Harness、リリースソースからのバイナリビルド
GitHub リリースには、そのリリースの SHA256SUMS ファイルでカバーされるバージョン付きソースアーカイブが含まれる。README は、アーカイブを展開して ./scripts/build-binaries.sh --offline-model-data --platform linux-x64 --out "$PWD/out" を実行することでスタンドアロンバイナリをビルドする手順を記録している。--offline-model-data フラグは、ソースアーカイブに含まれる生成済みプロバイダーモデルデータを使ってビルドし、ライブのプロバイダーカタログから更新しない。スクリプトは依存関係のインストール、モノレポのビルド、Bun 実行ファイルのコンパイル、ランタイム資産のステージングを行う。依存関係を別途提供するパッケージメンテナーは --skip-install --skip-deps を渡せる。README は他の対応プラットフォームやステージングされる資産の正確な内容を列挙していない。
Pi Agent Harness、サプライチェーン強化の対策
このプロジェクトは npm の依存関係変更をレビュー対象のコード変更として扱う。直接の外部依存関係は正確なバージョンに固定され、内部ワークスペースパッケージはバージョン範囲のままである。.npmrc は save-exact=true と min-release-age=2 を設定し、npm 解決中に当日リリースの依存関係を避ける。package-lock.json が依存関係の基準となり、pre-commit フックが PI_ALLOW_LOCKFILE_CHANGE=1 が設定されていない限り誤ってロックファイルをコミットするのを防ぐ。npm run check は固定された直接依存関係、ネイティブ TypeScript インポート互換性、生成された coding-agent の shrinkwrap を検証する。公開 CLI パッケージには npm-shrinkwrap.json が含まれ、npm ユーザー向けに推移的依存関係を固定する。CI は npm ci --ignore-scripts でインストールし、スケジュールされたワークフローが npm audit --omit=dev と npm audit signatures --omit=dev を実行する。shrinkwrap 生成には依存関係ライフサイクルスクリプトの明示的な許可リストがあり、新しいライフサイクルスクリプトの依存関係はレビューされるまでチェックに失敗する。README は監査ワークフローの実行頻度を明記していない。
Pi Agent Harness、貢献フローとセッション共有
新しい貢献者からの issue とプルリクエストはデフォルトで自動的に閉じられ、メンテナーが自動クローズされた issue を毎日レビューする。貢献ガイドラインは CONTRIBUTING.md にあり、AGENTS.md には人間とエージェントの両方のためのプロジェクト固有のルールが含まれる。長期的な計画は rfc.earendil.com/keyword/pi/ の RFC で追跡される。README はユーザーにオープンソースのコーディングエージェントセッションの共有を呼びかけており、セッション公開のツールは badlogic/pi-share-hf で、Hugging Face アカウント、Hugging Face CLI、pi-share-hf 自体が必要である。README は公開セッションの例へのリンクを掲載しているが、セッションデータの形式は説明していない。
Pi Agent Harness、ライセンス
Pi は MIT ライセンスで提供され、著作権は 2025 年の Mario Zechner に帰属する。このライセンスは、ソフトウェアのコピーを使用、複製、変更、統合、公開、配布、再許諾、販売する権利を付与し、すべてのコピーまたは実質的な部分に著作権表示と許可表示を含めることを条件とする。ソフトウェアは現状のまま提供され、いかなる種類の保証もなく、ライセンス文書はサポート、セキュリティ保証、保守の約束については何も述べていない。README は pi.dev のドキュメントが同じライセンスに該当するかどうかにも触れていない。
編集部の結論
Pi Agent Harness: LLM API とコーディング CLI を分離して組み立てる TypeScript モノレポ は、README に記載された機能と前提が一致する利用者に候補になります。Pi は MIT ライセンスの TypeScript モノレポであり、README はパッケージ構成、コンテナ化の選択肢、ビルド手順、サプライチェーン管理に重点を置いている。API の詳細、対応プラットフォーム、サンドボックスパターンのセキュリティ特性は README には記載されておらず、pi.dev のドキュメントで確認する必要がある。 導入前には、README にある earendil works 固有の初期コマンドを隔離環境で実行し、生成物、ログ、権限、対応版を確認してください。
コミュニティノート