Cấu hình, tùy chỉnh, thiết lập nền tảng và tham chiếu API cho Pi.

Cài đặt

Pi sử dụng tệp cài đặt JSON với cài đặt dự án ghi đè cài đặt chung.

Vị trí Phạm vi
~/.pi/agent/settings.json Global (all projects)
.pi/settings.json Project (current directory)

Chỉnh sửa trực tiếp hoặc sử dụng /settings cho các tùy chọn phổ biến.

Tin cậy dự án

Khi khởi động tương tác, pi hỏi trước khi tin cậy một thư mục dự án có chứa các cài đặt, tài nguyên hoặc dự án cục bộ của dự án .agents/skills và không có quyết định nào được lưu cho thư mục hoặc thư mục mẹ trong ~/.pi/agent/trust.json. Tin tưởng vào một dự án cho phép pi tải tài nguyên .pi/settings.json.pi, cài đặt các gói dự án bị thiếu và thực hiện các phần mở rộng dự án.

Các chế độ không tương tác (-p, --mode json--mode rpc) không hiển thị lời nhắc tin cậy. Nếu không có quyết định tin cậy đã lưu hiện hành, họ sẽ sử dụng defaultProjectTrust từ cài đặt chung: ask (mặc định) và never bỏ qua các tài nguyên dự án đó, trong khi always tin cậy chúng. Vượt qua --approve/-a hoặc --no-approve/-na để ghi đè độ tin cậy của dự án trong một lần chạy.

Nếu không áp dụng tiện ích mở rộng hoặc quyết định đã lưu, defaultProjectTrust sẽ kiểm soát hành vi dự phòng. Đặt thành "ask", "always" hoặc "never" trong ~/.pi/agent/settings.json hoặc thay đổi bằng /settings.

pi config và các lệnh gói sử dụng cùng một luồng tin cậy của dự án, ngoại trừ pi update không bao giờ nhắc. Chuyển --approve để tin cậy cài đặt dự án cục bộ cho một lệnh hoặc --no-approve để bỏ qua chúng.

Sử dụng /trust trong chế độ tương tác để lưu quyết định tin cậy dự án cho các phiên trong tương lai, bao gồm cả tin cậy cho thư mục mẹ trực tiếp. Nó chỉ viết ~/.pi/agent/trust.json; phiên hiện tại không được tải lại, vì vậy hãy khởi động lại pi để các thay đổi có hiệu lực.

Tất cả cài đặt

Mô hình & Tư duy

Cài đặt Kiểu Mặc định Sự miêu tả
defaultProvider string - Nhà cung cấp mặc định (ví dụ: "anthropic", "openai")
defaultModel string - ID mẫu mặc định
defaultThinkingLevel string - "off", "minimal", "low", "medium", "high", "xhigh", "max"
hideThinkingBlock boolean false Ẩn các khối suy nghĩ trong đầu ra
showCacheMissNotices boolean false Hiển thị thông báo bản ghi khi có lỗi nhắc nhở đáng kể trong bộ nhớ đệm
thinkingBudgets object - Ngân sách mã thông báo tùy chỉnh cho mỗi cấp độ tư duy

suy nghĩNgân sách

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

Giao diện người dùng & Hiển thị

