Configuración, personalización, ajustes de plataforma y referencias de API para Pi.

Providers

Pi admite proveedores basados ​​en suscripción a través de proveedores OAuth y API key a través de variables de entorno o archivos de autenticación. Los catálogos integrados se envían con pi; Los proveedores configurados pueden actualizar los catálogos más nuevos y almacenarlos en caché en ~/.pi/agent/models-store.json para usarlos sin conexión.

Tabla de contenido

Suscripciones

Utilice /login en modo interactivo, luego seleccione un proveedor:

  • ChatGPT Plus/Pro (Códex)
  • Claude Pro/Max
  • GitHub Copiloto
  • xAI (suscripción Grok/X)
  • OpenRouter (OAuth- acuñado API key facturado con créditos de OpenRouter)
  • Radio

Utilice /logout para borrar las credenciales. Los tokens se almacenan en ~/.pi/agent/auth.json y se actualizan automáticamente cuando caducan. OpenRouter, en cambio, crea un API key controlado por el usuario que no caduca automáticamente.

Códice OpenAI

  • Requiere suscripción ChatGPT Plus o Pro
  • Respaldado oficialmente por OpenAI: Codex for OSS

Claude Pro/Max

La autenticación de suscripción antrópica está activa para las cuentas Claude Pro/Max. El uso de arneses de terceros comienza desde extra usage y se factura por token, no según los límites del plan Claude.

GitHub Copiloto

  • Presione Entrar para github.com o ingrese su dominio GitHub Enterprise Server
  • Si aparece "modelo no compatible", habilítelo en VS Code: Copilot Chat → selector de modelo → seleccione modelo → "Habilitar"

xAI (suscripción Grok/X)

  • Ejecute /login xai, luego seleccione Usar una suscripción
  • XAI_API_KEY permanece disponible a través de Use un API key

enrutador abierto

  • Ejecute /login openrouter, luego seleccione Iniciar sesión con OpenRouter para abrir el flujo de autorización PKCE de OpenRouter
  • La autorización crea un OpenRouter controlado por el usuario API key facturado con sus créditos de OpenRouter
  • En máquinas remotas/sin cabeza (por ejemplo, más de SSH), el navegador no puede acceder a la devolución de llamada en bucle; En su lugar, pegue la URL de redireccionamiento final (o el código de autorización) en el mensaje de inicio de sesión.
  • OPENROUTER_API_KEY permanece disponible a través de Use un API key

Radio

Radius es una puerta de enlace dinámica pi-messages. /login radius almacena OAuth tokens en auth.json; el catálogo de la puerta de enlace se actualiza de forma independiente y se almacena en caché en models-store.json. Las puertas de enlace Radius personalizadas se pueden declarar en models.json con "oauth": "radius" y una puerta de enlace baseUrl.

API Teclas

Variables de entorno o archivo de autenticación

Utilice /login en modo interactivo y seleccione un proveedor para almacenar un API key en auth.json, o establezca credenciales mediante una variable de entorno:

