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

設定

Pi は、グローバル設定をオーバーライドするプロジェクト設定を持つ JSON 設定ファイルを使用します。

位置 範囲
~/.pi/agent/settings.json グローバル (すべてのプロジェクト)
.pi/settings.json プロジェクト(カレントディレクトリ)

直接編集するか、一般的なオプションに /settings を使用します。

プロジェクトトラスト

インタラクティブな起動時に、pi は、プロジェクトのローカル設定、リソース、またはプロジェクト .agents/skills が含まれており、~/.pi/agent/trust.json のフォルダーまたは親フォルダーに対する決定が保存されていないプロジェクト フォルダーを信頼する前に質問します。プロジェクトを信頼すると、pi は .pi/settings.json および .pi リソースをロードし、不足しているプロジェクト パッケージをインストールし、プロジェクト拡張機能を実行できます。

非対話型モード (-p--mode json、および --mode rpc) では、信頼プロンプトは表示されません。該当する保存された信頼決定がなければ、グローバル設定の defaultProjectTrust を使用します: ask (デフォルト) と never はこれらのプロジェクト リソースを無視し、always はそれらを信頼します。 --approve/-a または --no-approve/-na を渡して、1 回の実行でプロジェクトの信頼をオーバーライドします。

拡張機能または保存された決定が適用されない場合、defaultProjectTrust はフォールバック動作を制御します。 ~/.pi/agent/settings.json"ask""always""never"に設定するか、/settingsで変更します。

pi config とパッケージ コマンドは、pi update がプロンプトを表示しないことを除き、同じプロジェクト信頼フローを使用します。 1 つのコマンドに対してプロジェクトのローカル設定を信頼するには --approve を、無視するには --no-approve を渡します。

対話モードで /trust を使用すると、直接の親フォルダーに対する信頼を含め、将来のセッションのためにプロジェクトの信頼決定を保存できます。 ~/.pi/agent/trust.json のみを書き込みます。現在のセッションはリロードされないため、変更を有効にするために pi を再起動します。

すべての設定

モデルと思考

設定 タイプ デフォルト 説明
defaultProvider - デフォルトのプロバイダー (例: "anthropic""openai")
defaultModel - デフォルトのモデルID
defaultThinkingLevel - "off", "minimal", "low", "medium", "high", "xhigh", "max"
hideThinkingBlock ブール値 false 出力内の思考ブロックを非表示にする
showCacheMissNotices ブール値 false 重大なプロンプト キャッシュ ミスのトランスクリプト通知を表示する
thinkingBudgets 物体 - 思考レベルごとのカスタムトークン予算

考えている予算

{
  "thinkingBudgets": {
    "minimal": 1024,
    "low": 4096,
    "medium": 10240,
    "high": 32768
  }
}

UIとディスプレイ

設定 タイプ デフォルト 説明
theme "dark" テーマ名 ("dark""light"、またはカスタム)
externalEditor $VISUAL、次に $EDITOR、Windows ではメモ帳、その他の場所では nano Ctrl+G 外部エディターのコマンド。環境変数よりも優先されます
quietStartup ブール値 false 起動ヘッダーを非表示にする
defaultProjectTrust "ask" フォールバック プロジェクトの信頼動作: "ask""always"、または "never"。グローバル設定のみ
collapseChangelog ブール値 false 更新後に要約された変更ログを表示する
enableInstallTelemetry ブール値 true 最初のインストールまたは変更ログで更新が検出された後、匿名のインストール/更新バージョン ping を送信します。これは更新チェックを制御しません
enableAnalytics ブール値 false オプトイン分析データ共有。現在、実験的な初回セットアップ時にのみ要求されます (PI_EXPERIMENTAL=1)
trackingId - enableAnalytics がオンになったときに生成される分析追跡識別子
doubleEscapeAction "tree" ダブルエスケープのアクション: "tree""fork"、または "none"
treeFilterMode "default" /tree のデフォルトフィルター: "default""no-tools""user-only""labeled-only""all"
editorPaddingX 番号 0 入力エディターの水平パディング (0 ~ 3)
outputPad 番号 1 ユーザー メッセージ、アシスタント メッセージ、思考の水平パディング (0 または 1)
autocompleteMaxVisible 番号 5 オートコンプリート ドロップダウンに表示される項目の最大数 (3 ~ 20)
showHardwareCursor ブール値 false TUI が IME サポート用に配置されている間、ターミナル カーソルを表示します
tuiMode "regular" インタラクティブ TUI モード: "regular" または実験的 "fullscreen"/settings からの変更はすぐに適用されます。 --tui-mode は起動時にこの設定を上書きします
fullscreenExitOutput "transcript" 全画面終了出力: "transcript" は最終的なトランスクリプトと再開ヒントを印刷しますが、"resume-hint" は前の画面を復元し、再開ヒントのみを印刷します。通常の TUI モードでは効果がありません
fullscreenScrollbar "auto" 全画面トランスクリプト スクロールバー: "auto" はスクロール中に一時的に表示し、"always" は右端の列を予約して表示したままにし、"hidden" は非表示にします。通常の TUI モードでは効果がありません

