Claude CodeやCodexのような高機能なコーディングAgentが増える中で、できるだけ小さなコアから始め、必要な機能だけを後から追加する方向を選んでいるプロジェクトがあります。それがPiです。

Piは、ターミナルで動作するオープンソースのミニマルなコーディングAgentです。標準ではモデルにreadwriteeditbashという4つの基本ツールだけを与え、システムプロンプトやTool定義を小さく保ちながら、必要になった機能はExtensions、Skills、Prompt Templates、Pi Packagesなどで追加できます。

Piを理解するうえで特に重要なのは、初期状態で使うTokenが少ないことと、小さなコアのまま高い拡張性を持っていることです。機能を削っただけのAgentではなく、必要な構成を利用者自身が決められるように設計されています。

2026年8月19日時点で、PiのGitHubリポジトリは93,334スターを集めています。単純にClaude CodeやCodexの代替として見るより、ミニマルな構成から自分向けのAgent環境を組み立てられるツールとして見ると、Piの特徴が分かりやすくなります。

Piは何をするコーディングAgentなのか

Piはコードについて質問するだけのチャットCLIではありません。プロジェクト内のファイルを読み、変更し、コマンドを実行し、その結果を見ながら次の操作を続けるエージェント型の開発ツールです。

リポジトリには、ターミナルで使うpi-coding-agentのほか、Agent RuntimeやLLM API、TUIなど複数のパッケージが含まれています。

パッケージ役割
pi-coding-agentターミナルで使うコーディングAgent CLI
pi-agent-coreTool Callingや状態管理を含むAgent Runtime
pi-aiOpenAI、Anthropic、Googleなどを扱うマルチプロバイダーAPI
pi-tuiターミナルUIライブラリ
pi-telemetryベンダー非依存のTelemetry関連機能

普段「Piを使う」という場合に中心になるのは@earendil-works/pi-coding-agentです。ここから先も、このターミナル型のコーディングAgentを中心に見ていきます。

基本は4つのツールだけ

Piの標準構成でモデルに渡される基本ツールは、readwriteeditbashの4つです。

ツール用途
readファイルを読む
writeファイルを作成・書き込みする
edit既存ファイルを編集する
bashシェルコマンドを実行する

たとえばテスト失敗を修正する仕事なら、Agentはファイルを読み、bashでテストを実行し、エラーを確認してeditで修正し、もう一度テストを実行できます。Git、ripgrep、ビルドツール、テストランナーなどの既存CLIもbash経由で利用できるため、専用Toolを大量に用意しなくても開発作業のかなり広い範囲を扱えます。

完成済みの機能を増やし続けるのではなく、ファイル操作とシェルのような汎用的なプリミティブを渡し、その組み合わせをモデルに任せるのがPiの基本的な考え方です。

少ないTokenで始められる

Piの小ささを把握する目安として、システムプロンプト約200 Token、Tool定義まで含めても1,000 Token未満、Claude Codeは約14,000 Tokenという比較があります。厳密な固定値ではありませんが、Piがどれほど小さな初期コンテキストを狙っているかを掴むには分かりやすい数字です。

システムプロンプトやTool定義のToken数はバージョンや設定によって変わるため、200対14,000を厳密なベンチマークとして見る必要はありません。ここで重要なのは、Piが最初から多くの機能や指示を抱えるのではなく、Agent側の初期コンテキストをできるだけ小さく保つ設計を選んでいることです。

コスト面でも、同じモデルを使ったタスクでPiの成功タスクあたりの平均コストが約0.028ドル、Claude Codeがその約7倍になった例があります。タスクやモデル、キャッシュ条件で結果は変わりますが、Harness側のコンテキストやTool定義もAPI利用量に影響するため、同じモデルを使ってもAgentによってToken消費やコストが変わる可能性があります。

Claude CodeやCodexは、Tool実行、権限制御、実行環境などを製品側で広く用意する方向です。Piは反対に、初期状態を小さく保ち、必要なものだけを後から追加します。この差がPiの「ミニマル」を最も分かりやすく表しています。

