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

Ajustes

Pi utiliza archivos de configuración JSON con la configuración del proyecto anulando la configuración global.

Ubicación Alcance
~/.pi/agent/settings.json Global (todos los proyectos)
.pi/settings.json Proyecto (directorio actual)

Edite directamente o use /settings para opciones comunes.

Confianza del proyecto

En el inicio interactivo, pi pregunta antes de confiar en una carpeta de proyecto que contiene configuraciones, recursos o proyecto local del proyecto .agents/skills y no tiene ninguna decisión guardada para la carpeta o una carpeta principal en ~/.pi/agent/trust.json. Confiar en un proyecto permite a pi cargar recursos .pi/settings.json y .pi, instalar paquetes de proyecto faltantes y ejecutar extensiones de proyecto.

Los modos no interactivos (-p, --mode json y --mode rpc) no muestran un mensaje de confianza. Sin una decisión de confianza guardada aplicable, usan defaultProjectTrust de la configuración global: ask (predeterminado) y never ignoran esos recursos del proyecto, mientras que always confía en ellos. Pase --approve/-a o --no-approve/-na para anular la confianza del proyecto durante una ejecución.

Si no se aplica ninguna extensión o decisión guardada, defaultProjectTrust controla el comportamiento de reserva. Configúrelo en "ask", "always" o "never" en ~/.pi/agent/settings.json, o cámbielo con /settings.

Los comandos pi config y del paquete usan el mismo flujo de confianza del proyecto, excepto que pi update nunca lo solicita. Pase --approve para confiar en la configuración local del proyecto para un comando o --no-approve para ignorarlos.

Utilice /trust en modo interactivo para guardar una decisión de confianza del proyecto para sesiones futuras, incluida la confianza para la carpeta principal inmediata. Escribe solo ~/.pi/agent/trust.json; la sesión actual no se recarga, así que reinicie pi para que los cambios surtan efecto.

Todas las configuraciones

Modelo y pensamiento

Configuración Tipo Por defecto Descripción
defaultProvider cadena - Proveedor predeterminado (por ejemplo, "anthropic", "openai")
defaultModel cadena - ID de modelo predeterminado
defaultThinkingLevel cadena - "off", "minimal", "low", "medium", "high", "xhigh", "max"
hideThinkingBlock booleano false Ocultar bloques de pensamiento en la salida
showCacheMissNotices booleano false Mostrar avisos de transcripción en caso de errores significativos en la caché de avisos
thinkingBudgets objeto - Presupuestos de tokens personalizados por nivel de pensamiento

pensandoPresupuestos

{
  "thinkingBudgets": {
    "minimal": 1024,
    "low": 4096,
    "medium": 10240,
    "high": 32768
  }
}

Interfaz de usuario y pantalla

Configuración Tipo Por defecto Descripción
theme cadena "dark" Nombre del tema ("dark", "light" o personalizado)
externalEditor cadena $VISUAL, luego $EDITOR, luego Bloc de notas en Windows o nano en otro lugar Comando para Ctrl+G editor externo; tiene prioridad sobre las variables de entorno
quietStartup booleano false Ocultar encabezado de inicio
defaultProjectTrust cadena "ask" Comportamiento de confianza del proyecto alternativo: "ask", "always" o "never". Sólo configuración global
collapseChangelog booleano false Mostrar registro de cambios condensado después de las actualizaciones
enableInstallTelemetry booleano true Envíe un ping anónimo de instalación/actualización de la versión después de la primera instalación o de las actualizaciones detectadas por el registro de cambios. Esto no controla las comprobaciones de actualizaciones.
enableAnalytics booleano false Opte por compartir datos analíticos. Actualmente solo se solicita durante la configuración experimental por primera vez (PI_EXPERIMENTAL=1)
trackingId cadena - Identificador de seguimiento de análisis, generado cuando enableAnalytics está activado
doubleEscapeAction cadena "tree" Acción para doble escape: "tree", "fork" o "none"
treeFilterMode cadena "default" Filtro predeterminado para /tree: "default", "no-tools", "user-only", "labeled-only", "all"
editorPaddingX número 0 Relleno horizontal para el editor de entrada (0-3)
outputPad número 1 Relleno horizontal para mensajes de usuario, mensajes de asistente y pensamiento (0 o 1)
autocompleteMaxVisible número 5 Máximo de elementos visibles en el menú desplegable de autocompletar (3-20)
showHardwareCursor booleano false Muestre el cursor del terminal mientras TUI lo posiciona para soporte IME
tuiMode cadena "regular" Modo interactivo TUI: "regular" o experimental "fullscreen". Los cambios de /settings se aplican inmediatamente; --tui-mode anula esta configuración al inicio
fullscreenExitOutput cadena "transcript" Salida de salida en pantalla completa: "transcript" imprime la transcripción final y la sugerencia de reanudación, mientras que "resume-hint" restaura la pantalla anterior e imprime solo la sugerencia de reanudación. No tiene ningún efecto en el modo normal TUI
fullscreenScrollbar cadena "auto" Barra de desplazamiento de transcripción de pantalla completa: "auto" la muestra temporalmente mientras se desplaza, "always" reserva la columna más a la derecha y la mantiene visible, y "hidden" la oculta. No tiene ningún efecto en el modo normal TUI

