Referencia completa para cada clave settings.json de Claude Code: dónde va cada una, su tipo y valor predeterminado, y un ejemplo listo para pegar, con un índice de cada clave.
Esta página de referencia enumera cada clave que Claude Code lee desde un archivo de configuración, más el grupo corto de claves que mantiene en ~/.claude.json en su lugar. Para elegir un archivo o verificar la precedencia, comience con Archivos de configuración y precedencia.
Índice de configuración
Cada clave a continuación enlaza a su entrada. El alcance enumera los archivos en los que puede ir: User es ~/.claude/settings.json, Project es .claude/settings.json, Local es .claude/settings.local.json, y Managed es lo que tu organización implementa. Any file significa los cuatro, y Global config significa ~/.claude.json.
<ReferenceFilter
noun="settings"
placeholder="Filter settings by key or purpose"
facetOrder={{ scope: ["Any file", "User, local, or managed", "User or managed", "Managed", "Global config"] }}
columnHelp={{
topic: "The section of this page that holds the entry. Use Sort by to group the table by topic.",
scope: "Which settings files can set the key: user (~/.claude/settings.json), project (.claude/settings.json), local (.claude/settings.local.json), or managed (deployed by your organization). Global config keys are in ~/.claude.json instead.",
}}
/>
Elige el entorno en la nube predeterminado para claude --cloud; un ID ccpool_ autohospedado solo se lee desde la configuración de usuario y administrada y desde --settings
Omite el aviso único que Claude Code muestra cuando entras por primera vez al modo automático por tu cuenta en lugar de a través del valor predeterminado integrado
Permite que el clasificador del modo automático revise los comandos de shell en el modo plan; establece false para recibir solicitudes de permiso en su lugar
Elija qué modelos utiliza Claude Code y cómo responde. Para saber cómo estas configuraciones interactúan con el comando /model y las variables de entorno, consulte Configuración de modelos.
`advisorModel`
Elija qué modelo responde cuando Claude llama a la herramienta advisor del lado del servidor. Déjelo sin establecer para desactivar el advisor. El advisor debe ser al menos tan capaz como su modelo principal. Consulte Elegir un modelo advisor para los emparejamientos aceptados y qué sucede cuando elige uno que no es aceptado.
Normalmente no edita esta clave manualmente. Ejecute /advisor para abrir un selector que muestre la opción actual, los modelos que pueden asesorar y Sin advisor. Claude Code guarda su selección en esta clave en ~/.claude/settings.json. Si elige desde un cliente de Control Remoto o en una sesión conectada a un trabajador remoto, la selección se aplica solo a esa sesión y no cambia esta clave.
Si su cuenta requiere el consentimiento de créditos de uso, acéptelo primero ejecutando /model fable. Hasta que lo haga, elegir Fable en /advisor no guarda nada y Claude Code le indica que ejecute /model fable primero.
Tipo: cadena, uno de los alias "fable", "opus" u "sonnet", que se resuelven a la versión predeterminada actual de Claude Code de esa familia de modelos, o un ID de modelo completo como "claude-opus-5-5"
Predeterminado: sin establecer, por lo que el advisor está desactivado
Anulaciones por sesión: --advisor tiene precedencia sobre esta clave para una sesión. CLAUDE_CODE_DISABLE_ADVISOR_TOOL desactiva el advisor, y esta clave no puede reactivarlo
{"advisorModel": "opus"}
La clave no tiene efecto en proveedores donde el advisor no está disponible, como Amazon Bedrock y Claude Platform en AWS. "fable" requiere acceso a Fable.
`alwaysThinkingEnabled`
Desactive el pensamiento extendido para cada sesión estableciendo esto en false. El pensamiento está activado de forma predeterminada, por lo que true no cambia nada. La mayoría de las personas establecen esto a través de /config en lugar de editar el archivo.
En modelos que siempre piensan, como Opus 5.5, Sonnet 5.5 y los modelos Fable, false no tiene efecto. En proveedores de terceros Claude Code omite el parámetro thinking en lugar de desactivar el pensamiento, por lo que los modelos de razonamiento adaptativo pueden seguir pensando. Con el pensamiento desactivado en la API de Anthropic, Claude Code envía esfuerzo high en lugar de un nivel superior a modelos que sabe que no aceptan esa combinación, como Opus 5.
false: Claude Code desactiva el pensamiento extendido para cada sesión
Predeterminado: sin establecer, por lo que el pensamiento está activado para modelos que lo admiten
Anulaciones por sesión: MAX_THINKING_TOKENS tiene precedencia sobre esta clave para una sesión: 0 desactiva el pensamiento, bajo los mismos límites de modelo y proveedor que false, y un valor positivo activa el pensamiento incluso cuando esta clave es false. En modelos de razonamiento adaptativo, el número en sí se ignora
{"alwaysThinkingEnabled": false
}
`availableModels`
Restrinja qué modelos pueden seleccionar las personas para la sesión principal, subagentes, skills y el advisor. Una lista administrada limita /model, --model y la clave model en los archivos propios del desarrollador; un modelo fuera de ella no puede seleccionarse. Con la coincidencia de prefijo predeterminada, esto no afecta la opción Predeterminado por sí sola; emparéjelo con enforceAvailableModels para eso.
Alcance: Cualquier archivo. Impleméntelo en configuraciones administradas para aplicarlo a una organización.
Tipo: matriz de alias o IDs de modelos
Predeterminado: sin establecer, por lo que cada modelo está disponible
Este ejemplo permite que las personas seleccionen solo modelos Sonnet y Haiku:
{"availableModels": ["sonnet", "haiku"]}
Una entrada de ID de modelo como "claude-opus-5" también permite versiones posteriores que la extienden, como Opus 5.5. Para bloquear una de esas versiones, use deniedModels. Para hacer que cada entrada de ID de modelo permita solo la versión que nombra, use availableModelsMatch. Consulte Restringir la selección de modelos.
`availableModelsMatch`
Elija cómo las entradas de availableModels coinciden con IDs de modelos. De forma predeterminada, una entrada de ID de modelo también permite versiones posteriores que la extienden, por lo que "claude-opus-5" permite Opus 5.5. Con "exact", cada entrada de ID de modelo permite solo la versión que nombra, por lo que una versión más nueva de ese modelo permanece bloqueada hasta que la enumere. Requiere Claude Code v2.1.283 o posterior.
Alcance: Administrado. Claude Code ignora la clave en configuraciones de usuario, proyecto y local y en --settings, con una advertencia
Tipo: cadena, uno de:
"prefix": una entrada de ID de modelo permite su versión y cualquier ID de modelo que la extienda con otro segmento
"exact": una entrada de ID de modelo permite solo la versión que nombra, incluidos los IDs fechados de esa versión, por lo que "claude-opus-5" permite Opus 5 pero no claude-opus-5-5. Un alias de familia como "opus" aún permite toda la familia, y las entradas best, opusplan y default se ignoran
Predeterminado: "prefix"
Este ejemplo permite Opus 5 y Sonnet 5 y ningún lanzamiento posterior de ninguno:
Con "exact", la opción Predeterminado también se limita a los modelos enumerados siempre que la lista nombre al menos un modelo o familia. Consulte Bloquear modelos o versiones específicas.
`deniedModels`
Bloquee modelos específicos, con o sin una lista de permitidos availableModels e incluso cuando esa lista los permite. Claude Code oculta un modelo bloqueado del selector /model, y el modelo no puede seleccionarse en ningún lugar donde se aplique availableModels. Una sesión en la opción Predeterminado tampoco ejecuta un modelo bloqueado, como describe Bloquear modelos o versiones específicas. Requiere Claude Code v2.1.283 o posterior.
Alcance: Administrado. Claude Code ignora la clave en configuraciones de usuario, proyecto y local y en --settings, con una advertencia
Tipo: matriz de alias o IDs de modelos
Un alias de familia como "opus" bloquea cada modelo en esa familia
Un ID de modelo como "claude-opus-5-5" bloquea esa versión en cada ortografía, incluidos IDs fechados e IDs específicos del proveedor
Un ID de modelo sin versión menor, como "claude-opus-5", también bloquea versiones menores posteriores como Opus 5.5. Escriba "claude-opus-5-0" para bloquear solo Opus 5
Las entradas best, opusplan y default se ignoran
Predeterminado: sin establecer, por lo que ningún modelo está bloqueado
Este ejemplo permite modelos Opus y Sonnet y bloquea Opus 5.5:
Establezca un nivel de esfuerzo predeterminado para modelos para los que no ha guardado un nivel. Los niveles más bajos son más rápidos y económicos en tareas sencillas, y los niveles más altos razonan más profundamente en problemas complejos.
Cuando ejecuta /effort low, medium, high o xhigh en una sesión interactiva en su máquina, Claude Code guarda el nivel para el modelo activo bajo modelSettings en lugar de escribir esta clave. Antes de v2.1.251, /effort escribía esta clave.
Dentro del mismo archivo de configuración, Claude Code utiliza el nivel guardado de un modelo en lugar de esta clave. modelSettings indica la precedencia entre archivos.
En una sesión conectada a un trabajador remoto, en una ejecución -p y en el Agent SDK, /effort se aplica solo a esa sesión. Ajustar el nivel de esfuerzo enumera las selecciones interactivas que también se aplican solo a esa sesión. El mensaje que imprime /effort indica qué sucedió.
"low": el menor razonamiento, para tareas cortas, limitadas y sensibles a la latencia que no son sensibles a la inteligencia
"medium": reduce el uso de tokens para trabajo sensible a costos que puede comprometer algo de inteligencia
"high": equilibra el uso de tokens e inteligencia
"xhigh": razonamiento más profundo con mayor gasto de tokens
Predeterminado: sin establecer
Anulaciones por sesión: --effort tiene precedencia sobre esta clave para una sesión, y CLAUDE_CODE_EFFORT_LEVEL tiene precedencia sobre ambas
{"effortLevel": "xhigh"}
En su archivo de configuración de usuario, ~/.claude/settings.json, esta clave es la forma anterior que /effort escribía antes de guardar niveles por modelo, y sigue aplicándose donde se aplicaba antes, en Opus 5, Fable 5.1 y modelos anteriores. Opus 5.5 y modelos lanzados después de él la ignoran y comienzan en su propio predeterminado hasta que guarde un nivel para ellos, que /effort escribe bajo modelSettings. En configuraciones de proyecto, local y administrada, y con --settings, esta clave se aplica a cada modelo.
`enforceAvailableModels`
El selector /model tiene una opción Predeterminado, y default model setting describe el modelo al que se resuelve. Una lista de permitidos availableModels limita los modelos que puede nombrar, pero con la coincidencia de prefijo predeterminada no remapea el predeterminado de su tipo de cuenta, por lo que Predeterminado aún puede resolverse a un modelo fuera de la lista. Esta clave cierra esa brecha. Requiere Claude Code v2.1.175 o posterior.
Cuando su organización implementa cualquier configuración administrada, Claude Code lee esta clave solo de la fuente administrada e la ignora en sus otros archivos.
true: cuando Predeterminado se resolvería a un modelo fuera de availableModels, Claude Code lo resuelve al primer modelo disponible en la lista
false: esta clave no cambia cómo se resuelve Predeterminado
Predeterminado: false
Este ejemplo restringe las selecciones nombradas a modelos Sonnet y Haiku y hace que Predeterminado se resuelva al primero de ellos que esté disponible:
Nombre modelos de respaldo para que Claude Code intente, en orden, cuando su modelo principal está sobrecargado o no disponible. Claude Code cambia al siguiente modelo disponible en la cadena para el resto del turno y muestra un aviso. Sin una cadena, Claude Code reintenta el mismo modelo y luego muestra el error del servidor, y usted reintenta o cambia de modelos.
Un cambio significa un turno con un caché de solicitud frío en el modelo de respaldo; su siguiente mensaje intenta el modelo principal primero nuevamente.
A diferencia de la mayoría de las configuraciones de matriz, esta clave no se fusiona entre archivos de configuración: el archivo de mayor precedencia que la define proporciona toda la cadena. Si su archivo de proyecto establece ["claude-sonnet-5"] y su archivo de usuario establece ["claude-haiku-4-5"], la cadena es solo ["claude-sonnet-5"]. Claude Code mantiene como máximo tres modelos permitidos distintos de la lista e ignora el resto. Consulte Cadenas de modelos de respaldo.
`fastMode`
Active el modo rápido para sesiones donde está disponible, para trabajo interactivo como iteración rápida o depuración en vivo donde desea velocidad a un costo más alto por token. Normalmente no edita esta clave manualmente: ejecutar /fast escribe fastMode: true en ~/.claude/settings.json, y ejecutarlo nuevamente para desactivar el modo rápido elimina la clave. El modo rápido se ejecuta solo en Opus 5.5, Opus 5 y Opus 4.8: activarlo desde otro modelo lo cambia a Opus, y cambiar a un modelo no compatible lo desactiva. Consulte Cambiar modelos mientras el modo rápido está activado.
true: Claude Code activa el modo rápido para sesiones donde está disponible
false: el modo rápido permanece desactivado
Predeterminado: sin establecer, por lo que el modo rápido está desactivado
Anulaciones por sesión: CLAUDE_CODE_DISABLE_FAST_MODE desactiva el modo rápido para una sesión, y esta clave no puede reactivarlo
{"fastMode": true
}
`fastModePerSessionOptIn`
Normalmente, ejecutar /fast guarda fastMode en la configuración de usuario de una persona, por lo que el modo rápido está activado al inicio de cada sesión posterior. Establezca esta clave en true para detener eso: un fastMode: true guardado ya no activa el modo rápido al inicio de la sesión, y cada persona debe ejecutar /fast en cada sesión que lo desee. Claude Code deja la clave fastMode en su archivo, por lo que desactivar esta clave restaura el comportamiento anterior.
Los propietarios en planes Team o Enterprise pueden implementarlo en toda la organización a través de configuraciones administradas por el servidor. Cuando las configuraciones administradas establecen la clave, /fast on se rechaza fuera de sesiones de terminal interactivas e informa que su organización ha desactivado el modo rápido. Eso cubre modo no interactivo, la extensión VS Code y sesiones en la nube.
true: un fastMode: true guardado ya no activa el modo rápido al inicio de la sesión, por lo que cada persona ejecuta /fast en cada sesión que lo desee; un fastMode: true pasado con --settings aún cuenta para esa sesión a menos que las configuraciones administradas establezcan esta clave
false: un fastMode: true guardado activa el modo rápido al inicio de cada sesión posterior
Haga que Claude responda en un idioma distinto del inglés de forma predeterminada. No hay una lista fija para respuestas: Claude Code agrega el valor textualmente a Claude como una instrucción para responder siempre en ese idioma, por lo que cualquier nombre de idioma que Claude pueda leer funciona. Claude Code no valida el valor, por lo que un nombre mal escrito llega a Claude tal como está escrito en lugar de producir un error. El mismo valor establece el idioma para dictado de voz, que tiene una lista fija de idiomas de dictado admitidos, y para títulos de sesión generados automáticamente.
Tipo: cadena, cualquier nombre de idioma, como "japanese", "spanish" o "french"; Claude Code no lo valida
Predeterminado: sin establecer; los títulos de sesión coinciden con el idioma de su conversación
{"language": "japanese"}
`maxEffortLevel`
Limite el nivel de esfuerzo que una sesión puede usar, dejando disponibles niveles más bajos. Cualquier nivel más alto se ejecuta en el límite en su lugar, incluido uno de /effort, el selector /model, --effort, CLAUDE_CODE_EFFORT_LEVEL, el frontmatter effort de una skill o subagente, o el predeterminado del modelo. Claude Code aplica el límite a sí mismo antes de cada solicitud, por lo que se mantiene en cada proveedor, incluidos Amazon Bedrock, la Plataforma de Agentes de Google Cloud y Microsoft Foundry. Requiere Claude Code v2.1.267 o posterior.
Alcance: Cualquier archivo. Impleméntelo en configuraciones administradas para aplicarlo a una organización. Cuando varios alcances establecen un límite, se aplica el más bajo, por lo que un límite establecido en un alcance no puede elevarse desde otro
Tipo: cadena, uno de "low", "medium", "high", "xhigh" o "max". Un valor "max" no establece límite
Predeterminado: sin establecer, por lo que no se aplica límite
Límites por modelo: agregue maxEffortLevel a la entrada modelSettings de un modelo. Esa entrada reemplaza esta clave solo para el modelo dentro de la fuente de configuración que establece ambas, como su configuración de usuario o una fuente administrada. Establezca "max" allí para eximir el modelo del límite de esa fuente; Claude Code aún aplica límites de otras fuentes
Este ejemplo limita cada modelo a medium y exime a Sonnet 4.6:
Cuando su organización también establece un límite de esfuerzo para un modelo, se aplica el límite más bajo de los dos.
`model`
Establezca el modelo que cada nueva sesión utiliza, para que no tenga que elegir uno con /model cada vez. Establecerlo aquí no le impide cambiar de modelo a mitad de sesión. Si su administrador estableció un modelo predeterminado de la organización para anular la selección del usuario, obtiene ese modelo incluso cuando establece esta clave en configuraciones de usuario, proyecto o local.
Tipo: cadena, un alias de modelo o ID de modelo completo
Predeterminado: sin establecer, por lo que Claude Code utiliza el modelo predeterminado de su cuenta
Anulaciones por sesión: --model tiene precedencia sobre ANTHROPIC_MODEL, y ambas tienen precedencia sobre esta clave para una sesión, incluida una model administrada; una lista availableModels aún se aplica a la selección
{"model": "claude-sonnet-5"}
Un valor aquí supera ANTHROPIC_DEFAULT_MODEL, que Claude Code utiliza solo cuando nada más selecciona un modelo.
`modelOverrides`
Asigne IDs de modelos de Anthropic a IDs de modelos específicos del proveedor, como ARNs de perfil de inferencia de Amazon Bedrock. Cada entrada del selector de modelos utiliza su valor asignado al llamar a la API del proveedor. Los administradores utilizan esto en Amazon Bedrock, la Plataforma de Agentes de Google Cloud y Microsoft Foundry para enrutar cada versión de modelo a un perfil de inferencia específico, nombre de versión o implementación para gobernanza, asignación de costos o enrutamiento regional.
Enumere los modelos que el selector /model ofrece, en el orden que escriba y bajo etiquetas que elija, para que el selector enumere los modelos que su organización ejecuta, después de la alineación integrada o en su lugar. El model de cada fila se toma textualmente, por lo que acepta cualquier cosa que --model acepte: un alias como opus, un ID de modelo de Anthropic, o un ID de formato de proveedor para Amazon Bedrock, la Plataforma de Agentes de Google Cloud, Microsoft Foundry, o una puerta de enlace LLM. Requiere Claude Code v2.1.242 o posterior.
Alcance: Usuario o administrado. Claude Code lee la clave de configuraciones administradas, --settings y configuraciones de usuario, e la ignora en configuraciones de proyecto y local para que un repositorio que clone no pueda reetiquetear el selector. El más alto de esos tres que establece la clave proporciona toda la alineación, y Claude Code nunca combina alineaciones de dos fuentes.
Tipo: objeto con una matriz options de filas y un Booleano replaceBuiltInOptions opcional
Predeterminado: sin establecer, por lo que el selector muestra la alineación integrada
Este ejemplo agrega dos implementaciones de Bedrock después de la alineación integrada, bajo nombres que su equipo reconoce:
La clave toma dos campos, uno para las filas en sí y otro para si reemplazan la alineación integrada o se agregan a ella.
Campo
Tipo
Qué hace
options
matriz de filas, cada una con un model requerido y un label, description y behavesAs opcionales
Las filas que muestra el selector, en este orden, excepto que una fila atenuada se mueve al final. Sin un label, Claude Code titula la fila con el nombre integrado para un modelo que conoce, o el ID del modelo de lo contrario, y sin una description escribe una segunda línea genérica
replaceBuiltInOptions
Booleano, predeterminado false
Establézcalo en true para mostrar solo estas filas, Predeterminado y una fila para el modelo que la sesión ya está usando. Déjelo sin establecer para agregar estas filas después de la alineación integrada
Una entrada en options también puede llevar una cadena behavesAs opcional junto a su model, que requiere v2.1.257 o posterior. Establézcala al ID de un modelo que su versión de Claude Code ya conoce, como claude-opus-4-8, en una entrada cuyo model es más nuevo que su versión. Claude Code entonces aplica las capacidades y valores predeterminados de esfuerzo de ese modelo conocido a la entrada en lugar de tratar su modelo como desconocido. La etiqueta de la entrada y el ID del modelo que Claude Code envía en solicitudes no cambian.
Con replaceBuiltInOptions activado, Claude Code oculta todas las demás filas: la alineación integrada, las filas que agrega para entradas availableModels, los modelos que descubrimiento de puerta de enlace encontró, y ANTHROPIC_CUSTOM_MODEL_OPTION. Con él desactivado, Claude Code omite un modelo listado que la alineación integrada ya cubre. Una etiqueta cambia lo que muestra el selector, no qué modelo ejecuta Claude Code.
Una lista de permitidos availableModels aún se aplica a estas filas. Antes de agregar un modelo listado a la lista de permitidos, lea Comportamiento de fusión: un ID de modelo específico reduce la entrada comodín de su familia. Claude Code también verifica cada fila contra la sesión antes de mostrar el selector:
Descartada: una fila que Claude Code no puede servir, como un modelo retirado o un modelo al que su organización no tiene acceso
Atenuada: una fila que no puede seleccionar aún, mostrada con la razón
Ninguna fila sobrevive: Claude Code mantiene la alineación integrada, filtrada por la lista de permitidos como de costumbre
Informe el gasto a las tasas que su organización paga en lugar del precio de lista. Establézcalo cuando su organización tenga tasas contratadas, para que las cifras en dólares que ven los desarrolladores coincidan con su factura. Claude Code aplica las tasas en /usage, la línea de estado, el total_cost_usd del Agent SDK, el límite --max-budget-usd y la métrica de costo de OpenTelemetry y eventos. Usted proporciona las tasas: Claude Code no las lee de su contrato o la Consola de Claude. Requiere Claude Code v2.1.242 o posterior.
Alcance: Administrado. Implemente la clave a través de configuraciones administradas por el servidor, una política MDM, un archivo managed-settings.json o un asistente de política. Claude Code la ignora en configuraciones de usuario, proyecto y local, en --settings y en Windows en el registro HKCU escribible por el usuario. Con configuraciones administradas por el servidor, cada sesión informa costos al precio de lista hasta que la búsqueda de configuración de esa sesión haya confirmado la configuración. Una aplicación host que incrusta Claude Code y establece CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST puede proporcionar una tabla propia a través de la opción managedSettings del SDK, que Claude Code utiliza solo cuando ninguna fuente administrada establece la clave y solo en Claude Code v2.1.246 o posterior.
Tipo: objeto con un multiplier opcional y un mapa overrides opcional
Predeterminado: sin establecer, por lo que Claude Code informa el precio de lista a menos que una aplicación host proporcione una tabla
Establezca multiplier solo para un descuento plano o marcado, overrides solo para tasas por modelo, o ambos.
Este ejemplo establece tasas contratadas para Sonnet 4.6 y luego reduce cada cifra, la fila Sonnet incluida, en un 15%:
Establezca multiplier por encima de 1, hasta 10, para marcar cada cifra. Un marcado requiere Claude Code v2.1.271 o posterior. Las versiones anteriores ignoran un multiplier por encima de 1 con una advertencia y mantienen el resto de la configuración.
Escala cada costo que Claude Code calcula, independientemente de si una fila overrides la cubre. Por debajo de 1 es un descuento, por encima de 1 un marcado
overrides
mapa de ID de modelo a un objeto de tasa con input, output, cacheRead y cacheWrite, cada uno de 0 a 10000
Las tasas USD por millón de tokens para ese modelo, las cuatro requeridas. cacheWrite cubre tanto escrituras de caché de cinco minutos como de una hora. Consulte Qué modelos se aplica una fila de modelPricing
Claude Code utiliza las tasas de una fila exactamente como las escribió, sin agregar el recargo de modo rápido o la tasa de inferencia solo para EE.UU.. Si también establece multiplier, Claude Code la aplica además de las tasas de la fila. Claude Code descarta una fila con una tasa que no puede analizar, o un multiplier que no puede analizar, y mantiene el resto; consulte Reparar un archivo de configuración roto.
Qué modelos se aplica una fila de `modelPricing`
Claude Code decide a qué modelos se aplica una fila desde la clave de la fila:
ID de un modelo integrado: una clave que Claude Code utiliza para un modelo integrado, ya sea que esa clave sea el ID del modelo, como claude-sonnet-4-6, o su ID de Bedrock, Plataforma de Agentes o Foundry. Claude Code aplica la fila a cada ID de instantánea fechada e ID específico del proveedor de ese modelo.
Cualquier otra clave: una clave que no es el ID de un modelo integrado, como un alias de modelo de puerta de enlace. Claude Code aplica la fila solo a ese ID. Cuando un ID de modelo coincide exactamente con una de sus claves y también cae bajo una fila codificada por un ID de modelo integrado, Claude Code utiliza la coincidencia exacta.
Un perfil de inferencia de aplicación de Bedrock: una vez que Claude Code ha resuelto el perfil al modelo al que enruta, a través de su mapa modelOverrides o la búsqueda bedrock:GetInferenceProfile, Claude Code aplica la fila de ese modelo al perfil.
`modelSettings`
Guarde un nivel de esfuerzo para cada modelo que utilice. Requiere Claude Code v2.1.251 o posterior.
En una sesión interactiva en su máquina, cuando guarda low, medium, high o xhigh como su predeterminado con /effort o el control deslizante de esfuerzo del selector /model, Claude Code escribe ese nivel aquí bajo el modelo que está utilizando, por lo que rara vez edita esta clave usted mismo. Cuando elige uno de esos niveles en el selector de modelos de la extensión VS Code, Claude Code lo guarda aquí de la misma manera. La entrada effortLevel enumera las sesiones donde /effort se aplica solo a esa sesión.
Edite la clave manualmente para cambiar o eliminar un nivel que guardó.
Un effortLevel de un modelo aquí tiene precedencia sobre el effortLevel de nivel superior en el mismo archivo de configuración. Entre archivos, Claude Code resuelve cada modelo por separado: el archivo de configuración de mayor precedencia que establece un effortLevel para ese modelo o el effortLevel de nivel superior que se aplica a ese modelo decide, por lo que un effortLevel en configuraciones administradas supera un nivel que guardó en configuraciones de usuario. Ajustar el nivel de esfuerzo enumera qué más puede anular un nivel guardado, como --effort al iniciar.
Para limitar el esfuerzo de un modelo en lugar de establecer su nivel, agregue un campo maxEffortLevel a la entrada de ese modelo. El campo requiere Claude Code v2.1.267 o posterior.
Tipo: objeto que asigna un nombre de modelo a un objeto con cualquiera de estos campos:
effortLevel: uno de "low", "medium", "high" o "xhigh"
maxEffortLevel: el nivel de esfuerzo más alto con el que puede ejecutarse el modelo
autoCompactWindow: un número de tokens de 100000 a 1000000, o "auto" para la ventana ajustada para el modelo. /autocompact guarda aquí. Para ese modelo, el valor tiene precedencia sobre un autoCompactWindow de nivel superior en el mismo archivo de configuración. Requiere Claude Code v2.1.288 o posterior
Predeterminado: sin establecer
Claude Code escribe cada entrada bajo el nombre canónico del modelo, como claude-opus-5-5, y coincide con el alias de ese modelo, con sufijo de fecha, [1m] e IDs específicos del proveedor reconocidos a la misma entrada.
Este ejemplo mantiene Opus 5.5 en high mientras otros modelos utilizan sus propios niveles guardados o predeterminados:
Ejecute /effort auto para borrar su nivel guardado para el modelo que está utilizando. Claude Code deja las otras entradas y cualquier effortLevel de nivel superior en su lugar.
`outputStyle`
Seleccione un estilo de salida por nombre. Un estilo de salida es un conjunto guardado de instrucciones que cambia el rol, tono y formato de salida de Claude, como los estilos Explanatory y Learning integrados o uno que escribió usted mismo.
Si cambia esta clave durante una sesión, Claude utiliza el nuevo estilo a partir de su siguiente mensaje. Para lo que ese mensaje cuesta en almacenamiento en caché de solicitudes, consulte Cambiar estilo de salida. Antes de v2.1.251, la edición se aplicaba solo después de ejecutar /clear o iniciar una nueva sesión.
Predeterminado: sin establecer, por lo que Claude Code utiliza el estilo predeterminado
Este ejemplo selecciona el estilo Explanatory integrado, que agrega información educativa entre tareas:
{"outputStyle": "Explanatory"}
`promptCacheTtl`
Elija cuánto tiempo el caché de solicitud mantiene la conversación principal. Esta clave se aplica a sus turnos interactivos, -p y Agent SDK, junto con los asistentes que Claude Code ejecuta en línea con ellos. La vida útil de una hora mantiene el caché activo en descansos más largos, y la API factura cada escritura de caché a una tasa más alta que en la vida útil de cinco minutos. Requiere Claude Code v2.1.242 o posterior.
Vea resúmenes del pensamiento extendido de Claude en sesiones interactivas. Establézcalo si desea los resúmenes completos cuando expande el pensamiento con Ctrl+O. Cuando no está establecido o es false, la API de Anthropic redacta bloques de pensamiento y Claude Code muestra un resumen contraído; los proveedores de terceros no redactan.
Elija cuánto tiempo el caché de solicitud mantiene las solicitudes que Claude Code realiza fuera de la conversación principal. Esta clave se aplica a subagentes, flujos de trabajo y las solicitudes propias de Claude Code en segundo plano y asistentes, como compactación y títulos de sesión. La vida útil de una hora mantiene el caché activo en descansos más largos, y la API factura cada escritura de caché a una tasa más alta que en la vida útil de cinco minutos. Requiere Claude Code v2.1.242 o posterior.
Este ejemplo proporciona a los subagentes y las otras solicitudes fuera de la conversación principal la vida útil de una hora:
{"subagentPromptCacheTtl": "1h"}
Esta clave cubre las solicitudes que promptCacheTtl no cubre, por lo que establezca ambas para elegir una vida útil para cada solicitud que Claude Code realiza. Para cómo difiere el caché de un subagente del de la conversación principal, consulte Subagentes y el caché.
`switchModelsOnFlag`
Elija qué sucede cuando un clasificador de seguridad marca una solicitud: cambiar al modelo de respaldo y continuar, o pausar para que pueda elegir entre cambiar y editar el mensaje.
Alcance: Cualquier archivo. Aparece en /config como Cambiar modelos cuando se marca un mensaje.
Tipo: Booleano
true: Claude Code cambia al modelo de respaldo y continúa
false: en una sesión interactiva Claude Code pausa para que pueda elegir entre cambiar y editar el mensaje; donde no puede mostrarse un diálogo, como una ejecución -p, la solicitud marcada termina como un error
Inicie sesiones con ultracode activado. Con él activado, Claude planifica un flujo de trabajo para cada tarea sustancial en lugar de esperar a que lo pida. Claude planifica flujos de trabajo solo cuando flujos de trabajo dinámicos están habilitados para usted y su modelo admite esfuerzo xhigh. La clave no cambia el nivel de esfuerzo de la sesión: ultracode se ejecuta en cualquier nivel que la sesión utilice. Claude Code lee esta clave pero nunca la escribe: /effort ultracode activa ultracode solo para la sesión actual.
true: las sesiones comienzan con ultracode activado cuando flujos de trabajo dinámicos están habilitados para usted y su modelo admite xhigh
false: las sesiones comienzan con ultracode desactivado
Predeterminado: sin establecer, por lo que ultracode está desactivado
Anulaciones por sesión: /effort ultracode activa ultracode para una sesión sin esta clave, y /effort ultracode off lo desactiva para una sesión cuando esta clave es true. La bandera --effort ultracode también lo activa para una sesión, en esfuerzo xhigh, y requiere Claude Code v2.1.203 o posterior
{"ultracode": true
}
El nivel de esfuerzo de la sesión proviene de effortLevel, modelSettings y las otras fuentes de esfuerzo, y un límite de esfuerzo como maxEffortLevel reduce ese nivel sin desactivar ultracode. Esto y la forma /effort ultracode off requieren Claude Code v2.1.284 o posterior. Antes de v2.1.284, ultracode: true ejecutaba la sesión en esfuerzo xhigh, y un límite de esfuerzo por debajo de xhigh mantenía ultracode desactivado. Una solicitud de control apply_flag_settings del Agent SDK también acepta la clave.
Configuración de permisos
Decide qué puede hacer Claude sin preguntar, en qué modo de permisos comienza una sesión y qué permite el clasificador del modo automático. Para la sintaxis de reglas y el modelo de permisos, consulta Configurar permisos.
`allowManagedPermissionRulesOnly`
Haz que la configuración administrada sea la única fuente de reglas de permisos. Claude Code ignora entonces las reglas allow, ask y deny en archivos de usuario, proyecto, local y --settings, ignora --allowedTools, oculta las opciones de permitir siempre en las solicitudes de permiso y deja de guardar nuevas reglas.
Cuando se aplica la configuración principal de un host de incrustación, Claude Code la trata como parte del nivel administrado. Descarta sus reglas allow y additionalDirectories, y mantiene sus reglas deny y ask excepto las reglas Read y Edit cuyo patrón comienza con !. Un host no puede excluir rutas de las reglas administradas con una regla !, independientemente de si estableces esta clave.
Las reglas --disallowedTools y las reglas deny y ask de la sesión actual aún se aplican, incluso después de que Claude Code recargue la configuración a mitad de la sesión. Solo restringen, por lo que no pueden ampliar lo que otorgan las reglas administradas. Antes de v2.1.257, Claude Code descartaba esas reglas de línea de comandos y de sesión en la primera recarga de configuración.
Para lo que un patrón ! en una regla --disallowedTools o de sesión puede excluir, consulta Reglas Read y Edit.
Cuando estableces esta clave, Claude Code v2.1.282 o posterior también ignora el frontmatter allowed-tools en los skills y en los archivos de .claude/commands/ de estas fuentes:
Los skills de la configuración administrada y los skills incluidos conservan su allowed-tools. El disallowed-tools de un skill sigue aplicándose. Para ver lo que ve un desarrollador cuando Claude Code ignora el campo, consulta Cuando solo se aplican las reglas de permisos administradas.
true: la configuración administrada se convierte en la única fuente de reglas de permisos
false: Claude Code aplica reglas de permisos de archivos de usuario, proyecto, local y --settings además de las administradas
Default: sin establecer, por lo que Claude Code aplica reglas de permisos de configuración de usuario, proyecto y local y de --settings, además de las administradas
Agrega tus propias reglas a lo que el clasificador del modo automático bloquea y permite. Úsalo para indicar al clasificador en qué repositorios, buckets y dominios confía tu organización, para que deje de bloquear operaciones internas habituales. El clasificador incluye reglas de permitir y denegar integradas. Incluye la cadena literal "$defaults" en una matriz para mantener esas reglas integradas en esa posición y agregar las tuyas alrededor; omítela para reemplazarlas con las tuyas.
Type: objeto con matrices environment, allow, soft_deny y hard_deny de reglas en prosa, más el Boolean classifyAllShell
Default: sin establecer, por lo que el clasificador usa solo sus reglas integradas
Este ejemplo mantiene las reglas soft_deny integradas, a través de "$defaults", y agrega una más que bloquea terraform apply:
{"autoMode": {"soft_deny": ["$defaults", "Never run terraform apply"]}}
Cuando más de uno de esos archivos establece la misma matriz, Claude Code concatena las entradas. Para el formato de regla y cómo se aplica cada matriz, consulta Configurar el modo automático.
`autoMode.classifyAllShell`
Envía cada comando Bash y PowerShell a través del clasificador del modo automático mientras el modo automático está activo. De forma predeterminada, el modo automático suspende solo las reglas de permitir que podrían ejecutar código arbitrario: reglas de herramienta completa y comodín como Bash(*), y prefijos de intérprete o contenedor de shell como Bash(python *). Un comando que coincida con cualquier otra regla de permitir, como Bash(npm test), omite el clasificador a menos que lleve dominios permitidos por comando. Cuando lo omite, un argumento destructivo que el prefijo de la regla no anticipó puede pasar desapercibido. Al establecer esta clave, se suspende cada regla de permitir de shell para la sesión para que el clasificador vea cada comando. Requiere Claude Code v2.1.193 o posterior.
true: mientras el modo automático está activo, Claude Code envía cada comando Bash y PowerShell a través del clasificador y suspende tus reglas de permitir de shell; fuera del modo automático las reglas aún se aplican
false: el modo automático suspende solo las reglas de permitir que podrían ejecutar código arbitrario, como Bash(*) y Bash(python *); un comando que coincida con cualquier otra regla de permitir omite el clasificador a menos que lleve dominios permitidos por comando, y todos los demás comandos de shell pasan por él
Elimina el modo automático del ciclo Shift+Tab. Cualquier sesión que de otro modo comenzaría en modo automático, ya sea desde --permission-mode auto, un archivo de configuración o el valor predeterminado integrado, comienza en default en su lugar. Los administradores lo establecen en la configuración administrada para evitar que los desarrolladores de su organización usen el modo automático.
Scope: Any file. Más útil en la configuración administrada, donde los usuarios no pueden sobrescribirlo. También se acepta bajo permissions como permissions.disableAutoMode.
Type: la cadena "disable"
Default: sin establecer
{"disableAutoMode": "disable"}
`permissions`
Controla qué herramientas puede usar Claude sin preguntar, cuáles siempre piden confirmación y cuáles están bloqueadas, y establece el modo de permisos en el que comienza una sesión. Cada clave permissions.* a continuación se anida bajo este objeto.
Elige si Claude Code usa el clasificador del modo automático para revisar comandos de shell en modo plan. Con el valor predeterminado true, el clasificador revisa cada comando durante la planificación cuando el modo automático está disponible y no ves ninguna solicitud, excepto para eliminaciones de rutas críticas. Establece false para obtener una solicitud de permiso para cada comando fuera del conjunto integrado de solo lectura. Aparece en /config como Use auto mode during plan.
true: lo mismo que sin establecer; cuando el modo automático está disponible, el clasificador revisa cada comando de shell durante la planificación en lugar de pedirte confirmación, excepto eliminaciones de rutas críticas. Un false en cualquiera de estos archivos aún lo desactiva
false: obtienes una solicitud de permiso para cada comando fuera del conjunto integrado de solo lectura
Default: true
{"useAutoModeDuringPlan": false
}
`permissions.allow`
Enumera los usos de herramientas que Claude Code aprueba sin preguntarte. En una regla MCP, * puede aparecer solo en el nombre de la herramienta después del prefijo mcp__<server>__, como mcp__github__get_*; no puede aparecer en el nombre del servidor.
Per-session overrides: --allowedTools agrega reglas de permitir para una sesión, y una regla de denegar de cualquier archivo de configuración aún bloquea una herramienta que nombra
Este ejemplo aprueba git diff y permite que Claude Code lea tu .zshrc sin preguntar:
Las reglas de permisos siguen el formato Tool o Tool(specifier). Claude Code evalúa primero las reglas deny, luego ask, luego allow, y la primera coincidencia decide independientemente de cuán específica sea cada regla; consulta el orden de evaluación de reglas de permisos.
Cada fila muestra una forma de regla y lo que coincide.
Regla
Con qué coincide
Bash
Todos los comandos Bash
Bash(npm run *)
Comandos que comienzan con npm run
Read(./.env)
Lecturas del archivo .env
WebFetch(domain:example.com)
Solicitudes de fetch a example.com
Para la sintaxis de reglas completa, incluido el comportamiento de los comodines, los patrones específicos de herramientas para reglas de Read, Edit, WebFetch, MCP y Agent, y las limitaciones de seguridad de los patrones Bash, consulta Sintaxis de reglas de permisos.
`permissions.ask`
Enumera los usos de herramientas que te piden confirmación incluso en un modo de permisos que de otro modo los aprobaría, como acceptEdits o bypassPermissions. En modo dontAsk, Claude Code deniega un uso de herramienta coincidente en lugar de pedir confirmación.
Enumera los usos de herramientas que Claude Code bloquea. Úsalo para archivos que contienen claves de API, secretos o valores de entorno: Claude Code excluye los archivos coincidentes del descubrimiento de archivos y de los resultados de búsqueda, deniega sus lecturas y bloquea las herramientas Edit y Write en las rutas coincidentes.
Las reglas de denegar de Read y Edit se aplican a las herramientas de archivo integradas de Claude, a los comandos de archivo que Claude Code reconoce en Bash, como cat, head, tail, sed y tee, y a los destinos de redirecciones de Bash como > file y < file; no se aplican a un comando que lee archivos sin nombrarlos, como grep -r pattern ., ni a subprocesos arbitrarios, por lo que para la aplicación a nivel del sistema operativo habilita el sandbox.
Los nombres de herramientas aceptan patrones glob, por lo que "*" deniega todas las herramientas y "mcp__*" deniega todas las herramientas MCP. Claude Code ignora una regla de denegar para la herramienta EndConversation siempre que alguna otra herramienta siga disponible para Claude. Una regla de denegar Bash coincide con el comando tal como Claude lo escribe, por lo que Bash(curl *) no detiene /usr/bin/curl ni sh -c 'curl …'; consulta con qué no coincide una regla Bash. Esta clave reemplaza la configuración obsoleta ignorePatterns.
`permissions.additionalDirectories`
Otorga a Claude acceso a archivos en directorios fuera de aquel en el que comenzaste, como directorios de trabajo adicionales. La mayor parte de la configuración de .claude/no se descubre desde estos directorios.
Como las reglas allow, las entradas en el .claude/settings.json de un proyecto tienen efecto solo después de que aceptes el diálogo de confianza del espacio de trabajo para esa carpeta.
`permissions.blockReadsOutsideWorkingDirectories`
Haz que las herramientas de archivo de Claude rechacen lecturas fuera de tus directorios de trabajo en cada modo de permisos, incluido bypassPermissions. Claude Code deniega las llamadas a Read, Grep, Glob y LSP en esas rutas y le indica a Claude que te pida agregar el directorio con /add-dir. Los archivos que Claude Code necesita siguen siendo legibles, como tus skills, plugins, reglas, agentes, comandos y el archivo de memoria CLAUDE.md bajo ~/.claude/. Requiere Claude Code v2.1.257 o posterior.
Claude Code no rechaza los comandos de shell de la misma manera:
Un comando Bash que el analizador de shell no puede rastrear, como uno que cambia de directorio más de una vez o ejecuta un subshell, te pide confirmación incluso en modo automático y en modo bypassPermissions. La solicitud aparece incluso cuando el comando no nombra ninguna ruta fuera de los directorios de trabajo. Esta solicitud no se aplica cuando el comando se ejecuta en el sandbox y el sandbox hace cumplir el bloqueo.
Scope: Any file. Un true en cualquier archivo se aplica, por lo que un repositorio puede activar el bloqueo para sí mismo, pero no puede levantar el tuyo.
Type: Boolean
true: las herramientas de archivo de Claude rechazan lecturas fuera de los directorios de trabajo
false: lo mismo que sin establecer; el bloqueo aún se aplica si otro archivo establece true
Default: sin establecer, por lo que las lecturas fuera de los directorios de trabajo siguen tu modo de permisos
Los directorios que agregas con --add-dir, /add-dir o additionalDirectories en tu configuración de usuario o administrada cuentan como directorios de trabajo para el bloqueo. Los directorios agregados solo en la configuración del repositorio no cuentan: los de .claude/settings.json, y los de .claude/settings.local.json a menos que git informe que ese archivo no está rastreado. En un directorio que no es un repositorio git, o cuando git rastrea el archivo, Claude Code trata .claude/settings.local.json como configuración del repositorio, así que pon los directorios que quieras mantener legibles en tu configuración de usuario en su lugar.
Para levantar el bloqueo, elimina la clave de cada archivo de configuración que la establezca y luego inicia una nueva sesión.
Comandos en el sandbox bajo el bloqueo
Cuando el sandboxing está activado, el bloqueo también cubre los comandos en el sandbox. Claude Code les deniega el acceso de lectura a tu directorio home y a las demás raíces que contienen archivos de usuario: /Users, /home, /root, /Volumes, /mnt, /media, /run/media y /srv. Luego vuelve a abrir los directorios de trabajo, los worktrees que Claude Code crea en la sesión, el directorio temporal de la sesión y las partes de ~/.claude que los comandos necesitan, como skills y plugins. Mientras el bloqueo está en vigor, las entradas allowRead y allowWrite de la configuración del repositorio no cuentan.
Cuando el directorio de trabajo de la sesión es un worktree de git vinculado, incluido uno en el que Claude Code entró a mitad de la sesión, el directorio .git común del repositorio sigue siendo legible y escribible para los comandos en el sandbox, por lo que git sigue funcionando allí.
En estos casos el bloqueo no alcanza a los comandos en el sandbox, mientras que las herramientas de archivo de Claude siguen haciéndolo cumplir:
La ruta del directorio en el que iniciaste Claude Code contiene un carácter glob como *, ? o [
Bajo el bloqueo, Claude Code vuelve a abrir tus archivos de configuración global de git para los comandos en el sandbox, de modo que git conserve tu identidad y tu configuración:
~/.gitconfig
Los archivos config, ignore y attributes bajo $XDG_CONFIG_HOME/git, que de forma predeterminada es ~/.config/git
Los archivos que tu configuración global de git nombra mediante [include], [includeIf], core.excludesFile o core.attributesFile
Claude Code evalúa cada archivo por separado. Cuando un archivo se encuentra donde un comando en el sandbox puede escribir, directamente o a través de un enlace simbólico, Claude Code no vuelve a abrir los archivos que nombra.
En Linux y WSL2, un archivo de configuración que es un enlace simbólico puede seguir siendo ilegible en su propia ruta, y entonces git se ejecuta sin él. ~/.git-credentials y $XDG_CONFIG_HOME/git/credentials siguen bloqueados.
Si un archivo que se vuelve a abrir contiene un secreto, como un token http.extraHeader, agrega su ruta a sandbox.filesystem.denyRead. Una entrada denyRead que cubre un archivo siempre tiene precedencia sobre esta reapertura.
Scope: Any file. auto y bypassPermissions no tienen efecto desde la configuración de proyecto o local, así que establécelos en ~/.claude/settings.json en su lugar. Antes de v2.1.257, bypassPermissions tenía efecto desde cualquier archivo. Para las conversaciones que inicia la extensión de VS Code, Claude Code lee solo los valores de usuario, administrados y de --settings.
Type: cadena, una de:
"default": Claude Code ejecuta solo lecturas sin preguntar
"acceptEdits": Claude Code también ejecuta ediciones de archivos y comandos comunes del sistema de archivos como mkdir y mv sin preguntar
"plan": Claude Code lee y planifica, pero bloquea las ediciones hasta que apruebes un plan
"auto": Claude Code se ejecuta sin solicitudes habituales; antes de que se ejecuten acciones como comandos de shell y solicitudes de red, un clasificador en segundo plano verifica que se alineen con tu solicitud
"dontAsk": Claude Code deniega automáticamente cada llamada que de otro modo pediría confirmación; las lecturas, otras acciones que no necesitan aprobación y las herramientas preaprobadas se siguen ejecutando
"bypassPermissions": Claude Code ejecuta todo sin preguntar
"manual": un alias de "default", en Claude Code v2.1.200 o posterior
Default: sin establecer
Per-session overrides: --permission-mode, y su equivalente --dangerously-skip-permissions para bypassPermissions, tienen precedencia sobre esta clave para una sesión
{"permissions": {"defaultMode": "acceptEdits"}}
Las reglas de permisos se superponen a todos los modos: las reglas deny bloquean en todos los modos, incluido bypassPermissions. Consulta Modos de permisos. manual nombra el modo de permisos etiquetado como Manual en la CLI y en la extensión de VS Code; el alias requiere Claude Code v2.1.200 o posterior. En las sesiones en la nube, Claude Code respeta solo acceptEdits, plan, default y auto de esta clave. Para las conversaciones que inicia la extensión de VS Code, consulta qué ajuste lee la extensión para el modo de permisos inicial.
`permissions.disableBypassPermissionsMode`
Impide que cualquiera entre en el modo bypassPermissions. Claude Code rechaza entonces el flag --dangerously-skip-permissions e ignora el permissionMode: bypassPermissions de una definición de agente, por lo que el subagente se ejecuta con el modo de permisos de la sesión principal.
Antes de v2.1.223, Claude Code aplicaba el modo de permisos del frontmatter incluso con bypass deshabilitado.
`skipAutoPermissionPrompt`
Omite el aviso único que describe el modo automático y que Claude Code muestra cuando entras por primera vez en el modo automático por tu cuenta, por ejemplo mediante tu propia configuración o el selector de modo, en lugar de cuando el valor predeterminado integrado inicia una sesión en él. Claude Code muestra ese aviso una vez y luego registra que se mostró, por lo que esta clave solo importa donde el aviso aún no ha aparecido.
Scope: User or managed. Un repositorio no puede establecerlo por ti.
Type: Boolean
true: Claude Code omite el aviso
false: lo mismo que sin establecer; el aviso aparece una vez a menos que otro de estos archivos establezca true
Default: sin establecer, por lo que el aviso aparece una vez
{"skipAutoPermissionPrompt": true
}
`skipDangerousModePermissionPrompt`
Omite el diálogo de confirmación que Claude Code muestra antes de que una sesión entre en el modo bypassPermissions, ya sea desde --dangerously-skip-permissions o desde defaultMode: "bypassPermissions". Claude Code escribe true aquí en tu configuración de usuario cuando aceptas ese diálogo una vez.
Scope: User, local, or managed. Un repositorio que no es de confianza no puede omitir el diálogo por ti.
Type: Boolean
true: Claude Code omite el diálogo de confirmación antes de que una sesión entre en el modo bypassPermissions
false: lo mismo que sin establecer; el diálogo aparece a menos que otro de estos archivos establezca true
Default: sin establecer, por lo que el diálogo aparece
{"skipDangerousModePermissionPrompt": true
}
Configuración de sandbox
Aísla los comandos que Claude ejecuta de tu sistema de archivos, tu red y tus credenciales. Para saber cómo funciona el sandboxing y los requisitos de plataforma, consulta Sandboxing.
`sandbox`
Aísla los comandos Bash que Claude ejecuta de tu sistema de archivos y tu red con sandboxing. Activa el sandbox con enabled y luego reduce o amplía lo que los comandos en sandbox pueden tocar con los subobjetos filesystem, network y credentials. El sandbox se ejecuta en macOS, Linux y WSL2.
Type: object con enabled, failIfUnavailable, autoAllowBashIfSandboxed, excludedCommands, allowUnsandboxedCommands, enableWeakerNestedSandbox, enableWeakerNetworkIsolation, allowAppleEvents, bwrapPath, socatPath, ignoreViolations y ripgrep, más los objetos filesystem, network y credentials
Default: sin establecer, por lo que Claude Code ejecuta comandos sin sandbox
Esto activa el sandbox, omite las solicitudes de permiso para comandos en sandbox, ejecuta docker fuera del sandbox, abre dos rutas de escritura adicionales, oculta tu archivo de credenciales de AWS y permite de antemano GitHub y npm:
Cuando la configuración administrada establece una clave booleana como enabled o failIfUnavailable, ese valor sobrescribe cualquier cosa que establezca un desarrollador. Claude Code combina las claves de array en todos los alcances de configuración que carga la sesión, por lo que un desarrollador puede agregar entradas; consulta Evitar que los desarrolladores amplíen la política para ver los bloqueos exclusivos de la configuración administrada. Para exigir el sandbox en una organización, consulta Aplicar el sandboxing con configuración administrada.
`sandbox.enabled`
Activa el sandboxing para los comandos Bash. Cuando eliges un modo en el panel /sandbox, Claude Code escribe esta clave en .claude/settings.local.json para el proyecto actual; establécela en ~/.claude/settings.json para aplicar el sandbox en todos los proyectos.
true: Claude Code ejecuta los comandos Bash en sandbox
false: los comandos Bash se ejecutan sin sandbox
Default: false
{"sandbox": {"enabled": true
}}
En Linux y WSL2, el sandbox necesita bubblewrap y socat; consulta Configurar Linux y WSL2. Cuando el sandbox no puede iniciarse, Claude Code ejecuta los comandos sin sandbox a menos que también establezcas failIfUnavailable.
`sandbox.failIfUnavailable`
Haz que Claude Code salga con un error al inicio cuando sandbox.enabled es true pero el sandbox no puede iniciarse, porque falta una dependencia o la plataforma no es compatible. Sin esta clave, Claude Code ejecuta los comandos sin sandbox. Los despliegues administrados que requieren el sandboxing como barrera de seguridad pueden usar este ajuste.
Permite que Claude Code ejecute comandos Bash en sandbox sin una solicitud de permiso. Los comandos que no pueden ejecutarse en el sandbox siguen pasando por el flujo de permisos normal, y las reglas deny y las reglas ask limitadas por contenido, como Bash(git push *), siguen aplicándose; una regla ask de Bash sin contenido se omite para los comandos en sandbox. Establécela en false para que los comandos en sandbox también pasen por el flujo de permisos normal, lo que la pestaña Mode de /sandbox llama modo de permisos normal.
true: Claude Code ejecuta comandos Bash en sandbox sin una solicitud de permiso, sujeto a las reglas deny y a las reglas ask limitadas por contenido; CLAUDE_CODE_SUBPROCESS_ENV_SCRUB desactiva la aprobación automática
false: los comandos en sandbox pasan por el flujo de permisos normal, por lo que deciden tus reglas allow y tu modo de permisos. La pestaña Mode de /sandbox llama a esto modo de permisos normal
Default: true
Esto mantiene el sandbox activado y envía los comandos en sandbox por el flujo de permisos normal:
Consulta Modos del sandbox para saber qué sigue solicitando el modo de aprobación automática y cómo se comporta en modo plan.
`sandbox.excludedCommands`
Nombra los comandos que Claude Code ejecuta fuera del sandbox, como herramientas que no funcionan dentro de él. Cada entrada usa la misma sintaxis que el contenido de una regla de permisosBash(...): un comando exacto, un prefijo como docker * o un patrón con comodines. Un patrón sin comodín es una coincidencia exacta, por lo que docker solo coincide con docker sin argumentos.
Tus entradas sacan una llamada Bash del sandbox solo cuando cubren todos los comandos que contiene, y algunas formas de llamada permanecen en sandbox incluso así. Una entrada docker * por sí sola no saca npm ci && docker build . del sandbox.
Default: sin establecer, por lo que no se excluye ningún comando
{"sandbox": {"excludedCommands": ["docker *"]}}
Claude Code mantiene una llamada Bash en sandbox cuando tiene una de estas formas, entre otras:
Un comando que comienza con sudo, eval o xargs
Un cd, pushd o popd, dondequiera que aparezca en la llamada
Una sustitución de comando, un subshell o un bloque de flujo de control como if o for
Una redirección, como docker build . > build.log, salvo una que solo duplique un descriptor de archivo, como hace 2>&1
Un nombre de comando que proviene de una variable
Un git clone, git init, git worktree add, git worktree move o git bundle create con un argumento de ruta que es absoluto, comienza con ~ o contiene un segmento ..
Por ejemplo, cd build && docker compose up permanece en sandbox con una entrada docker *, y agregar una entrada cd no cambia eso. Con una entrada git *, git clone <url> vendor/lib se ejecuta fuera del sandbox, pero git clone <url> ~/tools permanece en sandbox. Un clon escribe todo un árbol de archivos, posiblemente ejecutables, dondequiera que apunte su ruta de destino.
Los comandos excluidos siguen pasando por el flujo de permisos normal. La exclusión es una comodidad, no un límite de seguridad: cuando una herramienta solo necesita escribir en un lugar específico, filesystem.allowWrite la mantiene en sandbox.
Las entradas de los alcances de configuración que carga la sesión se combinan en una sola lista, a menos que el sandbox sea requerido por el administrador. Mientras lo sea, Claude Code ignora las entradas de .claude/settings.json y .claude/settings.local.json, para que un repositorio clonado no pueda sacar comandos del sandbox. Las entradas de la configuración administrada, de --settings y de tu ~/.claude/settings.json siguen aplicándose, y ningún bloqueo exclusivo de la configuración administrada cubre esta lista.
`sandbox.allowUnsandboxedCommands`
Permite que Claude reintente un comando fuera del sandbox con el parámetro dangerouslyDisableSandbox después de que el sandbox lo bloquee. Cuando es false, Claude Code ignora ese parámetro. Mientras el sandbox está en ejecución, los comandos que Claude ejecuta quedan entonces en sandbox a menos que coincidan con una entrada de excludedCommands. La pestaña Overrides de /sandbox muestra ese estado como Strict sandbox mode. Un false en la configuración administrada activa el modo sandbox estricto para los desarrolladores que cubre.
true: Claude puede reintentar un comando fuera del sandbox con el parámetro dangerouslyDisableSandbox después de que el sandbox lo bloquee
false: Claude Code ignora ese parámetro, por lo que, mientras el sandbox está en ejecución, los comandos que Claude ejecuta quedan en sandbox a menos que coincidan con una entrada de excludedCommands
Default: true
Esto aplica el modo sandbox estricto para todas las personas que cubre la configuración administrada:
Un false de la configuración administrada o de --settings también hace que el sandbox sea requerido por el administrador. Un false en tu configuración de usuario prevalece sobre un true de un proyecto, pero no hace que el sandbox sea requerido por el administrador. Prevalecer sobre el valor de un proyecto requiere Claude Code v2.1.285 o posterior.
Controla qué rutas pueden leer y escribir los comandos en sandbox. De forma predeterminada, pueden escribir en el directorio de trabajo, el directorio temporal por usuario y los directorios que agregues con --add-dir, /add-dir o permissions.additionalDirectories, y pueden leer el resto del sistema de archivos, incluidos los archivos de credenciales. Amplía o reduce eso con las cuatro listas de rutas, o desactiva la capa del sistema de archivos con disabled. Consulta Aislamiento del sistema de archivos para ver los límites predeterminados.
Claude Code aplica estas listas en el límite del sandbox del sistema operativo, por lo que afectan a cada subproceso que inicia un comando en sandbox, como kubectl, terraform o npm. Claude Code agrega tus reglas de permisos a las mismas listas: las reglas allow y deny de Edit a allowWrite y denyWrite, las reglas deny de Read a denyRead, y las reglas allow y deny de WebFetch(domain:...) a las listas de dominios de network.
A menos que se aplique un bloqueo, Claude Code combina estas listas de todos los archivos de configuración que carga la sesión. allowManagedReadPathsOnly limita allowRead a las entradas de la configuración administrada, y allowManagedDomainsOnly hace lo mismo con los dominios permitidos. Los bloqueos de repositorio dejan fuera las entradas de los archivos de configuración de un repositorio.
Las rutas en allowWrite, denyWrite, denyRead, allowRead y credentials.files se resuelven según su prefijo:
Prefijo
Significado
Ejemplo
/
Ruta absoluta desde la raíz del sistema de archivos
/tmp/build sigue siendo /tmp/build
~/
Relativa al directorio home
~/.kube se convierte en $HOME/.kube
./ o sin prefijo
Relativa a la raíz del proyecto en la configuración de proyecto, o a ~/.claude en la configuración de usuario
./output en .claude/settings.json se resuelve como <project-root>/output
El prefijo //path para rutas absolutas también funciona. Si usas una sola barra /path esperando una resolución relativa al proyecto, cambia a ./path. Esta sintaxis difiere de las reglas de permisos Read y Edit, que usan //path para rutas absolutas y /path para rutas relativas al proyecto: las rutas del sistema de archivos del sandbox usan las convenciones estándar, por lo que /tmp/build es una ruta absoluta.
Claude Code elimina la barra final de una ruta de directorio, por lo que ~/.aws y ~/.aws/ coinciden con el mismo directorio. Antes de v2.1.224, Claude Code pasaba la barra final al sandbox, y Claude aún podía leer o escribir rutas bajo una entrada denyRead o denyWrite escrita con ella.
Claude Code también elimina un /** final, por lo que ~/build/** y ~/build cubren el mismo directorio. Que un comodín como * funcione depende de la lista en la que esté la entrada y de la plataforma:
allowWrite y denyWrite: en macOS, los comodines funcionan. En Linux y WSL2, el sandbox monta rutas concretas, por lo que Claude Code omite una entrada que contiene *, ? o [ una vez eliminado el /** final, y esa entrada no tiene efecto. Claude Code agrega a estas listas las rutas de tus reglas de permisos Edit, por lo que el mismo límite se aplica a ellas, y la pestaña Config de /sandbox advierte sobre las reglas de permisos Edit y Read que contienen comodines.
denyRead y allowRead: los comodines funcionan en todas las plataformas. En Linux y WSL2, Claude Code expande una entrada de lectura a las rutas concretas con las que coincide, algo que no hace con las listas de escritura.
`sandbox.filesystem.allowWrite`
Agrega rutas donde los comandos en sandbox pueden escribir, además del directorio de trabajo, el directorio temporal por usuario y los directorios que agregaste con --add-dir, /add-dir o permissions.additionalDirectories. Úsalo cuando un subproceso como kubectl o una herramienta de compilación necesite escribir fuera del proyecto.
Default: sin establecer, por lo que los comandos en sandbox pueden escribir en el directorio de trabajo, el directorio temporal por usuario, los directorios que agregaste con --add-dir o /add-dir y los directorios de permissions.additionalDirectories
Esto permite que una compilación escriba bajo /tmp/build y que kubectl actualice tu kubeconfig:
Claude Code combina las entradas de allowWrite y las rutas de tus reglas de permisos allow Edit(...) de todos los alcances de configuración que carga la sesión, y deja fuera las de la configuración del repositorio mientras permissions.blockReadsOutsideWorkingDirectories está activado. Los bloqueos de repositorio también pueden dejar fuera las entradas de un repositorio. Una entrada allowWrite no puede levantar una ruta protegida.
`sandbox.filesystem.denyWrite`
Impide que los comandos en sandbox escriban en rutas específicas, incluidas las rutas dentro de un directorio que de otro modo sería escribible.
Claude Code combina las entradas de todos los alcances de configuración que carga la sesión y agrega las rutas de tus reglas de permisos deny Edit(...).
`sandbox.filesystem.denyRead`
Impide que los comandos en sandbox lean rutas específicas, como archivos de credenciales que la política de lectura predeterminada expondría. Para proteger un archivo de credenciales y mantenerlo utilizable a través del proxy del sandbox, consulta sandbox.credentials en su lugar.
Default: sin establecer, por lo que los comandos en sandbox conservan el acceso de lectura predeterminado, que incluye archivos de credenciales como ~/.aws/credentials
Claude Code combina las entradas de todos los alcances de configuración que carga la sesión y agrega las rutas de tus reglas de permisos deny Read(...). Cuando filesystem.disabled es true, Claude Code no aplica estas entradas.
`sandbox.filesystem.allowRead`
Vuelve a habilitar la lectura de rutas específicas dentro de una región que denyRead bloquea, para crear un acceso de lectura limitado al espacio de trabajo. Una entrada denyRead exacta o con comodines sigue bloqueada dentro de un allowRead más amplio, como muestra la tabla de superposición. Cuando una entrada denyRead con comodines, como ~/**/.env, coincide con un directorio, Claude Code también bloquea la lectura de su contenido. Antes de v2.1.236 en macOS, Claude Code volvía a habilitar las rutas con las que coincidía una entrada denyRead con comodines siempre que una entrada allowRead más amplia las cubriera, y dejaba legible el contenido de un directorio coincidente.
Claude Code resuelve una entrada . como la raíz del proyecto en la configuración de proyecto y como ~/.claude en la configuración de usuario. Claude Code combina las entradas de los archivos de configuración que carga la sesión a menos que allowManagedReadPathsOnly esté establecido, y deja fuera las entradas de la configuración del repositorio mientras permissions.blockReadsOutsideWorkingDirectories está activado. Los bloqueos de repositorio también pueden dejar fuera las entradas de un repositorio.
`sandbox.filesystem.allowManagedReadPathsOnly`
Respeta solo las entradas de allowRead que provienen de la configuración administrada, para que los desarrolladores no puedan volver a habilitar el acceso de lectura a rutas que tu organización bloqueó. Claude Code sigue combinando las entradas de denyRead de todos los alcances de configuración que carga la sesión.
Omite el aislamiento del sistema de archivos y mantén el aislamiento de red. Los comandos en sandbox obtienen acceso de lectura y escritura sin restricciones al sistema de archivos del host, y su tráfico de red saliente permanece limitado a network.allowedDomains. Úsalo cuando uses el sandbox para controlar adónde se conectan los comandos y no lo que escriben. Requiere Claude Code v2.1.216 o posterior.
Scope: User or managed. Cuando la configuración administrada configura sandbox.filesystem de cualquier forma, o incluye una entrada de sandbox.credentials.files con "mode": "deny", solo la configuración administrada puede establecerlo.
Type: Boolean
true: Claude Code omite el aislamiento del sistema de archivos y mantiene el aislamiento de red
false: el aislamiento del sistema de archivos permanece activado
Default: false, por lo que el aislamiento del sistema de archivos permanece activado
Esto deja el sistema de archivos abierto y limita el tráfico de red saliente a GitHub y npm:
Con la capa desactivada, Claude Code no aplica las entradas denyRead ni las entradas deny de credentials.files, mientras que las entradas de credentials.envVars y las entradas mask aplicadas siguen funcionando. autoAllowBashIfSandboxed sigue teniendo el valor predeterminado true, así que establécelo en false para seguir recibiendo solicitudes. Consulta Desactivar el aislamiento del sistema de archivos para ver la lista completa de fuentes que pueden establecerlo y qué cambia cuando el aislamiento está desactivado. Requiere Claude Code v2.1.216 o posterior.
`sandbox.ignoreViolations`
Silencia los informes de violaciones del sandbox para rutas que esperas que un comando sondee y que se le rechacen, como una herramienta que verifica /etc/hosts al iniciarse, para que esos rechazos no aparezcan como violaciones ni en lo que Claude ve. El sandbox sigue bloqueando el acceso; solo se suprime el informe. Las claves son subcadenas que se comparan con el comando, donde * coincide con todos los comandos, y los valores son subcadenas de la violación que se ignorará para ese comando, como una ruta del sistema de archivos.
Ejecuta el sandbox de Linux dentro de un contenedor Docker sin privilegios, donde bubblewrap no puede montar un /proc nuevo. En su lugar, el sandbox interno monta mediante bind el /proc existente del contenedor, lo que expone información de procesos que un montaje nuevo ocultaría. Esto reduce la seguridad; úsalo solo cuando el contenedor externo ya proporcione el aislamiento que necesitas.
Permite que los comandos en sandbox en macOS accedan al servicio de confianza TLS del sistema, com.apple.trustd.agent. Las herramientas basadas en Go, como gh, gcloud y terraform, lo necesitan para verificar certificados TLS cuando usas network.httpProxyPort con un proxy MITM y una CA personalizada. Esto reduce la seguridad al abrir una posible vía de exfiltración de datos a través del servicio de confianza.
Permite que los comandos en sandbox en macOS envíen Apple Events, que necesitan open, osascript y las herramientas que abren URLs en un navegador; sin esto, fallan con el error -600. Esto elimina el aislamiento de ejecución de código: los comandos en sandbox pueden iniciar otras aplicaciones sin sandbox y sin preguntarle al usuario, y pueden enviar comandos AppleScript a aplicaciones en ejecución como Terminal, sujeto a la solicitud de consentimiento de automatización por aplicación de macOS (TCC).
Apunta el sandbox a un binario de ripgrep propio en lugar del que usa Claude Code, por ejemplo cuando tu plataforma necesita un rg compilado de otra manera.
Type: object con command, la ruta al binario de ripgrep, y args opcional, un array de argumentos que se anteponen
Default: sin establecer, por lo que el sandbox usa el mismo binario de ripgrep que Claude Code. Ese es el binario incluido a menos que establezcas USE_BUILTIN_RIPGREP en 0
Apunta el sandbox a un binario de bubblewrap instalado fuera de PATH, como una copia incluida localmente en un host aislado de la red. Claude Code usa la ruta tanto para la verificación de dependencias al inicio como al envolver cada comando en sandbox.
Scope: Managed. Claude Code lo lee solo de la configuración administrada para que un archivo de usuario, de proyecto o local no pueda apuntar el sandbox a otro binario.
Type: string, una ruta absoluta; Claude Code descarta una ruta relativa y recurre a la búsqueda en PATH
Default: sin establecer, por lo que Claude Code busca bwrap en PATH
Declara los archivos de credenciales y las variables de entorno que se protegerán de los comandos en sandbox. Cada entrada indica un archivo path o una variable name y un mode: deny oculta la credencial dentro del sandbox, y mask muestra a los comandos en sandbox un marcador de posición mientras el proxy del sandbox sustituye el valor real en las solicitudes salientes. Claude Code protege solo las entradas que incluyes; no hay una lista integrada de credenciales denegadas.
Scope: Any file. Claude Code respeta las entradas mask, allowPlaintextInject, awsPairs y sigv4 solo desde la configuración de usuario, la configuración administrada y el flag --settings.
Type: object con files, envVars, allowPlaintextInject, awsPairs y sigv4
Default: sin establecer, por lo que no se protege ninguna credencial
Esto oculta tu archivo de credenciales de AWS y elimina GITHUB_TOKEN de los comandos en sandbox:
La protección de archivos deny forma parte de la capa del sistema de archivos, por lo que no se aplica cuando desactivas el aislamiento del sistema de archivos; la protección de variables de entorno sí se sigue aplicando.
Entradas de credenciales no válidas en la configuración administrada
Cuando una entrada administrada de sandbox.credentials no supera la validación, Claude Code sigue protegiendo la credencial en la medida de lo posible:
Una entrada de files o envVars que aún tiene un path o name válido y un mode de mask o deny, como una cuyo patrón extract no tiene grupo de captura, se degrada a mode: "deny" con una advertencia, por lo que la credencial permanece bloqueada, no enmascarada, hasta que corrijas la entrada. Una entrada de files degradada fija filesystem.disabled igual que una entrada deny explícita, y la advertencia indica que su bloqueo de lectura no se aplica si la configuración administrada desactiva el aislamiento del sistema de archivos.
Una entrada con un mode desconocido o con un path o name no válido se elimina.
Cada caso genera una advertencia; tanto si una entrada se degrada como si se elimina, las entradas válidas restantes siguen aplicándose, y un valor de credentials completamente no válido se descarta mientras el resto de sandbox sigue aplicándose.
Se aplica en v2.1.191 y posterior; antes de v2.1.221, se eliminaba cada entrada no válida. Para las demás claves administradas con tratamiento por campo, consulta Entradas no válidas en la configuración administrada.
`sandbox.credentials.files`
Protege archivos o directorios de credenciales de los comandos en sandbox. Con "mode": "deny", Claude Code bloquea la lectura de la ruta dentro del sandbox, el mismo bloqueo de lectura que sandbox.filesystem.denyRead. Con "mode": "mask", los comandos en sandbox en Linux y WSL2 leen una copia centinela del archivo, y el proxy del sandbox sustituye el valor real en las solicitudes salientes a los injectHosts de esa entrada; en macOS, en cambio, el archivo no se puede leer dentro del sandbox. "mode": "mask" requiere Claude Code v2.1.221 o posterior.
Scope: Any file. Claude Code descarta las entradas mask del .claude/settings.json del proyecto y del .claude/settings.local.json local.
Default: sin establecer, por lo que no se protege ningún archivo de credenciales
Esto oculta tu archivo de credenciales de AWS y enmascara el archivo de hosts de gh, sustituyendo el valor real solo en las solicitudes a api.github.com:
Las rutas usan los mismos prefijos que los ajustes sandbox.filesystem.*, y Claude Code combina los arrays de todos los alcances de configuración que carga la sesión. Proteger credenciales cubre lo que sigue aplicándose de las fuentes que excluyes con --setting-sources. Las entradas mask requieren Claude Code v2.1.221 o posterior.
La sustitución mask solo se realiza a través del proxy del sandbox, así que establece sandbox.network.tlsTerminate, o allowPlaintextInject para redes de prueba con HTTP simple. mask se aplica a un solo archivo, así que incluye cada archivo de credenciales por separado. Claude Code acepta pero ignora los campos mask en una entrada deny. Enmascarar credenciales cubre qué fuentes de configuración se respetan, y Enmascarar archivos de credenciales cubre cuándo una entrada pasa a deny.
Campos de máscara para archivos
Una entrada mask acepta estos campos opcionales. Sin extract ni decode, Claude Code reemplaza todo el contenido del archivo con un solo centinela. En macOS, con el aislamiento del sistema de archivos activado, Claude Code aplica una entrada mask como deny antes de que se ejecute extract o decode; consulta Enmascarar archivos de credenciales.
Campo
Tipo
Qué hace
extract
string, una expresión regular con al menos un grupo de captura
Enmascara solo el texto capturado por el grupo 1 de cada coincidencia, para que el resto del archivo siga siendo analizable. Si también se establece decode, Claude Code verifica cada captura como un posible JWT en lugar de reemplazarla directamente. Requiere v2.1.221 o posterior
onExtractNoMatch
"warn", "deny" o "error"; predeterminado "warn"
Qué sucede cuando extract o decode no encuentra nada que enmascarar. warn deja el archivo legible tal cual dentro del sandbox, deny lo hace ilegible y error detiene la configuración del sandbox hasta que corrijas la configuración. Claude Code trata deny como error cuando el bloqueo de lectura no se aplicaría, porque desactivas el aislamiento del sistema de archivos o una entrada de sandbox.filesystem.allowRead vuelve a habilitar la ruta. Requiere v2.1.221 o posterior; el caso de decode requiere v2.1.224 o posterior
decode
la cadena "jwt"
Busca JSON Web Tokens (JWTs) en el archivo, con un patrón integrado o con extract si está establecido, verifica cada candidato y lo reemplaza con un token falso estructuralmente válido, para que el código dentro del sandbox que decodifica el token siga funcionando. Cuando ningún candidato se verifica, onExtractNoMatch determina el resultado. Requiere v2.1.224 o posterior
maskClaims
array de strings, al menos un nombre de claim; requiere decode
Enmascara solo los claims de nivel superior indicados del payload de cada JWT verificado y reconstruye el token en torno al payload modificado, para que los demás claims sigan siendo legibles. Cuando ningún claim indicado coincide, onExtractNoMatch determina el resultado. Requiere v2.1.224 o posterior
maskDuplicates
Boolean, predeterminado false
Reemplaza también las copias literales de cada valor enmascarado en otras partes del archivo, como un secreto pegado en un comentario. Claude Code busca coincidencias de subcadenas sin procesar, así que resérvalo para secretos largos y de alta entropía. Solo se consulta cuando extract o decode está establecido. Requiere v2.1.221 o posterior
Restringe los hosts en los que el proxy del sandbox sustituye el valor real. Si no está establecido, el proxy lo sustituye en las solicitudes a todos los hosts de sandbox.network.allowedDomains. Requiere v2.1.221 o posterior
Esto enmascara solo el valor de oauth_token en el archivo de hosts de gh, reemplaza todas las demás copias de ese valor en el archivo, hace que el archivo sea ilegible si el patrón no coincide con nada y sustituye el token real solo en las solicitudes a api.github.com:
Protege variables de entorno de los comandos en sandbox. Con "mode": "deny", Claude Code elimina la variable del entorno de los comandos en sandbox. Con "mode": "mask", los comandos en sandbox ven un valor centinela por sesión, y el proxy del sandbox sustituye el valor real en las solicitudes salientes a los injectHosts de esa entrada, para que herramientas como gh y npm sigan autenticándose sin tener nunca la credencial real. "mode": "mask" requiere Claude Code v2.1.199 o posterior.
Scope: Any file. Claude Code descarta las entradas mask del .claude/settings.json del proyecto y del .claude/settings.local.json local.
El name debe comenzar con una letra o un guion bajo y contener solo letras, dígitos y guiones bajos. Claude Code combina los arrays de todos los alcances de configuración que carga la sesión y aplica deny cuando la misma variable aparece con ambos modos. Proteger credenciales cubre lo que sigue aplicándose de las fuentes que excluyes con --setting-sources. Las entradas mask requieren Claude Code v2.1.199 o posterior.
Una entrada mask acepta estos campos opcionales. Sin extract ni decode, Claude Code reemplaza todo el valor con un solo centinela. extract y decode no se pueden combinar en la misma entrada.
Campo
Tipo
Qué hace
extract
string, una expresión regular con al menos un grupo de captura
Enmascara solo el texto capturado por el grupo 1 de cada coincidencia, como la contraseña dentro de una cadena de conexión DATABASE_URL, para que el resto del valor siga siendo analizable. Requiere v2.1.224 o posterior
onExtractNoMatch
"warn", "deny" o "error"; predeterminado "warn". En una entrada con decode, solo se acepta "warn"
Qué sucede cuando extract no coincide con nada. warn deja pasar la variable sin enmascarar, deny la elimina dentro del sandbox y error detiene la configuración del sandbox hasta que corrijas la configuración. Requiere v2.1.224 o posterior
decode
la cadena "jwt"
Verifica que todo el valor sea un JWT y lo reemplaza con un token falso estructuralmente válido, para que el código dentro del sandbox que decodifica el token siga funcionando; el proxy sustituye todo el token real en el tráfico saliente. Un valor que no se verifica pasa sin enmascarar con una advertencia. Requiere v2.1.224 o posterior
maskClaims
array de strings, al menos un nombre de claim; requiere decode
Enmascara solo los claims de nivel superior indicados del payload del JWT decodificado y reconstruye el token en torno al payload modificado, para que los demás claims sigan siendo legibles. Cuando ningún claim indicado coincide, la variable pasa sin enmascarar con una advertencia. Requiere v2.1.224 o posterior
Restringe los hosts en los que el proxy del sandbox sustituye el valor real. Si no está establecido, el proxy lo sustituye en las solicitudes a todos los hosts de sandbox.network.allowedDomains. Escribe un destino IPv6 como la dirección comprimida sin corchetes, como "::1", no en la forma entre corchetes; consulta Destinos IPv6 en injectHosts. Requiere v2.1.199 o posterior
Esto enmascara solo la contraseña dentro de DATABASE_URL, elimina la variable si el patrón no coincide con nada y enmascara un JWT en SERVICE_JWT dejando legibles todos los claims excepto api_key:
Permite la sustitución mask en solicitudes HTTP simples además de en HTTPS con terminación TLS. En HTTP simple, la identidad del servidor de destino no se verifica y la credencial viaja en texto plano, así que deja esto desactivado fuera de redes de prueba de confianza. Requiere Claude Code v2.1.199 o posterior.
Agrupa las variables de entorno enmascaradas que forman una sola credencial de AWS para volver a firmar con SigV4 cuando tu credencial está en variables con nombres no estándar. Claude Code vincula automáticamente el trío convencional AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY y AWS_SESSION_TOKEN cuando enmascaras sus valores completos, así que solo necesitas esta clave para otros nombres. Requiere Claude Code v2.1.224 o posterior.
Type: array de objetos, cada uno con accessKeyIdVar, secretAccessKeyVar y, opcionalmente, sessionTokenVar, que nombran entradas de sandbox.credentials.envVars
Default: sin establecer, por lo que solo se empareja el trío convencional
Esto vincula tres variables con nombres personalizados en una sola credencial de AWS para volver a firmar:
Cada variable nombrada debe ser una entrada mask de valor completo en sandbox.credentials.envVars, sin extract ni decode, y solo puede ocupar una posición entre todos los pares. También se aplican estas reglas:
El proxy vuelve a firmar las solicitudes en los hosts indicados en los injectHosts de la entrada del ID de clave de acceso
Cuando sessionTokenVar está establecido, el proxy envía el token real como x-amz-security-token en las solicitudes que vuelve a firmar
Nombrar cualquiera de las variables convencionales en un par reemplaza el emparejamiento automático
`sandbox.credentials.sigv4`
Elige qué hace el proxy del sandbox con las formas de solicitud de AWS que no puede volver a firmar: streaming para cargas en streaming aws-chunked, presigned para URLs prefirmadas y sigv4a para firmas asimétricas SigV4A. Esto se aplica solo a solicitudes firmadas con el ID de clave de acceso de marcador de posición de un par enmascarado. Requiere Claude Code v2.1.224 o posterior.
Con deny, el proxy hace fallar la solicitud. Con passthrough, el proxy reenvía la solicitud con su firma calculada a partir del marcador de posición enmascarado, por lo que AWS la rechaza y la herramienta que hace la llamada recibe la respuesta propia de AWS en lugar de un error del proxy.
`sandbox.network`
Controla a qué hosts, puertos y sockets pueden acceder los comandos en sandbox. El sandbox enruta el tráfico saliente a través de un proxy que aplica estas listas; consulta Aislamiento de red para saber cómo decide el proxy y cuándo solicita aprobación.
Scope: Any file. strictAllowlist, allowManagedDomainsOnly y tlsTerminate se leen de menos fuentes, como indican sus entradas.
Type: object con las subclaves que se describen a continuación
Default: sin establecer, por lo que no se permite ningún dominio de antemano y tu modo de permisos decide qué sucede con cada host nuevo
Esto permite de antemano GitHub y npm, bloquea uploads.github.com y permite que los comandos se vinculen a localhost:
Claude Code combina las subclaves de array de todos los alcances de configuración, por lo que un proyecto puede agregar dominios a tu lista de usuario a menos que se aplique un bloqueo de repositorio. Las reglas de permisos allow y deny de WebFetch(domain:...) alimentan las mismas listas de permitidos y denegados.
`sandbox.network.allowUnixSockets`
Indica las rutas de socket Unix a las que pueden conectarse los comandos en sandbox en macOS. Claude Code ignora esta lista en Linux y WSL2, donde el filtro seccomp no puede inspeccionar las rutas de socket; usa allowAllUnixSockets allí en su lugar.
Una ruta de socket puede otorgar un acceso amplio: permitir /var/run/docker.sock, por ejemplo, permite que un comando en sandbox controle el daemon de Docker. Consulta Limitaciones de seguridad.
`sandbox.network.allowAllUnixSockets`
Permite que los comandos en sandbox se conecten a todos los sockets Unix. En Linux y WSL2, el filtro seccomp del sandbox bloquea las llamadas socket(AF_UNIX, ...), por lo que esta es la única forma de permitir sockets Unix allí. Cuando falta el filtro, algo que /sandbox informa en su pestaña Dependencies, el sandbox no bloquea las llamadas a sockets Unix. Consulta Configurar Linux y WSL2 para saber de dónde proviene el filtro.
true: los comandos en sandbox pueden conectarse a todos los sockets Unix
false: el sandbox bloquea las conexiones a sockets Unix: en macOS, excepto las rutas de allowUnixSockets, y en Linux y WSL2, mediante el filtro seccomp cuando está presente
En WSL2, true también vuelve a abrir el socket de interoperabilidad que inicia binarios de Windows como cmd.exe y powershell.exe.
`sandbox.network.allowLocalBinding`
Permite que los comandos en sandbox en macOS escuchen en puertos de red, por ejemplo para iniciar un servidor de desarrollo, y se conecten a cualquier puerto de localhost. Un comando que escucha en una dirección que no es de loopback acepta conexiones de otras máquinas. La clave no tiene efecto en Linux y WSL2, donde cada comando en sandbox tiene su propia interfaz de loopback. Para acceder a un servidor del host desde Linux o WSL2, consulta Un comando no puede acceder a un servidor en localhost.
Indica nombres adicionales de servicios XPC y Mach que el sandbox de macOS puede buscar. Las herramientas que se comunican por XPC, como el simulador de iOS o Playwright, necesitan que sus servicios aparezcan aquí.
Permite de antemano dominios para el tráfico saliente de los comandos en sandbox, para que el sandbox no solicite aprobación para ellos. Los comodines como *.example.com coinciden con subdominios, y un sufijo :port opcional limita una entrada a un puerto; una entrada sin puerto coincide con todos los puertos.
Escribe los literales IPv6 entre corchetes, con un puerto opcional: "[::1]" permite todos los puertos y "[::1]:443" un solo puerto. La forma entre corchetes requiere Claude Code v2.1.229 o posterior. Consulta Direcciones IPv6 en las listas de dominios.
`sandbox.network.deniedDomains`
Bloquea dominios para el tráfico saliente de los comandos en sandbox, con la misma sintaxis de comodines, puertos e IPv6 que allowedDomains. Un dominio denegado permanece bloqueado incluso cuando una entrada de allowedDomains también coincide con él.
Claude Code combina esta lista de todas las fuentes de configuración que carga la sesión incluso cuando allowManagedDomainsOnly está establecido, por lo que un desarrollador siempre puede hacer más estricta la lista de denegados. Para los literales IPv6, consulta Direcciones IPv6 en las listas de dominios.
Una entrada escrita con el punto final que marca un nombre de dominio completo, como example.com., bloquea las mismas conexiones que example.com.
`sandbox.network.strictAllowlist`
Deniega a los comandos en sandbox el acceso a hosts fuera de la lista de permitidos en lugar de solicitar aprobación. La lista de permitidos es allowedDomains más los dominios de las reglas allow de WebFetch(domain:...), o solo las entradas de la configuración administrada cuando allowManagedDomainsOnly está establecido. Bloqueos que se aplican sin un sandbox requerido por el administrador cubre las entradas de un repositorio. Requiere Claude Code v2.1.219 o posterior.
Scope: User or managed. Un repositorio no puede activarlo ni desactivarlo.
Type: Boolean
true: Claude Code deniega a los comandos en sandbox el acceso a hosts fuera de la lista de permitidos
false: a menos que otro archivo de configuración de confianza establezca true, Claude Code decide sobre un host fuera de la lista de permitidos según el modo de permisos en lugar de denegarlo directamente: en modo automático comprueba el host con los dominios permitidos por comando del comando, en modo dontAsk lo deniega, en modo bypassPermissions y en sesiones interactivas de terminal en modo plan donde el bypass está disponible lo permite, y en los demás casos te pregunta
Claude Code aplica esto solo a los comandos en sandbox; las herramientas que se ejecutan en el proceso, como WebFetch, siguen sus reglas de permisos. Cuando cualquiera de las fuentes respetadas lo establece en true, permanece activado. Consulta Aislamiento de red. Requiere Claude Code v2.1.219 o posterior.
`sandbox.network.allowManagedDomainsOnly`
Bloquea la lista de permitidos de red a lo que define la configuración administrada. Claude Code respeta entonces solo allowedDomains y las reglas allow de WebFetch(domain:...) de la configuración administrada, ignora los dominios de la configuración de usuario, de proyecto, local y de --settings, y bloquea automáticamente un dominio no permitido en lugar de solicitar aprobación.
true: Claude Code respeta solo allowedDomains y las reglas allow de WebFetch(domain:...) de la configuración administrada, y bloquea un dominio no permitido en lugar de solicitar aprobación
false: los dominios de otros archivos de configuración pueden combinarse en la lista de permitidos
Default: false
Esto limita la lista de permitidos a GitHub y npm e ignora cualquier dominio que agreguen los desarrolladores:
Apunta el sandbox a tu propio proxy HTTP en lugar del que ejecuta Claude Code. Las organizaciones hacen esto para inspeccionar el tráfico HTTPS, aplicar sus propias reglas de filtrado o registrar las solicitudes. Tu proxy se encarga del filtrado, y Claude Code deja de aplicar sus listas de dominios y sus solicitudes de red al tráfico enviado allí. Si no está establecido, Claude Code inicia su propio proxy para el tráfico HTTP.
Establece también socksProxyPort si tu proxy también debe gestionar el tráfico SOCKS; si solo estableces uno de los dos, Claude Code sigue ejecutando su propio proxy para el otro protocolo. Consulta Configuración de proxy personalizado.
`sandbox.network.socksProxyPort`
Apunta el sandbox a tu propio proxy SOCKS5 en lugar del que ejecuta Claude Code. Tu proxy se encarga del filtrado, y Claude Code deja de aplicar sus listas de dominios y sus solicitudes de red al tráfico enviado allí. Si no está establecido, Claude Code inicia su propio proxy para el tráfico SOCKS.
Haz que el proxy del sandbox termine TLS para que pueda leer el contenido de las solicitudes HTTPS. Esto es experimental, y la sustitución de credencialesmask lo requiere. Establece {} para generar una autoridad de certificación efímera para la sesión, o establece caCertPath y caKeyPath para usar la tuya.
Scope: User or managed. Un repositorio no puede activarlo ni proporcionar una autoridad de certificación.
Type: object con los strings opcionales caCertPath y caKeyPath, cada uno una ruta de archivo
Default: sin establecer, por lo que el proxy no termina ni inspecciona TLS
{"sandbox": {"network": {"tlsTerminate": {}}}}
Cuando más de una fuente respetada lo establece, Claude Code usa el valor de la fuente con mayor precedencia: la configuración administrada, luego el flag --settings y luego la configuración de usuario. Requiere Claude Code v2.1.199 o posterior.
Memoria y contexto
Controle qué carga Claude Code en el contexto, cómo se compacta y dónde mantiene la memoria y los planes. Consulte Gestionar contexto y Memoria.
`autoCompactEnabled`
Haga que Claude Code compacte la conversación automáticamente cuando el contexto se aproxime al límite. Aparece en /config como Auto-compact, y al activarlo/desactivarlo allí se escribe esta clave en la configuración del usuario.
true: Claude Code compacta la conversación automáticamente cuando el contexto se aproxima al límite
false: Claude Code no compacta automáticamente
Default: true
Per-session overrides: DISABLE_AUTO_COMPACT desactiva la auto-compactación para una sesión; cualquiera de los dos que la desactive, el otro no puede volver a activarla
{"autoCompactEnabled": false
}
El comando manual /compact sigue funcionando mientras la auto-compactación está desactivada.
`autoCompactWindow`
Establezca qué tan llena se llena la ventana de contexto antes de que Claude Code se compacte automáticamente.
Type: número de tokens, de 100000 a 1000000. Claude Code limita el valor a la ventana de contexto de su modelo; la descripción general de modelos enumera la ventana de cada modelo
Default: sin establecer, por lo que Claude Code elige una ventana optimizada para su modelo
Active o desactive memoria automática. Cuando es false, Claude no lee ni escribe en el directorio de memoria automática. También puede activarlo/desactivarlo con /memory durante una sesión, que escribe esta clave en la configuración del usuario.
true: lo mismo que sin establecer; la memoria automática permanece activada a menos que algo que supere esta clave la desactive para la sesión, como --bare, modo seguro o CLAUDE_CODE_DISABLE_AUTO_MEMORY
false: Claude no lee ni escribe en el directorio de memoria automática
Default: true
Per-session overrides: CLAUDE_CODE_DISABLE_AUTO_MEMORY tiene prioridad sobre esta clave para una sesión, en cualquier dirección
{"autoMemoryEnabled": false
}
`bashOutputMaxChars`
Establezca cuántos caracteres de la salida de un comando Bash o PowerShell exitoso recibe Claude en línea. Cuando la salida supera el límite, Claude Code la guarda en un archivo y Claude recibe una vista previa breve más la ruta del archivo. Aumente el límite cuando la salida del comando, como una compilación detallada o un registro completo de suite de pruebas, regularmente supera el predeterminado y desea que Claude lo lea sin abrir el archivo. Requiere Claude Code v2.1.261 o posterior.
Type: número de caracteres, un entero positivo. Claude Code limita el valor al rango 4000 a 128000
Default: sin establecer, por lo que Claude recibe hasta 30.000 caracteres en línea
{"bashOutputMaxChars": 100000
}
Cuando establece esta clave, Claude Code ignora la variable de entorno BASH_MAX_OUTPUT_LENGTH.
`claudeMd`
Inyecte instrucciones de estilo CLAUDE.md como memoria administrada por la organización sin implementar un archivo separado. Claude Code carga el texto como una entrada de memoria administrada antes de los archivos CLAUDE.md del usuario y del proyecto.
Omita archivos CLAUDE.md específicos cuando Claude Code carga memoria. En un monorepo grande, úselo para omitir archivos CLAUDE.md de otros equipos que no sean relevantes para su trabajo; Excluir archivos CLAUDE.md irrelevantes en la guía de codebases grandes le muestra cómo hacerlo. Los patrones coinciden con rutas de archivo absolutas.
Type: array de strings, cada uno un patrón glob o ruta absoluta
Default: sin establecer, por lo que Claude Code carga cada CLAUDE.md que encuentra
{"claudeMdExcludes": ["**/vendor/**/CLAUDE.md"]}
Las exclusiones se aplican solo a los archivos de memoria del usuario, proyecto y local; los archivos CLAUDE.md de política administrada no se pueden excluir.
`env`
Establezca variables de entorno para cada sesión y para los subprocesos que Claude Code inicia desde ella. La mayoría de variables en la referencia de variables de entorno pueden ir aquí, que es cómo se aplica una a cada sesión o se implementa en su equipo. La configuración del proyecto y local no puede establecer algunas de ellas.
Cómo interactúan los valores de `env` con su shell
Un valor aquí sobrescribe la misma variable exportada en su shell, y cuando más de un archivo de configuración establece una variable, se aplica la más alta precedencia. Variables que Claude Code ignora en env enumera las excepciones para la configuración del proyecto y local.
Cuando la aplicación Claude Desktop o un entorno autohospedado inicia la sesión, el entorno de lanzamiento que construye tiene prioridad en su lugar: Claude Code ignora un valor de env de cualquier archivo de configuración para una variable que el entorno de lanzamiento ya establece. El registro de depuración nombra cada variable ignorada.
Para cancelar una exportación de shell, establezca la variable en "". Claude Code trata un valor vacío como sin establecer para la selección de proveedor, y los subprocesos heredan el valor vacío.
NO_COLOR y FORCE_COLOR establecidos aquí llegan solo a los subprocesos. Para cambiar los colores de la interfaz propia de Claude Code, establézcalos en su shell antes de lanzar claude.
Los valores aquí son texto sin formato en el archivo de configuración y llegan a cada subproceso que Claude Code inicia. Para un token portador OTLP que rota, use otelHeadersHelper; para credenciales de API, use apiKeyHelper.
Cuándo Claude Code aplica valores de `env`
Desde la configuración del usuario, --settings y configuración administrada: al inicio, y nuevamente en la sesión en ejecución cuando un cambio guardado altera el env fusionado.
Desde la configuración del proyecto y local: después de confiar en el espacio de trabajo, o al inicio en modo -p, que nunca muestra el diálogo de confianza, y nuevamente cuando un cambio guardado altera el env fusionado.
Después de mover la sesión con /cd en v2.1.246 o posterior: los valores de env del proyecto y local del nuevo directorio, además de los del directorio anterior.
Variables que Claude Code ignora en `env`
La configuración del proyecto y local no puede establecer variables que un repositorio descargado no debería controlar; establécelas en tu shell, en tu configuración de usuario o en la configuración administrada en su lugar. Claude Code descarta cada una, salvo unos pocos valores que desactivan la telemetría, y registra una advertencia que puedes ver con claude --debug. Incluyen:
Variables que eligen dónde Claude Code almacena o escribe sus propios archivos: CLAUDE_CONFIG_DIR, CLAUDE_CODE_TMPDIR y las variables de directorio del sistema operativo como HOME, TMPDIR, TMP, TEMP y la familia XDG_*.
Variables de Windows que eligen los programas y la configuración de todo el equipo para los procesos que Claude Code inicia, como SystemRoot, ComSpec, ProgramData, LOCALAPPDATA, PATHEXT, PSModulePath y la familia ProgramFiles.
Variables que exportan contenido de la sesión: OTEL_LOG_RAW_API_BODIES y el par de rastreo beta detallado ENABLE_BETA_TRACING_DETAILED y BETA_TRACING_ENDPOINT.
Las variables del exportador de OpenTelemetry que activan la telemetría, eligen adónde va o eligen qué contenido captura:
CLAUDE_CODE_ENABLE_TELEMETRY, más el par de telemetría mejorada beta CLAUDE_CODE_ENHANCED_TELEMETRY_BETA y ENABLE_ENHANCED_TELEMETRY_BETA
Los selectores de exportador OTEL_LOGS_EXPORTER, OTEL_METRICS_EXPORTER y OTEL_TRACES_EXPORTER
Las variables de contenido OTEL_LOG_USER_PROMPTS, OTEL_LOG_ASSISTANT_RESPONSES, OTEL_LOG_TOOL_CONTENT y OTEL_LOG_TOOL_DETAILS
Variables OTEL_EXPORTER_OTLP_* cuyos nombres terminan en _ENDPOINT, _HEADERS, _PROTOCOL, _CERTIFICATE, _CLIENT_KEY o _INSECURE, en las formas genérica y por señal, como OTEL_EXPORTER_OTLP_ENDPOINT y OTEL_EXPORTER_OTLP_METRICS_HEADERS
OTEL_EXPORTER_PROMETHEUS_HOST y OTEL_EXPORTER_PROMETHEUS_PORT
Solo estos valores aún se aplican desde la configuración del proyecto y local, porque apagan algo: none para los tres selectores de exportador, y un valor apagado como 0 para OTEL_LOG_USER_PROMPTS, OTEL_LOG_TOOL_CONTENT y OTEL_LOG_TOOL_DETAILS. Tal valor anula la misma variable en su configuración del usuario, pero no una que el entorno desde el que inicia Claude Code, un archivo --settings o la configuración administrada establece.
Cuando un archivo de configuración del proyecto o local establece una variable en este grupo, una sesión interactiva local muestra un aviso al inicio. Ejecute /status o claude doctor para ver cuáles ignoró Claude Code y cuáles apagaron la telemetría; ambos enumeran nombres, nunca valores. Una ejecución no interactiva con -p o una sesión del Agent SDK no muestra aviso, así que verifique que su recopilador aún reciba datos después de actualizar. Si no lo hace, establezca las variables en su configuración del usuario, configuración administrada, el entorno del trabajo, o un archivo que pase con --settings.
Ignorar este grupo en la configuración del proyecto y local requiere Claude Code v2.1.282 o posterior.
Variables que cambian cómo Claude Code se inicia o se sincroniza, como CLAUDE_CODE_PROCESS_WRAPPER, CLAUDE_CODE_SYNC_SKILLS, CLAUDE_CODE_SYNC_PLUGINS, CLAUDE_CODE_PLUGIN_CACHE_DIR y CLAUDE_CODE_PLUGIN_SEED_DIR.
Antes de v2.1.251, la configuración del proyecto y local podía establecer las variables en esta lista que eligen dónde Claude Code escribe sus archivos o que exportan contenido de sesión, excepto HOME y XDG_CONFIG_HOME.
Variables de identidad que los entornos de alojamiento de Claude Code poseen, como CLAUDE_CODE_REMOTE y CLAUDE_CODE_ACCOUNT_UUID, se ignoran de cada archivo.
CLAUDE_CODE_MESSAGING_SOCKET y CLAUDE_CODE_MESSAGING_TOKEN, que Claude Code exporta a sí mismo, se ignoran de cada archivo. Ignorar la variable de socket requiere Claude Code v2.1.224 o posterior, e ignorar el token requiere v2.1.228 o posterior.
CLAUDE_CODE_PROJECT_DIR_NAME, que Claude Code lee solo del entorno de lanzamiento, se ignora de cada archivo; requiere v2.1.234 o posterior.
CLAUDE_CODE_RESTRICTED, que Claude Code lee solo del entorno de lanzamiento, se ignora de cada archivo.
CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY, que Claude Code lee solo del entorno de lanzamiento, se ignora de cada archivo. La variable requiere Claude Code v2.1.283 o posterior.
Haga que Claude Code tome una instantánea de los archivos antes de cada edición para que /rewind pueda restaurarlos. Aparece en /config como Rewind code (checkpoints), y al activarlo/desactivarlo allí se escribe esta clave en la configuración del usuario.
true: Claude Code toma una instantánea de los archivos antes de cada edición para que /rewind pueda restaurarlos
false: Claude Code no toma instantáneas de archivos, por lo que /rewind no puede restaurarlos
Default: true
Per-session overrides: CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING desactiva el checkpointing para una sesión; cualquiera de los dos que lo desactive, el otro no puede volver a activarlo
{"fileCheckpointingEnabled": false
}
En una ejecución -p o una sesión del Agent SDK, Claude Code ignora esta clave. El SDK activa el checkpointing con su opción enableFileCheckpointing, y una ejecución -p simple necesita CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING=true. Consulte File checkpointing in the Agent SDK.
`plansDirectory`
Elija dónde Claude Code almacena los archivos de plan que escribe en Plan Mode. Claude Code resuelve la ruta relativa a la raíz del proyecto y mantiene el predeterminado cuando la ruta se resuelve fuera de ella.
Type: string, una ruta relativa a la raíz del proyecto
Default: sin establecer, por lo que Claude Code usa ~/.claude/plans
{"plansDirectory": "./plans"}
`skillListingBudgetFraction`
Cada turno, Claude ve un listado de sus skills con sus descripciones, y Claude Code limita ese listado a una parte de la ventana de contexto. Cuando el listado supera el límite, Claude Code mantiene el nombre de cada skill pero descarta las descripciones de los skills menos utilizados, para que Claude aún pueda invocar esos skills pero sea menos probable que elija uno por su cuenta. Aumente esta clave para mantener más descripciones visibles al costo de más contexto por turno.
Type: número, una fracción mayor que 0 y como máximo 1
Default: 0.01, que reserva el 1% de la ventana de contexto
{"skillListingBudgetFraction": 0.02
}
Para ver cuánto contexto usa el listado y qué skills contribuyen más, ejecute /doctor.
`skillListingMaxDescChars`
Cada turno, Claude ve un listado de sus skills que muestra el texto description y when_to_use de cada skill. Esta clave limita cuántos caracteres de ese texto muestra Claude Code por skill; el texto más largo se corta en el límite.
Aumente para mantener descripciones largas intactas al costo de más contexto por turno; disminuya para ajustar más skills bajo skillListingBudgetFraction.
`taskOutputMaxChars`
Hasta v2.1.276, establecía esta clave al número de caracteres de la salida de una tarea en segundo plano que Claude recibía en línea cuando leía la tarea con la herramienta TaskOutput.
Interfaz y terminal
Cambia cómo se ve y se comporta Claude Code en tu terminal: tema, modo de editor, línea de estado, spinner, notificaciones dentro de la sesión y accesibilidad. Consulta Configuración de terminal.
`askUserQuestionTimeout`
Permite que un diálogo AskUserQuestion sin respuesta continúe automáticamente después de un período de tiempo inactivo, enviando cualquier opción que ya hayas seleccionado. Establécelo cuando te alejes y quieras que Claude continúe sin ti. Con el valor predeterminado, las preguntas esperan hasta que las respondas. Para saber cuándo el temporizador se pausa o nunca comienza, consulta Tiempo de espera de continuación automática de preguntas. Requiere Claude Code v2.1.200 o posterior.
Type: string, uno de "60s", "5m", "10m", o "never"
Default: "never"
Per-session overrides: CLAUDE_AFK_TIMEOUT_MS tiene precedencia sobre esta clave para una sesión
{"askUserQuestionTimeout": "5m"}
Aparece en /config como Question auto-continue timeout, que escribe esta clave en la configuración del usuario; Claude Code oculta la fila mientras la configuración administrada o la bandera --settings establezcan la clave. Requiere Claude Code v2.1.200 o posterior.
`autoContinueAtUsageLimit`
Después de que un límite de uso de claude.ai detenga tu sesión, espera en la sesión abierta y continúa la tarea automáticamente después del reinicio. Consulta Desactiva la continuación automática. Requiere Claude Code v2.1.234 o posterior.
Scope: User or managed. Se lee desde la configuración del usuario, --settings y la configuración administrada solamente. Cuando ninguno de esos establece la clave, un archivo de configuración de proyecto o local que la establece desactiva la función en lugar de ser ignorado.
Type: Boolean
true: después de que un límite de uso de claude.ai detenga tu sesión, Claude Code espera en la sesión abierta y continúa la tarea automáticamente después del reinicio
false: Claude Code no inicia la espera por su cuenta. Aún puedes iniciar una espera tú mismo desde el menú de opciones de límite de uso
Default: true
{"autoContinueAtUsageLimit": false
}
Aparece en /config como Continue automatically at usage limit, que escribe esta clave en la configuración del usuario; Claude Code oculta la fila mientras la configuración administrada o la bandera --settings establezcan la clave.
`autoScrollEnabled`
Sigue la nueva salida hasta el final de la conversación en renderizado de pantalla completa. Desactívalo para permanecer donde desplazaste mientras Claude sigue trabajando; los avisos de permiso aún se desplazan a la vista.
true: la conversación sigue la nueva salida hasta el final
false: permaneces donde desplazaste mientras Claude sigue trabajando; los avisos de permiso aún aparecen debajo de la transcripción
Default: true
{"autoScrollEnabled": false
}
Aparece en /config como Auto-scroll cuando el renderizado de pantalla completa está activado, que escribe esta clave en la configuración del usuario.
`axScreenReader`
Renderiza salida compatible con lectores de pantalla: texto plano sin bordes decorativos ni animaciones. El modo lector de pantalla utiliza el renderizador clásico, por lo que la configuración tui no tiene efecto mientras está activo; las sesiones en segundo plano adjuntas aún se renderizan en pantalla completa.
Elige si Claude Code registra los archivos que un comando Bash cambia en un repositorio Git. Cuando los registra, ves su diff en la terminal después del comando, y tus hooks PostToolUse Bash reciben la lista de archivos cambiados.
Un archivo listado no siempre es uno que el comando cambió. Un cambio que otro programa u otra llamada Bash hizo mientras el comando se ejecutaba también puede aparecer allí.
Establece la clave a true para registrarlos en cada modo de permiso. Requiere Claude Code v2.1.269 o posterior.
Scope: User or managed. Un true cuenta solo desde tu configuración de usuario, JSON pasado con --settings, o configuración administrada, por lo que un true en el .claude/settings.json o .claude/settings.local.json de un repositorio no puede activar el registro. Un false en cualquier archivo de repositorio aún lo desactiva a menos que un archivo de precedencia más alta establezca true.
Type: Boolean
Default: unset, por lo que Claude Code registra cambios en modo auto y modo bypassPermissions cuando dirige a Claude a editar archivos a través de Bash
Muestra los anuncios de tu organización a los usuarios al iniciar. Cuando enumeras más de uno, Claude Code elige uno al azar para cada sesión; en el primer lanzamiento de una persona muestra la primera entrada.
Default: unset, por lo que no se muestra ningún anuncio
{"companyAnnouncements": ["Welcome to Acme Corp! Review our code guidelines at docs.example.com"]}
`defaultShell`
Elige si Bash o PowerShell ejecutan los comandos de shell que escribes con el prefijo ! en el cuadro de entrada, los que Claude Code ejecuta directamente y agrega a la sesión.
"powershell" funciona solo mientras la herramienta PowerShell está activada. La herramienta está activada de forma predeterminada en Windows sin Git Bash, y en Windows con Git Bash para cuentas de claude.ai y Console. En sesiones de Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, y en macOS, Linux y WSL, establece CLAUDE_CODE_USE_POWERSHELL_TOOL=1 para activar la herramienta. Establece esa variable a 0 para desactivar la herramienta.
"bash": Claude Code ejecuta tus comandos ! en Bash
"powershell": Claude Code ejecuta tus comandos ! en PowerShell
Default: "bash", o "powershell" en Windows cuando Bash no está disponible
{"defaultShell": "powershell"}
Si el shell que nombras no está disponible, Claude Code usa el otro: "powershell" vuelve a Bash cuando la herramienta PowerShell está desactivada, y "bash" vuelve a PowerShell cuando Bash no está instalado.
`dialogExpiry`
Establece el plazo para diálogos que Claude Code reenvía a un cliente remoto, como un host de Remote Control o SDK, y para el diálogo de aprobación de un mensaje de sesión cruzada retenido. En Claude Code v2.1.236 o posterior, el mismo plazo limita el aviso de consentimiento de créditos de uso de Fable a mitad de sesión](/es/model-config#fable-and-usage-credits) en una sesión que puede no tener a nadie en la terminal. Cuando no llega respuesta antes del plazo, Claude Code cancela el diálogo y continúa con su valor predeterminado sin acción. Requiere Claude Code v2.1.224 o posterior.
Los avisos de permiso y las preguntas AskUserQuestion utilizan sus propios flujos y no se rigen por este plazo. Aparece en /config como Dialog expiry, que escribe esta clave en la configuración del usuario; la fila requiere Claude Code v2.1.232 o posterior, y Claude Code la oculta mientras la configuración administrada o la bandera --settings establezcan la clave.
`editorMode`
Elige el modo de atajos de teclado para el aviso de entrada.
"normal": atajos de teclado estándar en la entrada del aviso
"vim": edición de estilo vim con modos NORMAL, INSERT y VISUAL
Default: "normal"
{"editorMode": "vim"}
Aparece en /config como Editor mode, que escribe esta clave en la configuración del usuario.
`emojiCompletionEnabled`
Muestra sugerencias de emoji cuando escribes : más un código corto en la entrada del aviso, y reemplaza un código corto completado como :heart: con su emoji. Establécelo a false para desactivar ambos.
Ejecuta tu propio comando para proporcionar autocompletado de ruta de archivo @ en lugar de la sugerencia de archivo integrada. La sugerencia integrada utiliza recorrido rápido del sistema de archivos; un monorepo grande puede funcionar mejor con indexación específica del proyecto, como un índice de archivo precompilado.
Después de guardar esto, escribe @ seguido de parte de una ruta en el aviso: las sugerencias provienen de la salida de tu comando.
Entrada y salida del comando
Claude Code ejecuta el comando con las mismas variables de entorno que los hooks, incluyendo CLAUDE_PROJECT_DIR, y deja de esperar después de cinco segundos. El comando recibe JSON en stdin con un campo query que contiene lo que has escrito hasta ahora:
{"query": "src/comp"}
Imprime rutas de archivo separadas por saltos de línea en stdout. Claude Code muestra como máximo 15:
El siguiente script lee la consulta y la entrega a un índice de archivo de repositorio:
#!/bin/bash
query=$(cat | jq -r'.query')
# Replace your-repo-file-index with your own file search command
your-repo-file-index--query"$query"| head -20
`footerLinksRegexes`
Renderiza insignias clickeables adicionales en el pie de página debajo del cuadro de entrada cuando una regex coincide con la salida de turno: resultados de herramientas, incluyendo contenidos de archivo y páginas obtenidas, y respuestas propias de Claude. Úsalo para convertir IDs impresos por CLI de proyecto, como herramientas de revisión y rastreadores de problemas, en enlaces de sesión.
Type: array de objetos, cada uno con type establecido a "regex", una regex pattern, una plantilla url, y una label opcional; los marcadores de posición {name} en url y label se rellenan desde grupos de captura nombrados en pattern
Default: unset, por lo que no se renderizan insignias
Este ejemplo coincide con claves de problema como PROJ-1234 y construye cada enlace a partir de la clave capturada:
Con esto configurado, cuando PROJ-1234 aparece en un resultado de herramienta o en la respuesta de Claude, una insignia PROJ-1234 aparece en el pie de página vinculando a https://issues.example.com/browse/PROJ-1234.
Restricciones de insignia
El URL, la etiqueta y el recuento de insignias de cada entrada están limitados de la siguiente manera:
Restricción
Comportamiento
Origen de URL
Los valores capturados se codifican en URL y el URL construido debe compartir el origen literal de la plantilla. Una captura puede rellenar un segmento de ruta o valor de consulta pero no puede cambiar a dónde apunta el enlace
Longitud de URL
Los URLs construidos más largos que 2048 caracteres se descartan
Esquema de URL
Debe ser https, http, o un esquema de enlace profundo de editor o espacio de trabajo reconocido: vscode, vscode-insiders, cursor, windsurf, zed, jetbrains, idea, slack, linear, notion, figma
Etiqueta
Por defecto es el texto coincidente y se trunca a 28 columnas de visualización
Recuento de insignias
Como máximo 5 insignias se renderizan. La más antigua es desplazada por coincidencias más nuevas y /clear las elimina
Cuando un turno se completa, Claude Code coincide con la regex pattern de cada entrada contra la salida de turno en el hilo principal, por lo que una regex lenta bloquea la interfaz hasta que termina. Los cuantificadores anidados como (a+)+$ pueden tomar exponencialmente tiempo contra ciertas entradas y congelar la sesión, así que mantén cada pattern lineal y evita anidar + o *.
Las insignias de pie de página se renderizan junto a una línea de estado personalizada cuando una está configurada; ninguna reemplaza a la otra. Usa una línea de estado para una fila impulsada por script que calcula su propio contenido a partir de datos de sesión, e insignias de pie de página para convertir IDs de la conversación en enlaces sin un script.
`keybindingFlavor`
En v2.1.238 a v2.1.260, establecerlo a "readline" hizo que Ctrl+W eliminara hacia el espacio en blanco anterior en lugar de solo la palabra anterior.
Limita el ancho de la prosa en las respuestas de Claude para que las líneas permanezcan legibles en una terminal ancha. Los párrafos, encabezados, listas y citas se ajustan dentro de este número de columnas, mientras que las tablas y bloques de código mantienen el ancho completo de la terminal. Requiere Claude Code v2.1.282 o posterior.
true: Claude Code reduce o desactiva animaciones de interfaz como el spinner, shimmer y efectos de destello
false: lo mismo que unset; Claude Code muestra sus animaciones
Default: false
{"prefersReducedMotion": true
}
`promptSuggestionEnabled`
Muestra u oculta sugerencias de aviso, las predicciones atenuadas que aparecen en tu entrada de aviso. Establécelo a false, o desactiva Prompt suggestions en /config, para ocultarlas.
Las sugerencias de aviso necesitan una cuenta de claude.ai o Console con telemetría activada. En Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, o con telemetría desactivada, como por DISABLE_TELEMETRY, esta clave no tiene efecto y solo CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=1 las activa.
`respectGitignore`
Controla si el selector de archivo @ deja fuera archivos que coinciden con patrones .gitignore. Aparece en /config como Respect .gitignore in file picker.
Scope: Any file. Cuando ningún archivo de configuración lo establece, Claude Code vuelve a respectGitignore en ~/.claude.json, que el toggle /config escribe.
Type: Boolean
true: el selector de archivo @ deja fuera archivos que coinciden con patrones .gitignore
false: el selector de archivo @ incluye archivos que coinciden con patrones .gitignore
Default: true
{"respectGitignore": false
}
`respondToBashCommands`
Elige si Claude responde después de que ejecutes un comando de shell con el prefijo ! en el cuadro de entrada. De forma predeterminada, Claude Code agrega la salida del comando a la conversación y Claude responde a ella. Establece esta clave a false para agregar la salida al contexto sin una respuesta, para que puedas ejecutar varios comandos y preguntar sobre ellos juntos.
Cuando Claude termina un plan en modo plan, muestra un menú de aprobación. La planificación puede usar mucho contexto, por lo que esta clave agrega una primera opción a ese menú, Yes, clear context and …, que aprueba el plan, borra el contexto de conversación e inicia la implementación solo desde el plan. El resto de la etiqueta nombra el modo de permiso en el que continúa la sesión, y muestra cuánto de tu contexto usó la planificación.
true: el menú de aprobación del plan obtiene una primera opción, Yes, clear context and …, que aprueba el plan y borra el contexto de conversación
false: el menú de aprobación del plan no muestra opción de borrar contexto
Default: false
{"showClearContextOnPlanAccept": true
}
`showTurnDuration`
Muestra u oculta el mensaje de duración de turno después de cada respuesta, como "Cooked for 1m 6s · done 6:05 PM". El reloj después de "done" muestra cuándo terminó el turno; timeFormat y timeZone controlan su formato y zona. Aparece en /config como Show turn duration.
Scope: Any file. Un valor en ~/.claude.json de una versión anterior se aplica cuando ningún archivo de configuración lo establece.
Type: Boolean
true: ves el mensaje de duración de turno después de cada respuesta
false: Claude Code oculta el mensaje de duración de turno
Default: true
{"showTurnDuration": false
}
`spellcheck`
Subraya palabras mal escritas en la entrada del aviso mientras escribes, usando un corrector ortográfico que instales. Claude Code verifica solo el texto en el cuadro de entrada. Verifica la ortografía mientras escribes cubre la instalación de aspell, hunspell o ispell y qué cubre el verificador. Requiere Claude Code v2.1.235 o posterior.
Scope: User or managed. El bloque del nivel más alto que lo establece se aplica como un todo.
Type: objeto con enabled (Boolean), checker ("aspell", "hunspell", "ispell", o "auto"), language (string, pasado al verificador como su nombre de diccionario), y color (string, un nombre de color de terminal, #rrggbb, rgb(r,g,b), ansi256(n), o ansi:<name>)
Default: unset, por lo que la verificación ortográfica está desactivada; checker por defecto es "auto", el primero de los tres encontrados en PATH; language por defecto es el propio diccionario del verificador; color por defecto es el color de error del tema
Mientras Claude trabaja, la línea del spinner rota a través de consejos cortos sobre características de Claude Code, como "Use Plan Mode to prepare for a complex request before making changes. Press Shift+Tab twice to enable." Establece esta clave a false para ocultarlos. Aparece en /config como Show tips.
true: ves consejos en el spinner mientras Claude está trabajando
false: Claude Code oculta consejos del spinner
Default: true
{"spinnerTipsEnabled": false
}
`spinnerTipsOverride`
Agrega tus propios consejos a los consejos del spinner que Claude Code muestra mientras Claude trabaja, o reemplaza los consejos integrados con los tuyos. Claude Code pone tus consejos en la misma rotación que los integrados.
Si estableces spinnerTipsEnabled a false, Claude Code oculta todos los consejos, incluyendo los tuyos.
Scope: Any file. Claude Code honra objetos de consejo, tipsFile, label, y excludeDefault desde la configuración del usuario, la bandera --settings, y la configuración administrada; desde la configuración de proyecto y local lee solo consejos de string plano.
Type: objeto con campos tips, tipsFile, label, y excludeDefault, cada uno opcional
Default: unset, por lo que Claude Code muestra solo los consejos integrados
Objetos de consejo, tipsFile, label, y la regla de la línea Scope que la configuración de proyecto y local contribuyen solo strings planos requieren Claude Code v2.1.247 o posterior.
Cada entrada tips es un string plano u objeto con estos campos:
Campo
Requerido
Descripción
id
Sí
Hasta 64 letras, dígitos, ., _, o -. Claude Code clave el historial de visualización del consejo en él, por lo que el enfriamiento del consejo sobrevive a la reordenación de la lista. De dos entradas con el mismo id, Claude Code usa la primera
text
Sí
El consejo, una línea de hasta 500 caracteres. Claude Code elimina escapes ANSI y caracteres de control y colapsa espacios en blanco
cooldownSessions
No
Sesiones que Claude Code espera antes de mostrar el consejo nuevamente, 0 a 1000, por defecto 0
priority
No
Orden entre consejos que han estado sin mostrarse igualmente tiempo, más alto primero, -10 a 10, por defecto 0
Claude Code lee un string plano como un consejo con esos valores predeterminados y un id basado en posición, por lo que su historial de visualización se reinicia cuando reordenas la lista. Dale a un consejo un id para mantener su historial a través de ediciones.
Claude Code lee como máximo 200 consejos en tips y tipsFile, y descarta una entrada inválida con una advertencia de depuración en lugar de rechazar el archivo de configuración.
Usa los campos restantes para nombrar un archivo de consejos, establecer el prefijo y ocultar los consejos integrados:
tipsFile: una ruta absoluta o ~/ a un archivo JSON local que contiene un array de las mismas entradas, u objeto con un array tips, hasta 256 KB. Claude Code lee el archivo una vez por proceso, por lo que carga tus ediciones en el próximo inicio. No puedes establecerlo a través de configuración administrada por servidor; despliega tips en línea allí, o despliega la ruta en un managed-settings.json en disco.
label: el prefijo que Claude Code muestra antes de consejos desde la configuración del usuario, --settings, y la configuración administrada, hasta 40 caracteres. El valor predeterminado es Tip, el mismo prefijo que los consejos integrados, y los consejos de la configuración de proyecto y local siempre lo usan.
excludeDefault: establécelo a true para ocultar los consejos integrados y mostrar solo los tuyos. Cuando Claude Code no puede cargar ninguno de tus consejos, por ejemplo porque tipsFile no existe o cada entrada es inválida, mantiene la rotación integrada en lugar de un spinner vacío.
Cuando más de un archivo de configuración establece la clave, Claude Code muestra consejos de todos ellos y toma tipsFile, label, y excludeDefault de cualquiera de la configuración administrada, la bandera --settings, y la configuración del usuario que sea el más alto precedente que establezca cada uno.
Este ejemplo, en tu configuración del usuario, agrega un consejo de string plano y un consejo de objeto a la rotación bajo el prefijo Acme tip:
{"spinnerTipsOverride": {"label": "Acme tip",
"tips": ["Run /review before opening a PR",
{"id": "gateway-errors",
"text": "Seeing 5xx errors? Check the gateway status page first",
"cooldownSessions": 5,
"priority": 2
}]}}
Cada campo en el ejemplo cambia una cosa sobre cómo Claude Code muestra los consejos:
label: Claude Code muestra ambos consejos como Acme tip: ... en lugar de Tip: ....
El string plano: Claude Code le da los valores predeterminados, por lo que puede aparecer nuevamente en la sesión siguiente.
id: Claude Code clave el historial de visualización del segundo consejo en gateway-errors, por lo que su enfriamiento aún se aplica después de agregar o reordenar consejos.
cooldownSessions: después de que Claude Code muestre el consejo gateway-errors, no muestra ese consejo nuevamente hasta cinco sesiones después.
priority: cuando el consejo gateway-errors y otro consejo han estado sin mostrarse durante el mismo número de sesiones, por ejemplo cuando ninguno ha sido mostrado aún, Claude Code muestra gateway-errors primero. El string plano tiene la prioridad predeterminada, 0.
Mientras Claude trabaja, Claude Code muestra tus consejos en el spinner con tu prefijo, como Acme tip: Run /review before opening a PR.
`spinnerVerbs`
Mientras un turno está en progreso, el spinner muestra un verbo rotativo como "Accomplishing", "Architecting", o "Baking". Usa esta clave para agregar tus propios verbos a esa rotación o reemplazar la lista integrada con la tuya.
En modo "replace" con un array verbs vacío, Claude Code mantiene los verbos integrados.
`statusLine`
Ejecuta tu propio comando para renderizar una línea de estado debajo del aviso con contexto como el modelo, costo o rama de git. Los campos opcionales ajustan espaciado, agregan re-ejecuciones periódicas y ocultan el indicador de modo vim integrado cuando tu script renderiza vim.mode a sí mismo.
Scope: Any file. Cuando allowManagedHooksOnly está activado, o disableAllHooks se establece fuera de la configuración administrada, solo se ejecuta el valor de configuración administrada.
Type: objeto con type establecido a "command" y una string command, más padding opcional como número de caracteres, refreshInterval como número de segundos, mínimo 1, e hideVimModeIndicator como Boolean
Default: unset, por lo que no hay línea de estado
Este ejemplo imprime el nombre del modelo y el uso de contexto, y agrega dos caracteres de espaciado horizontal:
Cuando Claude ejecuta subagentes, Claude Code los enumera en una pantalla de tarea debajo del aviso, una fila por subagente mostrando name · description · token count. Esta clave te permite ejecutar tu propio comando para reescribir esas filas, por ejemplo para mostrar el uso de contexto de cada subagente como porcentaje. En cada actualización, Claude Code envía las filas visibles como un objeto JSON en stdin, con un array tasks llevando id, name, status, model, tokenCount de cada subagente, y más, y reemplaza la fila para cada id que escribas de vuelta como una línea {"id", "content"}. Las filas que no escribas de vuelta mantienen el renderizado predeterminado.
Scope: Any file. Cuando allowManagedHooksOnly está activado, o disableAllHooks se establece fuera de la configuración administrada, solo se ejecuta el valor de configuración administrada.
Type: objeto con type establecido a "command" y una string command
Default: unset, por lo que Claude Code renderiza las filas predeterminadas
Claude Code colorea código por lenguaje en los diffs, bloques de código y vistas previas de archivo que muestra en la terminal, con su resaltador integrado; no hay plugin o servidor de lenguaje involucrado. Establece esta clave a true para mostrarlos como texto plano en su lugar, por ejemplo si los colores chocan con tu tema de terminal o ralentizan un lector de pantalla.
true: Claude Code desactiva el resaltado de sintaxis en diffs, bloques de código y vistas previas de archivo
false: Claude Code resalta la sintaxis
Default: false
{"syntaxHighlightingDisabled": true
}
`terminalProgressBarEnabled`
Algunos terminales pueden mostrar un indicador de progreso en la pestaña o en la barra de tareas del programa que se ejecuta en ellos. Mientras Claude está trabajando, Claude Code reporta un estado en progreso al terminal, para que puedas ver desde otra pestaña o ventana si la sesión aún está ocupada. El indicador permanece visible después de que el turno termina mientras subagentes en segundo plano o flujos de trabajo dinámicos aún se están ejecutando, y se borra una vez que la sesión está inactiva.
Claude Code lo reporta solo en terminales que soportan el indicador: ConEmu, Ghostty 1.2.0 o posterior, e iTerm2 3.6.6 o posterior. Establece esta clave a false para detener a Claude Code de reportarlo. Aparece en /config como Terminal progress bar.
Scope: Any file. Un valor en ~/.claude.json de una versión anterior se aplica cuando ningún archivo de configuración lo establece.
Type: Boolean
true: ves la barra de progreso del terminal en terminales que la soportan
false: Claude Code oculta la barra de progreso del terminal
Default: true
{"terminalProgressBarEnabled": false
}
`terminalTitleFromRename`
Claude Code establece el título de la pestaña de tu terminal. De forma predeterminada usa un título que genera a partir de la conversación, y una vez que le das a la sesión un nombre con /rename o --name, la pestaña muestra ese nombre en su lugar. Establece esta clave a false para mantener el título generado en la pestaña incluso después de nombrar la sesión. El nombre en sí aún se aplica, por lo que /resume <name> y el selector de sesión lo encuentran.
Elige cómo Claude Code escribe los tiempos que muestra en la interfaz, como el done 6:05 PM al final de cada mensaje de duración de turno y las marcas de tiempo en el visor de transcripción. Para elegir un preajuste, ejecuta /config y establece Time format. Requiere Claude Code v2.1.257 o posterior.
"auto": lo mismo que unset; cada tiempo mantiene su formato integrado, que sigue tu configuración regional en el mensaje de duración de turno
"12-hour": un reloj de 12 horas
"24-hour": un reloj de 24 horas
"24-hour-utc": un reloj de 24 horas en UTC con Z después de los minutos, como 18:05Z; Claude Code ignora timeZone para este preajuste
Un patrón strftime como "%H:%M": Claude Code escribe cada tiempo con el patrón. Cualquier valor que contenga un % es un patrón, y cualquier otro valor fuera de los preajustes cuenta como "auto"
Default: "auto"
{"timeFormat": "24-hour"}
/config ofrece solo los preajustes, por lo que para usar un patrón strftime, agrega la clave a un archivo de configuración. Este ejemplo muestra cada tiempo como un reloj de 24 horas de dos dígitos:
{"timeFormat": "%H:%M"}
El mensaje de duración de turno y el visor de transcripción entonces muestran tiempos como 18:05. En el visor de transcripción, el patrón es la marca de tiempo completa, así que agrega directivas de fecha cuando quieras la fecha allí. Este ejemplo pone la fecha frente al reloj:
{"timeFormat": "%Y-%m-%d %H:%M"}
Las mismas superficies entonces muestran tiempos como 2026-09-01 18:05.
`timeZone`
Muestra los tiempos en la interfaz en una zona horaria diferente a la de tu sistema. Establécelo a un nombre de zona horaria IANA, como "UTC" o "Europe/Dublin". Los tiempos que timeFormat controla entonces se muestran en esta zona. Si timeFormat es "24-hour-utc", los tiempos permanecen en UTC y Claude Code ignora esta clave. /config no tiene fila para esta clave, así que establécela en un archivo de configuración. Requiere Claude Code v2.1.257 o posterior.
Type: string, un nombre de zona horaria IANA. Cuando Claude Code no reconoce el nombre, usa tu zona horaria del sistema
Default: unset, por lo que los tiempos se muestran en tu zona horaria del sistema
{"timeZone": "Europe/Dublin"}
`tui`
Elige el renderizador de interfaz de usuario de terminal. Usa "fullscreen" para el renderizador alt-screen sin parpadeos con scrollback virtualizado, o "default" para el renderizador clásico de pantalla principal. Ejecutar /tui fullscreen o /tui default escribe esta clave para ti.
Per-session overrides: CLAUDE_CODE_NO_FLICKER y CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN tienen precedencia sobre esta clave para una sesión: CLAUDE_CODE_NO_FLICKER=1 activa pantalla completa, y CLAUDE_CODE_NO_FLICKER=0 o CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 la desactiva; cuando ambos se establecen, Claude Code la desactiva
{"tui": "fullscreen"}
Bajo tmux -CC o sobre SSH a Windows, Claude Code mantiene el renderizador clásico a menos que establezas CLAUDE_CODE_NO_FLICKER=1. Las sesiones en segundo plano abiertas desde vista de agente siempre usan el renderizador de pantalla completa independientemente de esta configuración.
`verbose`
De forma predeterminada, la transcripción colapsa cada llamada de herramienta a un resumen corto, como el comando que Claude ejecutó y un recuento de líneas de su salida, y presionas Ctrl+O para cambiar toda la transcripción a la vista expandida cuando quieres los detalles. Establece esta clave a true para mostrar la entrada y salida completa de cada llamada de herramienta en línea mientras sucede, lo cual es útil cuando estás depurando un hook, un servidor MCP o un comando de shell largo. Aparece en /config como Verbose output.
Scope: Any file. Un valor en ~/.claude.json de una versión anterior se aplica cuando ningún archivo de configuración lo establece.
Type: Boolean
true: ves salida de herramienta completa
false: ves resúmenes truncados de salida de herramienta
Default: false
Per-session overrides: --verbose tiene precedencia sobre esta clave para una sesión
{"verbose": true
}
Un valor viewMode o una selección pegajosa /focus anula esta clave cada sesión.
`viewMode`
Establece la vista de transcripción en la que Claude Code comienza: "default", "verbose", o "focus". Cuando se establece, anula tanto la selección pegajosa /focus como la configuración verbose.
"default": la transcripción normal con salida de herramienta truncada
"verbose": la transcripción con salida de herramienta completa
"focus": solo tu último aviso, un resumen de una línea de llamadas de herramientas con estadísticas de diff de edición, y la respuesta final. La vista de enfoque necesita el renderizador de pantalla completa
Default: unset, por lo que la configuración verbose y tu última opción /focus se aplican
Per-session overrides: --verbose tiene precedencia sobre esta clave para una sesión
{"viewMode": "focus"}
`vimInsertModeRemaps`
Mapea secuencias de modo INSERT de dos teclas a Escape en modo editor vim. Cada clave es exactamente dos caracteres imprimibles escritos en secuencia, y "<Esc>" es el único objetivo soportado; Claude Code ignora otras entradas. Requiere Claude Code v2.1.208 o posterior.
Scope: User or managed. Un repositorio no puede remapear tus pulsaciones de tecla.
Type: objeto mapeando una secuencia de dos caracteres a "<Esc>"
true: el dictado de voz está activado cuando estás conectado con una cuenta de claude.ai y la política de tu organización permite voz, a menos que voice.enabled se establezca
false: el dictado de voz está desactivado, a menos que voice.enabled se establezca
Default: unset
{"voiceEnabled": true
}
`wheelScrollAccelerationEnabled`
Acelera la velocidad de desplazamiento de rueda del ratón durante desplazamientos rápidos en renderizado de pantalla completa. Establécelo a false para una velocidad de desplazamiento constante por muesca de rueda.
true: Claude Code acelera la velocidad de desplazamiento de rueda del ratón durante desplazamientos rápidos
false: Claude Code se desplaza a una velocidad constante por muesca de rueda
Default: true
{"wheelScrollAccelerationEnabled": false
}
Git y atribución
Controle la atribución que Claude Code añade a los commits y solicitudes de extracción y cómo funciona con git.
`attribution`
Personalice la atribución que Claude Code añade a los commits de git y solicitudes de extracción. Los commits obtienen un tráiler de git como Co-Authored-By de forma predeterminada; las descripciones de solicitudes de extracción obtienen texto sin formato. Establezca cada parte por separado con las subclaves que se indican a continuación.
Type: objeto con cadenas commit y pr y un Boolean sessionUrl, o false para ocultar toda la atribución. El valor false requiere Claude Code v2.1.281 o posterior; las versiones anteriores lo rechazan y omiten todo el archivo de configuración del usuario, proyecto o local que lo contiene
Default: sin establecer, por lo que Claude Code utiliza la atribución estándar que se muestra en cada subclave
Para ocultar toda la atribución, establezca attribution en false. En un archivo de configuración que las versiones anteriores también leen, establezca commit y pr en cadenas vacías y sessionUrl en false en su lugar.
Este ejemplo reemplaza la atribución del commit, elimina la atribución de la solicitud de extracción y descarta el enlace de sesión:
{"attribution": {"commit": "Generated with AI\n\nCo-Authored-By: AI <ai@example.com>",
"pr": "",
"sessionUrl": false
}}
Una vez que establezca commit o pr, Claude Code ignora la configuración deprecada includeCoAuthoredBy y utiliza su texto predeterminado para cualquiera de los dos que haya dejado sin establecer.
Claude Code le indica a Claude que sus propias instrucciones sobre atribución, como una regla de CLAUDE.md o memory, tienen prioridad sobre estas líneas de commit y PR, a menos que la línea esté establecida en managed settings.
`includeCoAuthoredBy`
Utilice attribution en su lugar, que reemplaza esta clave y le permite cambiar u ocultar el tráiler del commit, el texto de la solicitud de extracción y el enlace de sesión por separado. Claude Code aún respeta includeCoAuthoredBy: false de archivos de configuración anteriores a attribution, pero lo ignora una vez que establezca attribution.commit o attribution.pr.
true: lo mismo que sin establecer; Claude Code añade el tráiler del commit y el texto de atribución de la solicitud de extracción
false: Claude Code omite tanto el tráiler del commit como el texto de atribución de la solicitud de extracción, a menos que attribution establezca commit o pr, en cuyo caso se aplican las reglas de attribution
Default: true
{"includeCoAuthoredBy": false
}
Para ocultar toda la atribución, consulte attribution.
`includeGitInstructions`
Claude Code proporciona a Claude dos elementos relacionados con git: sus instrucciones integradas sobre cómo escribir commits y solicitudes de extracción, en la descripción de la herramienta Bash, y una instantánea del estado de git de su repositorio. La instantánea contiene la rama actual, la rama principal, la salida de git status y los commits recientes. Claude Code la lee cuando comienza una conversación.
Establezca esta clave en false para dejar ambas fuera, por ejemplo cuando utiliza sus propias skills de flujo de trabajo de git.
true: Claude Code incluye sus instrucciones integradas de flujo de trabajo de commit y solicitud de extracción y la instantánea del estado de git. Las sesiones en la nube nunca incluyen la instantánea
Apunte los enlaces de PR que Claude Code renderiza, en el distintivo de pie de página y en los resúmenes de resultados de herramientas, a una herramienta de revisión de código interna en lugar de github.com. Claude Code sustituye {host}, {owner}, {repo}, {number} y {url} de la URL de PR. Los enlaces de solicitud de fusión de GitLab en ambas superficies mantienen su URL de GitLab.
Claude Code aplica la plantilla solo a los enlaces que renderiza a sí mismo; un número de PR que Claude escribe en un mensaje, como #123, permanece como Claude lo escribió. Una URL que no tiene la forma /pull/<number> se deja sin cambios.
`attribution.commit`
Establezca el texto de atribución que Claude Code añade a los commits de git, incluidos los tráilers. Establézcalo en una cadena vacía para ocultar la atribución del commit.
Default: sin establecer, por lo que Claude Code añade Co-Authored-By: <name> <noreply@anthropic.com>. El nombre es el modelo en uso cuando se realiza el commit, como Claude Sonnet 5. Cuando un subagente realiza el commit, el tráiler nombra el modelo del subagente.
Cuando Claude Code reconoce el modelo como un modelo Claude pero no puede confirmar su versión exacta, escribe Claude solo.
Cuando no puede hacer coincidir el ID del modelo con ningún modelo Claude, como un modelo de terceros servido a través de un ANTHROPIC_BASE_URL personalizado, escribe Claude Code.
Este ejemplo reemplaza el tráiler predeterminado con una línea personalizada y un tráiler Co-Authored-By personalizado:
{"attribution": {"commit": "Generated with AI\n\nCo-Authored-By: AI <ai@example.com>"}}
`attribution.pr`
Establezca el texto de atribución que Claude Code añade a las descripciones de solicitudes de extracción. Establézcalo en una cadena vacía para ocultar la atribución de la solicitud de extracción.
Default: sin establecer, por lo que Claude Code añade 🤖 Generated with [Claude Code](https://claude.com/claude-code)
{"attribution": {"pr": ""}}
`attribution.sessionUrl`
Elija si Claude Code añade el enlace de sesión de claude.ai cuando realiza un commit o abre una solicitud de extracción desde una sesión en la nube o Remote Control. Claude Code añade el enlace como un tráiler Claude-Session en los commits y como un enlace en las descripciones de solicitudes de extracción. Establézcalo en false para omitir el enlace.
true: Claude Code añade el enlace de sesión de claude.ai cuando realiza un commit o abre una solicitud de extracción desde una sesión en la nube o Remote Control
false: Claude Code omite el enlace
Default: true
{"attribution": {"sessionUrl": false
}}
Hooks y automatización
Registra hooks, restringe qué hooks se ejecutan y controla flujos de trabajo. Para eventos y cargas útiles de hooks, consulta la referencia de hooks.
`allowedHttpHookUrls`
Limita qué URLs pueden dirigirse a los hooks HTTP. Cuando defines esta clave, Claude Code ejecuta un hook HTTP solo si su URL coincide con uno de los patrones y bloquea el resto sin ejecutarlos; una matriz vacía bloquea cada hook HTTP.
Alcance: Any file. Las matrices se fusionan en los archivos de configuración.
Tipo: matriz de patrones de URL, con * como comodín
Predeterminado: no establecido, por lo que se permite cualquier URL
Este ejemplo permite cualquier URL bajo https://hooks.example.com/ y cualquier URL http://localhost:
La coincidencia del nombre de host no distingue mayúsculas de minúsculas y trata hooks.example.com., con el punto final que marca un nombre de dominio completamente calificado, igual que hooks.example.com, que es cómo DNS los trata. La lista de permitidos se aplica a hooks de todas las fuentes, incluida la configuración administrada.
`allowManagedHooksOnly`
Restringe la ejecución de hooks solo a los hooks que implementa tu organización.
true: solo se ejecutan hooks administrados, más hooks del Agent SDK y hooks de plugins que tu configuración administrada fuerza a habilitar. Consulta Qué se ejecuta bajo allowManagedHooksOnly
false: se ejecutan hooks de todos los alcances de configuración y plugins
Predeterminado: no establecido, por lo que se ejecutan hooks de todos los alcances de configuración y plugins
{"allowManagedHooksOnly": true
}
Qué se ejecuta bajo `allowManagedHooksOnly`
Cuando lo estableces en true, Claude Code cambia qué hooks y comandos similares a hooks se cargan:
Se ejecutan hooks administrados y SDK: hooks de configuración administrada y hooks que el Agent SDK registra en proceso
Se ejecutan hooks de plugins forzados a habilitarse: hooks de plugins que tu configuración administrada fuerza a habilitar a través de enabledPlugins. Claude Code coincide con el ID completo plugin@marketplace, por lo que un plugin con el mismo nombre de un marketplace diferente permanece bloqueado. Esto te permite distribuir hooks verificados a través de un marketplace de organización mientras bloqueas todo lo demás. Un mod en tal plugin se carga solo cuando cuenta como el de tu organización
Todo lo demás está bloqueado: hooks de usuario, proyecto y locales, hooks y mods de otros plugins instalados, y hooks declarados en frontmatter de agente. Los mods integrados en Claude Code continúan ejecutándose. Para bloquear solo los mods de los usuarios, establece allowManagedModsOnly en su lugar.
Los plugins con origen de comando están deshabilitados: Claude Code también deshabilita plugins con un origen command, incluidos plugins forzados a habilitarse en enabledPlugins administrado, a menos que establezcas disableCommandPluginSources explícitamente en false
Los comandos headersHelper del marketplace están bloqueados: Claude Code también bloquea los comandos headersHelper del marketplace a menos que disableCommandPluginSources esté explícitamente establecido en false, excepto para un marketplace que la configuración administrada declara. Requiere Claude Code v2.1.238 o posterior
El comando /goal no puede ejecutarse mientras esta clave está establecida, porque depende de hooks.
`disableAllHooks`
Desactiva hooks, cualquier línea de estado personalizada y cualquier comando personalizado de sugerencia de archivo. Úsalo para desactivar todos estos temporalmente sin eliminarlos de tu configuración.
Alcance: Any file. Solo la configuración administrada puede deshabilitar hooks administrados.
Tipo: Booleano
true: Claude Code desactiva hooks, cualquier línea de estado personalizada y cualquier comando personalizado de sugerencia de archivo
false: se ejecutan hooks, la línea de estado y el comando de sugerencia de archivo
Predeterminado: no establecido, por lo que se ejecutan hooks
{"disableAllHooks": true
}
El alcance depende de qué archivo lleve la clave:
En configuración administrada: Claude Code deshabilita cada hook configurado, incluidos los administrados, y continúa ejecutando los hooks que el Agent SDK registra en proceso
En cualquier otro archivo de configuración: Claude Code deshabilita hooks de usuario, proyecto, locales y de plugins; los hooks administrados, hooks del Agent SDK y hooks de plugins forzados a habilitarse en enabledPlugins administrado continúan ejecutándose
La clave también detiene los mods, que son plugins cuyo código registra hooks:
En configuración administrada: se detienen los mods de cada plugin instalado, incluidos los de tu organización
En cualquier otro archivo de configuración: se detienen los mods que instalaste, y los mods de tu organización continúan ejecutándose
Los mods integrados en Claude Code continúan ejecutándose en ambos casos. Cada uno tiene su propio interruptor.
Mantener los hooks del Agent SDK ejecutándose cuando la configuración administrada establece esta clave requiere Claude Code v2.1.242 o posterior.
El comando /goal no puede ejecutarse mientras los hooks están deshabilitados, y el menú /hooks muestra un aviso en lugar de tus hooks.
Puertas de línea de estado y sugerencia de archivo
Claude Code toma dos decisiones para statusLine, fileSuggestion y subagentStatusLine, en este orden:
Reducido a configuración administrada: cuando allowManagedHooksOnly está establecido, cuando disableAllHooks es true fuera de la configuración administrada después de que se aplica la precedencia de configuración, o cuando inicias Claude Code con --safe-mode
Bajo reducción, Claude Code ejecuta un valor administrado si uno está implementado. De lo contrario, omite tu valor sin advertencia: la línea de estado está deshabilitada y el autocompletado @ vuelve a la sugerencia de archivo integrada.
`disableWorkflows`
Desactiva flujos de trabajo dinámicos y los comandos de flujo de trabajo incluidos para todos los que alcanza tu configuración, como una organización a través de configuración administrada. Para activar o desactivar flujos de trabajo solo para ti, usa enableWorkflows en su lugar, que el interruptor Dynamic workflows en /config escribe en tu configuración de usuario.
true: Claude Code desactiva flujos de trabajo dinámicos y los comandos de flujo de trabajo incluidos para todos los que alcanza tu configuración
false: lo mismo que no establecido; si los flujos de trabajo están activados entonces sigue enableWorkflows y el predeterminado de tu plan
Predeterminado: false
Sobrescrituras por sesión: CLAUDE_CODE_DISABLE_WORKFLOWS desactiva flujos de trabajo para una sesión; cualquiera de los dos que los desactive, el otro no puede volver a activarlos
{"disableWorkflows": true
}
`enableWorkflows`
Activa o desactiva flujos de trabajo dinámicos para ti cuando el predeterminado de tu plan no sea lo que deseas. Aparece en /config como Dynamic workflows, que escribe esta clave en tu configuración de usuario y la elimina nuevamente cuando alternas al predeterminado de tu plan. Para desactivar flujos de trabajo para todos desde la configuración administrada, usa disableWorkflows en su lugar.
true: Claude Code activa flujos de trabajo dinámicos para ti
false: Claude Code desactiva flujos de trabajo dinámicos para ti
Predeterminado: no establecido, por lo que los flujos de trabajo están activados a menos que estés en el plan Pro, donde están desactivados
Sobrescrituras por sesión: CLAUDE_CODE_DISABLE_WORKFLOWS desactiva flujos de trabajo para una sesión, y true aquí no puede volver a activarlos mientras esté establecido
{"enableWorkflows": true
}
disableWorkflows y la política de flujos de trabajo de tu organización también tienen precedencia: enableWorkflows: true no puede volver a activar flujos de trabajo mientras alguna fuente los desactiva. Claude Code oculta la fila /config mientras una fuente que no sea tu configuración de usuario establece enableWorkflows, o establece disableWorkflows en true.
`hooks`
Ejecuta tus propios comandos, prompts, agentes, solicitudes HTTP o herramientas MCP como hooks en puntos del ciclo de vida de Claude Code, como antes de una llamada a herramienta o cuando comienza una sesión; la referencia de hooks enumera cada evento, su payload y sus códigos de salida. Cada evento se asigna a una lista de grupos de matchers, y cada grupo enumera los controladores a ejecutar cuando se aplica el matcher.
Alcance: Any file. Los hooks se combinan entre archivos en lugar de reemplazarse entre sí, y los hooks de configuración administrada no se pueden eliminar desde otros archivos.
Tipo: objeto codificado por evento de hook; cada valor es una matriz de grupos { "matcher", "hooks" } cuyas entradas hooks tienen un type de "command", "prompt", "agent", "http" o "mcp_tool"
Predeterminado: no establecido, por lo que no se ejecutan hooks
Este ejemplo ejecuta un script antes de cada llamada a la herramienta Bash:
Para cada evento, patrón de matcher y campo de controlador, consulta la referencia de hooks. Para desactivar hooks, consulta disableAllHooks; para limitar hooks a los que implementa tu organización, consulta allowManagedHooksOnly.
`httpHookAllowedEnvVars`
Un hook HTTP puede poner el valor de una variable de entorno en un encabezado de solicitud, por ejemplo un encabezado Authorization: Bearer $HOOK_TOKEN, pero solo para variables que el hook enumera en su propio allowedEnvVars. Esta clave establece un límite externo en esa lista para cada hook HTTP: un hook puede usar una variable solo si tanto su propio allowedEnvVars como esta clave la nombran. Úsala para evitar que un hook lea un secreto que no debería, incluso cuando la definición del hook lo solicita.
Alcance: Any file. Las matrices se fusionan en los archivos de configuración.
Tipo: matriz de nombres de variables de entorno
Predeterminado: no establecido, por lo que se aplica la lista allowedEnvVars de cada hook
Este ejemplo limita la interpolación de encabezados a MY_TOKEN y HOOK_SECRET:
La lista de permitidos se aplica a hooks de todas las fuentes, incluida la configuración administrada.
`workflowKeywordTriggerEnabled`
Elige si escribir la palabra clave ultracode en un prompt activa un flujo de trabajo dinámico. Establécelo en false para escribir la palabra sin activar uno.
Alcance: Any file. Aparece en /config como Ultracode keyword trigger.
Tipo: Booleano
true: escribir ultracode en un prompt activa un flujo de trabajo dinámico
false: puedes escribir la palabra sin activar uno
Predeterminado: true
{"workflowKeywordTriggerEnabled": false
}
El ajuste de esfuerzo ultracode, /workflows y los comandos de flujo de trabajo guardados no se ven afectados.
`workflowSizeGuideline`
Establece el recuento de agentes al que Claude apunta en los flujos de trabajo dinámicos que escribe. Claude Code envía el valor a Claude como consejo, no como un límite impuesto: "small" solicita menos de 5 agentes, "medium" menos de 10 y "large" menos de 50. Elige "small" cuando desees limitar lo que gasta un flujo de trabajo. Requiere Claude Code v2.1.219 o posterior.
Alcance: Any file. Un valor allí tiene precedencia sobre la opción Dynamic workflow size en /config, que Claude Code almacena en ~/.claude.json, y Claude Code oculta esa fila mientras un archivo de configuración establece la clave.
Tipo: cadena, una de:
"unrestricted": sin directriz, por lo que Claude dimensiona el flujo de trabajo a la tarea
"small": Claude apunta a menos de 5 agentes
"medium": Claude apunta a menos de 10 agentes
"large": Claude apunta a menos de 50 agentes
Predeterminado: "medium", o "small" cuando has iniciado sesión en un plan Pro con Claude Code v2.1.271 o posterior
{"workflowSizeGuideline": "small"}
Requiere Claude Code v2.1.219 o posterior; en v2.1.202 a v2.1.218, establece la directriz en /config en su lugar.
Plugins y skills
Habilite plugins, registre mercados, restrinja qué fuentes de plugins permite una organización y controle qué skills se cargan. Para instalar y crear plugins, consulte Plugins.
`disableBundledSkills`
Desactive los skills y flujos de trabajo incluidos con Claude Code. Claude Code elimina completamente los skills y flujos de trabajo incluidos, mientras que los comandos integrados como /init permanecen escribibles pero están ocultos del modelo.
true: Claude Code elimina los skills y flujos de trabajo incluidos y oculta del modelo los comandos integrados como /init
false: los skills incluidos se cargan
Default: sin establecer, por lo que los skills incluidos se cargan
Per-session overrides: CLAUDE_CODE_DISABLE_BUNDLED_SKILLS establecido en 1 desactiva los skills incluidos durante una sesión; cualquiera de los dos que los desactive, el otro no puede volver a activarlos
{"disableBundledSkills": true
}
Los skills de plugins, .claude/skills/ y .claude/commands/ no se ven afectados. /doctor permanece escribible como los comandos integrados; para ocultarlo, establezca DISABLE_DOCTOR_COMMAND en su lugar.
`disableSkillShellExecution`
Desactive la ejecución de shell en línea para bloques !`...` y ```! en skills y comandos personalizados de fuentes de usuario, proyecto, plugin o directorio adicional. Claude Code reemplaza cada comando con [shell command execution disabled by policy] en lugar de ejecutarlo.
Scope: Any file. Un true en configuración administrada no puede ser anulado por false en otro lugar.
Type: Boolean
true: Claude Code reemplaza cada comando de shell en línea con [shell command execution disabled by policy] en lugar de ejecutarlo
false: el shell en línea se ejecuta
Default: sin establecer, por lo que el shell en línea se ejecuta
{"disableSkillShellExecution": true
}
Los skills incluidos y los skills implementados a través de configuración administrada no se ven afectados.
`skillOverrides`
Oculte o contraiga un skill sin editar su SKILL.md. Claude Code aplica el valor bajo el nombre de cada skill a la lista de skills que Claude ve y a su autocompletado /.
Scope: Any file. El menú /skills escribe en .claude/settings.local.json.
Type: objeto que asigna el nombre del skill a uno de:
"on": Claude ve el skill y puede escribir /name
"name-only": Claude ve el skill por nombre sin su descripción
"user-invocable-only": Claude no ve el skill, pero aún puede escribir /name
"off": Claude no ve el skill y /name está oculto del autocompletado
Default: sin establecer, por lo que cada skill es "on"
Este ejemplo lista legacy-context a Claude solo por nombre y oculta deploy de Claude y del autocompletado /:
Desactive la descarga de los skills habilitados para su cuenta de claude.ai. Claude Code los descarga en ~/.claude/skills/synced/ en sesiones de terminal donde inicia sesión con su cuenta de claude.ai, interactivas o no interactivas, y en sesiones de Cowork y en la nube. Establezca false para detener esa descarga y dejar de cargar los skills que ya sincronizó. Claude Code solo respeta false: true es lo mismo que sin establecer y no activa la sincronización donde de otro modo está desactivada.
Scope: User, local, or managed, y archivos pasados con --settings. Un repositorio no puede desactivarla para usted.
Type: Boolean
false: Claude Code deja de descargar skills sincronizados y deja de cargar los que ya están en ~/.claude/skills/synced/. En configuración de usuario o administrada, también los mueve a ~/.claude/skills/.trash/
true: lo mismo que sin establecer
Default: sin establecer, por lo que las sesiones que inician sesión con su cuenta de claude.ai sincronizan sus skills
Este ejemplo evita que una máquina descargue los skills de la cuenta en cualquier sesión:
{"syncClaudeAiSkills": false
}
`syncClaudeAiPlugins`
Desactive la descarga de los plugins habilitados para su cuenta de claude.ai. Claude Code los descarga en ~/.claude/plugins/synced/ al inicio de sesiones de terminal donde inicia sesión con su cuenta de claude.ai y en sesiones de Cowork, y carga cada uno como <name>@synced. Establezca false para detener esa descarga y dejar de cargar los plugins que ya sincronizó. Claude Code solo respeta false: true es lo mismo que sin establecer y no activa la sincronización donde de otro modo está desactivada. Requiere Claude Code v2.1.273 o posterior.
Scope: User, local, or managed, y archivos pasados con --settings. Un repositorio no puede desactivarla para usted.
Type: Boolean
false: Claude Code deja de descargar plugins sincronizados y deja de cargar los que ya están en ~/.claude/plugins/synced/. En configuración de usuario o administrada, también los mueve a ~/.claude/plugins/.trash/
true: lo mismo que sin establecer
Default: sin establecer, por lo que las sesiones que inician sesión con su cuenta de claude.ai sincronizan sus plugins
Para desactivar un plugin sincronizado en lugar de todos, establezca "<name>@synced": false en enabledPlugins.
Este ejemplo evita que una máquina descargue los plugins de la cuenta en cualquier sesión:
{"syncClaudeAiPlugins": false
}
`allowedChannelPlugins`
Elija qué plugins de canal pueden enviar mensajes a sesiones en su organización. Cuando lo establece, Claude Code usa su lista en lugar de la lista de permitidos predeterminada de Anthropic; cada entrada nombra un plugin y el mercado del que proviene.
Type: matriz de objetos, cada uno con cadenas marketplace y plugin. Una entrada puede ser una cadena "plugin@marketplace" como "telegram@claude-plugins-official", que Claude Code trata como el objeto equivalente. La forma de cadena requiere Claude Code v2.1.267 o posterior; las versiones anteriores rechazan todo el valor allowedChannelPlugins cuando contiene una
Default: sin establecer, por lo que Claude Code usa la lista de permitidos predeterminada de Anthropic
Este ejemplo activa canales y permite solo el plugin de Telegram del mercado oficial de Anthropic:
Esta clave entra en vigor una vez que los canales pasan la puerta channelsEnabled para la cuenta: en planes de Team y Enterprise, y en cuentas de Console con configuración administrada, eso significa channelsEnabled: true. Consulte Restringir qué plugins de canal pueden ejecutarse.
`blockedMarketplaces`
Bloquee fuentes de mercado de plugins para su organización. Claude Code verifica la lista de bloqueo al agregar un mercado y al instalar, actualizar, actualizar y actualizar automáticamente un plugin, por lo que un mercado que alguien agregó antes de establecer la política no puede usarse para obtener plugins tampoco. Las fuentes bloqueadas se verifican antes de la descarga, por lo que nunca tocan el sistema de archivos.
Una entrada github puede usar la forma comodín de propietario"owner/*" para bloquear cada repositorio bajo ese propietario de GitHub, que requiere Claude Code v2.1.223 o posterior. Agregue { "source": "skills-dir" } para detener la carga de Claude Code de plugins @skills-dir desde ~/.claude/skills/ sin restringir ningún mercado. Consulte Restricciones de mercado administradas.
`channelsEnabled`
Permita canales para su organización. En planes de Team y Enterprise de claude.ai, Claude Code bloquea los canales hasta que establezca esto en true. Para cuentas de Anthropic Console que se autentican con una clave API, los canales se permiten de forma predeterminada. Si su organización implementa configuración administrada, Claude Code también bloquea los canales en esas cuentas hasta que establezca esta clave en true.
true: Claude Code permite canales para su organización
false: lo mismo que sin establecer; si los canales están bloqueados depende de su plan, como dice el Default
Default: sin establecer; los canales están bloqueados en planes de Team y Enterprise y en cuentas de Console con configuración administrada, y permitidos en planes Pro y Max y en cuentas de Console sin configuración administrada
Bloquee la fuente de plugin command, que instala un plugin ejecutando un comando declarado por el mercado en la máquina del usuario. Cuando lo establece en true, Claude Code nunca ejecuta el comando, no instala ni actualiza plugins de origen de comando, y deja de cargar los ya instalados. Establézcalo en false para permitirlos explícitamente. Siempre que bloquea fuentes de comando, ya sea que lo establezca en true o lo deje sin establecer bajo allowManagedHooksOnly, también bloquea los comandos headersHelper del mercado, excepto para un mercado que la configuración administrada declara. Requiere Claude Code v2.1.229 o posterior, y el bloqueo de headersHelper requiere v2.1.238 o posterior.
true: Claude Code nunca ejecuta el comando declarado por el mercado, no instala ni actualiza plugins de origen de comando, y deja de cargar los ya instalados
false: Claude Code permite plugins de origen de comando explícitamente
Default: sin establecer, por lo que Claude Code sigue allowManagedHooksOnly: una organización que restringe la ejecución de hooks a configuración administrada también obtiene fuentes de comando deshabilitadas
{"disableCommandPluginSources": true
}
Requiere Claude Code v2.1.229 o posterior.
`pluginSuggestionMarketplaces`
Nombre los mercados cuyos plugins pueden aparecer como sugerencias de instalación contextual, en consejos de spinner y fijados en la parte superior de la pestaña Discover de /plugin. La sugerencia de diseño de interfaz de primera parte integrada no se ve afectada. Las sugerencias provienen de la declaración relevance de cada plugin en su entrada de mercado.
Un nombre entra en vigor solo cuando el mercado está registrado en la máquina y su fuente registrada también se declara en la misma configuración administrada, ya sea como la entrada extraKnownMarketplaces para ese nombre o como una entrada de strictKnownMarketplaces. Claude Code ignora un mercado registrado desde una fuente diferente bajo un nombre en la lista de permitidos. El mercado oficial está exento del requisito de fuente: permitir solo su nombre es suficiente, ya que ese nombre solo puede registrarse desde la fuente oficial de Anthropic. Consulte Sugerir plugins por contexto.
`pluginTrustMessage`
Agregue el texto de su propia organización al aviso de confianza de plugin que Claude Code muestra antes de la instalación, por ejemplo para confirmar que los plugins de su mercado interno están revisados.
Default: sin establecer, por lo que Claude Code muestra solo el aviso estándar
{"pluginTrustMessage": "All plugins from our marketplace are approved by IT"}
`strictKnownMarketplaces`
Restrinja qué fuentes de mercado de plugins pueden agregar e instalar plugins las personas en su organización. Claude Code aplica la lista de permitidos al agregar un mercado y al instalar, actualizar, actualizar y actualizar automáticamente un plugin, antes de cualquier operación de red o sistema de archivos, por lo que un mercado que alguien agregó antes de establecer la política no puede usarse para obtener plugins una vez que su fuente ya no coincida. Los usuarios bloqueados ven un error que nombra la política administrada.
Default: sin establecer, por lo que los usuarios pueden agregar cualquier mercado. Una matriz vacía es un bloqueo completo que bloquea cada fuente de mercado, incluido el mercado oficial de Anthropic
Este ejemplo permite dos repositorios de GitHub, uno fijado a la ref v2.0 y uno alojado en URL marketplace.json:
También puede escribir esta clave como allowedMarketplaces; Alias de clave de mercado describe cómo Claude Code trata el alias y qué versión lo acepta. Esta clave es una puerta de política: controla lo que los usuarios pueden agregar pero no registra nada. Para restringir y preregistrar en un archivo, consulte Combinar con extraKnownMarketplaces. Para la vista orientada al usuario, consulte Restricciones de mercado administradas.
Tipos de fuente permitidos
Cada entrada a continuación muestra una entrada de lista de permitidos por tipo de fuente y los campos que acepta. La mayoría de los tipos coinciden exactamente; hostPattern y pathPattern coinciden por regex, y las entradas github pueden usar un comodín de propietario.
pathPattern requerido, una regex coincidida en cualquier lugar en la path de fuentes file y directory; comience con ^ para fijar un prefijo
skills-dir
{ "source": "skills-dir" }
Sin campos. Vuelve a optar por el escaneo de plugin ~/.claude/skills/
Tres tipos de fuente llevan reglas más allá de la tabla:
url: un mercado de URL descarga solo el archivo marketplace.json, y Claude Code no obtiene archivos de plugin por ruta relativa desde ese servidor, por lo que sus plugins deben usar una fuente de plugin que no sea una ruta relativa, como una URL de archivo, que puede estar en el mismo host. Para plugins con rutas relativas, use un mercado basado en Git en su lugar. Consulte Los plugins con rutas relativas fallan en mercados basados en URL.
hostPattern: úselo para permitir cada mercado en un GitHub Enterprise interno o servidor GitLab sin listar cada repositorio. Claude Code compara fuentes github contra github.com, toma el nombre de host de fuentes url, y lo toma de fuentes git dependiendo de la forma de URL de git:
Una URL con un esquema, como https:// o ssh://: el nombre de host en la URL.
Una dirección SSH sin esquema, en la forma user@host:path de git, como git@git.example.com:tools/plugins.git: el host entre @ y :, que es el host al que se conecta git.
Cualquier otra forma sin esquema: sin host, por lo que ninguna entrada hostPattern de strictKnownMarketplaces coincide con ella. Para una entrada hostPattern de blockedMarketplaces, Claude Code toma un host de un conjunto más amplio de formas, por lo que una entrada de lista de bloqueo aún puede coincidir con tal forma. Antes de v2.1.234, una entrada hostPattern de strictKnownMarketplaces también coincidía con algunas formas que git no trata como direcciones SSH.
Las fuentes file y directory no tienen host y nunca coinciden con una entrada hostPattern.
pathPattern: úselo para permitir mercados del sistema de archivos junto con entradas hostPattern para fuentes de red. ".*" permite cada ruta local; un patrón más estrecho como "^/opt/approved/" restringe a un directorio.
Cualquier lista de permitidos, incluso una vacía, también detiene la carga de Claude Code de plugins @skills-dir desde ~/.claude/skills/. Agregue la entrada { "source": "skills-dir" } para seguir cargándolos; la entrada no tiene significado fuera de esta clave y blockedMarketplaces.
Comodines de propietario
Una entrada github cuyo valor repo es "<owner>/*" coincide con cada repositorio bajo ese propietario de GitHub. Los comodines de propietario requieren Claude Code v2.1.223 o posterior y funcionan solo en strictKnownMarketplaces y blockedMarketplaces. En cualquier otro lugar donde aparezca una fuente github, como extraKnownMarketplaces o /plugin marketplace add, el valor repo debe nombrar un único repositorio. Antes de v2.1.223, Claude Code comparaba la entrada literalmente, por lo que una entrada de lista de permitidos no coincidía con ningún repositorio y una entrada de lista de bloqueo no bloqueaba nada; las entradas de repositorio único se aplican en cada versión.
Esta entrada permite cualquier repositorio de mercado en la organización acme-corp:
Solo la posición de nombre de repositorio completo puede ser un comodín. Claude Code ignora entradas como *, */plugins o acme-corp/tools-* como inválidas, por lo que no coinciden con ningún repositorio.
Las reglas de coincidencia difieren entre las dos configuraciones:
Rule
strictKnownMarketplaces
blockedMarketplaces
Coincidencia de ortografías de fuente
Solo forma owner/repo. Una URL de git que clona el mismo repositorio no coincide
Cualquier ortografía, incluidas URLs de git que se resuelven en el mismo repositorio github.com
Mayúsculas y minúsculas del propietario
Distingue mayúsculas y minúsculas
No distingue mayúsculas y minúsculas
ref
Sigue las reglas de entrada exacta: una entrada con un ref coincide solo con fuentes con ese ref exacto, y una entrada sin uno coincide solo con fuentes que no especifican un ref
Una entrada sin un ref bloquea todos los refs de los repositorios que coincide
path
Más flexible que las reglas de entrada exacta: una entrada con un path requiere ese valor exacto, mientras que una entrada sin uno coincide con cualquier ruta dentro del repositorio
Una entrada sin un path bloquea todas las rutas de los repositorios que coincide
Coincidencia exacta
Para cada tipo de fuente excepto entradas github de comodín de propietario y entradas hostPattern y pathPattern coincididas por regex, Claude Code permite una adición de usuario solo cuando la fuente de mercado coincide exactamente con una entrada. Para las fuentes basadas en git github y git, la coincidencia exacta incluye los campos opcionales:
El repo o url debe coincidir exactamente
El campo ref debe coincidir exactamente, o ambos deben ser indefinidos
El campo path debe coincidir exactamente, o ambos deben ser indefinidos
Por ejemplo, Claude Code trata cada par a continuación como dos fuentes diferentes:
Con esta entrada, Claude Code mantiene un mercado oficial ya registrado disponible y, en una máquina nueva, registra el mercado automáticamente la primera vez que inicia una sesión de terminal interactiva. El registro automático comúnmente falla:
Entornos no interactivos que se ejecutan antes de la primera sesión de terminal interactiva de la máquina.
Máquinas donde Claude Code solo se ha ejecutado a través de la extensión de VS Code.
Máquinas donde Claude Code ya ejecutó una sesión de terminal interactiva bajo una política que bloqueó el mercado, como el bloqueo de matriz vacía. Claude Code registra el intento bloqueado y no reintenta después de que cambia la política.
En estas máquinas, agregue el mercado a extraKnownMarketplaces en el mismo managed-settings.json para que Claude Code lo registre automáticamente, o ejecute claude plugin marketplace add anthropics/claude-plugins-official.
Combinar con `extraKnownMarketplaces`
Las dos claves hacen trabajos diferentes. Esta tabla las compara:
Aspect
strictKnownMarketplaces
extraKnownMarketplaces
Purpose
Aplicación de política organizacional
Conveniencia del equipo
Settings file
Solo configuración administrada
Cualquier archivo de configuración
Behavior
Bloquea adiciones no permitidas
Registra mercados faltantes
When enforced
Antes de operaciones de red y sistema de archivos
Inmediatamente desde configuración de usuario o administrada; después del diálogo de confianza del espacio de trabajo para archivos de un repositorio
Can be overridden
No, máxima precedencia
Sí, por configuración de mayor precedencia
Source format
Objeto de fuente directo
Mercado nombrado con un objeto source anidado
Para restringir y preregistrar un mercado para todos los usuarios, establezca ambos en managed-settings.json:
Con solo strictKnownMarketplaces establecido, los usuarios aún pueden agregar un mercado permitido ellos mismos con /plugin marketplace add. El mercado oficial de Anthropic es el único que Claude Code registra automáticamente, y solo cuando la lista de permitidos lo permite. Permitir solo el mercado oficial lista las máquinas que falla.
`strictPluginOnlyCustomization`
Bloquee skills, agentes, hooks y servidores MCP de fuentes de usuario y proyecto, para que solo puedan provenir de plugins o configuración administrada. Combínelo con strictKnownMarketplaces para controlar la cadena de suministro de personalización completa: la lista de permitidos de mercado controla qué plugins pueden instalar los usuarios.
Las cuatro entradas de subclave a continuación listan lo que cada superficie bloquea y qué aún se carga. Claude Code ignora nombres de superficie que no reconoce en lugar de fallar el archivo de configuración, por lo que puede agregar nuevos nombres de superficie antes de que cada cliente se actualice.
`strictPluginOnlyCustomization.skills`
Bloquee la superficie skills. Claude Code deja de cargar skills desde ~/.claude/skills/ y .claude/skills/, comandos personalizados desde ~/.claude/commands/ y .claude/commands/, skills y comandos bajo directorios --add-dir, y skills sincronizados desde su cuenta de claude.ai. Continúa cargando skills de plugins, skills incluidos y skills en el directorio de política administrada.
Bloquee la superficie agents. Claude Code deja de cargar agentes desde ~/.claude/agents/, .claude/agents/ y directorios --add-dir. Continúa cargando agentes de plugins, agentes integrados y agentes en el directorio de política administrada.
Bloquee la superficie hooks. Claude Code deja de ejecutar hooks de configuración de usuario, proyecto y local settings.json, y continúa ejecutando hooks de plugins y hooks en configuración administrada.
Bloquee la superficie mcp. Claude Code deja de cargar servidores MCP desde ~/.claude.json y .mcp.json, y continúa cargando servidores MCP de plugins, servidores managed-mcp.json y servidores de managedMcpServers.
Active o desactive plugins individuales, codificados por plugin-name@marketplace-name. Un plugin sin entrada en ningún scope vuelve a su valor defaultEnabled. Cuando habilita o deshabilita un plugin con /plugin o claude plugin enable, Claude Code escribe esta clave para usted.
Configuración de usuario: sus preferencias personales de plugin
Configuración de proyecto: plugins compartidos con todos en el repositorio
Configuración local: anulaciones por máquina, gitignored cuando Claude Code guarda una configuración allí
Configuración administrada: política de toda la organización. Un plugin establecido en false aquí está bloqueado de instalación en cada scope y oculto del mercado
La configuración de proyecto tiene precedencia sobre la configuración de usuario, por lo que establecer un plugin en false en ~/.claude/settings.json no deshabilita un plugin que el .claude/settings.json del proyecto habilita. Para optar por no participar en un plugin habilitado por proyecto en su máquina, establézcalo en false en .claude/settings.local.json en su lugar. Los plugins forzados habilitados por configuración administrada no pueden deshabilitarse de esta manera, ya que la configuración administrada anula la configuración local.
Habilitar un plugin de una fuente externa como un repositorio de GitHub o paquete npm en el .claude/settings.json de un proyecto no lo instala para otras personas. En cada ruta que carga plugins, Claude Code reporta el plugin como no instalado hasta que cada usuario lo instale ellos mismos.
`extraKnownMarketplaces`
Registre mercados de plugins adicionales por nombre, para que las personas que abran el repositorio, o todos los que alcance su configuración administrada, obtengan el mercado sin agregarlo ellos mismos. Claude Code registra cada mercado que aún no conoce. Si un plugin que enabledPlugins nombra desde él se instala depende de la fuente del plugin y qué archivo lo habilita; esa entrada tiene las reglas.
Scope: Any file. Claude Code respeta entradas en el .claude/settings.json o .claude/settings.local.json de un repositorio solo después de que acepte el diálogo de confianza del espacio de trabajo para esa carpeta; en una carpeta que no ha confiado, incluida una ejecución -p allí, las ignora sin un mensaje.
Type: objeto que asigna un nombre de mercado a un objeto con un objeto source y un Boolean autoUpdate opcional
Default: sin establecer
Este ejemplo registra un mercado de GitHub y un mercado desde una URL de git autohospedada:
Establezca "autoUpdate": true junto a source para hacer que Claude Code actualice ese mercado y actualice sus plugins instalados en segundo plano después del inicio. Cuando se omite, claude-plugins-official y la mayoría de otros mercados oficiales de Anthropic tienen como predeterminado true, y los mercados de terceros tienen como predeterminado false. Consulte Configurar actualizaciones automáticas.
Cuando más de un archivo de configuración define una entrada de mercado bajo el mismo nombre, Claude Code usa la entrada del archivo de mayor precedencia completo. Esa entrada reemplaza la entrada de menor precedencia y no hereda ninguno de sus campos, por lo que una redefinición no puede combinar el source.headers de credencial de un archivo con una URL que otro archivo controla. Antes de v2.1.228, Claude Code fusionaba entradas del mismo nombre campo por campo, por lo que una entrada en un archivo de mayor precedencia podría heredar campos que no estableció, incluidos headers de otro archivo.
Tipos de fuente de mercado
El objeto source toma una de estas formas:
github: un repositorio de GitHub, con repo
git: cualquier URL de git, con url
url: una URL directa a un archivo marketplace.json, con url y headers opcional y headersHelper para acceso autenticado. headersHelper nombra un comando que imprime encabezados cuyos valores son demasiado efímeros para listar en headers, y requiere Claude Code v2.1.238 o posterior
file: una ruta local a un archivo marketplace.json, con path
directory: una ruta del sistema de archivos local, con path. Úselo para desarrollo, o para un mercado que su organización implementa en cada máquina.
settings: un mercado en línea declarado directamente en el archivo de configuración sin un repositorio alojado, con name y plugins
El tipo de fuente git funciona con cualquier servicio de alojamiento de git, incluido GitLab autohospedado y Bitbucket. Claude Code clona el repositorio con la misma autenticación que git clone usaría en esa máquina: ayudantes de credenciales configurados o claves SSH. Un token de proveedor como GITHUB_TOKEN entra en vigor a través de un ayudante de credenciales que lo lee. Consulte Repositorios privados para detalles de configuración.
Para fuentes github y git, Claude Code nunca descarga contenido de Git LFS cuando clona el repositorio de mercado para agregarlo o actualizarlo. Los archivos rastreados por LFS se cierran como archivos de puntero, y la salida de agregar o actualizar reporta cuántos.
El campo skipLfs dentro del objeto source se acepta y no tiene efecto. Antes de v2.1.274, Claude Code descargaba contenido de LFS a menos que estableciera "skipLfs": true.
Para una fuente url, establezca headersHelper dentro del objeto source cuando la credencial en headers expire y un comando tenga que producir una nueva. Requiere Claude Code v2.1.238 o posterior. Para lo que el comando debe imprimir y dónde Claude Code lo ejecuta, consulte Escribir el comando headersHelper, y para los casos donde Claude Code no lo ejecuta, consulte Cuándo Claude Code omite un comando headersHelper. Una vez que establezca headersHelper en una URL de mercado https://, Claude Code ejecuta el comando en dos puntos, reutilizando la salida de una ejecución durante hasta 60 segundos:
Antes de cada obtención del marketplace.json de ese mercado, incluida una actualización posterior. Claude Code envía los encabezados impresos con esa obtención.
Antes de cada descarga de archivo de plugin en el origen de la URL del mercado, lo que significa el mismo esquema, host y puerto. Claude Code envía la salida con esa descarga, y ninguna otra descarga obtiene los encabezados.
Claude Code ignora cualquier headersHelper establecido en el .claude/settings.json o .claude/settings.local.json de un directorio que agregue con --add-dir, en una fuente url y en una entrada de plugin en línea por igual, y envía solo los headers fijos establecidos en ese archivo. Cómo los usuarios aceptan un comando headersHelper cubre los otros archivos de configuración.
Los plugins listados en una fuente settings deben hacer referencia a fuentes externas como GitHub o npm, y el name debe coincidir con la clave de mercado. Aún habilita cada plugin por separado en enabledPlugins. Este ejemplo declara un plugin en línea:
Una entrada de plugin bajo source: 'settings' cuya propia source es un archive puede establecer headers para la descarga de archivo. Si el valor que pondría en headers es efímero, como un token que su registro acuña bajo demanda, establezca un comando headersHelper en su lugar. Una entrada puede establecer ambos. Ambos campos requieren Claude Code v2.1.238 o posterior.
Claude Code envía los headers de la entrada, y lo que el comando imprime, con la descarga de archivo de ese plugin y con ninguna otra descarga. Claude Code ejecuta el comando solo cuando un usuario instala o actualiza ese plugin solo. Tres reglas adicionales dependen de qué archivo contiene la entrada:
strict: a diferencia de una entrada en el marketplace.json de un mercado, una entrada en configuración no necesita "strict": false, porque un archivo de configuración no lleva campos de manifiesto para en línea. Consulte Modo estricto.
Confianza de carpeta: para una entrada en el .claude/settings.json o .claude/settings.local.json de un proyecto, Claude Code ejecuta el comando solo después de que el usuario también haya confiado en esa carpeta.
Filtro de encabezado: Claude Code elimina nombres de encabezado de enrutamiento de solicitud e identidad del cliente de una entrada en el .claude/settings.json o .claude/settings.local.json de un proyecto, porque un repositorio puede suministrar esos archivos. Claude Code aplica el mismo filtro a una entrada de catálogo y a una entrada en un directorio --add-dir, y ningún filtro a una entrada en su configuración de usuario, un archivo --settings o configuración administrada.
Alias de clave de mercado
En Claude Code v2.1.232 o posterior, puede escribir extraKnownMarketplaces como additionalMarketplaces y strictKnownMarketplaces como allowedMarketplaces. Claude Code trata cada alias de la siguiente manera:
Las versiones anteriores ignoran el alias, por lo que mantenga la ortografía canónica en un archivo que las versiones anteriores también lean, como un archivo de configuración administrada para una flota con versiones mixtas de Claude Code.
En cualquier archivo de configuración que acepte la clave canónica, Claude Code lee el alias exactamente como lee la clave canónica.
Claude Code puede reescribir additionalMarketplaces a extraKnownMarketplaces cuando actualiza el archivo.
Si establece ambas ortografías en un archivo, Claude Code usa el valor canónico e ignora el alias.
`pluginConfigs`
Almacene las respuestas no sensibles que proporciona al diálogo de configuración userConfig de un plugin, codificadas por ID de plugin. Claude Code escribe esta clave en su configuración de usuario cuando completa el diálogo, por lo que no necesita editarla a mano. Claude Code almacena opciones sensibles en el Keychain de macOS en su lugar, retrocediendo a ~/.claude/.credentials.json cuando el Keychain rechaza la escritura; en plataformas sin un keychain compatible, las almacena en ~/.claude/.credentials.json.
Type: objeto que asigna un ID de plugin a un objeto con un campo options, asignando cada nombre de opción a una cadena, número, Boolean o matriz de cadenas, y un campo mcpServers opcional que contiene valores de configuración de usuario por servidor en la misma forma
Default: sin establecer
Este ejemplo almacena la opción api_endpoint para el plugin deployer de acme-tools:
Los plugins integrados almacenan sus opciones bajo la misma clave con un sufijo @builtin. Por ejemplo, la configuración Instrucciones de proyecto que controla si Claude Code lee archivos AGENTS.md es pluginConfigs["agents-md@builtin"].options.instructionFiles.
Claude Code ignora entradas de proyecto y local porque sustituye estos valores en configuraciones de hook, MCP y LSP de plugin, y un repositorio clonado no debe poder suministrarlos. Antes de v2.1.207, la configuración de proyecto y local también se leía.
`prependPlugins`
Liste los plugins administrados cuyos mods se ejecutan antes de cada mod que instala un usuario, en el orden listado. Cuando establece esta clave en configuración administrada, nombre sec-default@builtin en la lista para mantener la guardia integrada. En configuración administrada, Claude Code omite un id cuyo plugin no cuenta como el de su organización. Consulte Instale los mods de su organización y establezca el orden para esas condiciones y cómo funcionan juntas las dos claves de ordenamiento.
Scope: User or managed. Claude Code lee la clave de configuración administrada. Lee la clave de configuración de usuario solo en una máquina sin configuración administrada, para un usuario que no ha iniciado sesión con un plan de Team o Enterprise. Ignora la clave en configuración de proyecto y local y en un archivo --settings.
Type: matriz de cadenas plugin-name@marketplace-name
Liste los plugins administrados cuyos mods se ejecutan después de cada mod que instala un usuario, en el orden listado. Un id listado en ambos prependPlugins y appendPlugins se antepone. En configuración administrada, Claude Code omite un id cuyo plugin no cuenta como el de su organización.
Scope: User or managed. Claude Code lee la clave de configuración administrada. Lee la clave de configuración de usuario solo en una máquina sin configuración administrada, para un usuario que no ha iniciado sesión con un plan de Team o Enterprise. Ignora la clave en configuración de proyecto y local y en un archivo --settings.
Type: matriz de cadenas plugin-name@marketplace-name
Cargue los conectores de claude.ai que Claude Code obtiene por sí mismo junto con un managed-mcp.json implementado. Sin esta clave, managed-mcp.json toma control exclusivo de los servidores MCP y suprime esos conectores.
Scope: Managed. Los usuarios no pueden volver a habilitar los conectores que el control exclusivo suprimió.
Type: Boolean
true: Claude Code carga los conectores de claude.ai junto con un managed-mcp.json implementado
false: un managed-mcp.json implementado toma control exclusivo de los servidores MCP y suprime los conectores de claude.ai que Claude Code obtiene por sí mismo
Default: false, por lo que un managed-mcp.json implementado suprime los conectores de claude.ai que Claude Code obtiene por sí mismo
Permita que el servidor integrado Claude en Chrome se ejecute junto con un managed-mcp.json implementado. Sin esta clave, un managed-mcp.json implementado bloquea Claude en Chrome en sesiones de terminal. Requiere Claude Code v2.1.282 o posterior.
Scope: Managed, solo desde la configuración administrada del dispositivo: un plist implementado por MDM o una clave de registro HKLM, o un archivo managed-settings.json del sistema. Claude Code lo ignora en la configuración administrada del servidor, en el registro HKCU que se puede escribir por el usuario y en la configuración de usuario o proyecto.
Type: Boolean
true: el servidor integrado Claude en Chrome puede ejecutarse junto con un managed-mcp.json implementado
false: un managed-mcp.json implementado bloquea Claude en Chrome en sesiones de terminal
Default: false, por lo que un managed-mcp.json implementado bloquea Claude en Chrome en sesiones de terminal
Cree una lista de permitidos de los servidores MCP que las personas pueden agregar. Claude Code bloquea cualquier servidor que no coincida con una entrada dondequiera que esté definido, incluidos servidores de complementos, servidores pasados con --mcp-config y servidores de claude.ai.
Los servidores integrados como Claude en Chrome, el servidor ide al que Claude Code se conecta en un IDE VS Code o JetBrains en ejecución, y los servidores que la CLI misma configura están exentos de la lista de permitidos, y la lista de denegados aún se aplica a ellos. En Claude Code v2.1.268 o posterior, las herramientas de Slack de una sesión Claude Tag también están exentas de la lista de permitidos, y la lista de denegados aún se aplica a ellas. Los servidores type: "sdk" en proceso están exentos de ambas listas; la aplicación que inició la sesión los registra.
Los servidores que su organización entrega también están exentos de la lista de permitidos, y la lista de denegados aún se aplica a ellos. La exención cubre cada entrada managedMcpServers y cualquier entrada managed-mcp.json cuyos valores no usen expansión ${VAR}. Consulte Cómo se evalúa un servidor para el orden de verificación completo. Antes de v2.1.259, los servidores de managed-mcp.json también tenían que coincidir.
Scope: Any file. Las entradas de cada archivo se fusionan en una lista de permitidos a menos que allowManagedMcpServersOnly esté configurado. Impleméntelo en la configuración administrada para aplicarlo.
Type: matriz de objetos, cada uno con exactamente una clave: serverName, una cadena limitada a letras, números, guiones e guiones bajos; serverCommand, una matriz del comando y sus argumentos coincididos exactamente; o serverUrl, un patrón de URL con comodines *
Default: sin establecer, por lo que se permite cada servidor; una matriz vacía bloquea cada servidor que los usuarios agregan
Este ejemplo permite solo el servidor stdio que inicia el comando npx listado:
Una entrada deniedMcpServers tiene prioridad, por lo que un servidor en ambas listas se bloquea. Una vez que la lista contiene cualquier entrada serverCommand, un servidor stdio debe coincidir con una entrada serverCommand, y una vez que contiene cualquier entrada serverUrl, un servidor remoto debe coincidir con una entrada serverUrl: una coincidencia serverName ya no admite ese tipo de servidor. Consulte Control basado en políticas con listas de permitidos y denegados.
`allowManagedMcpServersOnly`
Haga que la lista de permitidos administrada sea la única que se aplique. Claude Code luego lee allowedMcpServers solo de la configuración administrada e ignora las listas de permitidos en la configuración de usuario, proyecto y local; deniedMcpServers aún se fusiona desde cada ámbito de configuración, por lo que los usuarios aún pueden bloquear servidores para sí mismos. Los administradores lo configuran para que la configuración propia de un usuario no pueda ampliar lo que permite la lista de permitidos administrada.
true: Claude Code lee allowedMcpServers solo de la configuración administrada e ignora las listas de permitidos en la configuración de usuario, proyecto y local
false: las listas de permitidos de cada ámbito de configuración se fusionan
Default: false, por lo que las listas de permitidos de cada ámbito de configuración se fusionan
Este ejemplo bloquea la lista de permitidos en la configuración administrada y permite solo el servidor denominado github:
Bloquee servidores MCP específicos. Claude Code se niega a cargar un servidor coincidente dondequiera que esté definido, incluidos servidores de complementos, servidores pasados con --mcp-config, servidores de managed-mcp.json, servidores de managedMcpServers y los conectores de claude.ai que obtiene por sí mismo. Los servidores type: "sdk" en proceso están exentos; la aplicación que inició la sesión los registra.
Scope: Any file. Las entradas de cada archivo se fusionan en una lista de denegados, y allowManagedMcpServersOnly no cambia eso. Impleméntelo en la configuración administrada para aplicarlo.
Type: matriz de objetos, cada uno con exactamente una clave: serverName, una cadena, por lo que el nombre para mostrar de un conector de claude.ai como "claude.ai Slack" funciona; serverCommand, una matriz del comando y sus argumentos coincididos exactamente; o serverUrl, un patrón de URL con comodines *
Default: sin establecer, por lo que ningún servidor se bloquea; una matriz vacía tampoco bloquea nada
Apague los conectores MCP de claude.aique Claude Code obtiene por sí mismo, por lo que ni los obtiene ni se conecta a ellos. Un true en cualquier archivo de configuración se aplica: un .claude/settings.json de proyecto registrado puede optar por un repositorio fuera de esos conectores, pero un false a nivel de proyecto no puede anular un true a nivel de usuario o administrado.
true: Claude Code ni obtiene ni conecta esos conectores
false: lo mismo que sin establecer; Claude Code obtiene sus conectores a menos que otro archivo de configuración o ENABLE_CLAUDEAI_MCP_SERVERS los apague
Default: false, por lo que Claude Code obtiene sus conectores
Per-session overrides: ENABLE_CLAUDEAI_MCP_SERVERS establecido en false apaga los conectores durante una sesión; cualquiera de los dos que los apague, el otro no puede volver a encenderlos
{"disableClaudeAiConnectors": true
}
Los servidores que pasa explícitamente con --mcp-config no se ven afectados. Para bloquear conectores individuales en lugar de todos ellos, use deniedMcpServers. Consulte Deshabilitar conectores de claude.ai.
`disabledMcpjsonServers`
Rechace servidores específicos definidos en el archivo .mcp.json de un proyecto para que Claude Code nunca se conecte a ellos ni le pida que los apruebe. Un rechazo en cualquier archivo de configuración se aplica, incluido un .claude/settings.json de proyecto registrado en el repositorio.
Type: matriz de cadenas, los nombres de servidor tal como aparecen en .mcp.json
Default: sin establecer
{"disabledMcpjsonServers": ["filesystem"]}
Claude Code escribe esta clave en .claude/settings.local.json cuando rechaza un servidor en el diálogo de aprobación. claude mcp get <name> muestra un servidor rechazado como ✘ Rejected (see disabledMcpjsonServers in settings). El rechazo tiene prioridad sobre enabledMcpjsonServers y enableAllProjectMcpServers.
`enableAllProjectMcpServers`
Apruebe cada servidor MCP definido en archivos .mcp.json de proyecto sin un aviso. Claude Code escribe esta clave en .claude/settings.local.json cuando elige aprobar todos los servidores en el diálogo de aprobación.
Scope: Any file. En una carpeta cuyo diálogo de confianza no ha aceptado, Claude Code lo honra desde la configuración de usuario, la configuración administrada y --settings e lo ignora en el archivo de proyecto compartido, tanto en la sesión como para claude mcp list y claude mcp get; Aprobaciones de servidores de proyecto y confianza del espacio de trabajo dice cuándo cuenta también un .claude/settings.local.json sin seguimiento.
Type: Boolean
true: Claude Code aprueba cada servidor MCP definido en archivos .mcp.json de proyecto sin un aviso
false: Claude Code le pide que apruebe cada servidor. En una carpeta de confianza, un false en un archivo de mayor precedencia anula un true en uno inferior; en una carpeta que no ha confiado, un true en cualquier archivo honrado es suficiente
Default: sin establecer, por lo que Claude Code le pide que apruebe cada servidor
Apruebe servidores específicos definidos en archivos .mcp.json de proyecto para que Claude Code se conecte a ellos sin preguntar. Claude Code escribe esta clave en .claude/settings.local.json cuando aprueba un servidor en el diálogo de aprobación.
Scope: Any file. En una carpeta cuyo diálogo de confianza no ha aceptado, Claude Code lo honra desde la configuración de usuario, la configuración administrada y --settings e lo ignora en el archivo de proyecto compartido, tanto en la sesión como para claude mcp list y claude mcp get; Aprobaciones de servidores de proyecto y confianza del espacio de trabajo dice cuándo cuenta también un .claude/settings.local.json sin seguimiento.
Type: matriz de cadenas, los nombres de servidor tal como aparecen en .mcp.json
Default: sin establecer
Este ejemplo aprueba los servidores memory y github del .mcp.json del proyecto:
Proporcione servidores MCP remotos a cada usuario desde la configuración administrada. Los usuarios mantienen los servidores que agregan por sí mismos y no pueden editar ni eliminar los que proporciona. Requiere Claude Code v2.1.259 o posterior.
Scope: Managed. Claude Code descarta la clave con una advertencia en la configuración de usuario, proyecto y local, y no la lee en la pestaña Code de la aplicación Claude Desktop en una implementación de terceros o en las sesiones Cowork de la aplicación, donde Claude Desktop proporciona y bloquea los servidores MCP de esas sesiones.
Type: objeto con clave de nombre de servidor. Cada entrada tiene la forma .mcp.json para un servidor http o sse: una urlhttps:// requerida y opcionalmente headers, oauth y las otras opciones HTTP y SSE. Claude Code descarta las entradas que fallan en la validación, y Lo que una entrada puede contener enumera las condiciones
Default: sin establecer, por lo que la configuración administrada no proporciona servidores
Este ejemplo proporciona un servidor HTTP denominado search:
Establezca el agente predeterminado, controle a los compañeros de equipo y la mensajería entre sesiones, y configure worktrees. Consulte Subagentes y Worktrees.
`agent`
Ejecute el hilo principal como un subagente nombrado, de modo que Claude Code aplique el prompt del sistema, las restricciones de herramientas y el modelo de ese subagente a su sesión. La misma clave establece el agente predeterminado para las sesiones que distribuye desde claude agents.
Elija qué hace esta sesión con mensajes que llegan desde sus otras sesiones de Claude Code. Cuando no se aplica ningún valor, Claude Code decide por mensaje según las clases de modo de permisos de las dos sesiones. Requiere Claude Code v2.1.224 o posterior.
Alcance: Cualquier archivo. Un valor de proyecto o local se aplica solo cuando es más estricto que el valor de configuración administrada, la bandera --settings o la configuración del usuario proporcionan.
Tipo: cadena, una de:
"accept": Claude Code entrega el mensaje a Claude
"hold": Claude Code muestra un aviso para el mensaje sin entregarlo
"refuse": Claude Code descarta el mensaje
Predeterminado: sin establecer, por lo que Claude Code decide por mensaje
{"crossSessionInbound": "hold"}
Claude Code lee primero la configuración administrada, luego la bandera --settings, luego la configuración del usuario, y aplica el primer valor encontrado. refuse es más estricto que hold, y hold es más estricto que accept. Cuando ninguna de las fuentes confiables establece un valor, un hold o refuse de proyecto o local aún se aplica, reemplazando el predeterminado por mensaje. En sesiones con mensajería entre sesiones, esta clave aparece en /config como Mensajes de sus otras sesiones, que la escribe en la configuración del usuario; la fila requiere Claude Code v2.1.232 o posterior, y Claude Code la oculta mientras la bandera --settings o la configuración administrada establezcan la clave.
Claude Code advierte cuando establece un valor que no reconoce. Mientras ese valor esté presente en un archivo de usuario, proyecto, local o --settings, Claude Code retiene los mensajes entrantes, incluso cuando una fuente que tiene prioridad establece accept. Un refuse que otra fuente establece aún se aplica. Corrija o elimine el valor para borrar la retención.
Cuando el valor no reconocido está en configuración administrada, Claude Code en su lugar lo trata como refuse hasta que un administrador lo corrija. Antes de v2.1.248, Claude Code ignoraba un valor no reconocido sin advertencia.
true: Claude Code desactiva claude agents, --bg, /background y el supervisor bajo demanda
false: la vista de agentes está disponible
Predeterminado: sin establecer, por lo que la vista de agentes está disponible
Anulaciones por sesión: CLAUDE_CODE_DISABLE_AGENT_VIEW desactiva la vista de agentes para una sesión; cualquiera de los dos que la desactive, el otro no puede volver a activarla
Alcance: Cualquier archivo. Un true de cualquier alcance se aplica, por lo que un archivo de proyecto registrado puede activar el requisito pero no desactivarlo.
Tipo: Booleano
true: Claude Code solicita su aprobación antes de que SendMessage de Claude llegue a una de sus sesiones más allá de esta máquina
false: los mensajes entre máquinas no generan aviso
Predeterminado: sin establecer, por lo que los mensajes entre máquinas no generan aviso
{"isolatePeerMachines": true
}
La aprobación de SendMessage entre máquinas requiere Claude Code v2.1.224 o posterior.
`processWrapper`
En macOS y Linux, coloque un comando de iniciador corporativo delante de los procesos de fondo que inicia Claude Code. Claude Code ejecuta el iniciador con su propia línea de comandos anexada, por lo que el iniciador debe ejecutarse en Claude Code; consulte Ejecute Claude Code detrás de un iniciador corporativo para el contrato del iniciador. Requiere Claude Code v2.1.210 o posterior.
Claude Code ignora el iniciador en Windows e inicia cada proceso sin envolver. Requiere Claude Code v2.1.210 o posterior.
`teammateMode`
Elija dónde Claude Code muestra los compañeros de equipo del equipo de agentes: dentro de su panel de terminal principal, o en paneles divididos cuando su terminal los admita. Consulte Elija un modo de visualización.
Alcance: Cualquier archivo. Claude Code también lee un valor dejado en ~/.claude.json por versiones anteriores.
Tipo: cadena, una de:
"in-process": los compañeros de equipo se ejecutan dentro de su panel de terminal principal
"auto": paneles divididos cuando se ejecuta dentro de tmux, o dentro de iTerm2 con it2 en su PATH o tmux instalado; en proceso de lo contrario
"tmux": paneles divididos usando tmux o iTerm2, detectados desde su terminal
"iterm2": paneles divididos nativos de iTerm2 a través de la CLI it2
Predeterminado: "in-process"
Anulaciones por sesión: --teammate-mode tiene prioridad sobre esta clave para una sesión
{"teammateMode": "auto"}
`worktree`
Configure cómo Claude Code crea y administra git worktrees para --worktree, la herramienta EnterWorktree y subagentes aislados y sesiones de fondo.
Para copiar archivos ignorados por git como .env en nuevos worktrees, agregue un archivo .worktreeinclude a la raíz de su proyecto en lugar de una configuración.
`worktree.baseRef`
Elija desde qué ref se ramifican los nuevos worktrees. "fresh" se ramifica desde origin/<default-branch> para un árbol limpio que coincida con el remoto; "head" se ramifica desde su HEAD local actual, por lo que los commits no enviados y el estado de la rama de características están presentes en el worktree.
Extraiga solo los directorios listados en cada worktree a través de git sparse-checkout. Claude Code escribe solo esos directorios más archivos de nivel raíz en el disco, lo que es más rápido en monorepos grandes; consulte Extraiga solo los directorios que necesita.
Mientras existe un worktree disperso, git habilita extensions.worktreeConfig en el .git/config compartido del repositorio.
`worktree.bgIsolation`
Elige cómo las sesiones en segundo plano aíslan sus ediciones de archivos. Si moviste una sesión a segundo plano con ← o /background, esa sesión edita los archivos en su lugar sin importar lo que diga esta clave. Con "worktree", Claude Code bloquea Edit y Write en la extracción principal hasta que la sesión llame a EnterWorktree; con "none", los trabajos en segundo plano editan la copia de trabajo directamente. Establece "none" para un repositorio donde los git worktrees no son prácticos.
"worktree": Claude Code bloquea Edit y Write en la extracción principal hasta que la sesión llame a EnterWorktree
"none": los trabajos de fondo editan la copia de trabajo directamente
Predeterminado: "worktree"
{"worktree": {"bgIsolation": "none"}}
Fuera de un repositorio git, un hook WorktreeCreate que falla libera el bloqueo para que la sesión pueda editar el directorio de trabajo en su lugar; esa liberación requiere Claude Code v2.1.203 o posterior.
Control remoto, escritorio y notificaciones
Configure el Control remoto, los entornos en la nube, la aplicación de escritorio y las notificaciones que Claude Code envía cuando lo necesita. Consulte Control remoto.
`agentPushNotifEnabled`
Permita que Claude envíe una notificación push a su teléfono cuando decida que vale la pena enviarla, por ejemplo cuando finaliza una tarea larga. Claude Code sincroniza esta opción con su cuenta, y las notificaciones llegan mientras Control remoto está conectado. Aparece en /config como Enviar notificación cuando Claude lo decida.
Scope: Any file. Claude Code también lee un valor dejado en ~/.claude.json por versiones anteriores.
Type: Boolean
true: Claude puede enviar una notificación push a su teléfono cuando decida que vale la pena enviarla
Muestre un resumen de sesión de una línea cuando regrese a la terminal después de estar ausente unos minutos. Establézcalo en false, o desactive Resumen de sesión en /config, para detener el resumen.
true: ve un resumen de sesión de una línea cuando regresa después de estar ausente unos minutos
false: Claude Code no muestra ningún resumen
Default: unset, por lo que el resumen está activado
Per-session overrides: CLAUDE_CODE_ENABLE_AWAY_SUMMARY tiene prioridad sobre esta clave para una sesión, en cualquier dirección
{"awaySummaryEnabled": false
}
Claude Code nunca muestra el resumen en modo no interactivo.
`disableArtifact`
Use enableArtifact en su lugar para desactivar la herramienta Artifact, que publica la salida de la sesión como una página web privada en claude.ai. Cuando desactiva la fila Artifacts en /config, Claude Code escribe enableArtifact en su configuración de usuario y borra esta clave.
Impida que Claude Code registre el controlador del protocolo claude-cli:// con el sistema operativo, que de otro modo hace después de enviar el primer prompt de una sesión interactiva. Los enlaces profundos permiten que herramientas externas abran una sesión de Claude Code con un prompt rellenado previamente. Establézcalo en entornos donde el registro del controlador de protocolo está restringido o se gestiona por separado.
Default: unset, por lo que Claude Code registra el controlador
{"disableDeepLinkRegistration": "disable"}
`disableDesktopLocalSessions`
Desactive las sesiones de Code que se ejecutan en el dispositivo en la aplicación de escritorio, para implementaciones donde los desarrolladores deben trabajar en máquinas remotas a través de SSH. En la pestaña Code, el entorno Local permanece en el menú desplegable de entornos pero está atenuado y no se puede seleccionar, con una información sobre herramientas que dice que su organización lo desactivó; en Windows, la entrada WSL está atenuada de la misma manera, aunque si las sesiones WSL se ejecutan en un dispositivo administrado o no se rige por separado. Las nuevas sesiones tienen como valor predeterminado la primera conexión SSH si una está configurada, y la aplicación se niega a iniciar o reanudar una sesión en el dispositivo, incluida una conexión SSH de vuelta a la misma máquina. Las sesiones SSH a otros hosts y las sesiones en la nube no se ven afectadas. La aplicación de escritorio lee esta clave; la CLI del terminal la ignora. Requiere Claude Desktop v1.37937.0 o posterior.
Type: Boolean; solo el Boolean JSON true tiene efecto
true: la aplicación de escritorio no ofrece sesiones de Code en el dispositivo; las sesiones locales existentes permanecen listadas pero no pueden continuar
false: las sesiones locales permanecen disponibles
Default: unset, por lo que las sesiones locales están disponibles
{"disableDesktopLocalSessions": true
}
La aplicación de escritorio ignora cualquier otro valor, y un valor que no sea un Boolean, como la cadena "true" o 1, también registra una advertencia. Emparéjelo con sshConfigs para que los usuarios lleguen a una conexión que funcione, y con sshHostAllowlist para limitar a qué hosts pueden acceder. Consulte Sesiones locales en dispositivos administrados.
Claude Desktop proporciona sesiones de Code con política derivada de su configuración de escritorio, por ejemplo la lista de permitidos de salida, el sandbox del sistema de archivos y las restricciones de MCP en implementaciones de terceros. Claude Code ignora esa configuración principal siempre que haya una fuente de administrador: configuración administrada por servidor, una política de MDM o a nivel del SO, o un archivo de configuración administrada. Implementar esta clave a través de una de esas en un dispositivo que no tenía ninguna antes, como en implementaciones de terceros, por lo tanto detiene la aplicación de las políticas derivadas del escritorio. Permitir que un host de inserción agregue política cubre cuándo la configuración principal aún puede fusionarse; esto se aplica a cualquier clave que implemente de esa manera, no solo a esta.
`disableRemoteControl`
Desactive Control remoto: Claude Code entonces rechaza claude remote-control, la bandera --remote-control, el inicio automático y el conmutador en sesión, e informa que la política de su organización lo desactivó. Colóquelo en configuración administrada para la aplicación de políticas de MDM por dispositivo.
true: Claude Code rechaza claude remote-control, la bandera --remote-control, el inicio automático y el conmutador en sesión
false: Control remoto permanece disponible
Default: false
{"disableRemoteControl": true
}
`enableArtifact`
Desactive la herramienta Artifact, que publica la salida de la sesión como una página web privada en claude.ai. Cuando desactiva la fila Artifacts en /config, Claude Code escribe esta clave en su configuración de usuario, por lo que normalmente no la edita a mano. Requiere Claude Code v2.1.196 o posterior.
Scope: Any file. Cada archivo puede desactivar la herramienta, y ninguno puede volver a activarla.
Type: Boolean
false: Claude Code desactiva la herramienta Artifact para cada sesión a la que se aplique el archivo
Default: unset, por lo que la herramienta sigue la disponibilidad de su cuenta
{"enableArtifact": false
}
Mientras una fuente que no sea su propia configuración de usuario mantiene la herramienta desactivada, Claude Code oculta la fila Artifacts en /config, porque activarla allí no cambiaría nada. Desactivar artefactos enumera todas las formas de desactivar la herramienta.
`inputNeededNotifEnabled`
Obtenga una notificación push en su teléfono cuando un prompt de permiso o una pregunta esté esperando su entrada. Claude Code envía estas solo mientras Control remoto está conectado. Aparece en /config como Enviar notificación cuando se requieran acciones.
Scope: Any file. Claude Code también lee un valor dejado en ~/.claude.json por versiones anteriores.
Type: Boolean
true: obtiene una notificación push en su teléfono cuando un prompt de permiso o una pregunta está esperando, mientras Control remoto está conectado
Elija cómo Claude Code lo notifica cuando una tarea se completa o un prompt de permiso está esperando. Aparece en /config como Notificaciones locales.
Scope: Any file. Claude Code también lee un valor dejado en ~/.claude.json por versiones anteriores.
Type: cadena, una de:
"auto": Claude Code envía una notificación de escritorio en iTerm2, Ghostty y Kitty, suena la campana en Terminal.app solo cuando su campana audible está desactivada, y no hace nada en otros lugares
"terminal_bell": Claude Code suena el carácter de campana en cualquier terminal
"iterm2": Claude Code envía una notificación de escritorio de iTerm2
"iterm2_with_bell": Claude Code envía una notificación de escritorio de iTerm2 y suena la campana
"kitty": Claude Code envía una notificación de escritorio de Kitty
"ghostty": Claude Code envía una notificación de escritorio de Ghostty
"notifications_disabled": Claude Code no envía notificación
Default: "auto"
{"preferredNotifChannel": "terminal_bell"}
Con "auto", Claude Code envía una notificación de escritorio en iTerm2, Ghostty y Kitty. En Terminal.app suena el carácter de campana solo cuando ha desactivado la campana audible de Terminal, y en otros terminales no hace nada. Establezca "terminal_bell" para sonar el carácter de campana en cualquier terminal. Consulte Obtener una campana de terminal o notificación.
`remote.defaultEnvironmentId`
Elija el entorno en la nube predeterminado para las sesiones en la nube que crea desde la CLI, como con claude --cloud. Claude Code escribe esta clave en su configuración de usuario cuando elige un entorno con /remote-env.
Scope: Any file. Para un ID de entorno autohospedado, configuración de usuario o administrada, o la bandera --settings solo.
Type: cadena, un ID de entorno como env_... o ccpool_...
Default: unset, por lo que Claude Code usa el entorno alojado por Anthropic cuando su lista tiene uno, y de lo contrario el primer entorno en su lista que no sea un entorno puente de Control remoto, o el primer entorno cuando todos son entornos puente
Per-session overrides: --environment tiene prioridad sobre esta clave para la sesión en la nube que crea
Un ID de entorno alojado por Anthropic, que comienza con env_, sigue la precedencia de configuración estándar, por lo que un valor en la configuración del proyecto de un repositorio anula su selección a nivel de usuario. Un ID de entorno autohospedado, que comienza con ccpool_, se honra solo desde la configuración de usuario, la configuración administrada y la bandera --settings; Claude Code ignora uno en la configuración de proyecto o local de un repositorio, y /remote-env muestra qué valor ignoró, por lo que un archivo registrado no puede dirigir sesiones a un entorno autohospedado que no eligió.
`remoteControlAtStartup`
Conecte Control remoto automáticamente cuando cada sesión interactiva comienza, en lugar de esperar /remote-control. Establézcalo en true para activar la conexión automática, false para desactivarla. Aparece en /config como Habilitar Control remoto para todas las sesiones.
Scope: Any file. Claude Code también lee un valor dejado en ~/.claude.json por versiones anteriores.
Type: Boolean
true: Claude Code conecta Control remoto automáticamente cuando cada sesión interactiva comienza
Per-session overrides: --remote-control activa Control remoto para una sesión incluso cuando esta clave es false, y ninguna bandera la desactiva para una sesión
Agregue conexiones SSH al menú desplegable del entorno Desktop. Los administradores lo usan para distribuir conexiones compartidas a un equipo. Las conexiones que define en la configuración administrada se muestran como administradas, por lo que los usuarios pueden seleccionarlas pero no pueden editarlas ni eliminarlas en la aplicación.
Scope: User or managed. La aplicación de escritorio lee esta clave.
Type: matriz de objetos, cada uno con id, name y sshHost requeridos y sshPort y sshIdentityFile opcionales
Default: unset
Este ejemplo agrega una conexión llamada Dev VM que se conecta a user@dev.example.com:
Limite los hosts a los que una sesión SSH de Desktop puede conectarse. Solo la aplicación de escritorio lee esta clave; la CLI no. Los patrones no distinguen mayúsculas de minúsculas: * coincide con cualquier host, *.example.com coincide con example.com y cada subdominio, y cualquier otra cosa es una coincidencia exacta contra el nombre de host después de la resolución de ~/.ssh/config. Una matriz vacía desactiva las sesiones SSH.
Proporciona credenciales a través de scripts auxiliares y, para organizaciones, fuerza un método de inicio de sesión u organización. Consulta Autenticación.
`allowedProviders`
Enumera los servicios a través de los cuales una máquina puede acceder a Claude, como la API de Anthropic, Amazon Bedrock o un gateway de LLM. Una sesión en un proveedor que no está en la lista se rechaza al inicio, al iniciar sesión y la próxima vez que contacta con la API, por lo que cambiar a un proveedor no listado a mitad de sesión también se rechaza. El mensaje de rechazo indica qué seleccionó el proveedor y los pasos para continuar. Requiere Claude Code v2.1.285 o posterior.
Scope: Managed. Una lista que establecen las fuentes de administrador propias de la máquina, las políticas MDM y los archivos de configuración administrada, sigue aplicándose cuando la configuración administrada por servidor también entrega una: una sesión puede entonces usar solo los proveedores que figuran en ambas listas, por lo que una lista administrada por servidor puede reducir lo que la máquina permite pero nunca ampliarlo. Qué allowedProviders de las fuentes de la máquina cuenta sigue cómo Claude Code combina las fuentes administradas. Una lista entregada solo a través de la configuración administrada por servidor llega únicamente a las sesiones que obtienen la configuración administrada por servidor.
Type: matriz de strings, cada uno de:
"anthropic": la API de Anthropic en el host propio de Anthropic, a través de un inicio de sesión de claude.ai o Console o una clave de API. Combínalo con forceLoginMethod o forceLoginOrgUUID para restringir también el inicio de sesión
"customEndpoint": la API de Anthropic o la API de un proveedor en la nube enviada a otro host, como un gateway de LLM indicado por ANTHROPIC_BASE_URL o por la variable de endpoint de un proveedor, como ANTHROPIC_BEDROCK_BASE_URL. Claude Code lo admite solo para el valor exacto que fija un bloque env administrado
Default: sin establecer, por lo que se puede usar cualquier proveedor
{"allowedProviders": ["anthropic", "bedrock"]}
La entrada de cada proveedor en la nube significa el servicio propio de ese proveedor, incluidos sus endpoints regionales, FIPS y privados.
Una entrada que Claude Code no reconoce como nombre de proveedor se descarta y se informa, y el resto de la lista se sigue aplicando. Con una lista vacía, o una en la que ninguna entrada se reconoce, Claude Code rechaza todos los proveedores y no se inicia en la máquina.
Endpoints que necesitan un valor fijado en `env` administrado
Un valor fijado es el valor de una variable de endpoint establecido en un bloque env administrado. Cuando una sesión envía el tráfico de un proveedor a algún lugar distinto del servicio propio de ese proveedor, Claude Code lo admite solo si el valor de la sesión coincide con el valor fijado. Estos endpoints necesitan uno:
Sesiones "customEndpoint": la variable que indica el host, como ANTHROPIC_BASE_URL
Amazon Bedrock: las variables AWS_ENDPOINT_URL, AWS_ENDPOINT_URL_BEDROCK y AWS_ENDPOINT_URL_BEDROCK_RUNTIME del SDK de AWS cuando apuntan fuera del servicio propio de Bedrock. La sesión permanece bajo "bedrock" en lugar de "customEndpoint"
La URL de un inicio de sesión de gateway: la sesión permanece bajo "gateway", y forceLoginGatewayUrl también cuenta como valor fijado
Qué bloques env cuentan como valores fijados depende de dónde se establezca la lista:
Una fuente de administrador en la máquina establece una lista: solo cuentan los bloques env de las fuentes de administrador propias de la máquina
Solo la configuración administrada por servidor establece una lista: un valor de env en esa configuración administrada por servidor también cuenta
La lista no evalúa las variables de credenciales y tenencia de un proveedor en la nube ni la ruta de red, como HTTPS_PROXY y la configuración de certificados. Establécelas para toda la flota en el bloque env administrado.
`apiKeyHelper`
Ejecuta tu propio comando para producir la credencial que Claude Code envía con las solicitudes al modelo. Claude Code ejecuta el comando a través del shell del sistema, /bin/sh en macOS y Linux y cmd en Windows, y envía su salida como encabezados X-Api-Key y Authorization: Bearer. Úsalo para credenciales dinámicas o rotativas, como tokens de corta duración obtenidos de un almacén.
Cuando una solicitud a la API de Anthropic, directamente o a través de un gateway de LLM, falla con 401 o 403.
Antes de enviar una solicitud a la API de Anthropic, directamente o a través de un gateway de LLM, cuando la salida almacenada en caché es un JWT que expiró después de que el auxiliar lo produjo. Requiere Claude Code v2.1.246 o posterior.
Los dos últimos casos se aplican solo cuando la salida del auxiliar es la credencial que Claude Code envía y ANTHROPIC_AUTH_TOKEN no está establecido.
En sesiones interactivas, cuando el comando proviene de la configuración del proyecto o local, Claude Code no lo ejecuta hasta que aceptes la solicitud de confianza del espacio de trabajo. Consulta Gestión de credenciales.
`awsAuthRefresh`
Ejecuta tu propio comando, como aws sso login, para actualizar las credenciales de tu directorio .aws cuando las que Claude Code tiene para Amazon Bedrock dejen de funcionar. Claude Code verifica primero las credenciales actuales contra STS y ejecuta el comando solo cuando esa verificación falla; luego lee el directorio .aws actualizado.
Cuando la verificación falla al mismo tiempo en varios procesos de Claude Code que usan el mismo comando y las mismas credenciales, como terminales o ventanas del IDE separadas, un proceso ejecuta el comando y los demás esperan a esa ejecución en lugar de iniciar la suya. Un proceso que ha esperado 60 segundos con una solicitud pendiente ejecuta el comando por sí mismo. Para desactivar esto, establece CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK en 1.
Ejecuta tu propio comando que imprima credenciales de AWS como JSON, para que Claude Code pueda llamar a Amazon Bedrock con credenciales que no están en tu directorio .aws. Claude Code acepta el formato de salida de aws sts y el formato plano de aws configure export-credentials, y limita las credenciales a su propio cliente de Bedrock, por lo que los comandos del shell que ejecuta Claude siguen viendo tus credenciales del entorno.
Restringe el tipo de cuenta con el que las personas pueden iniciar sesión. Establece "claudeai" para permitir solo cuentas de claude.ai, "console" para permitir solo cuentas de Claude Console, o "gateway" para enviar a las personas a un cloud gateway en lugar de un inicio de sesión propio de Anthropic. Los administradores lo establecen en la configuración administrada y lo combinan con forceLoginOrgUUID para mantener los inicios de sesión de claude.ai de los desarrolladores dentro de una organización. Si lo estableces en "claudeai" o "console" en cualquier archivo de configuración, Claude Code también deja de ofrecer el inicio de sesión en Console sin clave en las sesiones a las que se aplica ese archivo.
Scope: Any file. Claude Code respeta "gateway" solo desde una fuente administrada en la máquina: managed-settings.json, el plist de macOS o el registro HKLM de Windows, o un auxiliar de políticas. Trata "gateway" como sin establecer en la configuración de usuario, de proyecto, local, HKCU y administrada por servidor, la misma regla que forceLoginGatewayUrl.
Type: string, uno de:
"claudeai": solo las cuentas de claude.ai pueden iniciar sesión
"console": solo las cuentas de Claude Console pueden iniciar sesión
"gateway": Claude Code envía a las personas a un cloud gateway en lugar de un inicio de sesión propio de Anthropic
Default: sin establecer, por lo que las personas eligen un método de inicio de sesión
{"forceLoginMethod": "claudeai"}
Todas las vías de inicio de sesión propias de Anthropic aplican la restricción, incluidas la extensión de VS Code, el Agent SDK, claude setup-token e /install-github-app, excepto la pantalla de inicio de sesión interactiva de la terminal, a la que se llega con /login o con la configuración inicial de la primera ejecución, que preselecciona el método sin imponerlo. Antes de v2.1.212, solo los inicios de sesión de la terminal lo aplicaban. Consulta Restringir el inicio de sesión a tu organización para ver cómo se manejan cada vía de inicio de sesión, las credenciales del entorno y los proveedores de terceros.
Cuando una fuente administrada en la máquina establece "gateway", Claude Code no usa un inicio de sesión previo que haya quedado, una clave de API ni una credencial de apiKeyHelper. Consulta La política del administrador requiere un inicio de sesión en Cloud gateway para ver el mensaje que produce cada uno. Si seleccionas un proveedor en la nube mediante CLAUDE_CODE_USE_BEDROCK o una variable de entorno similar, la sesión no necesita el inicio de sesión en el gateway. Antes de v2.1.261, Claude Code usaba un inicio de sesión previo que hubiera quedado en estas máquinas.
`forceLoginGatewayUrl`
Establece la URL del gateway a la que se conecta la pantalla Cloud gateway de /login, para que las personas lleguen a tu cloud gateway sin escribir su dirección. La pantalla no tiene un campo de URL: con esta clave establecida, muestra la URL de tu gateway y se conecta cuando la persona presiona Intro; sin ella, le indica que se comunique con su administrador de TI.
Esta clave o forceLoginMethod: "gateway" hace que la máquina sea solo de gateway, excepto para las sesiones que seleccionen un proveedor en la nube con CLAUDE_CODE_USE_*. /login entonces se abre en la pantalla Cloud gateway sin selector de método de inicio de sesión. Consulta La política del administrador requiere un inicio de sesión en Cloud gateway para ver qué sucede con un inicio de sesión propio de Anthropic que haya quedado o con una clave de API. Establece ambas claves para que la pantalla se conecte en lugar de mostrar un error.
Scope: Managed. Se lee solo desde una fuente en la máquina: managed-settings.json, el plist de macOS o el registro HKLM de Windows, o un auxiliar de políticas. Claude Code lo ignora en la configuración HKCU y en la administrada por servidor.
Type: string, una URL completa que incluya el esquema
Default: sin establecer, por lo que la pantalla Cloud gateway muestra un error que indica a las personas que se comuniquen con su administrador de TI
Si el valor no es una URL válida, la pantalla de inicio de sesión lo informa, y el resto del archivo de configuración administrada sigue aplicándose. Consulta Establecer la URL del gateway.
`forceLoginOrgUUID`
Desde una fuente administrada, exige que los inicios de sesión con cuentas de claude.ai pertenezcan a una organización de Anthropic, indicada como un único UUID, o a cualquiera de varias organizaciones, indicadas como una matriz. Desde cualquier archivo de configuración, Claude Code también usa un único UUID para preseleccionar esa organización durante un inicio de sesión en claude.ai o Claude Console, y no preselecciona nada si es una matriz. Si estableces la clave en cualquier archivo de configuración, Claude Code también deja de ofrecer el inicio de sesión en Console sin clave en las sesiones a las que se aplica ese archivo y, en su lugar, crea una clave de API.
Scope: Any file. Solo una fuente administrada impone la restricción; un único UUID en cualquier otro archivo de configuración preselecciona la organización durante el inicio de sesión sin restringirla.
Type: string, un UUID, o matriz de strings, varios UUID
Default: sin establecer, por lo que cualquier organización puede iniciar sesión
Este ejemplo acepta inicios de sesión de cualquiera de dos organizaciones sin preseleccionar ninguna:
Si una fuente administrada establece una matriz vacía, o un valor que Claude Code no puede analizar, Claude Code bloquea todos los inicios de sesión con un mensaje de configuración incorrecta.
Consulta Restringir el inicio de sesión a tu organización para ver cómo trata Claude Code los inicios de sesión de Claude Console, las demás vías de inicio de sesión y las credenciales del entorno.
`gatewayInternalNetworks`
Declara los bloques IPv4 públicos a partir de los cuales tu organización numera su red interna, para que /login acepte un cloud gateway en ellos. Requiere Claude Code v2.1.268 o posterior.
Sin esta clave, /login se conecta a cualquier gateway en una dirección privada y a nada más. Con ella, /login también acepta un gateway dentro de un bloque de la lista, solo a través de una conexión directa. La dirección propia de la máquina en esa conexión también debe estar dentro del mismo bloque.
Scope: Managed. Se lee solo desde una fuente en la máquina: managed-settings.json, el plist de macOS o el registro HKLM de Windows, o un auxiliar de políticas. Claude Code lo ignora en la configuración HKCU y en la administrada por servidor.
Type: matriz de strings, como máximo cuatro bloques CIDR IPv4, cada uno de /8 a /32, sin superponerse entre sí y sin que ninguno se superponga con el espacio privado.
Default: sin establecer, por lo que /login acepta solo gateways en direcciones privadas
{"gatewayInternalNetworks": ["203.0.113.0/24"]}
Reemplaza el rango de documentación del ejemplo por tu propio bloque. Claude Code rechaza los rangos de documentación, los rangos que los clientes de VPN y NAT64 usan localmente y el espacio reservado a partir del cual no se numera ninguna red, como el de multidifusión.
Si una entrada no es válida, o el valor no es una lista de strings, /login indica el problema y rechaza todo nuevo inicio de sesión en un gateway en la máquina hasta que corrijas el valor. Los inicios de sesión existentes siguen funcionando. Consulta Permitir un gateway en espacio de direcciones públicas de tu propiedad para ver las reglas completas y lo que ven los desarrolladores.
`gcpAuthRefresh`
Ejecuta tu propio comando para actualizar las Application Default Credentials de Google Cloud cuando Claude Code detecte que han expirado o no se pueden cargar, para que las solicitudes a Agent Platform de Google Cloud sigan funcionando sin que tengas que volver a autenticarte manualmente.
Cuando varios procesos de Claude Code que usan el mismo comando y las mismas credenciales, como terminales o ventanas del IDE separadas, detectan al mismo tiempo que han expirado, un proceso ejecuta el comando y los demás esperan a esa ejecución en lugar de iniciar la suya. Un proceso que ha esperado 60 segundos con una solicitud pendiente ejecuta el comando por sí mismo. Para desactivar esto, establece CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK en 1.
Ejecuta tu propio comando para generar los encabezados que Claude Code envía con las exportaciones de OpenTelemetry, para backends cuyos tokens rotan. Claude Code lo ejecuta al inicio y periódicamente después, y espera un objeto JSON de valores de encabezado de tipo string en stdout.
Elija un canal de actualización y, para las organizaciones, fije las versiones que las personas pueden ejecutar. Consulte Actualizar Claude Code.
`autoUpdatesChannel`
Elija qué canal de lanzamiento siguen las actualizaciones automáticas en segundo plano y claude update. Establezca "stable" para una versión que típicamente tiene aproximadamente una semana de antigüedad y omite lanzamientos con regresiones importantes, o "latest" para el lanzamiento más reciente.
Alcance: Any file. Establézcalo en configuración administrada para aplicar un canal en toda su organización.
Tipo: cadena, uno de:
"latest": las actualizaciones siguen el lanzamiento más reciente
"stable": las actualizaciones siguen una versión que típicamente tiene aproximadamente una semana de antigüedad y omite lanzamientos con regresiones importantes
Predeterminado: sin establecer, por lo que Claude Code sigue "latest"
{"autoUpdatesChannel": "stable"}
Claude Code escribe "stable" en su configuración de usuario cuando lo elige en Auto-update channel en /config, y elimina la clave cuando vuelve a cambiar a latest allí. claude install stable y claude install latest también guardan el canal que nombre. Cambiar de "latest" a "stable" en /config pregunta si permitir una degradación o permanecer en su versión actual; permanecer establece minimumVersion. Las instalaciones de Homebrew ignoran esta clave: el cask claude-code rastrea stable y claude-code@latest rastrea latest, y claude update se remite a brew upgrade. Para desactivar las actualizaciones automáticas por completo, establezca DISABLE_AUTOUPDATER en env.
`minimumVersion`
Evite que las actualizaciones automáticas en segundo plano y claude update instalen cualquier versión inferior a esta, de modo que cambiar al canal "stable" no lo degrada desde una compilación "latest" más reciente. Claude Code escribe esta clave para usted cuando elige permanecer en su versión actual mientras cambia de canal en /config, y la borra cuando vuelve a cambiar a "latest".
Alcance: Any file. Establézcalo en configuración administrada para fijar un mínimo en toda la organización que la configuración de usuario y proyecto no pueda reducir.
Tipo: cadena, un número de versión como "2.1.100"; un valor que no sea una versión válida se ignora
Predeterminado: sin establecer, por lo que las actualizaciones pueden instalar cualquier versión que el canal ofrezca
Este ejemplo sigue el canal stable y se niega a instalar cualquier versión inferior a 2.1.100:
Esta clave solo restringe las actualizaciones. Para hacer que Claude Code se niegue a iniciarse por debajo de una versión, use requiredMinimumVersion en su lugar. Consulte Fijar una versión mínima.
`requiredMaximumVersion`
Establezca la versión más reciente de Claude Code que su organización permite iniciar. Cuando la versión en ejecución es más reciente, Claude Code se cierra al iniciarse y le dice al usuario que instale una versión aprobada a través del método aprobado de su organización; claude install <version> también puede funcionar. Requiere Claude Code v2.1.163 o posterior.
Alcance: Managed. Claude Code no da advertencia cuando ignora la clave en otro lugar.
Tipo: cadena, un número de versión como "2.1.150"; un valor que no sea una versión válida se ignora
Predeterminado: sin establecer, por lo que no se aplica límite superior
{"requiredMaximumVersion": "2.1.150"}
Las actualizaciones automáticas en segundo plano y claude update omiten versiones por encima del límite, por lo que una instalación dentro del rango permanece dentro de él. claude update, claude install y claude doctor continúan funcionando por encima del límite para que los usuarios puedan recuperarse. Emparéjelo con requiredMinimumVersion para aplicar un rango.
`requiredMinimumVersion`
Establezca la versión más antigua de Claude Code que su organización permite iniciar. Cuando la versión en ejecución es más antigua, Claude Code se cierra al iniciarse y le dice al usuario que actualice a través del método aprobado de su organización. La verificación se ejecuta solo al iniciarse, por lo que una sesión que ya se está ejecutando continúa. Requiere Claude Code v2.1.163 o posterior.
Alcance: Managed. Claude Code no da advertencia cuando ignora la clave en otro lugar.
Tipo: cadena, un número de versión como "2.1.150"; un valor que no sea una versión válida se ignora
Predeterminado: sin establecer, por lo que no se aplica límite inferior
{"requiredMinimumVersion": "2.1.150"}
claude update, claude install y claude doctor continúan funcionando por debajo del límite para que los usuarios puedan recuperarse. A diferencia de minimumVersion, que solo previene degradaciones, esta clave bloquea el inicio. Emparéjelo con requiredMaximumVersion para aplicar un rango.
Impida que Claude use sus herramientas para leer o actuar en páginas externas en el panel Navegador de la aplicación de escritorio. Las personas en su organización aún pueden abrir sitios externos por sí mismas, y las vistas previas del servidor de desarrollo local siguen funcionando con las herramientas de Claude. La aplicación de escritorio lee esta clave; la CLI de terminal la ignora.
Tipo: cadena, "disabled"; la aplicación de escritorio también acepta "disable", en cualquier caso
Predeterminado: sin establecer, por lo que las herramientas de Claude funcionan en páginas externas
{"browserExternalPageTools": "disabled"}
Cualquier otro valor deja las herramientas de Claude activadas, y una cadena no vacía que no sea uno de los dos valores aceptados registra una advertencia. Para bloquear sitios externos tanto para personas como para Claude, establezca disableBrowserExternalNavigation en su lugar. Consulte Restringir la navegación externa para su organización.
`disableBrowserExternalNavigation`
Desactive la navegación externa en el panel Navegador de la aplicación de escritorio tanto para personas como para Claude. Las vistas previas del servidor de desarrollo localhost siguen funcionando. La aplicación de escritorio lee esta clave; la CLI de terminal la ignora.
Tipo: Booleano; solo el Booleano JSON true tiene efecto
true: la aplicación de escritorio desactiva la navegación externa en el panel Navegador tanto para personas como para Claude; las vistas previas de localhost siguen funcionando
false: la navegación externa permanece activada
Predeterminado: sin establecer, por lo que la navegación externa está activada
{"disableBrowserExternalNavigation": true
}
La aplicación de escritorio ignora cualquier otro valor, y un valor que no sea un Booleano, como la cadena "true" o 1, también registra una advertencia. Para dejar la navegación externa activada pero mantener las herramientas de Claude desactivadas en páginas externas, establezca browserExternalPageTools en su lugar. Consulte Restringir la navegación externa para su organización.
`disableMobileSimulatorTools`
Bloquee las herramientas de Claude para el panel Simulador de iOS de la aplicación de escritorio. Las personas mantienen el uso manual del panel; solo se elimina el acceso de Claude, y nadie puede reactivarlo desde dentro de la aplicación. La aplicación de escritorio lee esta clave; la CLI de terminal la ignora.
Tipo: Booleano; solo el Booleano JSON true tiene efecto
true: la aplicación de escritorio bloquea las herramientas de Claude para el panel Simulador de iOS
false: las herramientas del simulador de Claude siguen la configuración de alternancia de cada persona en la aplicación de escritorio
Predeterminado: sin establecer, por lo que las herramientas del simulador de Claude siguen la configuración de alternancia de cada persona en la aplicación de escritorio
{"disableMobileSimulatorTools": true
}
La aplicación de escritorio ignora cualquier otro valor, y un valor que no sea un Booleano, como la cadena "true" o 1, también registra una advertencia.
Privacidad y telemetría
Controle cuánto tiempo Claude Code mantiene los datos de la sesión y qué envía. Los interruptores que desactivan las métricas de uso y los informes de errores son variables de entorno, no claves de configuración: establezca DISABLE_TELEMETRY, DISABLE_ERROR_REPORTING o CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC en la clave env o en el shell. Telemetry services dice qué desactiva cada uno. Dos excepciones se desactivan desde un archivo de configuración: feedbackDrafts a continuación para comentarios redactados por Claude, y feedbackSurveyRate a continuación para la encuesta de sesión.
`cleanupPeriodDays`
Establezca cuántos días Claude Code mantiene transcripciones de sesión y otros datos de aplicación antes de eliminarlos. Claude Code ejecuta la eliminación como un barrido de fondo después de que comienza una sesión, siempre que pueda determinar de forma segura el período de retención. El barrido elimina transcripciones sin mostrar un mensaje, por lo que una sesión que no ha utilizado durante más tiempo que el período de retención ya no aparece en el selector /resume.
Establecer 0 falla en la validación, así que elija un valor grande como 3650 para una retención prolongada. Para evitar que Claude Code escriba transcripciones en absoluto, consulte Plaintext storage.
`desktopSessionCleanupPeriodDays`
Establezca un límite de antigüedad en días para las transcripciones de sesiones que inició o continuó más recientemente en Claude Desktop o Cowork. Sin esta clave, Claude Code mantiene esas transcripciones a cualquier edad. Claude Code elimina cada una una vez que es más antigua que tanto este límite como cleanupPeriodDays, así que con cleanupPeriodDays en su valor predeterminado de 30, un valor de 7 aún las mantiene 30 días. Cuando la configuración administrada establece cleanupPeriodDays, ese período se aplica en su lugar y esta clave se ignora. Requiere Claude Code v2.1.248 o posterior.
Scope: User or managed. Claude Code también lee la clave de un archivo que pasa con --settings, e la ignora en la configuración de proyecto y local.
Type: número de días, un número entero, mínimo 0
Default: 0, que no establece límite de antigüedad
{"desktopSessionCleanupPeriodDays": 90
}
`feedbackDrafts`
Controle comentarios redactados por Claude: si Claude puede poner en cola borradores de comentarios para que usted revise, y si Claude Code muestra una tarjeta cuando Claude pone en cola uno.
"notify": Claude Code muestra una tarjeta encima del mensaje cuando Claude pone en cola un borrador, hasta tres tarjetas en una sesión de forma predeterminada
"quiet": Claude redacta sin una tarjeta. Usted ve el recuento de borradores en cola en el pie de página del mensaje y los revisa en /feedback
"off": Claude Code elimina la herramienta SendFeedback, por lo que Claude no puede poner en cola borradores
Default: "notify"
Per-session overrides: CLAUDE_CODE_SEND_FEEDBACK establecido en 0 desactiva la función para una sesión
{"feedbackDrafts": "quiet"}
Aparece en /config como Claude-drafted feedback, que escribe esta clave en su configuración de usuario. Usted ve la fila /config solo en sesiones donde Claude puede redactar comentarios; establecer "off" no la oculta, así que puede activar la función nuevamente desde la misma fila. Un valor en la configuración administrada tiene prioridad sobre su configuración de usuario, así que cuando un administrador establece esta clave, la fila muestra el valor administrado y cambiarla no tiene efecto. Claude Code ignora esta clave en la configuración de proyecto y local.
`feedbackSurveyRate`
Establezca la probabilidad de que la encuesta de calidad de sesión aparezca cuando una sesión sea elegible para ella. Establezca 0 para evitar que aparezca la encuesta.
Default: sin establecer, por lo que Claude Code utiliza la tasa que Anthropic establece de forma remota, o su tasa integrada de 0.005 en Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, que no reciben configuración remota
Per-session overrides: CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY establecido en 1 desactiva la encuesta para una sesión cualquiera que sea la tasa que esta clave establece
{"feedbackSurveyRate": 0.05
}
La misma tasa se aplica a la encuesta en la extensión de VS Code.
`skipWebFetchPreflight`
Omita la verificación de seguridad del dominio WebFetch, que envía cada nombre de host solicitado a api.anthropic.com antes de obtener. Establezca true en entornos que bloquean el tráfico a Anthropic, como Amazon Bedrock, Google Cloud's Agent Platform o implementaciones de Microsoft Foundry con salida restrictiva.
true: Claude Code omite la verificación de seguridad del dominio WebFetch
false: la verificación se ejecuta antes de la primera obtención de cada nombre de host en una sesión, y nuevamente para un nombre de host cuya verificación anterior fue bloqueada o falló
Default: sin establecer, por lo que la verificación se ejecuta antes de la primera obtención de cada nombre de host en una sesión
{"skipWebFetchPreflight": true
}
Con la verificación omitida, WebFetch intenta cualquier URL sin consultar la lista de bloqueos, así que emparéjela con reglas de permiso WebFetch si necesita restringir qué dominios puede alcanzar Claude.
Rechaza las banderas CLI --plugin-dir, --plugin-url, --agents y --mcp-config al iniciar, que los usuarios podrían pasar de otra manera para eludir strictKnownMarketplaces en una única ejecución. Claude Code sale con un error que nombra las banderas rechazadas. En sesiones en la nube, Claude Code inicia la sesión y descarta todas las entradas --mcp-config entregadas por el servidor excepto las entradas type: "sdk" en proceso y las herramientas de Slack de una sesión Claude Tag. Requiere Claude Code v2.1.193 o posterior.
true: Claude Code rechaza --plugin-dir, --plugin-url, --agents y --mcp-config al iniciar y sale con un error que los nombra. En sesiones en la nube, inicia la sesión y descarta todas las entradas --mcp-config entregadas por el servidor excepto las entradas type: "sdk" en proceso y las herramientas de Slack de una sesión Claude Tag
false: Claude Code acepta esas banderas
Predeterminado: false
{"disableSideloadFlags": true
}
Claude Code aún acepta un --mcp-config cuyos servidores son todas entradas type: "sdk" en proceso, por lo que el Agent SDK y la extensión de VS Code siguen funcionando. Los usuarios aún pueden agregar servidores con claude mcp add o un archivo .mcp.json; para control por servidor, establezca también allowedMcpServers. Requiere Claude Code v2.1.193 o posterior.
La misma verificación cubre carpetas de plugins nombradas en la variable de entorno CLAUDE_CODE_PLUGIN_DIRS, que requiere Claude Code v2.1.280 o posterior. Cuando la variable nombra una carpeta, Claude Code sale con el mismo error, y el error dice desactivar la variable.
En sesiones en la nube, Claude Code también ignora las actualizaciones MCP entregadas por el servidor a mitad de sesión, la ruta detrás de la configuración de sesión en la nube y las llamadas setMcpServers() del SDK que llegan a esas sesiones. Las entradas type: "sdk" en proceso y las herramientas de Slack de una sesión Claude Tag permanecen exentas allí también. Antes de v2.1.268, tanto este descarte como el descarte de inicio también eliminaban las herramientas de Slack de una sesión Claude Tag. Antes de v2.1.239, un --mcp-config entregado por el servidor bloqueaba el inicio de una sesión en la nube.
La aplicación de escritorio administra algunos plugins por sí misma, incluidos los plugins sincronizados desde claude.ai y los plugins que su organización implementa a través de la aplicación. Si implementa esta clave en un dispositivo a través de MDM, política a nivel del SO o un archivo de configuraciones administradas, la aplicación de escritorio no pasa esos plugins a las siguientes sesiones en ese dispositivo:
Sesiones de código en la máquina del usuario: también comienzan sin las habilidades habilitadas para la cuenta claude.ai del usuario. Los plugins que Claude Code instala desde mercados en sus configuraciones administradas aún se cargan. En Claude Desktop en 3P, los servidores MCP de los plugins que implementa en el directorio org-plugins del dispositivo permanecen disponibles también, porque la aplicación de escritorio se conecta a ellos misma. Antes de Claude Desktop v1.37937.0, estas sesiones fallaban al iniciar en su lugar.
Sesiones de Cowork en la máquina del usuario: las habilidades dentro de esos plugins y las habilidades habilitadas para la cuenta claude.ai del usuario permanecen disponibles. En Claude Desktop en 3P, los servidores MCP de los plugins que implementa en el directorio org-plugins del dispositivo permanecen disponibles también, porque la aplicación de escritorio se conecta a ellos misma. Antes de Claude Desktop v1.44121.0, estas sesiones fallaban al iniciar en su lugar.
`forceRemoteSettingsRefresh`
Bloquea el inicio de la CLI hasta que Claude Code haya obtenido recientemente configuraciones administradas por el servidor. Si la obtención falla, Claude Code sale en lugar de continuar con configuraciones en caché o sin configuraciones. Establézcalo cuando su entorno no pueda aceptar ni siquiera una breve ventana en la que una sesión se ejecute sin su política administrada.
Cuando la clave no está establecida, Claude Code no bloquea el inicio en la obtención, aunque cuando el desarrollador inicia sesión al iniciar espera hasta cinco segundos para la obtención. Una sesión de puerta de enlace en la nube siempre espera y sale si no se puede alcanzar la puerta de enlace.
Alcance: Managed. Claude Code honra un true de cualquier fuente administrada controlada por administrador, incluso una que no sea la fuente de mayor prioridad.
Tipo: Booleano
true: Claude Code bloquea el inicio hasta que haya obtenido recientemente configuraciones administradas por el servidor y sale si la obtención falla
false: Claude Code no bloquea el inicio en la obtención, aunque en un inicio de inicio de sesión espera hasta cinco segundos para la obtención
Predeterminado: false
{"forceRemoteSettingsRefresh": true
}
Establézcalo en un perfil MDM o el archivo de configuraciones administradas para aplicar el inicio cerrado por error antes de que llegue la primera carga útil del servidor. Claude Code aplica la verificación solo en sesiones que obtienen configuraciones administradas por el servidor, por lo que una sesión que no las obtiene se inicia sin esperar. Los subcomandos claude auth están exentos, por lo que los usuarios pueden volver a autenticarse cuando las credenciales caducadas son la razón por la que falla la obtención. Consulte Aplicar inicio cerrado por error.
`managedSourcesBehavior`
Elija si Claude Code aplica solo la fuente administrada de mayor prioridad que su organización entrega, o combina todas las fuentes de administrador que entrega. De forma predeterminada, Claude Code toma la fuente de mayor prioridad que lleva una clave de política e ignora el resto. Una clave de política es cualquier clave de configuraciones que no sea esta y wslInheritsWindowsSettings. Bajo ese predeterminado, una vez que las configuraciones administradas por el servidor o una política MDM entregan una clave de política, un archivo managed-settings.json contribuye solo con las claves que Claude Code lee de todas las fuentes de administrador. Con "merge", todas las fuentes de administrador que entrega contribuyen sus claves a una política combinada. Requiere Claude Code v2.1.242 o posterior.
Establezca "merge" solo donde todas las fuentes clasificadas por debajo de la más alta estén bajo el control de un administrador, porque Claude Code luego agrega entradas de una fuente inferior, como reglas permissions.allow, a la política.
Alcance: Managed. Claude Code lee esta clave de la fuente de mayor prioridad que lleva esta clave o una clave de política, e ignora esta clave en todas las fuentes clasificadas más bajas, por lo que una fuente inferior no puede optar por combinarse con la fuente anterior. Ni el registro HKCU de Windows ni configuraciones principales de un host de incrustación participan en la combinación.
"merge": todas las fuentes de administrador que entrega contribuyen sus claves, combinadas por las reglas a continuación
Predeterminado: "first-wins"
Entregue la clave en la fuente de mayor prioridad que implemente. Una máquina que nunca recibe configuraciones administradas por el servidor necesita la clave en su perfil MDM también, porque Claude Code lee la clave de la fuente de mayor prioridad que la lleva o una clave de política. Un archivo managed-settings.json es la fuente de administrador de menor rango, por lo que "merge" establecido allí no tiene una fuente inferior con la que combinar. En configuraciones administradas por el servidor, la clave se ve así:
{"managedSourcesBehavior": "merge"}
Bajo "merge", Claude Code combina cada clave por su tipo. Esta tabla proporciona la regla para cada tipo. Las filas de lista de restricciones, valores tomados completos y solo fuente más alta nombran todas las claves que cubren, y las otras filas dan ejemplos:
Aplica el valor más estricto que establece cualquier fuente. Cuando ninguna fuente establece un valor estricto, aplica un valor más flexible solo de la fuente más alta
Toma la lista completa de la fuente más alta que la establece, sin agregar entradas de fuentes inferiores. Cuando la fuente más alta no establece una, la toma completa de la siguiente fuente hacia abajo
Toma el valor completo de la fuente más alta que lo establece, sin combinar entradas o campos de fuentes inferiores. Cuando la fuente más alta no lo establece, lo toma completo de la siguiente fuente hacia abajo
Lee la clave solo de la fuente de mayor prioridad que lleva una clave de política, por lo que el valor de una fuente inferior se ignora incluso cuando la fuente más alta no establece ninguno
Tomar sandbox.credentials.awsPairs y sandbox.ripgrep completos requiere Claude Code v2.1.257 o posterior.
Algunas claves agregan una condición que la tabla no muestra:
policyHelper: Claude Code la honra solo cuando la fuente más alta que lleva una clave de política es una política MDM o un archivo de configuraciones administradas, por lo que bajo configuraciones administradas por el servidor no se aplica.
modelOverrides: se empareja con availableModels. Claude Code toma modelOverrides de la fuente más alta que lo establece, a menos que una fuente más alta establezca availableModels sin modelOverrides. En ese caso ignora modelOverrides de todas las fuentes.
forceLoginGatewayUrl, gatewayInternalNetworks y el valor "gateway" de forceLoginMethod: Claude Code nunca los lee de configuraciones administradas por el servidor, por lo que un valor allí ni se aplica ni oculta uno establecido en una política MDM o archivo de configuraciones administradas. Entre las fuentes de administrador en la máquina, solo la de mayor rango que lleva una clave de política los suministra, independientemente de si las configuraciones administradas por el servidor también están presentes.
allowedProviders: después de la regla de la tabla, la lista propia de la máquina aún limita el resultado, como su nota de Alcance de entrada indica.
Elija si Claude Code aplica configuraciones administradas suministradas por un proceso host de incrustación, como el Agent SDK o una extensión IDE, cuando también está presente un nivel administrado implementado por administrador. Con "first-wins", Claude Code descarta las configuraciones suministradas por el host; con "merge", las aplica bajo el nivel de administrador a través de un filtro restrictivo. Establezca "merge" cuando un host necesita pasar sus propias restricciones a las sesiones que inicia, por ejemplo Claude Desktop entregando una lista de permisos de salida de una puerta de enlace.
Alcance: Managed. Claude Code la lee de la fuente administrada controlada por administrador de mayor prioridad.
Tipo: cadena, una de:
"first-wins": Claude Code descarta las configuraciones suministradas por el host cuando está presente un nivel administrado implementado por administrador
"merge": Claude Code aplica las configuraciones suministradas por el host bajo el nivel de administrador a través de un filtro restrictivo
Predeterminado: "first-wins"
{"parentSettingsBehavior": "merge"}
Esta clave no tiene efecto cuando no existe un nivel administrado implementado por administrador: las configuraciones del host se aplican entonces como el único nivel administrado, aún filtradas a valores restrictivos. Para los límites del filtro y cómo interactúan las fuentes administradas, consulte Configuraciones principales de hosts de incrustación y Restringir configuraciones principales.
`policyHelper`
Ejecute un ejecutable que implemente que calcula configuraciones administradas al iniciar, para que pueda derivar política de postura de dispositivo, identidad o un servicio remoto en lugar de un archivo estático. Claude Code ejecuta el asistente antes de aceptar el primer mensaje y trata las configuraciones que emite como las configuraciones administradas para la sesión.
Alcance: Managed. Leer desde la plist de macOS, el registro HKLM de Windows o el archivo de configuraciones administradas. Claude Code lee la clave de la fuente administrada de mayor prioridad que lleva una clave de política y ejecuta el asistente solo cuando esa fuente es una de esas tres; ignora la clave en configuraciones administradas por el servidor, el registro HKCU y configuraciones principales suministradas por el host.
Tipo: objeto con path, timeoutMs y refreshIntervalMs
Predeterminado: no establecido, por lo que no se ejecuta ningún asistente
Cuando las configuraciones administradas por el servidor entregan la política al iniciar, tienen prioridad sobre la fuente del asistente y el asistente no se ejecuta.
Si una obtención de configuraciones posterior informa que las configuraciones administradas por el servidor se eliminaron, Claude Code ejecuta el asistente en ese punto en lugar de esperar al siguiente inicio. Su salida rige el resto de la sesión, y una ejecución que falla termina la sesión con el mismo mensaje que una ejecución de inicio fallida.
Este ejemplo ejecuta el asistente con un tiempo de espera de 5 segundos y lo vuelve a ejecutar cada cinco minutos:
Claude Code ejecuta el asistente sin argumentos, establece CLAUDE_CODE_VERSION en su entorno y lee un envoltorio JSON desde stdout, limitado a 1 MiB.
Ponga las configuraciones bajo una clave managedSettings. Un objeto de configuraciones desnudo sin clave managedSettings se analiza con managedSettings indefinido y no aplica nada, y Claude Code no informa ningún error:
Cuando el asistente emite managedSettings, ese objeto se convierte en la única fuente de configuraciones administradas para la ejecución: Claude Code ignora las fuentes MDM, archivo y HKCU, lee las claves entre fuentes solo de la salida del asistente y nunca combina configuraciones principales.
La verificación de inicio forceRemoteSettingsRefresh se ejecuta antes del asistente y lee cualquier fuente de administrador. Un asistente que sale con 0 con un envoltorio que omite managedSettings no contribuye configuraciones administradas, y las otras fuentes se aplican como de costumbre.
No hay un archivo regular en path. Claude Code verifica el archivo antes de iniciar el asistente, dentro del mismo presupuesto timeoutMs, por lo que un montaje de red sin respuesta puede causar que la ejecución falle.
El asistente sale con un código distinto de cero, aún se está ejecutando cuando timeoutMs transcurre, o no se inicia en absoluto, por ejemplo porque no es ejecutable.
El asistente escribe más de 1 MiB en stdout o stderr.
Cuando la ejecución de inicio falla, Claude Code imprime la razón y se niega a iniciar. Después de una salida distinta de cero, la razón incluye stderr del asistente, o su stdout cuando stderr está vacío. Después de un tiempo de espera, la razón nombra el límite timeoutMs e incluye ninguna de la salida del asistente. La negativa cubre sesiones interactivas, claude -p, sesiones de Agent SDK, sesiones en segundo plano y la mayoría de subcomandos.
La negativa es deliberada, por lo que un asistente que necesita resiliencia de interrupción debe servir desde su propio caché y salir con 0.
Cuando una actualización en segundo plano falla, Claude Code mantiene la última política exitosa en vigor, y /status muestra la actualización fallida con su razón hasta que una actualización tenga éxito. Cada actualización se ejecuta bajo el mismo timeoutMs y reglas de fallo que la ejecución de inicio.
Con --debug, Claude Code escribe stderr del asistente de cada ejecución en el registro de depuración.
Claude Code informa un valor policyHelper inválido como una entrada descartada e inicia la sesión en las configuraciones administradas restantes sin ejecutar un asistente. Los valores inválidos incluyen una cadena de ruta desnuda y un timeoutMs por debajo de su mínimo.
Para desactivar un asistente, elimine la clave de la fuente que la establece.
`policyHelper.path`
Nombre el ejecutable del asistente que Claude Code ejecuta. Para lo que sucede cuando la ruta rompe las reglas a continuación, consulte Fallos del asistente.
Alcance: Managed. Leer desde la plist de macOS, el registro HKLM de Windows o el archivo de configuraciones administradas, donde se lee policyHelper.
Tipo: cadena, una ruta absoluta en forma normalizada, sin segmentos . o ..; en Windows, una ruta de letra de unidad o UNC que termina en .exe
Predeterminado: ninguno; requerido cuando policyHelper está establecido
Establezca cuánto tiempo Claude Code espera al asistente antes de tratar la ejecución como fallida. Una ejecución con tiempo de espera agotado falla de la misma manera que una salida distinta de cero, por lo que al iniciar Claude Code se niega a iniciar.
Alcance: Managed. Leer desde la plist de macOS, el registro HKLM de Windows o el archivo de configuraciones administradas, donde se lee policyHelper.
Haga que Claude Code vuelva a ejecutar el asistente en segundo plano en un intervalo para que los cambios de política lleguen a una sesión en ejecución. Cuando una actualización tiene éxito, su salida reemplaza las configuraciones administradas anteriores sin un reinicio; cuando una actualización falla, Claude Code mantiene la política que ya tiene.
Alcance: Managed. Leer desde la plist de macOS, el registro HKLM de Windows o el archivo de configuraciones administradas, donde se lee policyHelper.
Tipo: entero, milisegundos: 0 para desactivar la actualización, de lo contrario al menos 60000
Predeterminado: no establecido, por lo que Claude Code ejecuta el asistente una vez al iniciar
Este ejemplo vuelve a ejecutar el asistente cada cinco minutos:
Haga que Claude Code en WSL lea configuraciones administradas de la cadena de política de Windows, con HKLM y el archivo de configuraciones administradas de Windows teniendo prioridad sobre /etc/claude-code y HKCU debajo. Mientras la cadena está activada, Claude Code lee /etc/claude-code solo cuando ningún documento de administrador de Windows está presente en el valor del registro HKLM o la carpeta C:\Program Files\ClaudeCode\. Establézcalo para extender la política que ya implementa en Windows a sesiones de WSL en la misma máquina, para que sigan las mismas reglas que las sesiones del host. Claude Code la honra solo cuando está establecida en la clave del registro HKLM o en un archivo de configuraciones administradas o descarga bajo C:\Program Files\ClaudeCode\, ambos requieren administrador de Windows para escribir.
Alcance: Managed. En una fuente de Windows controlada por administrador.
Tipo: Booleano
true: Claude Code en WSL lee configuraciones administradas de la cadena de política de Windows y lee /etc/claude-code solo cuando ningún documento de administrador de Windows está presente
false: WSL lee solo /etc/claude-code
Predeterminado: false, por lo que WSL lee solo /etc/claude-code
{"wslInheritsWindowsSettings": true
}
Una vez que una fuente de administrador activa la cadena, la política HKCU se une a ella en WSL solo cuando HKCU también establece la clave en true. Esa copia no activa la cadena por sí sola. Una fuente de Windows que contiene solo esta clave, establecida en true o false, no cuenta como una fuente de política, por lo que una fuente de menor prioridad aún suministra la política. Esta clave no tiene efecto en Windows nativo.
Claude Code lee true y false con o sin comillas y lee null como eliminación de la clave. Una fuente de Windows controlada por administrador que contiene cualquier otro valor cuenta como un documento de administrador presente con la cadena activada: ni /etc/claude-code ni HKCU se aplican, y una advertencia de inicio nombra la clave. Un valor HKLM o archivo de carpeta de Windows que existe pero no se puede leer también evita que /etc/claude-code se aplique independientemente de si la cadena está activada. Requiere Claude Code v2.1.282 o posterior.
Configuración global
Guarde estas claves en ~/.claude.json, no en un archivo de configuración. Claude Code las ignora en cualquier otro lugar. Claude Code y /config escriben la mayoría de ellas automáticamente, y también puede editarlas manualmente.
`autoConnectIde`
Conecte a un IDE en ejecución automáticamente cuando inicie Claude Code desde una terminal externa. Aparece en /config como Auto-conectar a IDE (terminal externa) cuando ejecuta Claude Code fuera de una terminal de VS Code o JetBrains.
true: Claude Code se conecta a un IDE en ejecución automáticamente cuando lo inicia desde una terminal externa
false: Claude Code no se conecta automáticamente desde una terminal externa; dentro de una terminal de VS Code o JetBrains, o con --ide, sigue conectándose
Predeterminado: false
Anulaciones por sesión: CLAUDE_CODE_AUTO_CONNECT_IDE tiene prioridad sobre esta clave para una sesión, en cualquier dirección
{"autoConnectIde": true
}
Claude Code ignora esta clave en settings.json.
`autoInstallIdeExtension`
Instale la extensión de IDE de Claude Code automáticamente cuando ejecute Claude Code desde una terminal de VS Code. Aparece en /config como Auto-instalar extensión de IDE cuando ejecuta Claude Code dentro de una terminal de VS Code o JetBrains.
true: Claude Code instala la extensión de IDE automáticamente cuando lo ejecuta desde una terminal de VS Code
false: Claude Code no instala la extensión automáticamente
Predeterminado: true
Anulaciones por sesión: CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL establecido en 1 omite la instalación para una sesión incluso cuando esta clave es true
{"autoInstallIdeExtension": false
}
Claude Code ignora esta clave en settings.json.
`claudeInChromeDefaultEnabled`
Inicia cada sesión interactiva de CLI con integración de Chrome activada, sin pasar --chrome cada vez. Si ejecutas claude remote-control, una sesión que inicia para uno de tus hilos de proyecto sigue esta clave también, excepto en modo bypassPermissions. Con Claude Code v2.1.287 o posterior, esta clave también se aplica a las sesiones en la extensión de VS Code: consulta Habilitar Chrome por defecto.
Ejecutar /chrome y seleccionar Habilitado por defecto establece esta clave automáticamente. Aparece en /config como Claude en Chrome habilitado por defecto.
true: Claude Code activa la integración de Chrome cuando comienza una sesión interactiva de CLI, como lo hace cuando pasas --chrome. En la extensión de VS Code, las sesiones se conectan al navegador al iniciarse
false: las sesiones interactivas de CLI comienzan con la integración de Chrome desactivada, y Claude Code deja de ofrecer configurarla. Pasa --chrome para activarla para una sesión interactiva. En la extensión de VS Code, una sesión se conecta cuando escribes @browser, como cuando la clave no está establecida
Predeterminado: sin establecer, por lo que la integración de Chrome está desactivada y Claude Code aún puede ofrecer configurarla
Anulaciones por sesión: --chrome y --no-chrome tienen prioridad sobre esta clave para una sesión interactiva
{"claudeInChromeDefaultEnabled": true
}
Claude Code ignora esta clave en settings.json.
`copyFullResponse`
Haga que /copy copie la respuesta completa cada vez, sin el selector que de otro modo muestra cuando la respuesta contiene bloques de código. Seleccionar Siempre copiar respuesta completa en ese selector establece esta clave en true. Aparece en /config como Omitir el selector /copy.
true: /copy copia la respuesta completa sin mostrar el selector
false: cuando la respuesta contiene bloques de código, /copy muestra un selector donde elige un bloque de código o la respuesta completa
Predeterminado: false
{"copyFullResponse": true
}
Claude Code ignora esta clave en settings.json.
`copyOnSelect`
Copie texto al portapapeles automáticamente cuando termine de seleccionarlo con el ratón en renderizado a pantalla completa o vista de agente. Aparece en /config como Copiar al seleccionar mientras el renderizado a pantalla completa está activado.
Abra vista de agente en lugar de una nueva conversación cuando ejecute claude sin argumentos. Aparece en /config como Abrir vista de agentes por defecto a menos que la vista de agente esté desactivada.
true: claude sin argumentos abre la vista de agente, a menos que la vista de agente esté desactivada
false: claude sin argumentos inicia una nueva conversación
Predeterminado: false
{"defaultToAgentsView": true
}
Claude Code ignora esta clave en settings.json.
`diffTool`
Elija dónde Claude Code muestra la diferencia de un cambio Edit o Write que propone cuando un IDE VS Code o JetBrains está conectado: "auto" lo abre en el visor de diferencias del IDE, "terminal" lo mantiene en la terminal. Aparece en /config como Herramienta de diferencias solo mientras Claude Code está conectado a un IDE de VS Code o JetBrains.
"auto": Claude Code abre la diferencia en el visor de diferencias del IDE cuando un IDE de VS Code o JetBrains está conectado
"terminal": Claude Code mantiene la diferencia en la terminal
Predeterminado: "auto"
{"diffTool": "terminal"}
Claude Code ignora esta clave en settings.json.
`externalEditorContext`
Cuando presiona Ctrl+G, Claude Code abre el mensaje que está escribiendo en su editor externo. Con esta clave activada, el búfer del editor comienza con la respuesta anterior de Claude como líneas de comentario #, para que pueda leerla mientras escribe, y Claude Code elimina esas líneas cuando guarda. Aparece en /config como Mostrar última respuesta en editor externo.
true: el búfer del editor comienza con la respuesta anterior de Claude como líneas de comentario #, que Claude Code elimina cuando guarda
false: el búfer del editor se abre solo con su mensaje
Predeterminado: false
{"externalEditorContext": true
}
Con esta opción activada, el búfer que Claude Code abre se ve así, y solo el texto debajo de la línea del marcador se envía como su mensaje:
# ─── Última respuesta de Claude (para referencia; eliminada al guardar) ───
# Agregué el bucle de reintentos a fetchUser en src/api.ts y una prueba
# para el caso de tiempo de espera. ¿Quiere que conecte el mismo reintento en
# fetchOrders?
# ─── Escriba su respuesta debajo de esta línea ──────────────────────────
Sí, y límitelo a tres intentos.
Claude Code mantiene las últimas 50 líneas de la respuesta y marca el corte con # … (salida anterior truncada).
true: presionar ← en un mensaje vacío en una sesión que inició en la terminal la pone en segundo plano y abre la vista de agente
false: Claude Code desactiva el atajo; en una sesión que adjuntó desde la vista de agente, ← en un mensaje vacío aún se desconecta
Predeterminado: true
{"leftArrowOpensAgents": false
}
Claude Code ignora esta clave en settings.json.
`permissionExplainerEnabled`
Hasta v2.1.256, podía presionar Ctrl+E en un mensaje de permisos de Bash o PowerShell para ver una explicación generada por el modelo del comando, y establecer esta clave en false para desactivar ese atajo.
Muestre un distintivo en el pie de página del mensaje para la solicitud de extracción o solicitud de fusión abierta de la rama actual, con un subrayado de color que muestra su estado. Aparece en /config como Mostrar pie de página de estado de PR.
false: Claude Code omite la verificación de solicitud de extracción y solicitud de fusión del pie de página y no muestra ese distintivo. Una sesión que adjuntó desde la vista de agente aún puede mostrar un enlace simple a una solicitud de extracción vinculada a ella
Predeterminado: true
{"prStatusFooterEnabled": false
}
Claude Code ignora esta clave en settings.json.
`teammateDefaultModel`
Hasta v2.1.233, establecía esta clave en el modelo para los compañeros del equipo de agentes que su mensaje no nombró un modelo: un alias como "sonnet", o null para seguir el modelo del líder. Para el modelo que Claude Code elige ahora para tales compañeros, consulte especificar compañeros y modelos.
708| [`modelOverrides`](#modeloverrides) | [Asigna los ID de modelo](/docs/es/model-config#override-model-ids-per-version) a los ID de tu proveedor, como los ARN de Bedrock | Modelo y respuestas | Any file |708| [`modelOverrides`](#modeloverrides) | [Asigna los ID de modelo](/docs/es/model-config#override-model-ids-per-version) a los ID de tu proveedor, como los ARN de Bedrock | Modelo y respuestas | Any file |
709| [`modelPicker`](#modelpicker) | Elige qué modelos muestra el [selector de `/model`](/docs/es/model-config#available-models), en tu propio orden y con tus propias etiquetas | Modelo y respuestas | User or managed |709| [`modelPicker`](#modelpicker) | Elige qué modelos muestra el [selector de `/model`](/docs/es/model-config#available-models), en tu propio orden y con tus propias etiquetas | Modelo y respuestas | User or managed |
710| [`modelPricing`](#modelpricing) | Reporta el gasto con las tarifas contratadas por tu organización en lugar del precio de lista | Modelo y respuestas | Managed |710| [`modelPricing`](#modelpricing) | Reporta el gasto con las tarifas contratadas por tu organización en lugar del precio de lista | Modelo y respuestas | Managed |
711| [`modelSettings`](#modelsettings) | Guarda un [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) por modelo, o limita el esfuerzo de un modelo | Modelo y respuestas | Any file |711| [`modelSettings`](#modelsettings) | Guarda un [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) o una [ventana de compactación automática](/docs/es/model-config#set-the-auto-compact-window) por modelo, o limita el esfuerzo de un modelo | Modelo y respuestas | Any file |
712| [`otelHeadersHelper`](#otelheadershelper) | Genera encabezados rotativos de [OpenTelemetry](/docs/es/monitoring-usage#dynamic-headers) con tu propio comando | Autenticación y proveedores | Any file |712| [`otelHeadersHelper`](#otelheadershelper) | Genera encabezados rotativos de [OpenTelemetry](/docs/es/monitoring-usage#dynamic-headers) con tu propio comando | Autenticación y proveedores | Any file |
713| [`outputStyle`](#outputstyle) | Cambia el rol, el tono y el formato de salida de Claude con un [estilo de salida](/docs/es/output-styles) | Modelo y respuestas | Any file |713| [`outputStyle`](#outputstyle) | Cambia el rol, el tono y el formato de salida de Claude con un [estilo de salida](/docs/es/output-styles) | Modelo y respuestas | Any file |
714| [`parentSettingsBehavior`](#parentsettingsbehavior) | Aplica o descarta las restricciones que pasa un [host de SDK o IDE](/docs/es/managed-settings#let-an-embedding-host-add-policy) cuando implementas la [configuración administrada](/docs/es/managed-settings) | Configuración empresarial y administrada | Managed |714| [`parentSettingsBehavior`](#parentsettingsbehavior) | Aplica o descarta las restricciones que pasa un [host de SDK o IDE](/docs/es/managed-settings#let-an-embedding-host-add-policy) cuando implementas la [configuración administrada](/docs/es/managed-settings) | Configuración empresarial y administrada | Managed |
1282Para limitar el esfuerzo de un modelo en lugar de establecer su nivel, agregue un campo [`maxEffortLevel`](#maxeffortlevel) a la entrada de ese modelo. El campo requiere Claude Code v2.1.267 o posterior.1282Para limitar el esfuerzo de un modelo en lugar de establecer su nivel, agregue un campo [`maxEffortLevel`](#maxeffortlevel) a la entrada de ese modelo. El campo requiere Claude Code v2.1.267 o posterior.
1285* **Tipo**: objeto que asigna un nombre de modelo a un objeto con un campo `effortLevel`, uno de `"low"`, `"medium"`, `"high"` u `"xhigh"`, un campo [`maxEffortLevel`](#maxeffortlevel) oambos1285* **Tipo**: objeto que asigna un nombre de modelo a un objeto con cualquiera de estoscampos:
1286 * `effortLevel`: uno de `"low"`, `"medium"`, `"high"` o `"xhigh"`
1287 * [`maxEffortLevel`](#maxeffortlevel): el nivel de esfuerzo más alto con el que puede ejecutarse el modelo
1288 * `autoCompactWindow`: un número de tokens de `100000` a `1000000`, o `"auto"` para la ventana ajustada para el modelo. [`/autocompact`](/docs/es/model-config#set-the-auto-compact-window) guarda aquí. Para ese modelo, el valor tiene precedencia sobre un [`autoCompactWindow`](#autocompactwindow) de nivel superior en el mismo archivo de configuración. Requiere Claude Code v2.1.288 o posterior
1286* **Predeterminado**: sin establecer1289* **Predeterminado**: sin establecer
12871290
1288Claude Code escribe cada entrada bajo el nombre canónico del modelo, como `claude-opus-5-5`, y coincide con el alias de ese modelo, con sufijo de fecha, `[1m]` e IDs específicos del proveedor reconocidos a la misma entrada.1291Claude Code escribe cada entrada bajo el nombre canónico del modelo, como `claude-opus-5-5`, y coincide con el alias de ese modelo, con sufijo de fecha, `[1m]` e IDs específicos del proveedor reconocidos a la misma entrada.
2967}2970}
2968```2971```
29692972
2970Establézcalo con el comando [`/autocompact`](/docs/es/commands#all-commands), que escribe esta clave en laconfiguracióndelusuario. [Establecer la ventana de auto-compactación](/docs/es/model-config#set-the-auto-compact-window) cubre cómo interactúan el comando, labandera, la variable y laconfiguración.2973El comando [`/autocompact`](/docs/es/commands#all-commands) guarda una ventana para el modelo actual en [`modelSettings`](#modelsettings), que tieneprioridad sobre esta clave en elmismoarchivopara ese modelo. [Establecer la ventana de compactación automática](/docs/es/model-config#set-the-auto-compact-window) cubre cómo interactúan el comando, elflag, la variable y elajuste.