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

Providers

Pi mendukung penyedia berbasis langganan melalui penyedia OAuth dan API key melalui variabel lingkungan atau file autentikasi. Katalog bawaan dikirimkan dengan pi; penyedia yang dikonfigurasi dapat menyegarkan katalog baru dan menyimpannya dalam cache di ~/.pi/agent/models-store.json untuk penggunaan offline.

Daftar isi

Langganan

Gunakan /login dalam mode interaktif, lalu pilih penyedia:

  • ObrolanGPT Plus/Pro (Kodeks)
  • Claude Pro/Maks
  • GitHub Kopilot
  • xAI (langganan Grok/X)
  • OpenRouter (OAuth-dicetak API key ditagih dari kredit OpenRouter)
  • Radius

Gunakan /logout untuk menghapus kredensial. Token disimpan di ~/.pi/agent/auth.json dan disegarkan secara otomatis ketika habis masa berlakunya. OpenRouter malah mencetak API key yang dikontrol pengguna yang tidak kedaluwarsa secara otomatis.

Kodeks OpenAI

  • Memerlukan langganan ChatGPT Plus atau Pro
  • Secara resmi didukung oleh OpenAI: Codex for OSS

Claude Pro/Maks

Autentikasi langganan antropik aktif untuk akun Claude Pro/Max. Penggunaan harness pihak ketiga dimulai dari extra usage dan ditagih per token, tidak berdasarkan batas paket Claude.

GitHub Kopilot

  • Tekan Enter untuk github.com, atau masukkan domain GitHub Server Perusahaan Anda
  • Jika Anda mendapatkan "model tidak didukung", aktifkan di VS Code: Copilot Chat → model selector → pilih model → "Enable"

xAI (langganan Grok/X)

  • Jalankan /login xai, lalu pilih Gunakan langganan
  • XAI_API_KEY tetap tersedia melalui Gunakan API key

BukaRouter

  • Jalankan /login openrouter, lalu pilih Masuk dengan OpenRouter untuk membuka alur otorisasi OpenRouter PKCE
  • Otorisasi ini membuat OpenRouter API key yang dikontrol pengguna ditagih dari kredit OpenRouter Anda
  • Pada mesin jarak jauh/tanpa kepala (misalnya lebih dari SSH) browser tidak dapat menjangkau panggilan balik loopback; tempelkan URL pengalihan terakhir (atau kode otorisasi) ke dalam perintah login
  • OPENROUTER_API_KEY tetap tersedia melalui Gunakan API key

Radius

Radius adalah gerbang pi-messages yang dinamis. /login radius menyimpan OAuth token di auth.json; katalog gateway disegarkan secara independen dan disimpan dalam cache di models-store.json. Gateway Radius khusus dapat dideklarasikan di models.json dengan "oauth": "radius" dan gateway baseUrl.

API Kunci

Variabel Lingkungan atau File Auth

Gunakan /login dalam mode interaktif dan pilih penyedia untuk menyimpan API key di auth.json, atau atur kredensial melalui variabel lingkungan:

