環境変数
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 |
現在有効な推論レベル: off、minimal、low、medium、high、xhigh、または max |
値は各コマンドの開始時に解決されます。したがって、モデルを切り替えたり、推論レベルを変更すると、Pi を再起動しなくても、次の bash コマンドに影響します。 PI_PROVIDER と PI_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_KEY、OPENAI_API_KEY などのプロバイダーの認証情報、およびクラウドプロバイダーの構成は、Providers にリストされます。