VS Code の場合、エディターが終了した後に pi が再開されるように、--wait を含めます。

{
  "externalEditor": "code --wait"
}

テレメトリとアップデートのチェック

enableInstallTelemetry は、https://pi.dev/api/report-install への匿名インストール/更新 ping のみを制御します。テレメトリをオプトアウトしても、更新チェックは無効になりません。 Pi は引き続き https://pi.dev/api/latest-version をフェッチして最新バージョンを探すことができます。

Pi バージョン更新チェックを無効にするには、PI_SKIP_VERSION_CHECK=1 を設定します。 --offline または PI_OFFLINE=1 を使用して、更新チェック、パッケージ更新チェック、インストール/更新テレメトリなど、ここで説明するすべての起動ネットワーク操作を無効にします。

ネットワーク

設定 タイプ デフォルト 説明
httpProxy - HTTP プロキシ URL は HTTP_PROXY および HTTPS_PROXY として適用されます。グローバル設定のみ。
{
  "httpProxy": "http://127.0.0.1:7890"
}

警告

設定 タイプ デフォルト 説明
warnings.anthropicExtraUsage ブール値 true Anthropic サブスクリプション認証で有料の追加使用量が使用される可能性がある場合に警告を表示します
{
  "warnings": {
    "anthropicExtraUsage": false
  }
}

圧縮

設定 タイプ デフォルト 説明
compaction.enabled ブール値 true 自動圧縮を有効にする
compaction.reserveTokens 番号 16384 LLM 応答用に予約されたトークン
compaction.keepRecentTokens 番号 20000 保持する最近のトークン (要約されていない)
{
  "compaction": {
    "enabled": true,
    "reserveTokens": 16384,
    "keepRecentTokens": 20000
  }
}

ブランチの概要

設定 タイプ デフォルト 説明
branchSummary.reserveTokens 番号 16384 branch summarization 用に予約されたトークン
branchSummary.skipPrompt ブール値 false 「分岐を要約しますか?」をスキップします。 /tree ナビゲーションのプロンプト (デフォルトでは概要なし)

リトライ

設定 タイプ デフォルト 説明
retry.enabled ブール値 true 一時的なエラーに対するエージェントレベルの自動再試行を有効にする
retry.maxRetries 番号 3 エージェントレベルの最大再試行回数
retry.baseDelayMs 番号 2000 エージェントレベルの指数バックオフの基本遅延 (2 秒、4 秒、8 秒)
retry.provider.timeoutMs 番号 SDK デフォルト プロバイダー/SDK リクエストのタイムアウト (ミリ秒)
retry.provider.maxRetries 番号 0 プロバイダー/SDK 再試行
retry.provider.maxRetryDelayMs 番号 60000 失敗するまでのサーバー要求の最大遅延 (60 秒)

プロバイダーが retry.provider.maxRetryDelayMs より長い再試行遅延をリクエストすると、リクエストはサイレントに待機するのではなく、有益なエラーが表示されてただちに失敗します。制限を無効にするには、0 に設定します。

プロバイダーレベルの再試行が明示的に必要でない限り、retry.provider.maxRetries0 のままにしておきます。 0 より上に設定すると、SDK/プロバイダーは、Pi がエラーを検出する前に使用量制限外エラーの処理を再試行するため、状況によってはプロバイダー クォータがリセットされるまでエージェントがブロックされる可能性があります。

{
  "retry": {
    "enabled": true,
    "maxRetries": 3,
    "baseDelayMs": 2000,
    "provider": {
      "timeoutMs": 3600000,
      "maxRetries": 0,
      "maxRetryDelayMs": 60000
    }
  }
}

メッセージ配信

設定 タイプ デフォルト 説明
steeringMode "one-at-a-time" ステアリングメッセージの送信方法: "all" または "one-at-a-time"
followUpMode "one-at-a-time" フォローアップ メッセージの送信方法: "all" または "one-at-a-time"
transport "auto" 複数のトランスポートをサポートするプロバイダーの優先トランスポート: "sse""websocket""websocket-cached"、または "auto"
httpIdleTimeoutMs 番号 300000 HTTP ヘッダー/本文のアイドル タイムアウト (ミリ秒単位)。明示的なストリーム アイドル タイムアウトを持つプロバイダーでも使用されます。無効にするには、0 に設定します。
websocketConnectTimeoutMs 番号 15000 WebSocket トランスポートをサポートするプロバイダーの WebSocket 接続/オープン ハンドシェイク タイムアウト (ミリ秒単位)。無効にするには、0 に設定します。

端末とイメージ