ミニマルでも拡張性は高い

Piは標準機能を少なくしていますが、できることを少なく固定しているわけではありません。TypeScriptでExtensionsを書けるため、独自Toolやコマンド、キーボードショートカット、イベント処理、TUI、Git checkpoint、SSHやSandbox上での実行、Permission gateなど、Agentの挙動そのものをかなり広く変更できます。

Sub-agentやPlan mode、MCP Serverとの統合もExtension側で構成できます。つまりPiは「MCPを使えない」「Sub-agentが使えない」というより、それらをコアの標準機能として固定せず、必要な人が追加できるようにしているツールです。作成した拡張はPi Packagesとしてnpmやgit経由で共有できます。

この設計によって、Piは「小さいから機能が少ない」という単純な関係になっていません。初期状態ではTokenや機能を抑えながら、必要になればAgent自体をかなり深いところまで拡張できます。少ないTokenと高い拡張性を両立していることが、Piの特徴です。

自分向けのコーディングAgentを作れることに何の意味があるのか

ここまで見ると、「そこまで自分で構成する必要があるのか。Claude CodeやCodexをそのまま使えばよいのでは」と感じるかもしれません。実際、完成されたAgentをすぐ使いたいだけなら、その方が簡単です。Piの価値が大きくなるのは、Agentの動きそのものを自分やチームの開発環境に合わせたい場合です。

用途が限定されているなら、使わないToolや常時必要ではない指示を最初から持たせず、必要なものだけを読み込む構成にできます。これはPiの少ないTokenという特徴と直接つながっています。何でもできるAgentを先に用意して機能を減らすのではなく、必要最小限から始めるため、コンテキストやTool定義を自分の用途に合わせて管理しやすくなります。

また、一般向けのAgentでは扱いにくい固有のワークフローも組み込めます。たとえばIssueを取得して実装し、特定のテストを実行し、社内ルールに沿ってPR作成まで進める流れや、特定の社内APIだけをToolとして公開する構成も考えられます。ファイル操作、シェル、外部サービス、承認処理をどのようにつなぐかを利用者側で決められるため、単なるUIのカスタマイズではなく、開発フローそのものをAgentへ組み込めるのが利点です。

権限や実行環境についても同じです。特定ディレクトリだけを書き込み可能にする、危険なコマンドには承認を挟む、本番環境へ直接アクセスさせない、といった境界を自分たちの要件に合わせて設計できます。Piには完成済みのPermission Systemが組み込まれていないため、この部分は自動的に用意されるわけではありませんが、ExtensionやSandboxを組み合わせて自分の運用に合わせられます。

つまりPiは、ゼロからAgent Runtimeを実装するほど大変ではない一方で、完成済みのAgentに自分の作業を合わせる必要もありません。Agentを使うだけでなく、Agentの構成自体を自分で管理したい人のための中間地点にあります。

特定のモデルに固定されない

自分で構成できる対象はToolだけではありません。Piでは利用するLLMもAgent本体から切り離して選べます。Anthropic、OpenAI、Azure OpenAI、DeepSeek、Google Gemini、Google Vertex、Amazon Bedrock、Mistral、Groq、Cerebras、xAI、OpenRouter、Hugging Face、Kimi For Coding、MiniMaxなど、多数の接続先を利用できます。

API Keyだけでなく、Anthropic Claude Pro / Max、OpenAI ChatGPT Plus / Pro(Codex)、GitHub Copilotのサブスクリプション認証にも対応しており、モデルは/modelまたはCtrl+Lで切り替えられます。普段はClaudeを使い、別のタスクではOpenAIやGemini系へ切り替える、といった使い分けを同じPiの操作環境で続けられます。

Claude CodeはClaude、CodexはOpenAIのコーディングモデルを中心に設計されています。これに対してPiは、どのモデルを使うかをAgent Harnessから切り離して選べるため、Agentのワークフローを保ったまま接続先を変更しやすいのが特徴です。