export ANTHROPIC_API_KEY=sk-ant-...
pi
Proveedor Variable de entorno tecla auth.json
antrópico ANTHROPIC_API_KEY anthropic
hormiga ling ANT_LING_API_KEY ant-ling
Respuestas de Azure OpenAI AZURE_OPENAI_API_KEY azure-openai-responses
AbiertoAI OPENAI_API_KEY openai
búsqueda profunda DEEPSEEK_API_KEY deepseek
NIM de NVIDIA NVIDIA_API_KEY nvidia
Google Géminis GEMINI_API_KEY google
Roca Amazónica AWS_BEARER_TOKEN_BEDROCK amazon-bedrock
Mistral MISTRAL_API_KEY mistral
Groq GROQ_API_KEY groq
Cerebras CEREBRAS_API_KEY cerebras
Puerta de enlace de IA de Cloudflare CLOUDFLARE_API_KEY (+ CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_GATEWAY_ID) cloudflare-ai-gateway
IA de los trabajadores de Cloudflare CLOUDFLARE_API_KEY (+ CLOUDFLARE_ACCOUNT_ID) cloudflare-workers-ai
xAI XAI_API_KEY xai
enrutador abierto OPENROUTER_API_KEY openrouter
Puerta de enlace de IA de Vercel AI_GATEWAY_API_KEY vercel-ai-gateway
Plan de Codificación ZAI (Global) ZAI_API_KEY zai
Plan de codificación ZAI (China) ZAI_CODING_CN_API_KEY zai-coding-cn
Código abierto Zen OPENCODE_API_KEY opencode
Código abierto Ir OPENCODE_API_KEY opencode-go
Radio RADIUS_API_KEY radius
Hugging Face HF_TOKEN huggingface
Fuegos artificiales FIREWORKS_API_KEY fireworks
Juntos IA TOGETHER_API_KEY together
Baseten BASETEN_API_KEY baseten
Kimi para codificar KIMI_API_KEY kimi-coding
minimax MINIMAX_API_KEY minimax
MiniMax (China) MINIMAX_CN_API_KEY minimax-cn
Plan Qwen Token (catálogo existente) QWEN_TOKEN_PLAN_API_KEY qwen-token-plan
Plan de tokens Qwen (individual) QWEN_TOKEN_PLAN_API_KEY qwen-token-plan-individual
Plan de tokens Qwen (China) QWEN_TOKEN_PLAN_CN_API_KEY qwen-token-plan-cn
Xiaomi MiMo XIAOMI_API_KEY xiaomi
Plan de token Xiaomi MiMo (China) XIAOMI_TOKEN_PLAN_CN_API_KEY xiaomi-token-plan-cn
Plan de tokens Xiaomi MiMo (Ámsterdam) XIAOMI_TOKEN_PLAN_AMS_API_KEY xiaomi-token-plan-ams
Plan de token Xiaomi MiMo (Singapur) XIAOMI_TOKEN_PLAN_SGP_API_KEY xiaomi-token-plan-sgp

Referencia para variables de entorno y claves auth.json: const envMap en packages/ai/src/env-api-keys.ts.

Archivo de autenticación

Almacene las credenciales en ~/.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 utiliza el mismo punto final internacional y QWEN_TOKEN_PLAN_API_KEY que qwen-token-plan, pero limita el selector a los modelos documentados para suscripciones individuales. El existente El proveedor mantiene su catálogo más amplio para compatibilidad con versiones anteriores. Cuando utilice auth.json, guarde el credencial del proveedor que seleccione; Ambos proveedores internacionales comparten una variable de entorno.

El archivo se crea con permisos 0600 (solo lectura/escritura del usuario). Las credenciales del archivo de autenticación tienen prioridad sobre las variables de entorno.

API key las credenciales también pueden incluir valores de entorno específicos del proveedor. Estos valores se utilizan antes de las variables de entorno del proceso al resolver la clave de credencial, los encabezados de proveedor/modelo y la configuración del proveedor, como los ID de cuenta de Cloudflare, la configuración de Azure OpenAI, el proyecto/ubicación de Vertex, la configuración de Bedrock, PI_CACHE_RETENTION y 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"
    }
  }
}

Úselo cuando pi deba usar configuraciones de proveedor diferentes a las del entorno de shell del proyecto.

Resolución clave

El campo key admite la ejecución de comandos, la interpolación del entorno y los literales:

  • Comando de Shell: "!command" al inicio ejecuta el valor completo como un comando y usa stdout (almacenado en caché durante la vida útil del proceso)
    { "type": "api_key", "key": "!security find-generic-password -ws 'anthropic'" }
    { "type": "api_key", "key": "!op read 'op://vault/item/credential'" }
  • Interpolación del entorno: "$ENV_VAR" o "${ENV_VAR}" usa el valor de la variable nombrada. La interpolación funciona dentro de literales más grandes.
    { "type": "api_key", "key": "$MY_ANTHROPIC_KEY" }
    { "type": "api_key", "key": "${KEY_PREFIX}_${KEY_SUFFIX}" }
    $FOO_BAR es la variable FOO_BAR; use ${FOO}_BAR cuando BAR sea texto literal. Las variables de entorno que faltan hacen que el valor no se resuelva.
  • Escapa: "
    quot;
    emite un literal "
    quot;
    ; "$!" emite un literal "!" sin activar la ejecución del comando.
    { "type": "api_key", "key": "$literal-dollar-prefix" }
    { "type": "api_key", "key": "$!literal-bang-prefix" }
  • Valor literal: Usado directamente. Las cadenas simples en mayúsculas como MY_API_KEY son literales; utilice $MY_API_KEY para las variables de entorno.
    { "type": "api_key", "key": "sk-ant-..." }
    { "type": "api_key", "key": "public" }