Para VS Code, incluya --wait para que pi se reanude después de que salga el editor:

{
  "externalEditor": "code --wait"
}

Comprobaciones de telemetría y actualización.

enableInstallTelemetry solo controla el ping anónimo de instalación/actualización a https://pi.dev/api/report-install. La exclusión voluntaria de la telemetría no deshabilita las comprobaciones de actualizaciones; Pi aún puede recuperar https://pi.dev/api/latest-version para buscar la última versión.

Configure PI_SKIP_VERSION_CHECK=1 para deshabilitar la verificación de actualización de la versión Pi. Utilice --offline o PI_OFFLINE=1 para deshabilitar todas las operaciones de red de inicio que se describen aquí, incluidas las comprobaciones de actualización, las comprobaciones de actualización de paquetes y la telemetría de instalación/actualización.

Red

Configuración Tipo Por defecto Descripción
httpProxy cadena - La URL del proxy HTTP se aplica como HTTP_PROXY y HTTPS_PROXY. Sólo configuración global.
{
  "httpProxy": "http://127.0.0.1:7890"
}

Advertencias

Configuración Tipo Por defecto Descripción
warnings.anthropicExtraUsage booleano true Mostrar una advertencia cuando la autenticación de suscripción de Anthropic pueda utilizar un uso adicional pago
{
  "warnings": {
    "anthropicExtraUsage": false
  }
}

Compactación

Configuración Tipo Por defecto Descripción
compaction.enabled booleano true Habilitar la autocompactación
compaction.reserveTokens número 16384 Tokens reservados para la respuesta LLM
compaction.keepRecentTokens número 20000 Tokens recientes para conservar (no resumidos)
{
  "compaction": {
    "enabled": true,
    "reserveTokens": 16384,
    "keepRecentTokens": 20000
  }
}

Resumen de sucursales

Configuración Tipo Por defecto Descripción
branchSummary.reserveTokens número 16384 Fichas reservadas para branch summarization
branchSummary.skipPrompt booleano false Saltar "¿Resumir rama?" mensaje en /tree navegación (el valor predeterminado es sin resumen)

Rever

Configuración Tipo Por defecto Descripción
retry.enabled booleano true Habilite el reintento automático a nivel de agente en caso de errores transitorios
retry.maxRetries número 3 Número máximo de reintentos a nivel de agente
retry.baseDelayMs número 2000 Retraso base para retroceso exponencial a nivel de agente (2s, 4s, 8s)
retry.provider.timeoutMs número SDK predeterminado Proveedor/SDK tiempo de espera de solicitud en milisegundos
retry.provider.maxRetries número 0 Proveedor/SDK reintentos
retry.provider.maxRetryDelayMs número 60000 Retraso máximo solicitado por el servidor antes de fallar (60 s)

Cuando un proveedor solicita un retraso de reintento superior a retry.provider.maxRetryDelayMs, la solicitud falla inmediatamente con un error informativo en lugar de esperar en silencio. Configúrelo en 0 para desactivar el límite.

Mantenga retry.provider.maxRetries en 0 a menos que se necesiten explícitamente reintentos a nivel de proveedor. Configurarlo por encima de 0 puede hacer que SDK/los reintentos del proveedor manejen errores de límite de uso antes de que Pi los vea, lo que puede bloquear al agente hasta que se restablezca la cuota del proveedor en algunas circunstancias.

{
  "retry": {
    "enabled": true,
    "maxRetries": 3,
    "baseDelayMs": 2000,
    "provider": {
      "timeoutMs": 3600000,
      "maxRetries": 0,
      "maxRetryDelayMs": 60000
    }
  }
}

Entrega de mensajes

Configuración Tipo Por defecto Descripción
steeringMode cadena "one-at-a-time" Cómo se envían los mensajes de dirección: "all" o "one-at-a-time"
followUpMode cadena "one-at-a-time" Cómo se envían los mensajes de seguimiento: "all" o "one-at-a-time"
transport cadena "auto" Transporte preferido para proveedores que admiten múltiples transportes: "sse", "websocket", "websocket-cached" o "auto"
httpIdleTimeoutMs número 300000 Tiempo de espera de inactividad del encabezado/cuerpo HTTP en milisegundos, también utilizado por proveedores con tiempos de espera de inactividad de flujo explícitos. Establezca en 0 para desactivar.
websocketConnectTimeoutMs número 15000 Tiempo de espera del protocolo de enlace de apertura/conexión de WebSocket en milisegundos para proveedores que admiten transportes de WebSocket. Establezca en 0 para desactivar.

Terminales e imágenes

