Pi の設定、拡張、プラットフォーム設定、API リファレンス。

環境変数

Pi は環境変数を 3 つの方法で使用します。

  • PI_OFFLINE などの変数は、Pi プロセスを構成します。
  • Pi は PI_CODING_AGENT を設定し、子プロセスが Pi 内で実行されていることを検出できるようにします。
  • LLM 呼び出し可能な bash ツールによって実行されるコマンドは、現在のセッションを記述する PI_* 変数を受け取ります。

プロバイダー API キー変数は、Providers に個別に文書化されています。

プロセスマーカー

CLI と RPC のエントリーポイントは PI_CODING_AGENT=true を設定します。子プロセスはそれを継承し、それを使用して、Pi 内で実行されていることを検出できます。これはセッション固有ではなく、Pi が SDK を通じて埋め込まれたときに自動的に設定されません。

Bash ツールのセッション環境

bash ツールによって実行されるコマンドは、現在の Pi セッション状態を受け取ります。

変数 説明
PI_SESSION_ID 現在のセッションID
PI_SESSION_FILE 現在のセッション JSONL ファイルへの絶対パス。一時的なセッションの設定を解除する
PI_PROVIDER 現在選択されているモデルプロバイダー
PI_MODEL 現在選択されているモデルID
PI_REASONING_LEVEL 現在有効な推論レベル: offminimallowmediumhighxhigh、または max

値は各コマンドの開始時に解決されます。したがって、モデルを切り替えたり、推論レベルを変更すると、Pi を再起動しなくても、次の bash コマンドに影響します。 PI_PROVIDERPI_MODEL は、ルーターが内部で選択する可能性のある別のアップストリーム モデルではなく、選択された Pi モデルを識別します。

どのモデルまたはプロバイダーが実行されているかを尋ねられた場合は、システム プロンプトから答えを推測するのではなく、次の変数を調べてください。

printf '%s/%s\n' "$PI_PROVIDER" "$PI_MODEL"
printf 'reasoning=%s session=%s\n' "$PI_REASONING_LEVEL" "$PI_SESSION_ID"

セッションが永続的であれば、セッション ファイルを直接検査できます。

if [ -n "$PI_SESSION_FILE" ]; then
  tail -n 1 "$PI_SESSION_FILE"
fi

これらの変数は、LLM 呼び出し可能な bash ツールに挿入されます。これらは、ユーザーが入力した ! または !! コマンドには挿入されません。

カスタム Bash ツール

createBashTool() で作成された Bash ツールは、Pi で登録されるとデフォルトでセッション環境を公開します。注入は spawnHook の前に行われるため、フックは ctx.env で変数を受け取ります。

const bashTool = createBashTool(cwd, {
  spawnHook: (ctx) => ({
    ...ctx,
    env: { ...ctx.env, CI: "1" },
  }),
});

スポーンフックとは別にセッションメタデータを無効にします。

const bashTool = createBashTool(cwd, {
  exposeSessionEnvironment: false,
  spawnHook: (ctx) => ctx,
});

無効にすると、Pi はこれらの変数の継承値を削除するため、ネストされた Pi プロセスは古い親セッションのメタデータを公開しません。

Pi プロセス構成

これらの変数は Pi 自体によって読み取られます。

変数 説明
PI_CODING_AGENT_DIR config ディレクトリをオーバーライドします。デフォルトは ~/.pi/agent です
PI_CODING_AGENT_SESSION_DIR セッションストレージをオーバーライドします。 --session-dir によって上書きされます
PI_PACKAGE_DIR パッケージ ディレクトリをオーバーライドします。Nix/Guix ストア パスに便利です。
PI_OFFLINE 更新チェック、パッケージ更新、テレメトリのインストール/更新などの起動ネットワーク操作を無効にします。
PI_SKIP_VERSION_CHECK pi.dev 最新バージョンのリクエストを無効にする
PI_TELEMETRY インストール/更新テレメトリおよびプロバイダー属性ヘッダーをオーバーライドします: 1/true/yes または 0/false/no
PI_CACHE_RETENTION 拡張プロバイダー プロンプト キャッシュがサポートされている場合は、long に設定します。
PI_SHARE_VIEWER_URL /share で使用されるベース URL をオーバーライドします
PI_HARDWARE_CURSOR ハードウェア カーソルを表示するには、1 に設定します。 Terminal setupを参照
VISUAL, EDITOR externalEditor が設定されていない場合の外部エディターのフォールバック
HTTP_PROXY, HTTPS_PROXY アウトバウンド HTTP リクエストをプロキシする

ANTHROPIC_API_KEYOPENAI_API_KEY などのプロバイダーの認証情報、およびクラウドプロバイダーの構成は、Providers にリストされます。