設定
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 涵蓋一次運行的專案信任。
如果沒有適用擴展或保存的決策,則defaultProjectTrust控制後備行為。將~/.pi/agent/settings.json中的"ask"、"always"或"never"設定為"ask"、"always"或"never",或將其改為/settings。
pi config 和 package 指令使用相同的專案信任流程,但 pi update 從不提示。傳遞 --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
}
}使用者介面與顯示
| 環境 | 類型 | 預設 | 描述 |
|---|---|---|---|
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,請包含 --wait,以便 pi 在編輯器退出後恢復:
{
"externalEditor": "code --wait"
}遙測和更新檢查
enableInstallTelemetry 僅控制對https://pi.dev/api/report-install 的匿名安裝/更新 ping。選擇退出遙測不會停用更新檢查;Pi仍可取得https://pi.dev/api/latest-version來尋找最新版本。
設定PI_SKIP_VERSION_CHECK=1禁用Pi版本更新檢查。使用 --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 |
代理指數退避的基本延遲(2s、4s、8s) |
retry.provider.timeoutMs |
數位 | SDK 預設 | Provider/SDK 請求逾時(以毫秒為單位) |
retry.provider.maxRetries |
數位 | 0 |
提供者/SDK重試嘗試 |
retry.provider.maxRetryDelayMs |
數位 | 60000 |
失敗前伺服器請求的最大延遲(60 秒) |
當提供者請求重試延遲超過 retry.provider.maxRetryDelayMs 時,請求會立即失敗並出現資訊性錯誤,而不是靜默等待。將其設為 0 以停用限制。
将 retry.provider.maxRetries 保持在 0 除非明确需要提供者级别的重试。將其設為高於 0 可以使 SDK/provider 重試在 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 header/body 空閒逾時(以毫秒為單位),也由具有明確串流空閒逾時的提供者使用。設定為 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 |
細繩 | - | 自訂 shell 路徑(例如,Windows 上的 Cygwin);支援主目錄前導 ~ |
shellCommandPrefix |
細繩 | - | 每個 bash 指令的前綴(例如,"shopt -s expand_aliases") |
npmCommand |
細繩[] | - | 用於 npm 套件查找/安裝操作的命令 argv(例如,["mise", "exec", "node@20", "--", "npm"]) |
{
"npmCommand": ["mise", "exec", "node@20", "--", "npm"]
}npmCommand 用於所有 npm 套件管理器操作,包括安裝、卸載以及 git 套件內的依賴項安裝。使用者範圍的 npm 軟體包安裝在 ~/.pi/agent/npm/ 下;專案範圍的 npm 軟體包安裝在 .pi/npm/ 下。完全按照應啟動的流程使用 argv 樣式條目。配置 npmCommand 時,git 套件依賴項安裝使用普通 install 以避免包裝器或備用套件管理器中特定於 npm 的標誌。
會議
| 環境 | 類型 | 預設 | 描述 |
|---|---|---|---|
sessionDir |
細繩 | - | 儲存會話檔案的目錄。接受絕對路徑或相對路徑,加上 ~。 |
{ "sessionDir": ".pi/sessions" }當多個來源指定會話目錄時,settings.json 中的優先權為 --session-dir、PI_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指令 |
數組支援 glob 模式和排除。使用!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 }
}