Earendilは2026年10月1日、AIエージェントを動かす実行基盤「Pi 1.0」を正式公開した。外部ツールを接続するMCPと、複数の操作をJavaScriptで組み合わせるCodemodeを取り込み、必要なツールの説明だけを必要になった時点で読み込めるようにした。

本体を小さく保ちながら、利用者の作業に合わせてツールやモデルを組み替えられる設計思想は、正式版でも引き継がれている。AIへ任せる仕事を増やしていくとき、どの情報を読ませ、どの操作を許し、どこまで履歴を残すのかを利用者自身が選べることが、今回の更新を理解する鍵になる。

AD

Pi 1.0で変わる、モデルとツールのつなぎ方

pi-tools-permissions-boundaries.webp

Piは、ターミナル上で動くAIエージェントである。ターミナルとは、文字を入力してコンピューターを操作する画面だ。Piを起動すれば、そこから自然な日本語で仕事を頼める。

ただし、Piそのものが新しい言語モデルというわけではない。接続したモデルが次の行動を考え、Piがファイル操作などのツールを実行し、その結果をモデルへ返す。

この一連のやり取りを管理する仕組みを「ハーネス」と呼ぶ。

たとえば「打ち合わせメモから、決まったことを別のファイルにまとめて」と頼む場合、文章を考えるモデルだけでなく、メモを読むツールと、結果を書き込むツールも必要になる。

Piは会話やツールの実行結果を記録し、次の判断に必要な情報をモデルへ渡す。単に返答を得るチャットから、手元のファイルを使いながら実際の作業を進める道具へと役割が広がる。

標準で有効になっているツールは、ファイルを読むread、コマンドを実行するbash、内容を変更するedit、ファイルへ書き込むwriteの4つだ。

bashを通じて既存の開発ツールを利用できるため、標準ツールの数が少なくても、実行できる作業の幅は広い。一方で、何を実行できるかは、Piを起動したOSや環境にも左右される。

今回加わったMCPは、外部のツールやデータをAIエージェントへ接続するための共通規格である。課題管理サービスや社内資料へ接続すれば、Piが扱える対象を手元のファイル以外にも広げられる。

ただし、ツールを増やすほど、モデルへ渡すツール説明も増える。AIが一度に扱える情報量には上限があり、APIでは入力トークンの量が料金にも影響する。

そこでPiは、必要なツールを検索し、その説明を必要になった時点で読み込む「ツールの遅延読み込み」と、複数の操作をまとめて処理するCodemodeを組み合わせた。

Codemodeでは、モデルがJavaScriptを書いて複数のツールを呼び出し、結果を絞り込んでから会話へ返す。

たとえば複数の課題を取得し、その中から期限の近いものだけを選び、担当者ごとに件数を集計するといった処理が考えられる。大量の取得結果をそのままモデルへ渡し、何度もやり取りする必要を減らせる仕組みだ。

以前のPiは、MCPを本体へ組み込まない方針を取っていた。

Earendilは9月29日の説明で、ツールを見つけて構造化されたデータを組み合わせる実行機構は、MCPだけでなく分類モデルなどにも使えると判断した経緯を明らかにしている。

単に接続先を増やしたのではなく、ツールそのものをどう扱うかという設計を見直したわけだ。

提供時期も分けて考える必要がある。

MCP、Codemode、仮想モデルは9月29日のPi 0.99.0で先行提供され、10月1日に1.0が公開された。

1.0.0の変更履歴では、全画面表示の標準化に加え、標準ツールとCodemodeを有効にしたGPT-5.6へのリクエストが、約5,300トークンから約3,300トークンへ短縮されたと開発元が報告している。

これは、システム指示やツール説明を短くした結果であり、作業全体の料金や正答率を比較した数字ではない。

初めて使うなら、まず「読む」作業から始める

Pi本体はMITライセンスで公開されているが、接続するAIモデルの料金や利用枠は別に発生する。

接続方法には、対応アカウントでの認証、APIキー、ローカルモデルなどがあり、利用できる方法はモデルの提供元や設定によって異なる。

初めて使う場合は、Piが標準で対応している接続先の中から一つを選ぶと、準備の流れを追いやすい。

インストールと起動

macOSとLinuxでは、公式インストーラーを利用できる。次のコマンドは、インストール用スクリプトを取得して実行する。

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

Node.jsがすでに入っている環境では、npmからも導入できる。必要なのはNode.js 22.19以降だ。どちらか一方を選べばよい。

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

公式インストーラーでは依存パッケージのバージョンが固定され、更新にはpi updateを使う。

一方、npmで導入した場合、依存パッケージのバージョンは同じ方法では固定されない。

