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 }
}