Cài đặt Kiểu Mặc định Sự miêu tả
theme string "dark" Tên chủ đề ("dark", "light" hoặc tùy chỉnh)
externalEditor string $VISUAL, rồi $EDITOR, rồi Notepad trên Windows hoặc nano ở nơi khác Lệnh cho trình soạn thảo bên ngoài Ctrl+G; được ưu tiên hơn các biến môi trường
quietStartup boolean false Ẩn tiêu đề khởi động
defaultProjectTrust string "ask" Hành vi tin cậy của dự án dự phòng: "ask", "always" hoặc "never". Chỉ cài đặt chung
collapseChangelog boolean false Hiển thị nhật ký thay đổi cô đọng sau khi cập nhật
enableInstallTelemetry boolean true Gửi ping phiên bản cài đặt/cập nhật ẩn danh sau lần cài đặt đầu tiên hoặc các bản cập nhật được phát hiện trong nhật ký thay đổi. Điều này không kiểm soát việc kiểm tra cập nhật
enableAnalytics boolean false Chọn tham gia chia sẻ dữ liệu phân tích. Hiện chỉ được yêu cầu trong lần thiết lập thử nghiệm lần đầu tiên (PI_EXPERIMENTAL=1)
trackingId string - Mã nhận dạng theo dõi phân tích, được tạo khi enableAnalytics được bật
doubleEscapeAction string "tree" Hành động để thoát kép: "tree", "fork" hoặc "none"
treeFilterMode string "default" Bộ lọc mặc định cho /tree: "default", "no-tools", "user-only", "labeled-only", "all"
editorPaddingX number 0 Đệm ngang cho trình soạn thảo đầu vào (0-3)
outputPad number 1 Khoảng đệm ngang cho tin nhắn của người dùng, tin nhắn trợ lý và suy nghĩ (0 hoặc 1)
autocompleteMaxVisible number 5 Các mục hiển thị tối đa trong danh sách thả xuống tự động hoàn thành (3-20)
showHardwareCursor boolean false Hiển thị con trỏ đầu cuối trong khi TUI định vị nó để hỗ trợ IME
tuiMode string "regular" Chế độ tương tác TUI: "regular" hoặc thử nghiệm "fullscreen". Những thay đổi từ /settings áp dụng ngay lập tức; --tui-mode ghi đè cài đặt này khi khởi động
fullscreenExitOutput string "transcript" Đầu ra thoát toàn màn hình: "transcript" in bản ghi cuối cùng và gợi ý tiếp tục, trong khi "resume-hint" khôi phục màn hình trước đó và chỉ in gợi ý sơ yếu lý lịch. Không có tác dụng ở chế độ TUI thông thường
fullscreenScrollbar string "auto" Thanh cuộn bản ghi toàn màn hình: "auto" hiển thị tạm thời trong khi cuộn, "always" đặt cột ngoài cùng bên phải và giữ cho cột đó hiển thị, đồng thời "hidden" ẩn cột đó. Không có tác dụng ở chế độ TUI thông thường

Đối với VS Code, hãy bao gồm --wait để pi tiếp tục hoạt động sau khi trình chỉnh sửa thoát:

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

Kiểm tra từ xa và cập nhật

enableInstallTelemetry chỉ kiểm soát ping cài đặt/cập nhật ẩn danh thành https://pi.dev/api/report-install. Việc chọn không tham gia đo từ xa sẽ không vô hiệu hóa việc kiểm tra cập nhật; Pi vẫn có thể tìm nạp https://pi.dev/api/latest-version để tìm phiên bản mới nhất.

Đặt PI_SKIP_VERSION_CHECK=1 để tắt kiểm tra cập nhật phiên bản Pi. Sử dụng --offline hoặc PI_OFFLINE=1 để tắt tất cả các hoạt động mạng khởi động được mô tả ở đây, bao gồm kiểm tra cập nhật, kiểm tra cập nhật gói và đo từ xa cài đặt/cập nhật.

Mạng

Cài đặt Kiểu Mặc định Sự miêu tả
httpProxy string - URL proxy HTTP được áp dụng dưới dạng HTTP_PROXYHTTPS_PROXY. Chỉ cài đặt chung.
{
  "httpProxy": "http://127.0.0.1:7890"
}

Cảnh báo

Cài đặt Kiểu Mặc định Sự miêu tả
warnings.anthropicExtraUsage boolean true Hiển thị cảnh báo khi xác thực đăng ký Anthropic có thể sử dụng mức sử dụng bổ sung phải trả phí
{
  "warnings": {
    "anthropicExtraUsage": false
  }
}

nén chặt

Cài đặt Kiểu Mặc định Sự miêu tả
compaction.enabled boolean true Bật tính năng tự động nén
compaction.reserveTokens number 16384 Mã thông báo dành riêng cho phản hồi LLM
compaction.keepRecentTokens number 20000 Mã thông báo gần đây cần giữ (không được tóm tắt)
{
  "compaction": {
    "enabled": true,
    "reserveTokens": 16384,
    "keepRecentTokens": 20000
  }
}

