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 Toàn cầu (tất cả các dự án)
.pi/settings.json Dự án (thư mục hiện tại)

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

Dự án ủy thác

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 sợi dây - Nhà cung cấp mặc định (ví dụ: "anthropic", "openai")
defaultModel sợi dây - ID mẫu mặc định
defaultThinkingLevel sợi dây - "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 sự vật - 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 sợi dây "dark" Tên chủ đề ("dark", "light" hoặc tùy chỉnh)
externalEditor sợi dây $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 sợi dây "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 sợi dây - Mã nhận dạng theo dõi phân tích, được tạo khi enableAnalytics được bật
doubleEscapeAction sợi dây "tree" Hành động để thoát kép: "tree", "fork" hoặc "none"
treeFilterMode sợi dây "default" Bộ lọc mặc định cho /tree: "default", "no-tools", "user-only", "labeled-only", "all"
editorPaddingX con số 0 Đệm ngang cho trình soạn thảo đầu vào (0-3)
outputPad con số 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 con số 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 sợi dây "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 sợi dây "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 sợi dây "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 Mã VS, 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 sợi dây - 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 con số 16384 Mã thông báo dành riêng cho phản hồi LLM
compaction.keepRecentTokens con số 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 chi nhánh

Cài đặt Kiểu Mặc định Sự miêu tả
branchSummary.reserveTokens con số 16384 Mã thông báo dành riêng cho branch summarization
branchSummary.skipPrompt boolean false Bỏ qua "Tóm tắt chi nhánh?" lời nhắc trên điều hướng /tree (mặc định là không có 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 con số 3 Số lần thử lại cấp đại lý tối đa
retry.baseDelayMs con số 2000 Độ trễ cơ sở cho thời gian chờ theo cấp số nhân cấp đại lý (2 giây, 4 giây, 8 giây)
retry.provider.timeoutMs con số 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 con số 0 Nhà cung cấp/SDK thử lại
retry.provider.maxRetryDelayMs con số 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 sợi dây "one-at-a-time" Cách gửi thông báo chỉ đạo: "all" hoặc "one-at-a-time"
followUpMode sợi dây "one-at-a-time" Cách gửi tin nhắn tiếp theo: "all" hoặc "one-at-a-time"
transport sợi dây "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 con số 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 con số 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 con số 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 sợi dây - Đườ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 sợi dây - Tiền tố cho mỗi lệnh bash (ví dụ: "shopt -s expand_aliases")
npmCommand sợi dây[] - 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 sợi dây - 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 sợi dây[] - 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 sợi dây " " Thụt lề cho khối mã
markdown.mermaid sợi dây "streaming" Chế độ kết xuất nàng tiên cá: "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 mảng [] Các gói npm/git để tải tài nguyên từ
extensions sợi dây[] [] Đường dẫn hoặc thư mục tệp mở rộng cục bộ
skills sợi dây[] [] Đường dẫn hoặc thư mục tệp kỹ năng cục bộ
prompts sợi dây[] [] Đường dẫn hoặc thư mục mẫu nhắc nhở cục bộ
themes sợi dây[] [] Đườ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 }
}