Configuración Tipo Por defecto Descripción
terminal.showImages booleano true Mostrar imágenes en la terminal (si es compatible)
terminal.imageWidthCells número 60 Ancho de imagen en línea preferido en celdas terminales
terminal.clearOnShrink booleano false Borrar filas vacías cuando el contenido se reduce (puede causar parpadeo)
images.autoResize booleano true Cambiar el tamaño de las imágenes a 2000x2000 máx. Se aplica a los archivos adjuntos @file, read y a las imágenes devueltas por las herramientas
images.blockImages booleano false Bloquear todas las imágenes para que no se envíen a LLM

Caparazón

Configuración Tipo Por defecto Descripción
shellPath cadena - Ruta de shell personalizada (por ejemplo, para Cygwin en Windows); admite un ~ inicial para el directorio de inicio
shellCommandPrefix cadena - Prefijo para cada comando bash (por ejemplo, "shopt -s expand_aliases")
npmCommand cadena[] - Comando argv utilizado para npm operaciones de búsqueda/instalación de paquetes (por ejemplo, ["mise", "exec", "node@20", "--", "npm"])
{
  "npmCommand": ["mise", "exec", "node@20", "--", "npm"]
}

npmCommand se usa para todas las operaciones del administrador de paquetes npm, incluidas instalaciones, desinstalaciones e instalaciones de dependencia dentro de paquetes git. Los paquetes npm de ámbito de usuario se instalan en ~/.pi/agent/npm/; Los paquetes npm con alcance de proyecto se instalan en .pi/npm/. Utilice entradas de estilo argv exactamente como se debe iniciar el proceso. Cuando se configura npmCommand, las instalaciones de dependencia de paquetes git usan install simple para evitar indicadores específicos de npm en contenedores o administradores de paquetes alternativos.

Sesiones

Configuración Tipo Por defecto Descripción
sessionDir cadena - Directorio donde se almacenan los archivos de sesión. Acepta rutas absolutas o relativas, más ~.
{ "sessionDir": ".pi/sessions" }

Cuando varias fuentes especifican un directorio de sesión, la prioridad es --session-dir, PI_CODING_AGENT_SESSION_DIR y luego sessionDir en settings.json.

Modelo Ciclismo

Configuración Tipo Por defecto Descripción
enabledModels cadena[] - Patrones de modelo para ciclos Ctrl+P (mismo formato que la bandera --models CLI)
{
  "enabledModels": ["claude-*", "gpt-4o", "gemini-2*"]
}

Markdown

Configuración Tipo Por defecto Descripción
markdown.codeBlockIndent cadena " " Sangría para bloques de código
markdown.mermaid cadena "streaming" Modo de representación de sirena: "off", "final" o "streaming"

Recursos

Estas configuraciones definen desde dónde cargar extensiones, habilidades, indicaciones y temas.

Las rutas en ~/.pi/agent/settings.json se resuelven en relación con ~/.pi/agent. Las rutas en .pi/settings.json se resuelven en relación con .pi. Se admiten rutas absolutas y ~.

Configuración Tipo Por defecto Descripción
packages formación [] npm/git paquetes desde los que cargar recursos
extensions cadena[] [] Rutas o directorios de archivos de extensión locales
skills cadena[] [] Rutas o directorios de archivos de habilidades locales
prompts cadena[] [] Rutas o directorios de plantillas de mensajes locales
themes cadena[] [] Rutas o directorios de archivos de temas locales
enableSkillCommands booleano true Registrar habilidades como comandos /skill:name

Las matrices admiten patrones globales y exclusiones. Utilice !pattern para excluir. Utilice +path para forzar la inclusión de una ruta exacta y -path para forzar la exclusión de una ruta exacta.

paquetes

El formulario de cadena carga todos los recursos de un paquete:

{
  "packages": ["pi-skills", "@org/my-extension"]
}

El formulario de objeto filtra qué recursos cargar:

{
  "packages": [
    {
      "source": "pi-skills",
      "skills": ["brave-search", "transcribe"],
      "extensions": []
    }
  ]
}

Consulte packages.md para obtener detalles sobre la administración de paquetes.

Ejemplo

{
  "defaultProvider": "anthropic",
  "defaultModel": "claude-sonnet-4-20250514",
  "defaultThinkingLevel": "medium",
  "theme": "dark",
  "compaction": {
    "enabled": true,
    "reserveTokens": 16384,
    "keepRecentTokens": 20000
  },
  "retry": {
    "enabled": true,
    "maxRetries": 3
  },
  "enabledModels": ["claude-*", "gpt-4o"],
  "warnings": {
    "anthropicExtraUsage": true
  },
  "packages": ["pi-skills"]
}

Anulaciones de proyectos

La configuración del proyecto (.pi/settings.json) anula la configuración global. Los objetos anidados se fusionan:

// ~/.pi/agent/settings.json (global)
{
  "theme": "dark",
  "compaction": { "enabled": true, "reserveTokens": 16384 }
}

// .pi/settings.json (project)
{
  "compaction": { "reserveTokens": 8192 }
}

// Result
{
  "theme": "dark",
  "compaction": { "enabled": true, "reserveTokens": 8192 }
}