export ANTHROPIC_API_KEY=sk-ant-...
pi
Penyedia Variabel Lingkungan auth.json kunci
Antropis ANTHROPIC_API_KEY anthropic
Semut Ling ANT_LING_API_KEY ant-ling
Respons Azure OpenAI AZURE_OPENAI_API_KEY azure-openai-responses
OpenAI OPENAI_API_KEY openai
Pencarian Mendalam DEEPSEEK_API_KEY deepseek
NVIDIA NIM NVIDIA_API_KEY nvidia
Google Gemini GEMINI_API_KEY google
Batuan Dasar Amazon AWS_BEARER_TOKEN_BEDROCK amazon-bedrock
Mistral MISTRAL_API_KEY mistral
Bagus GROQ_API_KEY groq
otak besar CEREBRAS_API_KEY cerebras
Gerbang AI Cloudflare CLOUDFLARE_API_KEY (+ CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_GATEWAY_ID) cloudflare-ai-gateway
AI Pekerja Cloudflare CLOUDFLARE_API_KEY (+ CLOUDFLARE_ACCOUNT_ID) cloudflare-workers-ai
xAI XAI_API_KEY xai
BukaRouter OPENROUTER_API_KEY openrouter
Gerbang AI Vercel AI_GATEWAY_API_KEY vercel-ai-gateway
Paket Pengkodean ZAI (Global) ZAI_API_KEY zai
Paket Pengkodean ZAI (Tiongkok) ZAI_CODING_CN_API_KEY zai-coding-cn
Kode Terbuka Zen OPENCODE_API_KEY opencode
OpenCode Pergi OPENCODE_API_KEY opencode-go
Radius RADIUS_API_KEY radius
Hugging Face HF_TOKEN huggingface
Kembang api FIREWORKS_API_KEY fireworks
Bersama AI TOGETHER_API_KEY together
Dasar BASETEN_API_KEY baseten
Kimi Untuk Pengkodean KIMI_API_KEY kimi-coding
Mini Maks MINIMAX_API_KEY minimax
MiniMax (Cina) MINIMAX_CN_API_KEY minimax-cn
Paket Token Qwen (katalog yang ada) QWEN_TOKEN_PLAN_API_KEY qwen-token-plan
Paket Token Qwen (Individu) QWEN_TOKEN_PLAN_API_KEY qwen-token-plan-individual
Paket Token Qwen (Tiongkok) QWEN_TOKEN_PLAN_CN_API_KEY qwen-token-plan-cn
Xiaomi MiMo XIAOMI_API_KEY xiaomi
Paket Token Xiaomi MiMo (Tiongkok) XIAOMI_TOKEN_PLAN_CN_API_KEY xiaomi-token-plan-cn
Paket Token Xiaomi MiMo (Amsterdam) XIAOMI_TOKEN_PLAN_AMS_API_KEY xiaomi-token-plan-ams
Paket Token Xiaomi MiMo (Singapura) XIAOMI_TOKEN_PLAN_SGP_API_KEY xiaomi-token-plan-sgp

Referensi untuk variabel lingkungan dan kunci auth.json: const envMap di packages/ai/src/env-api-keys.ts.

File Otentikasi

Simpan kredensial di ~/.pi/agent/auth.json:

{
  "anthropic": { "type": "api_key", "key": "sk-ant-..." },
  "ant-ling": { "type": "api_key", "key": "..." },
  "openai": { "type": "api_key", "key": "sk-..." },
  "deepseek": { "type": "api_key", "key": "sk-..." },
  "nvidia": { "type": "api_key", "key": "nvapi-..." },
  "google": { "type": "api_key", "key": "..." },
  "opencode": { "type": "api_key", "key": "..." },
  "opencode-go": { "type": "api_key", "key": "..." },
  "together": { "type": "api_key", "key": "..." },
  "qwen-token-plan":  { "type": "api_key", "key": "sk-sp-..." },
  "qwen-token-plan-individual": { "type": "api_key", "key": "sk-sp-..." },
  "qwen-token-plan-cn": { "type": "api_key", "key": "sk-sp-..." },
  "xiaomi": { "type": "api_key", "key": "..." },
  "xiaomi-token-plan-cn":  { "type": "api_key", "key": "..." },
  "xiaomi-token-plan-ams": { "type": "api_key", "key": "..." },
  "xiaomi-token-plan-sgp": { "type": "api_key", "key": "..." }
}

qwen-token-plan-individual menggunakan titik akhir internasional yang sama dan QWEN_TOKEN_PLAN_API_KEY seperti qwen-token-plan, namun membatasi pemilih pada model yang didokumentasikan untuk langganan Perorangan. Yang ada penyedia menyimpan katalognya yang lebih luas untuk kompatibilitas ke belakang. Saat menggunakan auth.json, simpan kredensial di bawah penyedia yang Anda pilih; variabel lingkungan digunakan bersama oleh kedua penyedia internasional.

File ini dibuat dengan izin 0600 (hanya baca/tulis pengguna). Kredensial file autentikasi lebih diprioritaskan daripada variabel lingkungan.

Kredensial API key juga dapat mencakup nilai lingkungan cakupan penyedia. Nilai-nilai ini digunakan sebelum variabel lingkungan proses ketika menyelesaikan kunci kredensial, header penyedia/model, dan konfigurasi penyedia seperti ID akun Cloudflare, pengaturan Azure OpenAI, proyek/lokasi Vertex, pengaturan Batuan Dasar, PI_CACHE_RETENTION, dan HTTP_PROXY/HTTPS_PROXY.

