Variabel Lingkungan
Pi menggunakan variabel lingkungan dalam tiga cara:
- Variabel seperti
PI_OFFLINEmengonfigurasi proses Pi. - Pi menyetel
PI_CODING_AGENTsehingga 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"
fiVariabel-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.