Variables de entorno
Pi utiliza variables de entorno de tres maneras:
- Variables como
PI_OFFLINEconfiguran el proceso Pi. - Pi establece
PI_CODING_AGENTpara 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"
fiEstas 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.