Providers
Pi unterstützt abonnementbasierte Anbieter über OAuth- und API key-Anbieter über Umgebungsvariablen oder Authentifizierungsdatei. Integrierte Kataloge werden mit Pi geliefert; Konfigurierte Anbieter können neuere Kataloge aktualisieren und sie für die Offline-Verwendung in ~/.pi/agent/models-store.json zwischenspeichern.
Inhaltsverzeichnis
Abonnements
Verwenden Sie /login im interaktiven Modus und wählen Sie dann einen Anbieter aus:
- ChatGPT Plus/Pro (Codex)
- Claude Pro/Max
- GitHub Copilot
- xAI (Grok/X-Abonnement)
- OpenRouter (OAuth-minted API key abgerechnet aus OpenRouter-Credits)
- Radius
Verwenden Sie /logout, um Anmeldeinformationen zu löschen. Token werden in ~/.pi/agent/auth.json gespeichert und automatisch aktualisiert, wenn sie abgelaufen sind. OpenRouter prägt stattdessen ein benutzergesteuertes API key, das nicht automatisch abläuft.
OpenAI-Codex
- Erfordert ein ChatGPT Plus- oder Pro-Abonnement
- Offiziell von OpenAI unterstützt: Codex for OSS
Claude Pro/Max
Die Anthropic-Abonnementauthentifizierung ist für Claude Pro/Max-Konten aktiv. Die Nutzung des Kabelbaums von Drittanbietern kostet ab extra usage und wird pro Token abgerechnet, nicht anhand der Limits des Claude-Plans.
GitHub Copilot
- Drücken Sie die Eingabetaste für github.com oder geben Sie Ihre GitHub Enterprise Server-Domäne ein
- Wenn Sie „Modell nicht unterstützt“ erhalten, aktivieren Sie es in VS Code: Copilot Chat → Modellauswahl → Modell auswählen → „Aktivieren“
xAI (Grok/X-Abonnement)
- Führen Sie
/login xaiaus und wählen Sie dann Abonnement verwenden XAI_API_KEYbleibt verfügbar bis Verwenden Sie ein API key
OpenRouter
- Führen Sie
/login openrouteraus und wählen Sie dann Mit OpenRouter anmelden aus, um den OpenRouter PKCE-Autorisierungsfluss zu öffnen - Die Autorisierung erstellt einen benutzergesteuerten OpenRouter API key, der von Ihrem OpenRouter-Guthaben abgerechnet wird
- Auf Remote-/Headless-Maschinen (z. B. über SSH) kann der Browser den Loopback-Callback nicht erreichen; Fügen Sie stattdessen die endgültige Weiterleitungs-URL (oder den Autorisierungscode) in die Anmeldeaufforderung ein
OPENROUTER_API_KEYbleibt verfügbar bis Verwenden Sie ein API key
Radius
Radius ist ein dynamisches pi-messages Gateway. /login radius speichert OAuth Token in auth.json; Der Gateway-Katalog wird unabhängig aktualisiert und in models-store.json zwischengespeichert. Benutzerdefinierte Radius-Gateways können in models.json mit "oauth": "radius" und einem Gateway baseUrl deklariert werden.
API Tasten
Umgebungsvariablen oder Auth-Datei
Verwenden Sie /login im interaktiven Modus und wählen Sie einen Anbieter aus, um einen API key in auth.json zu speichern, oder legen Sie Anmeldeinformationen über eine Umgebungsvariable fest:
export ANTHROPIC_API_KEY=sk-ant-...
pi| Anbieter | Umgebungsvariable | auth.json-Taste |
|---|---|---|
| Anthropisch | ANTHROPIC_API_KEY |
anthropic |
| Ant Ling | ANT_LING_API_KEY |
ant-ling |
| Azure OpenAI-Antworten | 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 |
| Amazonas-Grundgestein | AWS_BEARER_TOKEN_BEDROCK |
amazon-bedrock |
| Mistral | MISTRAL_API_KEY |
mistral |
| Groq | GROQ_API_KEY |
groq |
| Großhirn | 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-Kodierungsplan (global) | ZAI_API_KEY |
zai |
| ZAI-Kodierungsplan (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 |
| Feuerwerk | FIREWORKS_API_KEY |
fireworks |
| Gemeinsam KI | TOGETHER_API_KEY |
together |
| Baseten | BASETEN_API_KEY |
baseten |
| Kimi zum Codieren | KIMI_API_KEY |
kimi-coding |
| MiniMax | MINIMAX_API_KEY |
minimax |
| MiniMax (China) | MINIMAX_CN_API_KEY |
minimax-cn |
| Qwen-Token-Plan (vorhandener Katalog) | QWEN_TOKEN_PLAN_API_KEY |
qwen-token-plan |
| Qwen-Token-Plan (individuell) | 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 (Singapur) | XIAOMI_TOKEN_PLAN_SGP_API_KEY |
xiaomi-token-plan-sgp |
Referenz für Umgebungsvariablen und auth.json Schlüssel: const envMap in packages/ai/src/env-api-keys.ts.
Auth-Datei
Anmeldeinformationen in ~/.pi/agent/auth.json speichern:
{
"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 verwendet denselben internationalen Endpunkt und QWEN_TOKEN_PLAN_API_KEY wie
qwen-token-plan, beschränkt die Auswahl jedoch auf die für Einzelabonnements dokumentierten Modelle. Das Vorhandene
Aus Gründen der Abwärtskompatibilität behält der Anbieter seinen breiteren Katalog bei. Wenn Sie auth.json verwenden, speichern Sie die
Zugangsdaten des von Ihnen ausgewählten Anbieters; Eine Umgebungsvariable wird von beiden internationalen Anbietern gemeinsam genutzt.
Die Datei wird mit 0600-Berechtigungen erstellt (Benutzer nur Lesen/Schreiben). Anmeldeinformationen der Authentifizierungsdatei haben Vorrang vor Umgebungsvariablen.
API key Anmeldeinformationen können auch anbieterspezifische Umgebungswerte enthalten. Diese Werte werden vor Prozessumgebungsvariablen verwendet, wenn der Anmeldeinformationsschlüssel, Anbieter-/Modell-Header und Anbieterkonfigurationen wie Cloudflare-Konto-IDs, Azure OpenAI-Einstellungen, Vertex-Projekt/Standort, Bedrock-Einstellungen, PI_CACHE_RETENTION und HTTP_PROXY/HTTPS_PROXY aufgelöst werden.
{
"cloudflare-ai-gateway": {
"type": "api_key",
"key": "$CLOUDFLARE_API_KEY",
"env": {
"CLOUDFLARE_API_KEY": "...",
"CLOUDFLARE_ACCOUNT_ID": "account-id",
"CLOUDFLARE_GATEWAY_ID": "gateway-id"
}
}
}Verwenden Sie dies, wenn Pi andere Anbietereinstellungen als die Projekt-Shell-Umgebung verwenden soll.
Schlüsselauflösung
Das Feld key unterstützt die Befehlsausführung, Umgebungsinterpolation und Literale:
- Shell-Befehl:
"!command"führt beim Start den gesamten Wert als Befehl aus und verwendet stdout (im Cache für die Prozesslebensdauer){ "type": "api_key", "key": "!security find-generic-password -ws 'anthropic'" } { "type": "api_key", "key": "!op read 'op://vault/item/credential'" } - Umgebungsinterpolation:
"$ENV_VAR"oder"${ENV_VAR}"verwendet den Wert der benannten Variablen. Die Interpolation funktioniert innerhalb größerer Literale.{ "type": "api_key", "key": "$MY_ANTHROPIC_KEY" } { "type": "api_key", "key": "${KEY_PREFIX}_${KEY_SUFFIX}" }$FOO_BARist die VariableFOO_BAR; Verwenden Sie${FOO}_BAR, wennBARwörtlicher Text ist. Fehlende Umgebungsvariablen machen den Wert unaufgelöst. - Escapes:
"quot;gibt ein Literal"quot;aus;"$!"gibt ein Literal"!"aus, ohne die Befehlsausführung auszulösen.{ "type": "api_key", "key": "$literal-dollar-prefix" } { "type": "api_key", "key": "$!literal-bang-prefix" } - Wörtlicher Wert: Wird direkt verwendet. Einfache Zeichenfolgen in Großbuchstaben wie
MY_API_KEYsind Literale; Verwenden Sie$MY_API_KEYfür Umgebungsvariablen.{ "type": "api_key", "key": "sk-ant-..." } { "type": "api_key", "key": "public" }
OAuth Zugangsdaten werden hier auch nach /login gespeichert und automatisch verwaltet.
Wolke 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-gpt4oAmazonas-Grundgestein
Verwenden Sie /login amazon-bedrock, um ein Bedrock API key zu speichern, oder konfigurieren Sie eine der folgenden AWS-Anmeldeinformationsquellen:
# 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-2Unterstützt auch ECS-Aufgabenrollen (AWS_CONTAINER_CREDENTIALS_*) und IRSA (AWS_WEB_IDENTITY_TOKEN_FILE).
pi --provider amazon-bedrock --model us.anthropic.claude-sonnet-4-20250514-v1:0Prompt-Caching wird automatisch für Claude-Modelle aktiviert, deren ID einen erkennbaren Modellnamen enthält (Basismodelle und systemdefinierte Inferenzprofile). Legen Sie für Anwendungsinferenzprofile (deren ARNs den Modellnamen nicht enthalten) AWS_BEDROCK_FORCE_CACHE=1 fest, um Cache-Punkte zu aktivieren:
export AWS_BEDROCK_FORCE_CACHE=1
pi --provider amazon-bedrock --model arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/abc123Wenn Sie eine Verbindung zu einem Bedrock API-Proxy herstellen, können die folgenden Umgebungsvariablen verwendet werden:
# 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 kann über /login eingestellt werden. Die Konto-ID und der Gateway-Slug können als Umgebungsvariablen oder im env-Objekt der API key-Anmeldeinformationen in auth.json festgelegt werden.
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"Routen zu OpenAI, Anthropic und Workers AI über Cloudflare AI Gateway. Workers AI verwendet die einheitlichen API (/compat) und vorangestellten Modell-IDs (workers-ai/@cf/...). OpenAI verwendet die OpenAI-Passthrough-Route (/openai) mit nativen OpenAI-Modell-IDs wie gpt-5.1. Anthropic verwendet die Anthropic-Passthrough-Route (/anthropic) mit nativen Anthropic-Modell-IDs wie claude-sonnet-4-5.
Die AI Gateway-Authentifizierung verwendet CLOUDFLARE_API_KEY als cf-aig-authorization. Die Upstream-Authentifizierung kann eine der folgenden sein:
| Modus | Autorisierung anfordern | Upstream-Authentifizierung |
|---|---|---|
| Arbeiter-KI | Nur Cloudflare-Token | Cloudflare-nativ |
| Einheitliche Abrechnung | Nur Cloudflare-Token | Cloudflare übernimmt die Upstream-Authentifizierung und zieht Credits ab |
| Gespeichert BYOK | Nur Cloudflare-Token | Cloudflare fügt Anbieterschlüssel ein, die im AI Gateway-Dashboard gespeichert sind |
| Inline-BYOK | Cloudflare-Token plus Upstream-Header Authorization |
Die Anfrage liefert den Upstream-Provider-Schlüssel |
Für die normale Pi-Nutzung bevorzugen Sie eine einheitliche Abrechnung oder gespeichertes BYOK. Inline BYOK erfordert die Konfiguration eines zusätzlichen Upstream-Authorization-Headers für den Cloudflare AI Gateway-Anbieter, beispielsweise über eine models.json-Anbieter-/Modell-Überschreibung.
Cloudflare Workers AI
CLOUDFLARE_API_KEY kann über /login eingestellt werden. CLOUDFLARE_ACCOUNT_ID kann als Umgebungsvariable oder im env-Objekt der API key Anmeldeinformationen in auth.json festgelegt werden.
export CLOUDFLARE_API_KEY=... # or use /login
export CLOUDFLARE_ACCOUNT_ID=...
pi --provider cloudflare-workers-ai --model "@cf/moonshotai/kimi-k2.6"Pi setzt automatisch x-session-affinity für prefix caching Rabatte.
Google Vertex AI
Verwendet Standardanmeldeinformationen der Anwendung:
gcloud auth application-default login
export GOOGLE_CLOUD_PROJECT=your-project
export GOOGLE_CLOUD_LOCATION=us-central1Oder legen Sie GOOGLE_APPLICATION_CREDENTIALS auf eine Dienstkontoschlüsseldatei fest.
llama.cpp
Pi unterstützt den llama.cpp Router-Server. Konfigurieren Sie es mit /login llama.cpp, verwalten Sie geladene Modelle mit /llama und wählen Sie ein geladenes Modell mit /model aus.
Siehe llama.cpp für Server-Setup, Modellverzeichnislayout, Umgebungsvariablen und Befehlsverwendung.
Benutzerdefiniert Providers
Über models.json: Fügen Sie Ollama, LM Studio, vLLM oder einen beliebigen Anbieter hinzu, der ein unterstütztes API spricht (OpenAI Completions, OpenAI Responses, Anthropic Messages, Google Generative AI). Siehe models.md.
Über Erweiterungen: Erstellen Sie für Anbieter, die benutzerdefinierte API-Implementierungen oder OAuth-Flows benötigen, eine Erweiterung. Siehe custom-provider.md und examples/extensions/custom-provider-gitlab-duo.
Auflösungsanordnung
Beim Auflösen von Anmeldeinformationen für einen Anbieter:
- CLI
--api-keyFlagge auth.jsonEintrag (API key oder OAuth Token)- Umgebungsvariable
- Benutzerdefinierte Anbieterschlüssel von
models.json