Konfiguration, Anpassung, Plattform-Einrichtung und API-Referenzen für Pi.

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 xai aus und wählen Sie dann Abonnement verwenden
  • XAI_API_KEY bleibt verfügbar bis Verwenden Sie ein API key

OpenRouter

  • Führen Sie /login openrouter aus 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_KEY bleibt 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_BAR ist die Variable FOO_BAR; Verwenden Sie ${FOO}_BAR, wenn BAR wö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_KEY sind Literale; Verwenden Sie $MY_API_KEY fü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-gpt4o

Amazonas-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-2

Unterstü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:0

Prompt-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/abc123

Wenn 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=1

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

Oder 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:

  1. CLI --api-key Flagge
  2. auth.json Eintrag (API key oder OAuth Token)
  3. Umgebungsvariable
  4. Benutzerdefinierte Anbieterschlüssel von models.json