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

Variables de entorno

Pi utiliza variables de entorno de tres maneras:

  • Variables como PI_OFFLINE configuran el proceso Pi.
  • Pi establece PI_CODING_AGENT para que los procesos secundarios puedan detectar que se ejecutan dentro de Pi.
  • Los comandos ejecutados por la herramienta bash invocable por LLM reciben variables PI_* que describen la sesión actual.

Las variables clave del proveedor API se documentan por separado en Providers.

Marcador de proceso

Los puntos de entrada CLI y RPC se establecen en PI_CODING_AGENT=true. Los procesos secundarios lo heredan y pueden usarlo para detectar que se ejecutan dentro de Pi. No es específico de la sesión y no se configura automáticamente cuando Pi se incrusta a través de SDK.

Entorno de sesión de la herramienta Bash

Los comandos ejecutados por la herramienta bash reciben el estado actual de la sesión Pi:

Variable Descripción
PI_SESSION_ID ID de sesión actual
PI_SESSION_FILE Ruta absoluta al archivo JSONL de la sesión actual; Desarmado para sesiones efímeras.
PI_PROVIDER Proveedor de modelo actualmente seleccionado
PI_MODEL ID del modelo seleccionado actualmente
PI_REASONING_LEVEL Nivel de razonamiento efectivo actual: off, minimal, low, medium, high, xhigh o max

Los valores se resuelven cuando se inicia cada comando. Por lo tanto, cambiar de modelo o cambiar el nivel de razonamiento afecta al siguiente comando bash sin reiniciar Pi. PI_PROVIDER y PI_MODEL identifican el modelo Pi seleccionado, no un modelo ascendente diferente que un enrutador puede elegir internamente.

Cuando se le pregunte qué modelo o proveedor se está ejecutando, inspeccione estas variables en lugar de inferir la respuesta del mensaje del sistema:

printf '%s/%s\n' "$PI_PROVIDER" "$PI_MODEL"
printf 'reasoning=%s session=%s\n' "$PI_REASONING_LEVEL" "$PI_SESSION_ID"

El archivo de sesión se puede inspeccionar directamente cuando la sesión es persistente:

if [ -n "$PI_SESSION_FILE" ]; then
  tail -n 1 "$PI_SESSION_FILE"
fi

Estas variables se inyectan en la herramienta bash invocable por LLM. No se inyectan en los comandos ! o !! ingresados ​​por el usuario.

Herramientas Bash personalizadas

Las herramientas Bash creadas con createBashTool() exponen el entorno de sesión de forma predeterminada cuando se registran con Pi. La inyección ocurre antes de spawnHook, por lo que un gancho recibe las variables en ctx.env:

const bashTool = createBashTool(cwd, {
  spawnHook: (ctx) => ({
    ...ctx,
    env: { ...ctx.env, CI: "1" },
  }),
});

Deshabilite los metadatos de la sesión independientemente del gancho de generación:

const bashTool = createBashTool(cwd, {
  exposeSessionEnvironment: false,
  spawnHook: (ctx) => ctx,
});

Cuando está deshabilitado, Pi elimina los valores heredados de estas variables, de modo que los procesos Pi anidados no exponen metadatos obsoletos de la sesión principal.

Pi Configuración del proceso

Estas variables son leídas por el propio Pi:

Variable Descripción
PI_CODING_AGENT_DIR Anule el directorio de configuración; el valor predeterminado es ~/.pi/agent
PI_CODING_AGENT_SESSION_DIR Anular el almacenamiento de sesiones; anulado por --session-dir
PI_PACKAGE_DIR Anular el directorio del paquete, útil para las rutas de almacenamiento de Nix/Guix
PI_OFFLINE Deshabilite las operaciones de red de inicio, incluidas las comprobaciones de actualizaciones, las actualizaciones de paquetes y la telemetría de instalación/actualización.
PI_SKIP_VERSION_CHECK Deshabilite la solicitud de la última versión pi.dev
PI_TELEMETRY Anular la telemetría de instalación/actualización y los encabezados de atribución de proveedores: 1/true/yes o 0/false/no
PI_CACHE_RETENTION Establezca en long para el almacenamiento en caché extendido del aviso del proveedor cuando sea compatible
PI_SHARE_VIEWER_URL Anule la URL base utilizada por /share
PI_HARDWARE_CURSOR Establezca en 1 para mostrar el cursor de hardware; ver Terminal setup
VISUAL, EDITOR Respaldo del editor externo cuando externalEditor no está configurado
HTTP_PROXY, HTTPS_PROXY Solicitudes HTTP salientes de proxy

Las credenciales del proveedor como ANTHROPIC_API_KEY, OPENAI_API_KEY y la configuración del proveedor de la nube se enumeran en Providers.