Konfigurasi, kustomisasi, pengaturan platform, dan referensi API untuk Pi.

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 }
}