Tóm tắt nhánh

Cài đặt Kiểu Mặc định Mô tả
branchSummary.reserveTokens number 16384 Token dành riêng cho tóm tắt nhánh
branchSummary.skipPrompt boolean false Bỏ qua lời nhắc "Tóm tắt nhánh?" khi điều hướng bằng /tree (mặc định là không tóm tắt)

Thử lại

Cài đặt Kiểu Mặc định Sự miêu tả
retry.enabled boolean true Bật thử lại cấp tác nhân tự động đối với các lỗi tạm thời
retry.maxRetries number 3 Số lần thử lại cấp Agent tối đa
retry.baseDelayMs number 2000 Độ trễ cơ sở cho thời gian chờ theo cấp số nhân cấp Agent (2 giây, 4 giây, 8 giây)
retry.provider.timeoutMs number SDK mặc định Nhà cung cấp/SDK hết thời gian chờ yêu cầu tính bằng mili giây
retry.provider.maxRetries number 0 Nhà cung cấp/SDK thử lại
retry.provider.maxRetryDelayMs number 60000 Độ trễ tối đa do máy chủ yêu cầu trước khi thất bại (60 giây)

Khi nhà cung cấp yêu cầu độ trễ thử lại lâu hơn retry.provider.maxRetryDelayMs, yêu cầu sẽ không thành công ngay lập tức kèm theo lỗi thông tin thay vì im lặng chờ đợi. Đặt thành 0 để tắt giới hạn.

Giữ retry.provider.maxRetries0 trừ khi rõ ràng cần phải thử lại ở cấp độ nhà cung cấp. Việc đặt nó ở trên 0 có thể khiến SDK/nhà cung cấp thử lại xử lý các lỗi hết giới hạn sử dụng trước khi Pi nhìn thấy chúng, điều này có thể chặn tác nhân cho đến khi hạn mức của nhà cung cấp được đặt lại trong một số trường hợp.

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

Gửi tin nhắn

Cài đặt Kiểu Mặc định Sự miêu tả
steeringMode string "one-at-a-time" Cách gửi thông báo chỉ đạo: "all" hoặc "one-at-a-time"
followUpMode string "one-at-a-time" Cách gửi tin nhắn tiếp theo: "all" hoặc "one-at-a-time"
transport string "auto" Phương tiện vận chuyển ưu tiên dành cho nhà cung cấp hỗ trợ nhiều phương tiện vận chuyển: "sse", "websocket", "websocket-cached" hoặc "auto"
httpIdleTimeoutMs number 300000 Thời gian chờ không hoạt động của tiêu đề/nội dung HTTP tính bằng mili giây, cũng được sử dụng bởi các nhà cung cấp có thời gian chờ không hoạt động của luồng rõ ràng. Đặt thành 0 để tắt.
websocketConnectTimeoutMs number 15000 Thời gian chờ bắt tay mở/kết nối WebSocket tính bằng mili giây đối với các nhà cung cấp hỗ trợ truyền tải WebSocket. Đặt thành 0 để tắt.

Thiết bị đầu cuối & Hình ảnh

Cài đặt Kiểu Mặc định Sự miêu tả
terminal.showImages boolean true Hiển thị hình ảnh trong thiết bị đầu cuối (nếu được hỗ trợ)
terminal.imageWidthCells number 60 Chiều rộng hình ảnh nội tuyến ưa thích trong các ô cuối
terminal.clearOnShrink boolean false Xóa các hàng trống khi nội dung bị thu nhỏ (có thể gây nhấp nháy)
images.autoResize boolean true Thay đổi kích thước hình ảnh thành tối đa 2000x2000. Áp dụng cho @file tệp đính kèm, read và hình ảnh được các công cụ trả về
images.blockImages boolean false Chặn tất cả hình ảnh được gửi đến LLM

Vỏ bọc

