Pengaturan
Pi menggunakan file pengaturan JSON dengan pengaturan proyek menggantikan pengaturan global.
| Lokasi | Cakupan |
|---|---|
~/.pi/agent/settings.json |
Global (semua proyek) |
.pi/settings.json |
Proyek (direktori saat ini) |
Edit secara langsung atau gunakan /settings untuk opsi umum.
Kepercayaan Proyek
Pada startup interaktif, pi bertanya sebelum memercayai folder proyek yang berisi pengaturan lokal proyek, sumber daya, atau proyek .agents/skills dan tidak memiliki keputusan tersimpan untuk folder atau folder induk di ~/.pi/agent/trust.json. Mempercayai suatu proyek memungkinkan pi memuat sumber daya .pi/settings.json dan .pi, menginstal paket proyek yang hilang, dan menjalankan ekstensi proyek.
Mode non-interaktif (-p, --mode json, dan --mode rpc) tidak menampilkan prompt kepercayaan. Tanpa keputusan perwalian tersimpan yang dapat diterapkan, mereka menggunakan defaultProjectTrust dari pengaturan global: ask (default) dan never mengabaikan sumber daya proyek tersebut, sementara always memercayainya. Lewati --approve/-a atau --no-approve/-na untuk mengesampingkan kepercayaan proyek dalam sekali proses.
Jika tidak ada perpanjangan atau keputusan tersimpan yang berlaku, defaultProjectTrust mengontrol perilaku fallback. Setel ke "ask", "always", atau "never" di ~/.pi/agent/settings.json, atau ubah dengan /settings.
pi config dan perintah paket menggunakan aliran kepercayaan proyek yang sama, kecuali pi update tidak pernah diminta. Lewati --approve untuk memercayai pengaturan proyek-lokal untuk satu perintah atau --no-approve untuk mengabaikannya.
Gunakan /trust dalam mode interaktif untuk menyimpan keputusan kepercayaan proyek untuk sesi mendatang, termasuk kepercayaan untuk folder induk langsung. Ia hanya menulis ~/.pi/agent/trust.json; sesi saat ini tidak dimuat ulang, jadi mulai ulang pi agar perubahan diterapkan.
Semua Pengaturan
Model & Pemikiran
| Pengaturan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
defaultProvider |
rangkaian | - | Penyedia default (mis., "anthropic", "openai") |
defaultModel |
rangkaian | - | ID model bawaan |
defaultThinkingLevel |
rangkaian | - | "off", "minimal", "low", "medium", "high", "xhigh", "max" |
hideThinkingBlock |
boolean | false |
Sembunyikan blok pemikiran dalam keluaran |
showCacheMissNotices |
boolean | false |
Tampilkan pemberitahuan transkrip untuk kesalahan cache cepat yang signifikan |
thinkingBudgets |
obyek | - | Anggaran token khusus per tingkat pemikiran |
berpikir Anggaran
{
"thinkingBudgets": {
"minimal": 1024,
"low": 4096,
"medium": 10240,
"high": 32768
}
}UI & Tampilan
| Pengaturan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
theme |
rangkaian | "dark" |
Nama tema ("dark", "light", atau khusus) |
externalEditor |
rangkaian | $VISUAL, lalu $EDITOR, lalu Notepad di Windows atau nano di tempat lain |
Perintah untuk Ctrl+G editor eksternal; lebih diutamakan daripada variabel lingkungan |
quietStartup |
boolean | false |
Sembunyikan tajuk permulaan |
defaultProjectTrust |
rangkaian | "ask" |
Perilaku kepercayaan proyek cadangan: "ask", "always", atau "never". Hanya pengaturan global |
collapseChangelog |
boolean | false |
Tampilkan log perubahan ringkas setelah pembaruan |
enableInstallTelemetry |
boolean | true |
Kirim ping versi instalasi/perbarui anonim setelah instalasi pertama atau pembaruan yang terdeteksi log perubahan. Ini tidak mengontrol pemeriksaan pembaruan |
enableAnalytics |
boolean | false |
Ikut serta dalam berbagi data analitik. Saat ini hanya diminta selama percobaan pengaturan pertama kali (PI_EXPERIMENTAL=1) |
trackingId |
rangkaian | - | Pengidentifikasi pelacakan Analytics, dihasilkan ketika enableAnalytics diaktifkan |
doubleEscapeAction |
rangkaian | "tree" |
Tindakan untuk pelarian ganda: "tree", "fork", atau "none" |
treeFilterMode |
rangkaian | "default" |
Filter bawaan untuk /tree: "default", "no-tools", "user-only", "labeled-only", "all" |
editorPaddingX |
nomor | 0 |
Padding horizontal untuk editor masukan (0-3) |
outputPad |
nomor | 1 |
Padding horizontal untuk pesan pengguna, pesan asisten, dan pemikiran (0 atau 1) |
autocompleteMaxVisible |
nomor | 5 |
Maksimum item yang terlihat di dropdown pelengkapan otomatis (3-20) |
showHardwareCursor |
boolean | false |
Tampilkan kursor terminal sambil TUI memposisikannya untuk dukungan IME |
tuiMode |
rangkaian | "regular" |
Mode TUI interaktif: "regular" atau eksperimental "fullscreen". Perubahan dari /settings berlaku segera; --tui-mode mengesampingkan pengaturan ini saat startup |
fullscreenExitOutput |
rangkaian | "transcript" |
Keluaran layar penuh: "transcript" mencetak transkrip akhir dan petunjuk melanjutkan, sedangkan "resume-hint" memulihkan layar sebelumnya dan hanya mencetak petunjuk melanjutkan. Tidak berpengaruh dalam mode TUI biasa |
fullscreenScrollbar |
rangkaian | "auto" |
Scrollbar transkrip layar penuh: "auto" menampilkannya sementara saat menggulir, "always" menyimpan kolom paling kanan dan membuatnya tetap terlihat, dan "hidden" menyembunyikannya. Tidak berpengaruh dalam mode TUI biasa |
Untuk VS Code, sertakan --wait sehingga pi dilanjutkan setelah editor keluar:
{
"externalEditor": "code --wait"
}Pemeriksaan telemetri dan pembaruan
enableInstallTelemetry hanya mengontrol ping pemasangan/pembaruan anonim ke https://pi.dev/api/report-install. Menolak telemetri tidak menonaktifkan pemeriksaan pembaruan; Pi masih dapat mengambil https://pi.dev/api/latest-version untuk mencari versi terbaru.
Setel PI_SKIP_VERSION_CHECK=1 untuk menonaktifkan pemeriksaan pembaruan versi Pi. Gunakan --offline atau PI_OFFLINE=1 untuk menonaktifkan semua operasi jaringan startup yang dijelaskan di sini, termasuk pemeriksaan pembaruan, pemeriksaan pembaruan paket, dan pemasangan/perbarui telemetri.
Jaringan
| Pengaturan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
httpProxy |
rangkaian | - | URL proksi HTTP diterapkan sebagai HTTP_PROXY dan HTTPS_PROXY. Hanya pengaturan global. |
{
"httpProxy": "http://127.0.0.1:7890"
}Peringatan
| Pengaturan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
warnings.anthropicExtraUsage |
boolean | true |
Tampilkan peringatan ketika autentikasi langganan Anthropic mungkin menggunakan penggunaan ekstra berbayar |
{
"warnings": {
"anthropicExtraUsage": false
}
}Pemadatan
| Pengaturan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
compaction.enabled |
boolean | true |
Aktifkan pemadatan otomatis |
compaction.reserveTokens |
nomor | 16384 |
Token dicadangkan untuk respons LLM |
compaction.keepRecentTokens |
nomor | 20000 |
Token terkini yang harus disimpan (tidak diringkas) |
{
"compaction": {
"enabled": true,
"reserveTokens": 16384,
"keepRecentTokens": 20000
}
}Ringkasan Cabang
| Pengaturan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
branchSummary.reserveTokens |
nomor | 16384 |
Token dicadangkan untuk branch summarization |
branchSummary.skipPrompt |
boolean | false |
Lewati "Ringkas cabang?" prompt pada navigasi /tree (defaultnya tidak ada ringkasan) |
Mencoba kembali
| Pengaturan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
retry.enabled |
boolean | true |
Aktifkan percobaan ulang tingkat agen otomatis pada kesalahan sementara |
retry.maxRetries |
nomor | 3 |
Upaya percobaan ulang tingkat agen maksimum |
retry.baseDelayMs |
nomor | 2000 |
Penundaan dasar untuk backoff eksponensial tingkat agen (2 detik, 4 detik, 8 detik) |
retry.provider.timeoutMs |
nomor | SDK bawaan | Batas waktu permintaan Penyedia/SDK dalam milidetik |
retry.provider.maxRetries |
nomor | 0 |
Penyedia/SDK percobaan ulang |
retry.provider.maxRetryDelayMs |
nomor | 60000 |
Penundaan maksimum yang diminta server sebelum gagal (60 detik) |
Ketika penyedia meminta penundaan percobaan ulang lebih lama dari retry.provider.maxRetryDelayMs, permintaan tersebut langsung gagal dengan kesalahan informatif alih-alih menunggu diam-diam. Setel ke 0 untuk menonaktifkan batas.
Pertahankan retry.provider.maxRetries di 0 kecuali percobaan ulang di tingkat penyedia secara eksplisit diperlukan. Menyetelnya di atas 0 dapat membuat SDK/percobaan ulang penyedia menangani kesalahan di luar batas penggunaan sebelum Pi melihatnya, yang dapat memblokir agen hingga kuota penyedia direset dalam beberapa keadaan.
{
"retry": {
"enabled": true,
"maxRetries": 3,
"baseDelayMs": 2000,
"provider": {
"timeoutMs": 3600000,
"maxRetries": 0,
"maxRetryDelayMs": 60000
}
}
}Pengiriman Pesan
| Pengaturan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
steeringMode |
rangkaian | "one-at-a-time" |
Cara pesan pengarah dikirim: "all" atau "one-at-a-time" |
followUpMode |
rangkaian | "one-at-a-time" |
Cara pesan tindak lanjut dikirim: "all" atau "one-at-a-time" |
transport |
rangkaian | "auto" |
Transportasi pilihan untuk penyedia yang mendukung banyak transportasi: "sse", "websocket", "websocket-cached", atau "auto" |
httpIdleTimeoutMs |
nomor | 300000 |
Batas waktu idle header/body HTTP dalam milidetik, juga digunakan oleh penyedia dengan batas waktu idle streaming eksplisit. Setel ke 0 untuk menonaktifkan. |
websocketConnectTimeoutMs |
nomor | 15000 |
Batas waktu jabat tangan koneksi/buka WebSocket dalam milidetik untuk penyedia yang mendukung transportasi WebSocket. Setel ke 0 untuk menonaktifkan. |
Terminal & Gambar
| Pengaturan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
terminal.showImages |
boolean | true |
Tampilkan gambar di terminal (jika didukung) |
terminal.imageWidthCells |
nomor | 60 |
Lebar gambar sebaris yang disukai di sel terminal |
terminal.clearOnShrink |
boolean | false |
Hapus baris kosong saat konten menyusut (dapat menyebabkan kedipan) |
images.autoResize |
boolean | true |
Ubah ukuran gambar menjadi maksimal 2000x2000. Berlaku untuk @file lampiran, read, dan gambar yang dikembalikan oleh alat |
images.blockImages |
boolean | false |
Blokir semua gambar agar tidak dikirim ke LLM |
Kerang
| Pengaturan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
shellPath |
rangkaian | - | Jalur shell khusus (misalnya, untuk Cygwin di Windows); mendukung ~ terdepan untuk direktori home |
shellCommandPrefix |
rangkaian | - | Awalan untuk setiap perintah bash (mis., "shopt -s expand_aliases") |
npmCommand |
rangkaian[] | - | Perintah argv digunakan untuk npm operasi pencarian/pemasangan paket (misalnya, ["mise", "exec", "node@20", "--", "npm"]) |
{
"npmCommand": ["mise", "exec", "node@20", "--", "npm"]
}npmCommand digunakan untuk semua npm operasi pengelola paket, termasuk pemasangan, pencopotan pemasangan, dan pemasangan ketergantungan di dalam paket git. Paket npm cakupan pengguna dipasang di bawah ~/.pi/agent/npm/; paket npm lingkup proyek dipasang di bawah .pi/npm/. Gunakan entri bergaya argv persis seperti proses yang harus diluncurkan. Saat npmCommand dikonfigurasi, penginstalan ketergantungan paket git menggunakan install biasa untuk menghindari tanda khusus npm di wrapper atau pengelola paket alternatif.
Sesi
| Pengaturan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
sessionDir |
rangkaian | - | Direktori tempat file sesi disimpan. Menerima jalur absolut atau relatif, ditambah ~. |
{ "sessionDir": ".pi/sessions" }Jika beberapa sumber menentukan direktori sesi, prioritasnya adalah --session-dir, PI_CODING_AGENT_SESSION_DIR, lalu sessionDir di settings.json.
Model Bersepeda
| Pengaturan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
enabledModels |
rangkaian[] | - | Pola model untuk bersepeda Ctrl+P (format yang sama dengan bendera --models CLI) |
{
"enabledModels": ["claude-*", "gpt-4o", "gemini-2*"]
}Markdown
| Pengaturan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
markdown.codeBlockIndent |
rangkaian | " " |
Indentasi untuk blok kode |
markdown.mermaid |
rangkaian | "streaming" |
Mode rendering putri duyung: "off", "final", atau "streaming" |
Sumber daya
Pengaturan ini menentukan tempat memuat ekstensi, keterampilan, petunjuk, dan tema.
Jalur di ~/.pi/agent/settings.json terselesaikan relatif terhadap ~/.pi/agent. Jalur di .pi/settings.json terselesaikan relatif terhadap .pi. Jalur absolut dan ~ didukung.
| Pengaturan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
packages |
susunan | [] |
npm/git paket untuk memuat sumber daya |
extensions |
rangkaian[] | [] |
Jalur atau direktori file ekstensi lokal |
skills |
rangkaian[] | [] |
Jalur atau direktori file keterampilan lokal |
prompts |
rangkaian[] | [] |
Jalur atau direktori template cepat lokal |
themes |
rangkaian[] | [] |
Jalur atau direktori file tema lokal |
enableSkillCommands |
boolean | true |
Daftarkan keterampilan sebagai perintah /skill:name |
Array mendukung pola dan pengecualian glob. Gunakan !pattern untuk mengecualikan. Gunakan +path untuk memaksa memasukkan jalur yang tepat dan -path untuk memaksa mengecualikan jalur yang tepat.
paket
Formulir string memuat semua sumber daya dari sebuah paket:
{
"packages": ["pi-skills", "@org/my-extension"]
}Formulir objek memfilter sumber daya mana yang akan dimuat:
{
"packages": [
{
"source": "pi-skills",
"skills": ["brave-search", "transcribe"],
"extensions": []
}
]
}Lihat packages.md untuk detail manajemen paket.
Contoh
{
"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"]
}Penggantian Proyek
Pengaturan proyek (.pi/settings.json) menggantikan pengaturan global. Objek bersarang digabungkan:
// ~/.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 }
}