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:
- ChatGPT Plus/Pro (Codex)
- Claude Pro/Max
- GitHub Copilot
- xAI (Grok/X subscription)
- OpenRouter (OAuth-minted API key billed from OpenRouter credits)
- 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.
OpenAI Codex
- Memerlukan langganan ChatGPT Plus atau Pro
- Secara resmi didukung oleh OpenAI: Codex for OSS
Claude Pro/Max
Autentikasi langganan Anthropic aktif untuk akun Claude Pro/Max. Penggunaan melalui alat pihak ketiga diambil dari extra usage dan ditagih per token, bukan dari batas paket Claude.
GitHub Copilot
- 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 (Grok/X subscription)
- Jalankan
/login xai, lalu pilih Gunakan langganan XAI_API_KEYtetap tersedia melalui Gunakan API key
OpenRouter
- 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_KEYtetap 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 |
|---|---|---|
| Anthropic | ANTHROPIC_API_KEY |
anthropic |
| Ant Ling | ANT_LING_API_KEY |
ant-ling |
| Azure OpenAI Responses | AZURE_OPENAI_API_KEY |
azure-openai-responses |
| OpenAI | OPENAI_API_KEY |
openai |
| DeepSeek | DEEPSEEK_API_KEY |
deepseek |
| NVIDIA NIM | NVIDIA_API_KEY |
nvidia |
| Google Gemini | GEMINI_API_KEY |
google |
| Amazon Bedrock | AWS_BEARER_TOKEN_BEDROCK |
amazon-bedrock |
| Mistral | MISTRAL_API_KEY |
mistral |
| Groq | GROQ_API_KEY |
groq |
| Cerebras | CEREBRAS_API_KEY |
cerebras |
| Cloudflare AI Gateway | CLOUDFLARE_API_KEY (+ CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_GATEWAY_ID) |
cloudflare-ai-gateway |
| Cloudflare Workers AI | CLOUDFLARE_API_KEY (+ CLOUDFLARE_ACCOUNT_ID) |
cloudflare-workers-ai |
| xAI | XAI_API_KEY |
xai |
| OpenRouter | OPENROUTER_API_KEY |
openrouter |
| Vercel AI Gateway | AI_GATEWAY_API_KEY |
vercel-ai-gateway |
| ZAI Coding Plan (Global) | ZAI_API_KEY |
zai |
| ZAI Coding Plan (China) | ZAI_CODING_CN_API_KEY |
zai-coding-cn |
| OpenCode Zen | OPENCODE_API_KEY |
opencode |
| OpenCode Go | OPENCODE_API_KEY |
opencode-go |
| Radius | RADIUS_API_KEY |
radius |
| Hugging Face | HF_TOKEN |
huggingface |
| Fireworks | FIREWORKS_API_KEY |
fireworks |
| Together AI | TOGETHER_API_KEY |
together |
| Baseten | BASETEN_API_KEY |
baseten |
| Kimi For Coding | KIMI_API_KEY |
kimi-coding |
| MiniMax | MINIMAX_API_KEY |
minimax |
| MiniMax (China) | MINIMAX_CN_API_KEY |
minimax-cn |
| Qwen Token Plan (existing catalog) | QWEN_TOKEN_PLAN_API_KEY |
qwen-token-plan |
| Qwen Token Plan (Individual) | QWEN_TOKEN_PLAN_API_KEY |
qwen-token-plan-individual |
| Qwen Token Plan (China) | QWEN_TOKEN_PLAN_CN_API_KEY |
qwen-token-plan-cn |
| Xiaomi MiMo | XIAOMI_API_KEY |
xiaomi |
| Xiaomi MiMo Token Plan (China) | XIAOMI_TOKEN_PLAN_CN_API_KEY |
xiaomi-token-plan-cn |
| Xiaomi MiMo Token Plan (Amsterdam) | XIAOMI_TOKEN_PLAN_AMS_API_KEY |
xiaomi-token-plan-ams |
| Xiaomi MiMo Token Plan (Singapore) | 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 memuat nilai environment yang berlaku untuk provider. Nilai ini digunakan sebelum variabel environment proses saat me-resolve kunci kredensial, header provider/model, dan konfigurasi provider seperti ID akun Cloudflare, pengaturan Azure OpenAI, proyek/lokasi Vertex, pengaturan Bedrock, 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_BARadalah variabelFOO_BAR; gunakan${FOO}_BARketikaBARadalah teks literal. Variabel lingkungan yang hilang membuat nilai tidak terselesaikan. - Escape:
"$"menghasilkan literal"quot;;"$!"menghasilkan 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_KEYbersifat literal; gunakan$MY_API_KEYuntuk 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.
Provider cloud
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-gpt4oAmazon Bedrock
Gunakan /login amazon-bedrock untuk menyimpan API key Bedrock, atau konfigurasikan salah satu sumber kredensial AWS dari environment di bawah ini:
# 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-2Juga 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:0Caching 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/abc123Jika 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=1Cloudflare AI Gateway
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.
Cloudflare Workers AI
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-central1Atau 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.
Provider kustom
Melalui models.json: Tambahkan Ollama, LM Studio, vLLM, atau provider apa pun yang menggunakan API yang didukung (OpenAI Completions, OpenAI Responses, Anthropic Messages, Google Generative AI). 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.
Urutan resolusi
Saat menyelesaikan kredensial untuk penyedia:
- CLI
--api-keybendera auth.jsonentri (API key atau OAuth token)- Variabel lingkungan
- Kunci penyedia khusus dari
models.json