AGENTS.mdとAgent Skillsも利用できる

Piはプロジェクトの指示ファイルとしてAGENTS.mdを読み込み、CLAUDE.mdにも対応しています。コーディング規約、よく使うコマンド、変更してはいけない範囲、テスト手順などをすでにAGENTS.mdで管理しているプロジェクトなら、その内容をPiでも利用できます。

SkillsもAgent Skills standardに対応しており、次のような場所から読み込めます。

~/.pi/agent/skills/
~/.agents/skills/
.pi/skills/
.agents/skills/

~/.agents/skills/.agents/skills/を扱えるため、特定のコーディングAgentだけに閉じたSkillとして管理せず、複数のAgentから共有しやすい構成にできます。Claude CodeやCodexなど複数のAgentを併用する場合でも、プロジェクトのルールや手順を共通資産として残しやすくなります。

標準で持たない機能もある

Piは、MCP、Sub-agent、Permission popup、Plan mode、組み込みTODO、Background bashなどを標準搭載していません。これは対応できないという意味ではなく、必要ならExtensionや複数のPiプロセスを使って構成するという方針です。

この設計は、使わない機能まで常時抱えずに済む一方で、必要な機能を利用者自身が選ぶ必要があります。完成済みの機能セットをそのまま使う製品というより、自分のコーディングAgent環境を組み立てるための土台として考える方がPiには合っています。

自由度が高いぶん、実行環境も自分で考える必要がある

Piには、ファイルシステム、プロセス、ネットワーク、CredentialへのアクセスをTool実行ごとに制限する組み込みのPermission Systemがありません。標準ではPiを起動したユーザーとプロセスが持つ権限で動作するため、業務リポジトリやCredentialを扱う場合は、Agentをどの権限で動かすかを利用者側で考える必要があります。

より強い境界が必要な場合は、ContainerやSandboxでPi全体を隔離する構成を取れます。また、Pi PackagesのExtensionsは任意のコードを実行でき、Skillsもモデルに操作を指示できるため、サードパーティPackageを入れる場合はソースを確認した方が安全です。

現在のPiにはProject Trustもありますが、これはプロジェクトローカルの設定やExtensionなどを読み込んでよいかを判断する仕組みです。Claude CodeやCodexのように、個々のTool実行やシェルコマンドをどこまで自動承認するかというPermission / Approvalとは役割が異なります。

自分でAgentの構成を決められることはPiの強みですが、同時に、どこまでの権限を与えるかも自分で決める必要があります。自由度と運用責任はセットで考えた方がよいでしょう。

実際の使い方

現在の@earendil-works/pi-coding-agentはNode.js 22.19.0以上を要求します。npmでは次のコマンドでインストールできます。

npm install -g --ignore-scripts @earendil-works/pi-coding-agent

LinuxやmacOSではインストーラーも用意されています。

curl -fsSL https://pi.dev/install.sh | sh

API Keyを使う場合は、たとえばAnthropicなら環境変数を設定してpiを起動します。

export ANTHROPIC_API_KEY="YOUR_API_KEY"
pi

ChatGPTやClaudeなどの対応するサブスクリプション認証を使う場合は、Piを起動して/loginからProviderを選びます。認証が済めば、プロジェクトのディレクトリでpiを起動し、そのまま自然言語で作業を依頼できます。

失敗しているテストを確認して、原因を特定して修正してください。
修正後にテストを再実行し、結果を報告してください。

このような依頼をすると、Piは必要に応じてファイルを読み、テストコマンドを実行し、コードを編集して再検証します。操作感そのものはClaude CodeやCodex CLIに近く、違いが大きく出るのは、裏側でどのモデルを使うか、どこまで機能を標準搭載するか、どこから自分で拡張するかという部分です。

日常的に使う主なコマンドは次の通りです。

コマンド用途
/loginProvider認証
/modelモデル切り替え
/resume過去セッションの再開
/new新しいセッション
/treeセッション履歴の分岐を移動
/compactコンテキストの圧縮
/settingsThinking levelやThemeなどの設定
/reloadExtensionsやSkillsなどの再読み込み
/quit終了

