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

Variabel Lingkungan

Pi menggunakan variabel lingkungan dalam tiga cara:

  • Variabel seperti PI_OFFLINE mengonfigurasi proses Pi.
  • Pi menyetel PI_CODING_AGENT sehingga proses anak dapat mendeteksi bahwa proses tersebut berjalan di dalam Pi.
  • Perintah yang dijalankan oleh alat bash yang dapat dipanggil LLM menerima variabel PI_* yang menjelaskan sesi saat ini.

Variabel kunci API penyedia didokumentasikan secara terpisah di Providers.

Penanda Proses

Titik masuk CLI dan RPC ditetapkan PI_CODING_AGENT=true. Proses anak mewarisinya dan dapat menggunakannya untuk mendeteksi bahwa proses tersebut berjalan di dalam Pi. Ini tidak spesifik untuk sesi dan tidak diatur secara otomatis ketika Pi tertanam melalui SDK.

Lingkungan Sesi Alat Bash

Perintah yang dijalankan oleh alat bash menerima status sesi Pi saat ini:

Variabel Keterangan
PI_SESSION_ID ID sesi saat ini
PI_SESSION_FILE Jalur absolut ke file JSONL sesi saat ini; tidak disetel untuk sesi singkat
PI_PROVIDER Penyedia model yang saat ini dipilih
PI_MODEL ID model yang dipilih saat ini
PI_REASONING_LEVEL Tingkat penalaran efektif saat ini: off, minimal, low, medium, high, xhigh, atau max

Nilai-nilai tersebut diselesaikan ketika setiap perintah dimulai. Oleh karena itu, mengganti model atau mengubah tingkat penalaran akan memengaruhi perintah bash berikutnya tanpa memulai ulang Pi. PI_PROVIDER dan PI_MODEL mengidentifikasi model Pi yang dipilih, bukan model upstream berbeda yang dapat dipilih secara internal oleh router.

Saat ditanya model atau penyedia mana yang berjalan, periksa variabel berikut alih-alih menyimpulkan jawaban dari perintah sistem:

printf '%s/%s\n' "$PI_PROVIDER" "$PI_MODEL"
printf 'reasoning=%s session=%s\n' "$PI_REASONING_LEVEL" "$PI_SESSION_ID"

File sesi dapat diperiksa secara langsung ketika sesi tersebut persisten:

if [ -n "$PI_SESSION_FILE" ]; then
  tail -n 1 "$PI_SESSION_FILE"
fi

Variabel-variabel ini dimasukkan ke dalam alat bash yang dapat dipanggil LLM. Mereka tidak dimasukkan ke dalam perintah ! atau !! yang dimasukkan pengguna.

Alat Bash Khusus

Alat Bash yang dibuat dengan createBashTool() mengekspos lingkungan sesi secara default ketika didaftarkan dengan Pi. Injeksi terjadi sebelum spawnHook, jadi hook menerima variabel di ctx.env:

const bashTool = createBashTool(cwd, {
  spawnHook: (ctx) => ({
    ...ctx,
    env: { ...ctx.env, CI: "1" },
  }),
});

Nonaktifkan metadata sesi secara independen dari spawn hook:

const bashTool = createBashTool(cwd, {
  exposeSessionEnvironment: false,
  spawnHook: (ctx) => ctx,
});

Jika dinonaktifkan, Pi menghapus nilai yang diwariskan untuk variabel-variabel ini sehingga proses Pi yang disarangkan tidak mengekspos metadata sesi induk yang sudah usang.

Pi Konfigurasi Proses

Variabel-variabel ini dibaca oleh Pi itu sendiri:

Variabel Keterangan
PI_CODING_AGENT_DIR Ganti direktori konfigurasi; standarnya adalah ~/.pi/agent
PI_CODING_AGENT_SESSION_DIR Ganti penyimpanan sesi; digantikan oleh --session-dir
PI_PACKAGE_DIR Ganti direktori paket, berguna untuk jalur penyimpanan Nix/Guix
PI_OFFLINE Nonaktifkan operasi jaringan startup, termasuk pemeriksaan pembaruan, pembaruan paket, dan telemetri pemasangan/perbarui
PI_SKIP_VERSION_CHECK Nonaktifkan permintaan versi terbaru pi.dev
PI_TELEMETRY Ganti header atribusi pemasangan/perbarui telemetri dan penyedia: 1/true/yes atau 0/false/no
PI_CACHE_RETENTION Setel ke long untuk caching cepat penyedia yang diperluas jika didukung
PI_SHARE_VIEWER_URL Ganti URL dasar yang digunakan oleh /share
PI_HARDWARE_CURSOR Setel ke 1 untuk menampilkan kursor perangkat keras; lihat Terminal setup
VISUAL, EDITOR Penggantian editor eksternal jika externalEditor tidak disetel
HTTP_PROXY, HTTPS_PROXY Permintaan HTTP keluar proksi

Kredensial penyedia seperti ANTHROPIC_API_KEY, OPENAI_API_KEY, dan konfigurasi penyedia cloud tercantum di Providers.