Cài đặt Kiểu Mặc định Sự miêu tả
shellPath string - Đường dẫn shell tùy chỉnh (ví dụ: đối với Cygwin trên Windows); hỗ trợ ~ hàng đầu cho thư mục chính
shellCommandPrefix string - Tiền tố cho mỗi lệnh bash (ví dụ: "shopt -s expand_aliases")
npmCommand string[] - Lệnh argv được sử dụng cho các thao tác tra cứu/cài đặt gói npm (ví dụ: ["mise", "exec", "node@20", "--", "npm"])
{
  "npmCommand": ["mise", "exec", "node@20", "--", "npm"]
}

npmCommand được sử dụng cho tất cả các hoạt động của trình quản lý gói npm, bao gồm cài đặt, gỡ cài đặt và cài đặt phụ thuộc bên trong các gói git. Các gói npm trong phạm vi người dùng được cài đặt trong ~/.pi/agent/npm/; cài đặt các gói npm trong phạm vi dự án trong .pi/npm/. Sử dụng các mục nhập kiểu argv chính xác như quy trình sẽ được khởi chạy. Khi npmCommand được định cấu hình, các bản cài đặt phụ thuộc gói git sử dụng install đơn giản để tránh các cờ dành riêng cho npm trong trình bao bọc hoặc trình quản lý gói thay thế.

Phiên

Cài đặt Kiểu Mặc định Sự miêu tả
sessionDir string - Thư mục lưu trữ các tập tin phiên. Chấp nhận đường dẫn tuyệt đối hoặc tương đối, cộng với ~.
{ "sessionDir": ".pi/sessions" }

Khi nhiều nguồn chỉ định một thư mục phiên, mức độ ưu tiên là --session-dir, PI_CODING_AGENT_SESSION_DIR, sau đó là sessionDir trong settings.json.

Người mẫu đi xe đạp

Cài đặt Kiểu Mặc định Sự miêu tả
enabledModels string[] - Các mẫu mô hình cho vòng đạp Ctrl+P (cùng định dạng với cờ --models CLI)
{
  "enabledModels": ["claude-*", "gpt-4o", "gemini-2*"]
}

Markdown

Cài đặt Kiểu Mặc định Sự miêu tả
markdown.codeBlockIndent string " " Thụt lề cho khối mã
markdown.mermaid string "streaming" Chế độ render Mermaid: "off", "final" hoặc "streaming"

Tài nguyên

Các cài đặt này xác định nơi tải tiện ích mở rộng, kỹ năng, lời nhắc và chủ đề.

Các đường dẫn trong ~/.pi/agent/settings.json phân giải tương ứng với ~/.pi/agent. Các đường dẫn trong .pi/settings.json phân giải tương ứng với .pi. Đường dẫn tuyệt đối và ~ được hỗ trợ.

Cài đặt Kiểu Mặc định Sự miêu tả
packages array [] Các gói npm/git để tải tài nguyên từ
extensions string[] [] Đường dẫn hoặc thư mục tệp mở rộng cục bộ
skills string[] [] Đường dẫn hoặc thư mục tệp kỹ năng cục bộ
prompts string[] [] Đường dẫn hoặc thư mục mẫu nhắc nhở cục bộ
themes string[] [] Đường dẫn hoặc thư mục tệp chủ đề cục bộ
enableSkillCommands boolean true Đăng ký kỹ năng dưới dạng lệnh /skill:name

Mảng hỗ trợ các mô hình và loại trừ toàn cầu. Sử dụng !pattern để loại trừ. Sử dụng +path để buộc bao gồm một đường dẫn chính xác và -path để buộc loại trừ một đường dẫn chính xác.

gói

Dạng chuỗi tải tất cả tài nguyên từ một gói:

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

Biểu mẫu đối tượng lọc những tài nguyên nào sẽ tải:

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

Xem packages.md để biết chi tiết quản lý gói.

Ví dụ

{
  "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"]
}

Ghi đè dự án

Cài đặt dự án (.pi/settings.json) ghi đè cài đặt chung. Các đối tượng lồng nhau được hợp nhất:

// ~/.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 }
}