PiのセッションはJSONLで保存され、履歴をTree構造として扱えます。過去の地点へ戻って別の方向へ作業を続けても、同じセッションファイル内に分岐を保持できるため、試行錯誤の履歴を消さずに残せます。

Pi・Claude Code・Codexの違い

3つともコードを読み、編集し、コマンドを実行できるコーディングAgentですが、設計の重心は異なります。

観点PiClaude CodeCodex
基本思想少ない初期コンテキストから必要な機能を追加するClaudeを使う統合型コーディングAgentOpenAIのコーディングAgentをCLI・IDE・クラウドで利用する
Agentの構成ToolやExtension、モデルなどを利用者側で大きく変更できる製品側の構成を設定・拡張して使う製品側の構成を設定・拡張して使う
モデル複数Provider・複数モデルClaude中心OpenAIのコーディングモデル中心
標準構成read / write / edit / bashを基本にする開発作業向けの機能を製品側で統合Tool実行、Approval、Sandboxなどを製品側で統合
MCP / Sub-agentなど標準では持たずExtensionで構成製品機能や拡張機構として利用Codex側の機能・環境として利用
権限制御Tool実行ごとの組み込みPermissionは持たないPermission設定を持つApprovalとSandboxを持つ
モデル切り替えAgentを変えずにProviderを跨げるClaudeの範囲で利用OpenAIのモデルを利用
カスタマイズTypeScript ExtensionsでAgent自体を広く変更できるHooks、Skills、MCP、設定などで拡張SkillsやSDK、CLI設定などで拡張
向いている使い方小さなAgentを自分やチーム向けに構成したい統合されたClaudeの開発体験を使いたいOpenAIのAgentを端末・IDE・クラウドで一貫して使いたい

Claude CodeやCodexは、必要な機能が最初からまとまっているため、導入後すぐに高機能なAgentとして使いやすいのが利点です。Piはその反対側にあり、初期コンテキストと標準機能を小さく保ちながら、モデル、Tool、Permission、Sub-agentなどを自分の環境に合わせて追加できます。

この違いは「どちらが上位互換か」という話ではありません。完成したコーディングAgentを使いたいのか、それとも小さなコアから自分向けのコーディングAgentを組み立てたいのか、という選択です。

Piが向いている人

Piは、Agentが最初から消費するTokenをできるだけ抑えたい人だけでなく、自分やチームの開発フローそのものをAgentに組み込みたい人に向いています。利用するLLMをタスクごとに切り替えたい、TypeScriptで独自ToolやWorkflowを作りたい、AGENTS.mdやAgent Skillsを複数Agentで共有したい、といった要求があるほどPiの自由度を活かしやすくなります。

一方で、最初から多くの機能が統合され、細かい設定をせずに使える環境を求めるなら、Claude CodeやCodexの方が分かりやすい場面があります。また、Piは標準のPermission Systemを持たないため、業務環境ではSandboxやContainerを含めた実行環境の設計もセットで考える必要があります。

まとめ

Piは、少ないTokenで始められるミニマルなコアと、必要な機能を後から追加できる高い拡張性を組み合わせたコーディングAgentです。readwriteeditbashという4つの基本ツールから始め、TypeScript ExtensionsやSkillsで必要な機能を追加し、利用するモデルも一つに固定しません。

約200 Tokenという初期コンテキストの小ささやClaude Codeとのコスト差は、Piのミニマルさを直感的に捉える材料になります。一方で、Piの価値は単にToken数が少ないことだけではありません。その小さな状態を出発点に、Tool、モデル、Sub-agent、MCP、Permission gate、独自の開発フローまで、自分の用途に合わせて構成できます。

高機能なAgentに自分の作業を合わせるのではなく、必要最小限から始めてAgent側を自分の作業に合わせる。ミニマルさと拡張性を、自分向けのコーディングAgentを作るためにつなげていることがPiの特徴です。