インストール後は、pi --versionでバージョンを確認する。

これらは1.0系列の現行手順であり、実行すれば必ず1.0.0が入るという意味ではない。

Windows向けには、公式発表で次のコマンドが案内されている。

plaintext
powershell -c "irm https://pi.dev/install.ps1 | iex"

Windows上で直接Piを動かす場合、bashは通常Git Bashを使うため、Git for Windowsが利用できるかも確認しておきたい。

WSLで使う場合は、Linux側へPiをインストールする。普段使うファイルや開発ツールがWindows側とLinux側のどちらにあるかに合わせて選ぶと、パスの扱いを統一しやすい。

最初の作業用フォルダには、機密情報を含まない短いメモをコピーして置く。

たとえばpi-practiceというフォルダを作り、meeting-notes.mdを保存する。

ターミナルでそのフォルダへ移動したら、まずは読み取り用のツールだけに絞ってPiを起動できる。

plaintext
cd pi-practice
pi --no-extensions --no-mcp --tools read,grep,find,ls

この例では拡張機能とMCPを無効にし、モデルが使えるツールを、ファイルの読み取りや検索に必要なものだけに絞っている。

通常の内蔵クラウド接続で試すための構成であり、--no-extensionsを指定すると、llama.cppなどの組み込み拡張も無効になる。

ローカルモデルを使う場合は、その接続に必要な拡張を有効にした構成が必要になる。

また、この設定で制限されるのはモデルが使えるツールであり、読み取り可能なファイルが試用フォルダ内だけに限定されるわけではない。

モデルを接続し、小さな依頼を出す

Piの画面が開いたら、次を入力する。ここからの/で始まるコマンドは、Piの画面内で使う。

plaintext
/login

接続先を選び、画面の案内に従って認証する。

その後、/modelを入力して利用可能なモデルを選ぶ。モデルの思考量は/thinkingで変更できるが、利用できる選択肢はモデルごとに異なる。

認証情報は通常、~/.pi/agent/auth.jsonへ保存される。APIキーをメモや会話に貼り付けるのではなく、用意された認証入力欄を使う。

メモを指定するには@を使う。入力中にファイルを検索できるため、長いパスを覚える必要はない。

たとえば次のように頼める。

plaintext
@meeting-notes.mdを読み、決定事項、担当者、期限を整理してください。
書かれていない担当者や期限は補わず、「未記載」と示してください。
まず画面に結果を出してください。

Piが何を読み、どのような結果を返したかは画面に表示される。

Ctrl+Oでツールの出力を展開でき、Escapeで現在の作業を停止できる。

処理の途中で追加の指示を入力してEnterを押すと、現在の応答や実行中のツール処理が終わった後の進め方に反映される。

すでに完了した操作を取り消す機能ではない点には注意したい。

結果を確認し、ファイルへ保存したくなったらPiを終了し、同じフォルダで通常のツールを有効にした構成へ切り替える。

拡張機能とMCPを無効にしたまま、標準の読み書きやコマンド実行を有効にする例は次のとおりだ。

plaintext
pi --continue --no-extensions --no-mcp --tools read,bash,edit,write

続けて、「確認した決定事項をaction-items.mdへ保存し、元のメモは変更しないでください」と頼む。

--continueは、このフォルダで行った直近の会話を再開するための指定だ。

保存したファイルを開き、元のメモと照合するところまでを最初の作業にすると、文章を正しく読めるかだけでなく、実際のファイル操作まで確認できる。

ただし、通常のPiはツールを使うたびに利用者へ承認を求めるわけではなく、起動したOSユーザーの権限で動作する。

重要な作業では、バックアップやGitで元に戻せる状態を用意しておきたい。

未知のコードや無人実行を扱う場合は、必要なファイルだけを渡したコンテナや仮想マシン内でPi全体を動かす方法もある。

試用フォルダを作っただけでは、ほかのフォルダへのアクセスを防げない。

AD

履歴と手順を残し、自分の作業に合わせる

Piの履歴は、単に会話を続けるためだけのものではない。途中の時点へ戻り、別の進め方を試せる木構造として保存される。

/treeを使えば以前の発言へ戻り、依頼内容を変えて別の枝を作れる。

別のセッションとして分けたい場合は/forkを使う。

たとえばメモの整理を「担当者別」と「期限別」の2通りで試し、それぞれの判断経緯を残せる。

ただし、会話を前の地点へ戻しても、すでに書き換えたファイルまでは元に戻らない。

別案を比較したい場合は、出力先のファイル名を分けるか、Gitなどで変更履歴を管理する必要がある。

会話履歴は判断の記録、ファイルの差分は実際の作業結果として分けて考えると混乱しにくい。

