Proveedores
Pi admite proveedores basados en suscripción mediante OAuth y proveedores con clave API mediante variables de entorno o archivo de autenticación. Para cada proveedor, pi conoce todos los modelos disponibles. La lista se actualiza con cada versión de pi.
Tabla de contenidos
Sección titulada «Tabla de contenidos»- Suscripciones
- Claves API
- Archivo de autenticación
- Proveedores en la nube
- Proveedores personalizados
- Orden de resolución
Suscripciones
Sección titulada «Suscripciones»Usa /login en modo interactivo y luego selecciona un proveedor:
- ChatGPT Plus/Pro (Codex)
- Claude Pro/Max
- GitHub Copilot
Usa /logout para borrar las credenciales. Los tokens se almacenan en ~/.pi/agent/auth.json y se renuevan automáticamente cuando expiran.
OpenAI Codex
Sección titulada «OpenAI Codex»- Requiere suscripción ChatGPT Plus o Pro
- Respaldado oficialmente por OpenAI: Codex for OSS
Claude Pro/Max
Sección titulada «Claude Pro/Max»La autenticación por suscripción de Anthropic está activa para cuentas Claude Pro/Max. El uso con harness de terceros consume uso adicional y se factura por token, no contra los límites del plan Claude.
GitHub Copilot
Sección titulada «GitHub Copilot»- Pulsa Enter para github.com, o introduce el dominio de tu GitHub Enterprise Server
- Si recibes “model not supported”, actívalo en VS Code: Copilot Chat → selector de modelo → selecciona el modelo → “Enable”
Claves API
Sección titulada «Claves API»Variables de entorno o archivo de autenticación
Sección titulada «Variables de entorno o archivo de autenticación»Usa /login en modo interactivo y selecciona un proveedor para almacenar una clave API en auth.json, o configura las credenciales mediante variable de entorno:
export ANTHROPIC_API_KEY=sk-ant-...pi| Proveedor | Variable de entorno | clave de auth.json |
|---|---|---|
| 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 |
| 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 | 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 |
| Hugging Face | HF_TOKEN | huggingface |
| Fireworks | FIREWORKS_API_KEY | fireworks |
| Together AI | TOGETHER_API_KEY | together |
| Kimi For Coding | KIMI_API_KEY | kimi-coding |
| MiniMax | MINIMAX_API_KEY | minimax |
| MiniMax (China) | MINIMAX_CN_API_KEY | minimax-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 |
Referencia de variables de entorno y claves de auth.json: const envMap en packages/ai/src/env-api-keys.ts.
Archivo de autenticación
Sección titulada «Archivo de autenticación»Almacena 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": "..." }, "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": "..." }}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.
Las credenciales de clave API también pueden incluir valores de entorno específicos del proveedor. Estos valores se usan antes que 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" } }}Usa esto cuando pi deba usar una configuración de proveedor distinta a la del entorno shell del proyecto.
Resolución de claves
Sección titulada «Resolución de claves»El campo key admite ejecución de comandos, interpolación de entorno y literales:
- Comando shell:
"!command"al inicio ejecuta todo el valor como un comando y usa stdout (en caché durante la vida del proceso){ "type": "api_key", "key": "!security find-generic-password -ws 'anthropic'" }{ "type": "api_key", "key": "!op read 'op://vault/item/credential'" } - Interpolación de entorno:
"$ENV_VAR"o"${ENV_VAR}"usa el valor de la variable nombrada. La interpolación funciona dentro de literales más largos.{ "type": "api_key", "key": "$MY_ANTHROPIC_KEY" }{ "type": "api_key", "key": "${KEY_PREFIX}_${KEY_SUFFIX}" }$FOO_BARes la variableFOO_BAR; usa${FOO}_BARcuandoBARes texto literal. Las variables de entorno faltantes dejan el valor sin resolver. - Escapes:
"$$"emite un"$"literal;"$!"emite un"!"literal sin activar la ejecución de comandos.{ "type": "api_key", "key": "$$literal-dollar-prefix" }{ "type": "api_key", "key": "$!literal-bang-prefix" } - Valor literal: Se usa directamente. Las cadenas en mayúsculas simples como
MY_API_KEYson literales; usa$MY_API_KEYpara variables de entorno.{ "type": "api_key", "key": "sk-ant-..." }{ "type": "api_key", "key": "public" }
Las credenciales OAuth también se almacenan aquí tras /login y se gestionan automáticamente.
Proveedores en la nube
Sección titulada «Proveedores en la nube»Azure OpenAI
Sección titulada «Azure OpenAI»export AZURE_OPENAI_API_KEY=...export AZURE_OPENAI_BASE_URL=https://your-resource.openai.azure.com# also supported: https://your-resource.cognitiveservices.azure.com# root endpoints are auto-normalized to /openai/v1# or use resource name instead of base URLexport AZURE_OPENAI_RESOURCE_NAME=your-resource
# Optionalexport AZURE_OPENAI_API_VERSION=2024-02-01export AZURE_OPENAI_DEPLOYMENT_NAME_MAP=gpt-4=my-gpt4,gpt-4o=my-gpt4oAmazon Bedrock
Sección titulada «Amazon Bedrock»# Option 1: AWS Profileexport AWS_PROFILE=your-profile
# Option 2: IAM Keysexport AWS_ACCESS_KEY_ID=AKIA...export AWS_SECRET_ACCESS_KEY=...
# Option 3: Bearer Tokenexport AWS_BEARER_TOKEN_BEDROCK=...
# Optional region (defaults to us-east-1)export AWS_REGION=us-west-2También admite roles de tarea ECS (AWS_CONTAINER_CREDENTIALS_*) e IRSA (AWS_WEB_IDENTITY_TOKEN_FILE).
pi --provider amazon-bedrock --model us.anthropic.claude-sonnet-4-20250514-v1:0El almacenamiento en caché de prompts se habilita automáticamente para 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 aplicación (cuyos ARN no contienen el nombre del modelo), configura AWS_BEDROCK_FORCE_CACHE=1 para habilitar puntos de caché:
export AWS_BEDROCK_FORCE_CACHE=1pi --provider amazon-bedrock --model arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/abc123Si te conectas a un proxy de la API de Bedrock, puedes usar 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 authenticationexport AWS_BEDROCK_SKIP_AUTH=1
# Set if your proxy only supports HTTP/1.1export AWS_BEDROCK_FORCE_HTTP1=1Cloudflare AI Gateway
Sección titulada «Cloudflare AI Gateway»CLOUDFLARE_API_KEY puede configurarse mediante /login. El ID de cuenta y el slug del gateway pueden configurarse como variables de entorno o en el objeto env de la credencial de clave API en auth.json.
export CLOUDFLARE_API_KEY=... # or use /loginexport CLOUDFLARE_ACCOUNT_ID=...export CLOUDFLARE_GATEWAY_ID=... # create at dash.cloudflare.com → AI → AI Gatewaypi --provider cloudflare-ai-gateway --model "claude-sonnet-4-5"Enruta a OpenAI, Anthropic y Workers AI a través de Cloudflare AI Gateway. Workers AI usa la API unificada (/compat) e IDs de modelo con prefijo (workers-ai/@cf/...). OpenAI usa la ruta de passthrough de OpenAI (/openai) con IDs de modelo nativos de OpenAI como gpt-5.1. Anthropic usa la ruta de passthrough de Anthropic (/anthropic) con IDs de modelo nativos de Anthropic como claude-sonnet-4-5.
La autenticación de AI Gateway usa CLOUDFLARE_API_KEY como cf-aig-authorization. La autenticación upstream puede ser una de:
| Modo | Autenticación de la solicitud | Autenticación upstream |
|---|---|---|
| Workers AI | Solo token de Cloudflare | Nativo de Cloudflare |
| Facturación unificada | Solo token de Cloudflare | Cloudflare gestiona la autenticación upstream y deduce créditos |
| BYOK almacenado | Solo token de Cloudflare | Cloudflare inyecta las claves del proveedor almacenadas en el panel de AI Gateway |
| BYOK en línea | Token de Cloudflare más encabezado upstream Authorization | La solicitud aporta la clave del proveedor upstream |
Para el uso normal de pi, prefiere facturación unificada o BYOK almacenado. BYOK en línea requiere configurar un encabezado upstream Authorization adicional para el proveedor Cloudflare AI Gateway, por ejemplo mediante una anulación de proveedor/modelo en models.json.
Cloudflare Workers AI
Sección titulada «Cloudflare Workers AI»CLOUDFLARE_API_KEY puede configurarse mediante /login. CLOUDFLARE_ACCOUNT_ID puede configurarse como variable de entorno o en el objeto env de la credencial de clave API en auth.json.
export CLOUDFLARE_API_KEY=... # or use /loginexport CLOUDFLARE_ACCOUNT_ID=...pi --provider cloudflare-workers-ai --model "@cf/moonshotai/kimi-k2.6"Pi configura automáticamente x-session-affinity para descuentos de caché por prefijo.
Google Vertex AI
Sección titulada «Google Vertex AI»Usa Application Default Credentials:
gcloud auth application-default loginexport GOOGLE_CLOUD_PROJECT=your-projectexport GOOGLE_CLOUD_LOCATION=us-central1O configura GOOGLE_APPLICATION_CREDENTIALS con un archivo de clave de cuenta de servicio.
Proveedores personalizados
Sección titulada «Proveedores personalizados»Mediante models.json: Añade Ollama, LM Studio, vLLM o cualquier proveedor que hable una API compatible (OpenAI Completions, OpenAI Responses, Anthropic Messages, Google Generative AI). Consulta models.md.
Mediante extensiones: Para proveedores que necesiten implementaciones de API personalizadas o flujos OAuth, crea una extensión. Consulta custom-provider.md y examples/extensions/custom-provider-gitlab-duo.
Orden de resolución
Sección titulada «Orden de resolución»Al resolver credenciales para un proveedor:
- Flag CLI
--api-key - Entrada en
auth.json(clave API o token OAuth) - Variable de entorno
- Claves de proveedor personalizado desde
models.json