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:

  • 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_KEY tetap 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_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
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_BAR adalah variabel FOO_BAR; gunakan ${FOO}_BAR ketika BAR adalah 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_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.

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

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

Cloudflare 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-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.

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:

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