会話が長くなり、モデルが扱える情報量の上限へ近づくと、古い履歴は自動的に要約される。

/compactを使えば手動で要約することもでき、元の会話記録自体は残る。

ただし、次のモデル呼び出しへ渡されるのは、要約された内容と最近の情報になる。

そのため、必ず守らせたい条件を会話の中だけに埋め込むのではなく、作業フォルダのAGENTS.mdに短く記録しておく使い方ができる。

plaintext
# このフォルダでの作業
- メモにない人名や期限を補わない。
- 元資料を変更せず、整理結果は別ファイルへ保存する。
- 日本語で回答し、判断できない点を明示する。

Piは、作業フォルダやその親フォルダなどから、この種の指示を読み込む。

個人共通の設定は~/.pi/agent/、作業ごとの設定は.pi/へ置く。

後者に置いた設定や拡張機能の多くは、そのプロジェクトを信頼すると利用者が判断した後に読み込まれる。

毎回入力する依頼文を短くしたい場合は、プロンプトテンプレートを使う方法が手軽だ。

作業フォルダの.pi/prompts/review.mdへ、たとえば次の内容を保存する。

plaintext
直前に作った整理結果を元資料と比較してください。
担当者、期限、決定事項の追加や抜けを探し、修正が必要な箇所を報告してください。

プロジェクトへの信頼を許可し、通常のPiで/reloadを実行すると、/reviewから同じ依頼を再利用できる。

ファイル名がそのままコマンド名になる仕組みだ。

より長い手順書や参考資料をまとめたい場合は、SKILL.mdを持つスキルを使える。

Piは起動時にスキルの名前と説明だけを読み、実際の作業で必要になったときに詳しい手順を読み込む。

明示的に呼び出す場合は、/skill:名前を使える。

独自のツールや画面内コマンドを追加する段階では、TypeScriptで記述する拡張機能を使う。

拡張機能はPiのプロセス内で実行され、ファイルや認証情報へアクセスできるため、導入するコードは事前に確認したい。

単に指示を再利用するだけで足りる作業を、最初から実行コードへ置き換える必要はない。

MCPを追加するときに分けて考えたい「説明」と「権限」

PiへMCPサーバーを追加すると、そのサーバーが提供するツールを利用できるようになる。

MCPサーバーとは、資料検索や外部サービスの操作を共通形式で提供するプログラムだ。

単に手元のメモを読むだけなら、Piに組み込まれた標準ツールで足りる。

MCPが必要になるのは、Piが標準では持っていない接続先や、そのサービス固有の操作を利用したい場合である。

接続方法を試すには、公式が例として挙げているファイル操作用サーバーを使える。

Node.jsとnpmのnpxが使える環境で、作業フォルダから次を実行する。

plaintext
pi mcp add --local filesystem -- npx -y @modelcontextprotocol/server-filesystem .
pi mcp list
pi

--localは、設定をその作業フォルダの.pi/mcp.jsonへ保存する指定だ。

--より後ろは、実際に起動するサーバーのコマンドを表し、末尾の.は現在のフォルダをサーバーへ渡している。

Pi内の/mcpで接続状態を確認し、必要な信頼確認を行ったうえで、「filesystemのMCPツールを使って、このフォルダのメモ一覧を出して」と頼める。

この例はMCP接続を試すためのもので、Piに組み込まれたファイル操作を置き換えることが目的ではない。

外部サービスへ接続する場合は、それぞれのMCPサーバーが指定するURLや認証方法に従って設定する。

ツールの遅延読み込みは、AIへ渡すツール説明を減らすための仕組みであり、操作権限そのものを制限する機能ではない。

Pi 1.0系列の公式仕様を、「何を制御する仕組みなのか」という観点で整理すると、次の違いがある。

2026年10月6日時点の文書に基づく機能分類であり、安全性を実測して比較したものではない。

設定・仕組み 制御する対象 利用者が区別したいこと
MCPのdirect、deferred、codemode ツール説明を渡す時期と呼び出し方 説明を後から読み込む設定でも、ツール自体は利用できる。hiddenは別で、そのツールへ到達できなくする
CodemodeのJavaScript用サンドボックス スクリプトそのものの実行環境 スクリプトから直接ファイルや通信APIへは触れられないが、呼び出したツールは外部へ作用する
--toolsなどによるツール選択 モデルに利用させるツールの構成 ツールを絞るための設定であり、Pi全体をOSから隔離するものではない
プロジェクトの信頼確認 作業フォルダ由来の設定や拡張機能などの読み込み 信頼を許可しても、ファイルアクセス可能な範囲を制限するわけではない
コンテナ・仮想マシンなどによる隔離 ファイルや認証情報を含むPiの実行範囲 環境内へ渡した情報や接続先は、その環境の中では利用できる

