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 (Codex)
  • Claude Pro/Max
  • GitHub Copilot
  • xAI (Grok/X subscription)
  • OpenRouter (OAuth-minted API key billed from OpenRouter credits)
  • Radius

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.

OpenAI Codex

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

Claude Pro/Max

La autenticación de suscripción Anthropic está activa para cuentas Claude Pro/Max. El uso desde herramientas de terceros se descuenta de extra usage y se factura por token, no contra los límites del plan Claude.

GitHub Copilot

  • 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 (Grok/X subscription)

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

OpenRouter

  • 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

Radius

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
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
Amazon Bedrock AWS_BEARER_TOKEN_BEDROCK amazon-bedrock
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 Coding Plan (Global) 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
Radius RADIUS_API_KEY radius
Hugging Face HF_TOKEN huggingface
Fireworks FIREWORKS_API_KEY fireworks
Together AI TOGETHER_API_KEY together
Baseten BASETEN_API_KEY baseten
Kimi For Coding KIMI_API_KEY kimi-coding
MiniMax MINIMAX_API_KEY minimax
MiniMax (China) MINIMAX_CN_API_KEY minimax-cn
Qwen Token Plan (existing catalog) QWEN_TOKEN_PLAN_API_KEY qwen-token-plan
Qwen Token Plan (Individual) 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 (Singapore) 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.

Las credenciales de API key también pueden incluir valores de entorno con alcance de 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"
    }
  }
}

Ú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.
  • Escapes: "$" emite un "
    quot;
    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: 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.

Proveedores en la nube

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

Amazon Bedrock

Use /login amazon-bedrock para guardar una API key de Bedrock, o configure una de las siguientes fuentes de credenciales de AWS disponibles en el entorno:

# 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

Cloudflare AI Gateway

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.

Cloudflare Workers AI

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.

Google Vertex AI

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.

Proveedores personalizados

Mediante models.json: Agregue Ollama, LM Studio, vLLM o cualquier proveedor que admita una API compatible (OpenAI Completions, OpenAI Responses, Anthropic Messages, Google Generative AI). Consulte 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