Las credenciales OAuth también se almacenan aquí después de /login y se administran automáticamente.

Nube Providers

Azure abierto AI

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

Roca Amazónica

Utilice /login amazon-bedrock para almacenar un Bedrock API key o configure una de las fuentes de credenciales ambientales de AWS a continuación:

# 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

También admite roles de tareas ECS (AWS_CONTAINER_CREDENTIALS_*) e IRSA (AWS_WEB_IDENTITY_TOKEN_FILE).

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

El almacenamiento en caché rápido se habilita automáticamente para los modelos Claude cuyo ID contiene un nombre de modelo reconocible (modelos base y perfiles de inferencia definidos por el sistema). Para perfiles de inferencia de aplicaciones (cuyos ARN no contienen el nombre del modelo), configure AWS_BEDROCK_FORCE_CACHE=1 para habilitar puntos de caché:

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

Si se está conectando a un proxy Bedrock API, se pueden utilizar las siguientes variables de entorno:

# 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

Puerta de enlace de IA de Cloudflare

CLOUDFLARE_API_KEY se puede configurar mediante /login. El ID de la cuenta y el slug de la puerta de enlace se pueden configurar como variables de entorno o en el objeto env de la credencial API key en 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"

Rutas hacia OpenAI, Anthropic y Workers AI a través de Cloudflare AI Gateway. La IA de los trabajadores utiliza el API (/compat) unificado y los ID de modelo con prefijo (workers-ai/@cf/...). OpenAI utiliza la ruta de paso de OpenAI (/openai) con ID de modelo nativo de OpenAI como gpt-5.1. Anthropic utiliza la ruta de paso de Anthropic (/anthropic) con ID de modelo nativo de Anthropic como claude-sonnet-4-5.

La autenticación AI Gateway utiliza CLOUDFLARE_API_KEY como cf-aig-authorization. La autenticación ascendente puede ser una de:

Modo Solicitar autenticación autenticación ascendente
IA de los trabajadores Solo token de Cloudflare Nativo de Cloudflare
Facturación unificada Solo token de Cloudflare Cloudflare maneja la autenticación ascendente y deduce créditos
BYOK almacenado Solo token de Cloudflare Cloudflare inyecta claves de proveedor almacenadas en el panel de AI Gateway
BYOK en línea Token de Cloudflare más encabezado Authorization ascendente La solicitud proporciona la clave del proveedor ascendente.

Para un uso normal de pi, prefiera la facturación unificada o BYOK almacenado. BYOK en línea requiere configurar un encabezado Authorization ascendente adicional para el proveedor de Cloudflare AI Gateway, por ejemplo, a través de una anulación de proveedor/modelo models.json.

IA de los trabajadores de Cloudflare

CLOUDFLARE_API_KEY se puede configurar mediante /login. CLOUDFLARE_ACCOUNT_ID se puede configurar como una variable de entorno o en el objeto env de la credencial API key en 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 establece automáticamente x-session-affinity para descuentos prefix caching.

IA de vértice de Google

Utiliza credenciales predeterminadas de la aplicación:

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

O establezca GOOGLE_APPLICATION_CREDENTIALS en un archivo de clave de cuenta de servicio.

llama.cpp

Pi admite el servidor enrutador llama.cpp. Configúrelo con /login llama.cpp, administre los modelos cargados con /llama y seleccione un modelo cargado con /model.

Consulte llama.cpp para conocer la configuración del servidor, el diseño del directorio de modelos, las variables de entorno y el uso de comandos.

Personalizado Providers

A través de models.json: Agregue Ollama, LM Studio, vLLM o cualquier proveedor que hable un API compatible (finalizaciones de OpenAI, respuestas de OpenAI, mensajes antrópicos, IA generativa de Google). Ver models.md.

A través de extensiones: Para los proveedores que necesitan API implementaciones o OAuth flujos personalizados, cree una extensión. Consulte custom-provider.md y examples/extensions/custom-provider-gitlab-duo.

Orden de resolución

Al resolver las credenciales de un proveedor:

  1. CLI --api-key bandera
  2. auth.json entrada (API key o OAuth token)
  3. variable de entorno
  4. Claves de proveedor personalizadas desde models.json