分類の根拠は、PiのMCP公開方法、Codemodeの実行環境、CLIのツール選択、OS権限と隔離の説明である。

モデルへ渡す情報を減らすための設定と、実際にアクセスできる範囲を狭めるための設定は、別々に考える必要がある。

特に--toolsを指定しても、MCP経由のツールが自動的に除外されるわけではない。

読み取りだけを試す起動例で--no-mcpも付けたのはこのためだ。

また、Codemodeで実行したスクリプトが途中で失敗しても、それまでに完了した外部操作は自動では取り消されない。

複数の更新処理をまとめて実行する場合も、どの操作まで完了したかを後から確認できるようにしておきたい。

CodemodeはMCPを使わなくても利用できる。

作業フォルダの.pi/settings.jsonへ次を追加する。

入門用の起動オプションを外してpiで起動し直し、プロジェクトへの信頼確認を行う。

起動中に設定を変更した場合は、/reloadで読み直せる。

plaintext
{
  "defaultTools": ["+codemode"]
}

+は、標準ツールを残したまま追加することを示す。

「Codemodeで複数のファイルを読み、必要な行だけを比較して」と頼めば、複数の操作を組み合わせるJavaScriptはモデル側が作成する。

利用者が最初からJavaScriptを書く必要はない。

ただし、モデルが条件を誤解すれば、絞り込みの段階で必要な行まで除外してしまう可能性がある。

集計結果だけでなく、元になったデータも確認できる状態を残しておきたい。

AD

モデルの費用と、長時間の処理を動かす基盤

Piでは、会話の途中でも/modelを使ってモデルを変更できる。

複雑な設計を考える段階と、文章や書式を整える段階でモデルを使い分けても、同じ会話の流れを引き継いで作業を続けられる。

まず手動でモデルを切り替えて試せば、自分の作業ではどのモデルがどの工程に向いているかを見極めやすい。

その使い分けを自動化する仕組みが「仮想モデル」である。

拡張機能として一つのモデル選択肢を登録し、依頼内容に応じて実際に使うモデルと思考量を振り分ける。

Piをインストールするだけで最適なモデル構成が自動的に完成するわけではない。

振り分けを行う拡張機能と、それぞれのモデルへ接続できる環境が必要になる。

モデルを切り替えると、以前のモデルで使っていたキャッシュは引き継がれない。

また、分類用のモデルで振り分けを行う場合は、その判断処理の分だけ待ち時間も増える。

/sessionでは、実際に利用したモデルごとの費用を確認できる。

Anthropic向けに追加されたキャッシュ維持機能も、費用とのバランスを見ながら使う機能である。

モデルへ繰り返し渡す指示などのキャッシュが失効しないように更新するが、その更新リクエストにも利用量が発生する。

Piは、対象モデルのキャッシュ有効期間などを条件に更新を行い、その利用量もセッション全体の合計へ加える。

設定はcacheWarmingで変更できる。

「小さいモデルへ切り替えた」「キャッシュを維持した」といった設定だけを見て、作業全体の費用が安くなると判断することはできない。

長時間の処理を扱う場合は、同時に公開された「Pi Durable」が別の選択肢になる。

こちらは実験的なアプリ開発用基盤で、通常のPiを置き換えるものではない。

会話や作業状態を保存し、プロセスが停止した後でも未完了の処理を再開できるように設計されている。

通常のPiで--continueを使う場合は、人が再びPiを起動して会話の続きを進める。

一方、Pi Durableは保存された途中経過を使って、処理そのものを復旧させるための仕組みだ。

中断されたツール呼び出しについても、安全に再実行できる場合だけ再試行し、それ以外は中断したことをモデルへ伝える設計になっている。

すべての外部サービスに対する更新処理が、重複せず自動的に完了することを保証するものではない。

チャット画面などから長時間の処理を動かすアプリを開発する人向けの選択肢であり、手元の作業でPiを試すだけなら、まずCLI版から始めればよい。

最初に確かめたいのは、派手な自動化をどれだけ増やせるかではない。

自分のメモを正しく読み、結果を保存し、その過程と費用を後から確認できるかどうかだ。

そこまで確認してから、必要な接続先や操作だけを追加していけば、Pi 1.0の拡張性を、自分の作業に合った形で活用できる。


  1. AIがファイルを読み、道具を組み合わせるPi 1.0公開、最初の仕事から始めるハーネス入門
  2. Pi 1.0はなぜMCPを取り込んだのか、小さなAIエージェントを保つ仕組み
  3. AIの道具を必要なときだけ読み込む、Pi 1.0の新機能と導入手順を解説