{
  "cloudflare-ai-gateway": {
    "type": "api_key",
    "key": "$CLOUDFLARE_API_KEY",
    "env": {
      "CLOUDFLARE_API_KEY": "...",
      "CLOUDFLARE_ACCOUNT_ID": "account-id",
      "CLOUDFLARE_GATEWAY_ID": "gateway-id"
    }
  }
}

Gunakan ini ketika pi harus menggunakan pengaturan penyedia yang berbeda dari lingkungan shell proyek.

Resolusi Kunci

Bidang key mendukung eksekusi perintah, interpolasi lingkungan, dan literal:

  • Perintah shell: "!command" di awal mengeksekusi seluruh nilai sebagai perintah dan menggunakan stdout (di-cache untuk masa proses)
    { "type": "api_key", "key": "!security find-generic-password -ws 'anthropic'" }
    { "type": "api_key", "key": "!op read 'op://vault/item/credential'" }
  • Interpolasi lingkungan: "$ENV_VAR" atau "${ENV_VAR}" menggunakan nilai variabel bernama. Interpolasi berfungsi di dalam literal yang lebih besar.
    { "type": "api_key", "key": "$MY_ANTHROPIC_KEY" }
    { "type": "api_key", "key": "${KEY_PREFIX}_${KEY_SUFFIX}" }
    $FOO_BAR adalah variabel FOO_BAR; gunakan ${FOO}_BAR ketika BAR adalah teks literal. Variabel lingkungan yang hilang membuat nilai tidak terselesaikan.
  • Lolos: "
    quot;
    memancarkan "
    quot;
    literal; "$!" memancarkan "!" literal tanpa memicu eksekusi perintah.
    { "type": "api_key", "key": "$literal-dollar-prefix" }
    { "type": "api_key", "key": "$!literal-bang-prefix" }
  • Nilai literal: Digunakan secara langsung. String huruf besar biasa seperti MY_API_KEY bersifat literal; gunakan $MY_API_KEY untuk variabel lingkungan.
    { "type": "api_key", "key": "sk-ant-..." }
    { "type": "api_key", "key": "public" }

Kredensial OAuth juga disimpan di sini setelah /login dan dikelola secara otomatis.

Awan Providers

Azure OpenAI

export AZURE_OPENAI_API_KEY=...
export AZURE_OPENAI_BASE_URL=https://your-resource.ai.azure.com
# also supported: https://your-resource.cognitiveservices.azure.com
# also supported: https://your-resource.openai.azure.com
# root endpoints are auto-normalized to /openai/v1
# or use resource name instead of base URL
export AZURE_OPENAI_RESOURCE_NAME=your-resource

# Optional
export AZURE_OPENAI_API_VERSION=2024-02-01
export AZURE_OPENAI_DEPLOYMENT_NAME_MAP=gpt-4=my-gpt4,gpt-4o=my-gpt4o

Batuan Dasar Amazon

Gunakan /login amazon-bedrock untuk menyimpan Batuan Dasar API key, atau konfigurasikan salah satu sumber kredensial AWS ambien di bawah:

# Option 1: AWS Profile
export AWS_PROFILE=your-profile

# Option 2: IAM Keys
export AWS_ACCESS_KEY_ID=AKIA...
export AWS_SECRET_ACCESS_KEY=...

# Option 3: Bearer Token
export AWS_BEARER_TOKEN_BEDROCK=...

# Optional region (defaults to us-east-1)
export AWS_REGION=us-west-2

Juga mendukung peran tugas ECS (AWS_CONTAINER_CREDENTIALS_*) dan IRSA (AWS_WEB_IDENTITY_TOKEN_FILE).

pi --provider amazon-bedrock --model us.anthropic.claude-sonnet-4-20250514-v1:0

Caching cepat diaktifkan secara otomatis untuk model Claude yang ID-nya berisi nama model yang dapat dikenali (model dasar dan profil inferensi yang ditentukan sistem). Untuk profil inferensi aplikasi (yang ARN-nya tidak berisi nama model), setel AWS_BEDROCK_FORCE_CACHE=1 untuk mengaktifkan titik cache:

export AWS_BEDROCK_FORCE_CACHE=1
pi --provider amazon-bedrock --model arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/abc123

Jika Anda menyambung ke proksi Bedrock API, variabel lingkungan berikut dapat digunakan:

# Set the URL for the Bedrock proxy (standard AWS SDK env var)
export AWS_ENDPOINT_URL_BEDROCK_RUNTIME=https://my.corp.proxy/bedrock

# Set if your proxy does not require authentication
export AWS_BEDROCK_SKIP_AUTH=1

# Set if your proxy only supports HTTP/1.1
export AWS_BEDROCK_FORCE_HTTP1=1

Gerbang AI Cloudflare

CLOUDFLARE_API_KEY dapat diatur melalui /login. ID akun dan slug gateway dapat ditetapkan sebagai variabel lingkungan atau dalam objek env kredensial API key di auth.json.

export CLOUDFLARE_API_KEY=...           # or use /login
export CLOUDFLARE_ACCOUNT_ID=...
export CLOUDFLARE_GATEWAY_ID=...        # create at dash.cloudflare.com → AI → AI Gateway
pi --provider cloudflare-ai-gateway --model "claude-sonnet-4-5"

Rute ke OpenAI, Anthropic, dan Workers AI melalui Cloudflare AI Gateway. AI Pekerja menggunakan ID model Terpadu API (/compat) dan awalan (workers-ai/@cf/...). OpenAI menggunakan rute passthrough OpenAI (/openai) dengan ID model OpenAI asli seperti gpt-5.1. Anthropic menggunakan rute passthrough Anthropic (/anthropic) dengan ID model Anthropic asli seperti claude-sonnet-4-5.

Otentikasi AI Gateway menggunakan CLOUDFLARE_API_KEY sebagai cf-aig-authorization. Otentikasi upstream dapat berupa salah satu dari:

Mode Minta autentikasi Otentikasi hulu
AI pekerja Hanya token Cloudflare Cloudflare-asli
Penagihan terpadu Hanya token Cloudflare Cloudflare menangani autentikasi upstream dan mengurangi kredit
Disimpan BYOK Hanya token Cloudflare Cloudflare menyuntikkan kunci penyedia yang disimpan di dasbor AI Gateway
BYOK sebaris Token Cloudflare ditambah header Authorization hulu Permintaan tersebut menyediakan kunci penyedia hulu

Untuk penggunaan pi normal, pilih penagihan terpadu atau BYOK tersimpan. BYOK sebaris memerlukan konfigurasi header Authorization upstream tambahan untuk penyedia Cloudflare AI Gateway, misalnya melalui penggantian penyedia/model models.json.

AI Pekerja Cloudflare

CLOUDFLARE_API_KEY dapat diatur melalui /login. CLOUDFLARE_ACCOUNT_ID dapat ditetapkan sebagai variabel lingkungan atau dalam objek env kredensial API key di auth.json.

export CLOUDFLARE_API_KEY=...           # or use /login
export CLOUDFLARE_ACCOUNT_ID=...
pi --provider cloudflare-workers-ai --model "@cf/moonshotai/kimi-k2.6"

Pi secara otomatis menetapkan x-session-affinity untuk prefix caching diskon.

Google Vertex AI

Menggunakan Kredensial Default Aplikasi:

gcloud auth application-default login
export GOOGLE_CLOUD_PROJECT=your-project
export GOOGLE_CLOUD_LOCATION=us-central1

Atau atur GOOGLE_APPLICATION_CREDENTIALS ke file kunci akun layanan.

llama.cpp

Pi mendukung server router llama.cpp. Konfigurasikan dengan /login llama.cpp, kelola model yang dimuat dengan /llama, dan pilih model yang dimuat dengan /model.

Lihat llama.cpp untuk pengaturan server, tata letak direktori model, variabel lingkungan, dan penggunaan perintah.

Kustom Providers

Melalui models.json: Tambahkan Ollama, LM Studio, vLLM, atau penyedia apa pun yang menggunakan API yang didukung (Penyelesaian OpenAI, Respons OpenAI, Pesan Antropik, AI Generatif Google). Lihat models.md.

Melalui ekstensi: Untuk penyedia yang memerlukan penerapan API atau alur OAuth khusus, buat ekstensi. Lihat custom-provider.md dan examples/extensions/custom-provider-gitlab-duo.

Perintah Resolusi

Saat menyelesaikan kredensial untuk penyedia:

  1. CLI --api-key bendera
  2. auth.json entri (API key atau OAuth token)
  3. Variabel lingkungan
  4. Kunci penyedia khusus dari models.json