設定 タイプ デフォルト 説明
terminal.showImages ブール値 true ターミナルに画像を表示する (サポートされている場合)
terminal.imageWidthCells 番号 60 ターミナルセルの推奨インライン画像幅
terminal.clearOnShrink ブール値 false コンテンツが縮小するときに空の行をクリアします (ちらつきが発生する可能性があります)
images.autoResize ブール値 true 画像のサイズを最大 2000x2000 に変更します。 @file 添付ファイル、read、ツールによって返された画像に適用されます
images.blockImages ブール値 false すべての画像が LLM に送信されるのをブロックする

シェル

設定 タイプ デフォルト 説明
shellPath - カスタム シェル パス (Windows 上の Cygwin など)。ホームディレクトリの先頭の~をサポートします
shellCommandPrefix - すべての bash コマンドのプレフィックス (例: "shopt -s expand_aliases")
npmCommand 弦[] - npm パッケージの検索/インストール操作に使用されるコマンド argv (例: ["mise", "exec", "node@20", "--", "npm"])
{
  "npmCommand": ["mise", "exec", "node@20", "--", "npm"]
}

npmCommand は、git パッケージ内のインストール、アンインストール、依存関係のインストールを含む、すべての npm パッケージ マネージャー操作に使用されます。ユーザースコープの npm パッケージは ~/.pi/agent/npm/ にインストールされます。プロジェクト スコープの npm パッケージは .pi/npm/ にインストールされます。プロセスを起動する必要があるとおりに、argv スタイルのエントリを正確に使用してください。 npmCommand が設定されている場合、git パッケージの依存関係インストールでは、ラッパーまたは代替パッケージ マネージャーの npm 固有のフラグを回避するために、プレーンな install が使用されます。

セッション

設定 タイプ デフォルト 説明
sessionDir - セッションファイルが保存されるディレクトリ。絶対パスまたは相対パスに ~ を加えたものを受け入れます。
{ "sessionDir": ".pi/sessions" }

複数のソースでセッション ディレクトリが指定されている場合、settings.json では優先順位は --session-dirPI_CODING_AGENT_SESSION_DIR、次に sessionDir です。

モデルサイクリング

設定 タイプ デフォルト 説明
enabledModels 弦[] - Ctrl+P サイクリングのモデル パターン (--models CLI フラグと同じ形式)
{
  "enabledModels": ["claude-*", "gpt-4o", "gemini-2*"]
}

Markdown

設定 タイプ デフォルト 説明
markdown.codeBlockIndent " " コードブロックのインデント
markdown.mermaid "streaming" マーメイドレンダリングモード: "off""final"、または "streaming"

リソース

これらの設定は、拡張機能、スキル、プロンプト、テーマの読み込み元を定義します。

~/.pi/agent/settings.json のパスは ~/.pi/agent を基準にして解決されます。 .pi/settings.json のパスは .pi を基準にして解決されます。絶対パスと ~ がサポートされています。

設定 タイプ デフォルト 説明
packages 配列 [] リソースをロードするための npm/git パッケージ
extensions 弦[] [] ローカル拡張ファイルのパスまたはディレクトリ
skills 弦[] [] ローカルスキルファイルのパスまたはディレクトリ
prompts 弦[] [] ローカル プロンプト テンプレートのパスまたはディレクトリ
themes 弦[] [] ローカルのテーマファイルのパスまたはディレクトリ
enableSkillCommands ブール値 true スキルを/skill:nameコマンドとして登録

配列は、グロブ パターンと除外をサポートします。除外するには !pattern を使用します。正確なパスを強制的に含めるには +path を使用し、正確なパスを強制的に除外するには -path を使用します。

パッケージ

文字列形式はパッケージからすべてのリソースを読み込みます。

{
  "packages": ["pi-skills", "@org/my-extension"]
}

オブジェクト フォームは、ロードするリソースをフィルターします。

{
  "packages": [
    {
      "source": "pi-skills",
      "skills": ["brave-search", "transcribe"],
      "extensions": []
    }
  ]
}

パッケージ管理の詳細については、packages.md を参照してください。

{
  "defaultProvider": "anthropic",
  "defaultModel": "claude-sonnet-4-20250514",
  "defaultThinkingLevel": "medium",
  "theme": "dark",
  "compaction": {
    "enabled": true,
    "reserveTokens": 16384,
    "keepRecentTokens": 20000
  },
  "retry": {
    "enabled": true,
    "maxRetries": 3
  },
  "enabledModels": ["claude-*", "gpt-4o"],
  "warnings": {
    "anthropicExtraUsage": true
  },
  "packages": ["pi-skills"]
}

プロジェクトの上書き

プロジェクト設定 (.pi/settings.json) はグローバル設定をオーバーライドします。ネストされたオブジェクトはマージされます。

// ~/.pi/agent/settings.json (global)
{
  "theme": "dark",
  "compaction": { "enabled": true, "reserveTokens": 16384 }
}

// .pi/settings.json (project)
{
  "compaction": { "reserveTokens": 8192 }
}

// Result
{
  "theme": "dark",
  "compaction": { "enabled": true, "reserveTokens": 8192 }
}