Saltearse al contenido

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.

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.

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

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.

  • 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”

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:

Ventana de terminal
export ANTHROPIC_API_KEY=sk-ant-...
pi
ProveedorVariable de entornoclave de auth.json
AnthropicANTHROPIC_API_KEYanthropic
Ant LingANT_LING_API_KEYant-ling
Azure OpenAI ResponsesAZURE_OPENAI_API_KEYazure-openai-responses
OpenAIOPENAI_API_KEYopenai
DeepSeekDEEPSEEK_API_KEYdeepseek
NVIDIA NIMNVIDIA_API_KEYnvidia
Google GeminiGEMINI_API_KEYgoogle
MistralMISTRAL_API_KEYmistral
GroqGROQ_API_KEYgroq
CerebrasCEREBRAS_API_KEYcerebras
Cloudflare AI GatewayCLOUDFLARE_API_KEY (+ CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_GATEWAY_ID)cloudflare-ai-gateway
Cloudflare Workers AICLOUDFLARE_API_KEY (+ CLOUDFLARE_ACCOUNT_ID)cloudflare-workers-ai
xAIXAI_API_KEYxai
OpenRouterOPENROUTER_API_KEYopenrouter
Vercel AI GatewayAI_GATEWAY_API_KEYvercel-ai-gateway
ZAIZAI_API_KEYzai
ZAI Coding Plan (China)ZAI_CODING_CN_API_KEYzai-coding-cn
OpenCode ZenOPENCODE_API_KEYopencode
OpenCode GoOPENCODE_API_KEYopencode-go
Hugging FaceHF_TOKENhuggingface
FireworksFIREWORKS_API_KEYfireworks
Together AITOGETHER_API_KEYtogether
Kimi For CodingKIMI_API_KEYkimi-coding
MiniMaxMINIMAX_API_KEYminimax
MiniMax (China)MINIMAX_CN_API_KEYminimax-cn
Xiaomi MiMoXIAOMI_API_KEYxiaomi
Xiaomi MiMo Token Plan (China)XIAOMI_TOKEN_PLAN_CN_API_KEYxiaomi-token-plan-cn
Xiaomi MiMo Token Plan (Amsterdam)XIAOMI_TOKEN_PLAN_AMS_API_KEYxiaomi-token-plan-ams
Xiaomi MiMo Token Plan (Singapore)XIAOMI_TOKEN_PLAN_SGP_API_KEYxiaomi-token-plan-sgp

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

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.

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_BAR es la variable FOO_BAR; usa ${FOO}_BAR cuando BAR es 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_KEY son literales; usa $MY_API_KEY para 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.

Ventana de terminal
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 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
Ventana de terminal
# 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 tarea ECS (AWS_CONTAINER_CREDENTIALS_*) e IRSA (AWS_WEB_IDENTITY_TOKEN_FILE).

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

El 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é:

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

Si te conectas a un proxy de la API de Bedrock, puedes usar las siguientes variables de entorno:

Ventana de terminal
# 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_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.

Ventana de terminal
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"

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:

ModoAutenticación de la solicitudAutenticación upstream
Workers AISolo token de CloudflareNativo de Cloudflare
Facturación unificadaSolo token de CloudflareCloudflare gestiona la autenticación upstream y deduce créditos
BYOK almacenadoSolo token de CloudflareCloudflare inyecta las claves del proveedor almacenadas en el panel de AI Gateway
BYOK en líneaToken de Cloudflare más encabezado upstream AuthorizationLa 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_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.

Ventana de terminal
export CLOUDFLARE_API_KEY=... # or use /login
export 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.

Usa Application Default Credentials:

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

O configura GOOGLE_APPLICATION_CREDENTIALS con un archivo de clave de cuenta de servicio.

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.

Al resolver credenciales para un proveedor:

  1. Flag CLI --api-key
  2. Entrada en auth.json (clave API o token OAuth)
  3. Variable de entorno
  4. Claves de proveedor personalizado desde models.json