~/.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.
Modelo y respuestas
Elige qué modelos usa Claude Code y cómo responde. Para saber cómo interactúan estos ajustes con el comando/model y las variables de entorno, consulta Configuración del modelo.
advisorModel
Elige qué modelo responde cuando Claude llama a la herramienta advisor del lado del servidor. Déjalo sin definir para desactivar el advisor. El advisor debe ser al menos tan capaz como tu modelo principal. Consulta Elegir un modelo advisor para ver las combinaciones aceptadas y qué sucede cuando eliges una que no se acepta.
Normalmente no editas esta clave a mano. Ejecuta /advisor para abrir un selector que muestra la opción actual, los modelos que pueden actuar como advisor y No advisor. Claude Code guarda tu elección en esta clave en ~/.claude/settings.json. Si eliges desde un cliente de Remote Control o en una sesión conectada a un worker remoto, la elección se aplica solo a esa sesión y no cambia esta clave.
Si tu cuenta requiere el consentimiento de créditos de uso, acéptalo primero ejecutando /model fable. Hasta que lo hagas, elegir Fable en /advisor no guarda nada y Claude Code te indica que ejecutes /model fable primero.
- Alcance:
Any file - Tipo: string, uno de los alias
"fable","opus"o"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 definir, por lo que el advisor está desactivado
- Sobrescrituras por sesión:
--advisortiene precedencia sobre esta clave durante una sesión.CLAUDE_CODE_DISABLE_ADVISOR_TOOLdesactiva el advisor, y esta clave no puede volver a activarlo
settings.json
"fable" requiere acceso a Fable.
alwaysThinkingEnabled
Desactiva el pensamiento extendido en todas las sesiones estableciendo esto en false. El pensamiento está activado de forma predeterminada, así que true no cambia nada. La mayoría de las personas lo configura con /config en lugar de editar el archivo.
En los modelos que siempre piensan, como Opus 5.5, Sonnet 5.5, Haiku 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 aún pueden pensar. Con el pensamiento desactivado en la API de Anthropic, Claude Code envía el esfuerzo high en lugar de un nivel superior a los modelos que sabe que no aceptan esa combinación, como Opus 5.
- Alcance:
Any file - Tipo: Boolean
true: sin efecto; el pensamiento ya está activadofalse: Claude Code desactiva el pensamiento extendido en todas las sesiones
- Predeterminado: sin definir, por lo que el pensamiento está activado en los modelos que lo admiten
- Sobrescrituras por sesión:
MAX_THINKING_TOKENStiene precedencia sobre esta clave durante una sesión:0desactiva el pensamiento, con los mismos límites de modelo y proveedor quefalse, y un valor positivo activa el pensamiento incluso cuando esta clave esfalse. En los modelos de razonamiento adaptativo, el número en sí se ignora
settings.json
availableModels
Restringe qué modelos pueden seleccionar las personas para la sesión principal, los subagentes, los skills y el advisor. Una lista administrada limita /model, --model y la clave model en los archivos propios de un desarrollador; un modelo fuera de ella no se puede seleccionar. Con la coincidencia por prefijo predeterminada, esto por sí solo no afecta a la opción Default; combínalo con enforceAvailableModels para eso.
- Alcance:
Any file. Despliégalo en la configuración administrada para aplicarlo en toda una organización. - Tipo: array de alias o IDs de modelo
- Predeterminado: sin definir, por lo que todos los modelos están disponibles
settings.json
"claude-opus-5" también permite versiones posteriores que lo extienden, como Opus 5.5. Para bloquear una de esas versiones, usa deniedModels. Para que cada entrada de ID de modelo permita solo la versión que nombra, usa availableModelsMatch. Consulta Restringir la selección de modelos. Para IDs de proveedores de terceros, consulta Fijar modelos para despliegues de terceros.
availableModelsMatch
Elige cómo coinciden las entradas de availableModels con los IDs de modelo. De forma predeterminada, una entrada de ID de modelo también permite versiones posteriores que lo extienden, así 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 agregues a la lista. Requiere Claude Code v2.1.283 o posterior.
- Alcance:
Managed. Claude Code ignora la clave en la configuración de usuario, de proyecto y local, y en--settings, con una advertencia - Tipo: string, 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, así que"claude-opus-5"permite Opus 5 pero noclaude-opus-5-5. Una entrada como"claude-opus-4-5"también permite su ID de modelo de Anthropic con fechaclaude-opus-4-5-20251101. Un alias de familia como"opus"sigue permitiendo toda la familia, y las entradasbest,opusplanydefaultse ignoran
- Predeterminado:
"prefix"
managed-settings.json
"exact", la opción Default también queda limitada a los modelos de la lista siempre que la lista nombre al menos un modelo o familia. Consulta Bloquear modelos o versiones específicos.
deniedModels
Bloquea modelos específicos, con o sin una lista de modelos permitidos de availableModels e incluso cuando esa lista los permite. Claude Code oculta un modelo bloqueado del selector de /model, y el modelo no se puede seleccionar en ningún lugar donde se aplique availableModels. Una sesión con la opción Default tampoco ejecuta un modelo bloqueado, como se describe en Bloquear modelos o versiones específicos. Requiere Claude Code v2.1.283 o posterior.
- Alcance:
Managed. Claude Code ignora la clave en la configuración de usuario, de proyecto y local, y en--settings, con una advertencia - Tipo: array de alias o IDs de modelo
- Un alias de familia como
"opus"bloquea todos los modelos de esa familia - Un ID de modelo como
"claude-opus-5-5"bloquea esa versión en todas sus formas de escritura, incluidos los IDs con fecha y los específicos de proveedor - Un ID de modelo sin versión menor, como
"claude-opus-5", también bloquea versiones menores posteriores como Opus 5.5. Escribe"claude-opus-5-0"para bloquear solo Opus 5 - Las entradas
best,opusplanydefaultse ignoran
- Un alias de familia como
- Predeterminado: sin definir, por lo que no se bloquea ningún modelo
managed-settings.json
effortLevel
Establece un nivel de esfuerzo predeterminado para los modelos en los que no has 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 con más profundidad en problemas complejos.
Cuando ejecutas /effort low, medium, high o xhigh en una sesión interactiva en tu máquina, Claude Code guarda el nivel para el modelo activo en 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 usa el nivel guardado de un modelo en lugar de esta clave. modelSettings indica la precedencia entre archivos.
En una sesión conectada a un worker remoto, en una ejecución con -p y en el Agent SDK, /effort se aplica solo a esa sesión. Ajustar el nivel de esfuerzo enumera las elecciones interactivas que también se aplican solo a esa sesión. El mensaje que imprime /effort indica qué ocurrió.
- Alcance:
Any file - Tipo: string, uno de:
"low": el menor razonamiento, para tareas cortas, acotadas y sensibles a la latencia que no dependen de la inteligencia"medium": reduce el uso de tokens en trabajo sensible al costo que puede sacrificar algo de inteligencia"high": equilibra el uso de tokens y la inteligencia"xhigh": razonamiento más profundo con mayor gasto de tokens
- Predeterminado: sin definir
- Sobrescrituras por sesión:
--efforttiene precedencia sobre esta clave durante una sesión, yCLAUDE_CODE_EFFORT_LEVELtiene precedencia sobre ambos
settings.json
~/.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 los modelos lanzados después lo ignoran y empiezan en su propio valor predeterminado hasta que guardes un nivel para ellos, que /effort escribe en modelSettings. En la configuración de proyecto, local y administrada, y con --settings, esta clave se aplica a todos los modelos.
enforceAvailableModels
El selector de /model tiene una opción Default, y el ajuste de modelo default describe el modelo al que se resuelve. Una lista de modelos permitidos de availableModels limita los modelos que puedes nombrar, pero con la coincidencia por prefijo predeterminada no reasigna el modelo predeterminado de tu tipo de cuenta, así que Default 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 tu organización despliega cualquier configuración administrada, Claude Code lee esta clave solo de la fuente administrada y la ignora en tus otros archivos.
Para saber cómo se aplica esta clave a las comprobaciones de modelo al inicio, consulta Amazon Bedrock y Agent Platform de Google Cloud.
- Alcance:
Any file - Tipo: Boolean
true: cuando Default se resolvería a un modelo fuera deavailableModels, Claude Code lo resuelve al primer modelo disponible de la listafalse: esta clave no cambia cómo se resuelve Default
- Predeterminado:
false
settings.json
availableModels está sin definir o vacío. Consulta Aplicar la lista de permitidos al modelo Default. Requiere Claude Code v2.1.175 o posterior.
fallbackModel
Nombra modelos de respaldo para que Claude Code los pruebe, en orden, cuando tu modelo principal esté sobrecargado o no disponible. Claude Code cambia al siguiente modelo disponible de la cadena durante 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 tú reintentas o cambias de modelo por tu cuenta.
Un cambio implica un turno con la caché de prompts fría en el modelo de respaldo; tu siguiente mensaje vuelve a probar primero el modelo principal.
- Alcance:
Any file - Tipo: array de alias o IDs de modelo;
"default"se expande al modelo predeterminado - Predeterminado: sin definir, por lo que una solicitud fallida no se reintenta en otro modelo
- Sobrescrituras por sesión:
--fallback-modeltiene precedencia sobre esta clave durante una sesión
settings.json
["claude-sonnet-5"] y tu archivo de usuario establece ["claude-haiku-4-5"], la cadena es solo ["claude-sonnet-5"]. Claude Code conserva como máximo tres modelos permitidos distintos de la lista e ignora el resto. Consulta Cadenas de modelos de respaldo.
fastMode
Activa el modo rápido en las sesiones donde esté disponible, para trabajo interactivo como iteración rápida o depuración en vivo, donde quieres velocidad a un costo mayor por token. Normalmente no editas esta clave tú mismo. Ejecutar /fast escribe fastMode: true en ~/.claude/settings.json, y volver a ejecutarlo para desactivar el modo rápido elimina la clave.
En la API de Anthropic, solo Fable 5.2, Opus 5.5, Opus 5 y Opus 4.8 admiten el modo rápido. Ejecutar /fast desde otro modelo te cambia a Opus, y cambiar a un modelo no compatible desactiva el modo rápido. Consulta Cambiar de modelo mientras el modo rápido está activado. En Agent Platform de Google Cloud, /fast te cambia a Fable 5.2 en su lugar y no escribe esta clave, y Claude Code ignora un true guardado.
- Alcance:
Any file - Tipo: Boolean
true: Claude Code activa el modo rápido en las sesiones donde esté disponible. En Fable 5.2, también debes ejecutar/fastmientras usas Fable 5.2false: el modo rápido permanece desactivado
- Predeterminado: sin definir, por lo que el modo rápido está desactivado
- Sobrescrituras por sesión:
CLAUDE_CODE_DISABLE_FAST_MODEdesactiva el modo rápido durante una sesión, y esta clave no puede volver a activarlo
settings.json
fastModePerSessionOptIn
Normalmente, ejecutar /fast guarda fastMode en la configuración de usuario de una persona, así que las nuevas sesiones en un modelo compatible se inician con el modo rápido activado. En Fable 5.2, eso solo ocurre si la persona lo activó mientras usaba Fable 5.2. Para que cada persona tenga que ejecutar /fast en cada sesión en la que lo quiera, establece esta clave en true. Claude Code deja la clave fastMode en su archivo, así que desactivar esta clave restaura el comportamiento anterior.
Los propietarios de los planes Team o Enterprise pueden desplegarla en toda la organización mediante la configuración administrada por el servidor. Cuando la configuración administrada establece la clave, /fast on se rechaza fuera de las sesiones interactivas de terminal e informa que tu organización ha desactivado el modo rápido. Eso abarca el modo no interactivo, la extensión de VS Code y las sesiones en la nube.
- Alcance:
Any file - Tipo: Boolean
true: unfastMode: trueguardado ya no activa el modo rápido al iniciar la sesión, así que cada persona ejecuta/fasten cada sesión en la que lo quiera; unfastMode: truepasado con--settingssigue contando para esa sesión, a menos que la configuración administrada establezca esta clavefalse: unfastMode: trueguardado funciona como se describe enfastMode
- Predeterminado:
false
settings.json
language
Haz que Claude responda de forma predeterminada en un idioma distinto del inglés. No hay una lista fija para las respuestas: Claude Code pasa el valor tal cual a Claude como instrucción para que responda siempre en ese idioma, así que funciona cualquier nombre de idioma que Claude pueda leer. Claude Code no comprueba 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 del dictado por voz, que sí tiene una lista fija de idiomas de dictado admitidos, y de los títulos de sesión generados automáticamente.
- Alcance:
Any file - Tipo: string, cualquier nombre de idioma, como
"japanese","spanish"o"french"; Claude Code no lo valida - Predeterminado: sin definir; en ese caso, los títulos de sesión coinciden con el idioma de tu conversación
settings.json
maxEffortLevel
Limita el nivel de esfuerzo que puede usar una sesión, dejando disponibles los niveles inferiores. Cualquier nivel superior se ejecuta en el límite, incluido uno proveniente de /effort, el selector de /model, --effort, CLAUDE_CODE_EFFORT_LEVEL, el frontmatter effort de un skill o subagente, o el valor predeterminado del propio modelo. Claude Code aplica el límite por sí mismo antes de cada solicitud, así que se mantiene en todos los proveedores, incluidos Amazon Bedrock, Agent Platform de Google Cloud y Microsoft Foundry. Requiere Claude Code v2.1.267 o posterior.
- Alcance:
Any file. Despliégalo en la configuración administrada para aplicarlo en toda una organización. Cuando varios alcances establecen un límite, se aplica el más bajo, así que un límite establecido en un alcance no se puede elevar desde otro - Tipo: string, uno de
"low","medium","high","xhigh"o"max". Un valor"max"no establece ningún límite - Predeterminado: sin definir, por lo que no se aplica ningún límite
- Límites por modelo: agrega
maxEffortLevela la entrada de un modelo enmodelSettings. Esa entrada sustituye a esta clave para el modelo solo dentro de la fuente de configuración que establece ambas, como tu configuración de usuario o una fuente administrada. Establece"max"ahí para eximir al modelo del límite de esa fuente; Claude Code sigue aplicando los límites de otras fuentes
medium y exime a Sonnet 4.6:
settings.json
model
Establece el modelo que usa cada nueva sesión, para que no tengas que elegir uno con /model cada vez. Establecerlo aquí no te impide cambiar a mitad de sesión. Si tu administrador estableció un modelo predeterminado de la organización para sobrescribir la selección del usuario, obtienes ese modelo incluso cuando estableces esta clave en la configuración de usuario, de proyecto o local.
- Alcance:
Any file - Tipo: string, un alias de modelo o un ID de modelo completo
- Predeterminado: sin definir, por lo que Claude Code usa el modelo predeterminado de tu cuenta
- Sobrescrituras por sesión:
--modeltiene precedencia sobreANTHROPIC_MODEL, y ambos tienen precedencia sobre esta clave durante una sesión, incluso sobre unmodeladministrado; una lista deavailableModelssigue aplicándose a la elección
settings.json
ANTHROPIC_DEFAULT_MODEL, que Claude Code usa solo cuando nada más selecciona un modelo.
modelOverrides
Asigna IDs de modelo de Anthropic a IDs de modelo específicos del proveedor, como los ARN de perfiles de inferencia de Amazon Bedrock. Cada entrada del selector de modelos usa entonces su valor asignado al llamar a la API del proveedor. Los administradores usan esto en Amazon Bedrock, Agent Platform de Google Cloud y Microsoft Foundry para dirigir cada versión de modelo a un perfil de inferencia, nombre de versión o despliegue específico, por motivos de gobernanza, asignación de costos o enrutamiento regional.
- Alcance:
Any file - Tipo: objeto que asigna un ID de modelo a un ID de modelo del proveedor
- Predeterminado: sin definir
settings.json
modelPicker
Enumera los modelos que ofrece el selector de /model, en el orden en que los escribas y con las etiquetas que elijas, para que el selector muestre los modelos que ejecuta tu organización, después de la lista integrada o en lugar de ella. El model de cada fila se toma tal cual, así que acepta cualquier cosa que acepte --model: un alias como opus, un ID de modelo de Anthropic o un ID en formato de proveedor para Amazon Bedrock, Agent Platform de Google Cloud, Microsoft Foundry o un gateway de LLM. Requiere Claude Code v2.1.242 o posterior.
- Alcance:
User or managed. Claude Code lee la clave de la configuración administrada, de--settingsy de la configuración de usuario, y la ignora en la configuración de proyecto y local para que un repositorio que clones no pueda cambiar las etiquetas del selector. La de mayor precedencia de esas tres que establezca la clave proporciona la lista completa, y Claude Code nunca combina listas de dos fuentes. - Tipo: objeto con un array
optionsde filas y un Boolean opcionalreplaceBuiltInOptions - Predeterminado: sin definir, por lo que el selector muestra la lista integrada
managed-settings.json
Campos de modelPicker
La clave admite dos campos: uno para las filas en sí y otro para indicar si reemplazan la lista integrada o se agregan a ella.
Una entrada de
options también puede llevar una string opcional behavesAs junto a su model, lo que requiere v2.1.257 o posterior. Establécela en el ID de un modelo que tu versión de Claude Code ya conozca, como claude-opus-4-8, en una entrada cuyo model sea más reciente que tu versión. Claude Code aplica entonces las capacidades y los 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 de modelo que Claude Code envía en las solicitudes no cambian.
Con replaceBuiltInOptions activado, Claude Code oculta todas las demás filas: la lista integrada, las filas que agrega para las entradas de availableModels, los modelos que encontró el descubrimiento del gateway y ANTHROPIC_CUSTOM_MODEL_OPTION. Con él desactivado, Claude Code omite un modelo de la lista que la lista integrada ya cubre. Una etiqueta cambia lo que muestra el selector, no qué modelo ejecuta Claude Code.
Una lista de modelos permitidos de availableModels sigue aplicándose a estas filas. Antes de agregar un modelo de la lista a la lista de permitidos, lee Comportamiento de combinación: un ID de modelo específico restringe la entrada comodín de su familia. Claude Code también comprueba cada fila con respecto a la sesión antes de mostrar el selector:
- Descartada: una fila que Claude Code no puede atender, como un modelo retirado o un modelo al que tu organización no tiene acceso
- Atenuada: una fila que aún no puedes seleccionar, que se muestra con el motivo
- No sobrevive ninguna fila: Claude Code mantiene la lista integrada, filtrada por la lista de permitidos como de costumbre
modelPricing
Informa el gasto según las tarifas que paga tu organización en lugar del precio de lista. Establécelo cuando tu organización tenga tarifas contratadas, para que las cifras en dólares que ven los desarrolladores coincidan con tu factura. Claude Code aplica las tarifas en /usage, la línea de estado, el total_cost_usd del Agent SDK, el límite de --max-budget-usd y la métrica y los eventos de costo de OpenTelemetry. Tú proporcionas las tarifas: Claude Code no las lee de tu contrato ni de la Claude Console. Requiere Claude Code v2.1.242 o posterior.
- Alcance:
Managed. Despliega la clave mediante la configuración administrada por el servidor, una política de MDM, un archivomanaged-settings.jsono un programa auxiliar de políticas. Claude Code la ignora en la configuración de usuario, de proyecto y local, en--settingsy, en Windows, en el registro HKCU en el que el usuario puede escribir. Con la configuración administrada por el servidor, cada sesión informa los costos a precio de lista hasta que la obtención de la configuración de esa sesión haya confirmado el ajuste. Una aplicación host que integra Claude Code y estableceCLAUDE_CODE_PROVIDER_MANAGED_BY_HOSTpuede proporcionar una tabla propia mediante la opciónmanagedSettingsdel SDK, que Claude Code usa solo cuando ninguna fuente administrada establece la clave y solo en Claude Code v2.1.246 o posterior. - Tipo: objeto con un
multiplieropcional y un mapaoverridesopcional - Predeterminado: sin definir, por lo que Claude Code informa el precio de lista a menos que una aplicación host proporcione una tabla
multiplier para un descuento o recargo fijo, solo overrides para tarifas por modelo, o ambos.
Este ejemplo establece tarifas contratadas para Sonnet 4.6 y luego reduce todas las cifras, incluida la fila de Sonnet, en un 15%:
managed-settings.json
multiplier por encima de 1, hasta 10, para aplicar un recargo a todas las cifras. Un recargo requiere Claude Code v2.1.271 o posterior. Las versiones anteriores ignoran un multiplier superior a 1 con una advertencia y conservan el resto del ajuste.
Para ver los pasos, incluido cómo confirmar que las tarifas están en vigor, consulta Informar el gasto según tus tarifas contratadas.
Campos de modelPricing
Claude Code usa las tarifas de una fila exactamente como las escribiste, sin agregar el recargo del modo rápido ni la tarifa de inferencia solo en EE. UU.. Si también estableces
multiplier, Claude Code lo aplica sobre las tarifas de la fila. Claude Code descarta una fila con una tarifa que no puede analizar, o un multiplier que no puede analizar, y conserva el resto; consulta Corregir un archivo de configuración dañado.
A qué modelos se aplica una fila de modelPricing
Claude Code decide a qué modelos se aplica una fila a partir de la clave de la fila:
- El ID de un modelo integrado: una clave que el propio Claude Code usa para un modelo integrado, ya sea el ID propio del modelo, como
claude-sonnet-4-6, o su ID de Bedrock, Agent Platform o Foundry. Claude Code aplica la fila a todos los IDs de snapshot con fecha y a todos los IDs específicos de proveedor de ese modelo. - Cualquier otra clave: una clave que no es el ID de un modelo integrado, como un alias de modelo de un gateway. Claude Code aplica la fila solo a ese ID. Cuando un ID de modelo coincide exactamente con una de tus claves y además queda comprendido en una fila cuya clave es el ID de un modelo integrado, Claude Code usa 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, mediante tu mapa de
modelOverrideso la consultabedrock:GetInferenceProfile, Claude Code aplica la fila de ese modelo al perfil.
modelSettings
Guarda un nivel de esfuerzo para cada modelo que uses. Requiere Claude Code v2.1.251 o posterior.
En una sesión interactiva en tu máquina, cuando guardas low, medium, high o xhigh como tu valor predeterminado con /effort o con el control deslizante de esfuerzo del selector de /model, Claude Code escribe ese nivel aquí bajo el modelo que estás usando, así que rara vez editas esta clave tú mismo. Cuando eliges uno de esos niveles en el selector de modelos de la extensión de VS Code, Claude Code lo guarda aquí de la misma manera. La entrada de effortLevel enumera las sesiones en las que /effort se aplica solo a esa sesión.
Edita la clave a mano para cambiar o eliminar un nivel que guardaste.
El effortLevel de un modelo aquí tiene precedencia sobre el effortLevel de nivel superior del mismo archivo de configuración. Entre archivos, Claude Code resuelve cada modelo por separado: decide el archivo de configuración de mayor precedencia que establezca un effortLevel para ese modelo o un effortLevel de nivel superior que se aplique a ese modelo, así que un effortLevel en la configuración administrada tiene prioridad sobre un nivel que guardaste en la configuración de usuario. Ajustar el nivel de esfuerzo enumera qué más puede sobrescribir un nivel guardado, como --effort al iniciar.
Para limitar el esfuerzo de un modelo en lugar de establecer su nivel, agrega un campo maxEffortLevel a la entrada de ese modelo. El campo requiere Claude Code v2.1.267 o posterior.
- Alcance:
Any file - 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 modeloautoCompactWindow: un número de tokens de100000a1000000, o"auto"para la ventana ajustada al modelo./autocompactguarda aquí. Para ese modelo, el valor tiene precedencia sobre unautoCompactWindowde nivel superior en el mismo archivo de configuración. Requiere Claude Code v2.1.288 o posterior
- Predeterminado: sin definir
claude-opus-5-5, y hace coincidir con esa misma entrada el alias del modelo, los IDs con sufijo de fecha, los IDs con [1m] y los IDs específicos de proveedor reconocidos.
Este ejemplo mantiene Opus 5.5 en high mientras los demás modelos usan sus propios niveles guardados o predeterminados:
settings.json
/effort auto para borrar tu nivel guardado del modelo que estás usando. Claude Code deja en su lugar las demás entradas y cualquier effortLevel de nivel superior.
outputStyle
Selecciona un estilo de salida por nombre. Un estilo de salida es un conjunto guardado de instrucciones que cambia el rol, el tono y el formato de salida de Claude, como los estilos integrados Explanatory y Learning, o uno que escribiste tú mismo.
Si cambias esta clave durante una sesión, Claude usa el nuevo estilo a partir de tu siguiente mensaje. Para saber cuánto cuesta ese mensaje en caché de prompts, consulta Cambiar el estilo de salida. Antes de v2.1.251, el cambio se aplicaba solo después de ejecutar /clear o iniciar una nueva sesión.
- Alcance:
Any file - Tipo: string, el nombre de un estilo de salida integrado o personalizado
- Predeterminado: sin definir, por lo que Claude Code usa el estilo predeterminado
settings.json
promptCacheTtl
Elige cuánto tiempo conserva la caché de prompts la conversación principal. Esta clave se aplica a tus turnos interactivos, con -p y del Agent SDK, junto con los auxiliares que Claude Code ejecuta en línea con ellos. La duración de una hora mantiene la caché activa durante pausas más largas, y la API factura cada escritura en caché a una tarifa más alta que con la duración de cinco minutos. Requiere Claude Code v2.1.242 o posterior.
- Alcance:
Any file - Tipo: string, uno de:
"5m": la caché se conserva durante cinco minutos"1h": la caché se conserva durante una hora
- Predeterminado: sin definir, por lo que cada solicitud de la conversación principal obtiene su duración predeterminada
- Sobrescrituras por sesión:
FORCE_PROMPT_CACHING_5Mtiene precedencia sobre todo lo demás, luegoCLAUDE_CODE_PROMPT_CACHE_TTL, luego esta clave y por últimoENABLE_PROMPT_CACHING_1H
settings.json
showThinkingSummaries
Consulta resúmenes del pensamiento extendido de Claude en las sesiones interactivas. Establécelo si quieres ver los resúmenes completos al expandir el pensamiento con Ctrl+O. Cuando está sin definir o es false, la API de Anthropic oculta los bloques de pensamiento y Claude Code muestra un marcador contraído.
- Alcance:
Any file - Tipo: Boolean
true: ves los resúmenes completos del pensamiento al expandirlo conCtrl+Ofalse: la API de Anthropic oculta los bloques de pensamiento y Claude Code muestra un marcador contraído
- Predeterminado:
false
settings.json
subagentPromptCacheTtl
Elige cuánto tiempo conserva la caché de prompts las solicitudes que Claude Code hace fuera de la conversación principal. Esta clave se aplica a los subagentes, los flujos de trabajo y las solicitudes propias de Claude Code en segundo plano y auxiliares, como la compactación y los títulos de sesión. La duración de una hora mantiene la caché activa durante pausas más largas, y la API factura cada escritura en caché a una tarifa más alta que con la duración de cinco minutos. Requiere Claude Code v2.1.242 o posterior.
- Alcance:
Any file - Tipo: string, uno de:
"5m": la caché se conserva durante cinco minutos"1h": la caché se conserva durante una hora
- Predeterminado: sin definir, por lo que cada una de estas solicitudes obtiene su duración predeterminada
- Sobrescrituras por sesión:
FORCE_PROMPT_CACHING_5Mtiene precedencia sobre todo lo demás, luegoCLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL, luego esta clave y luegoENABLE_PROMPT_CACHING_1H, que solicita la duración de una hora en todas las solicitudes. Para saber dónde se sitúa el valor del frontmatter propio de un subagente, consulta Elegir el TTL tú mismo
settings.json
promptCacheTtl no cubre, así que establece ambas para elegir una duración para cada solicitud que hace Claude Code. Para saber en qué se diferencia la caché de un subagente de la de la conversación principal, consulta Subagentes y la caché.
switchModelsOnFlag
Elige qué sucede cuando un clasificador de seguridad marca una solicitud: cambiar al modelo de respaldo y continuar, o pausar para que puedas elegir entre cambiar y editar el prompt.
- Alcance:
Any file. Aparece en/configcomo Switch models when a message is flagged, con las opciones Switch automatically y Ask each time. - Tipo: Boolean
true: Claude Code cambia al modelo de respaldo y continúafalse: en una sesión interactiva, Claude Code se pausa para que puedas elegir entre cambiar y editar el prompt; donde no se puede mostrar un cuadro de diálogo, como en una ejecución con-p, la solicitud marcada termina como un error
- Predeterminado: sin definir. Claude Code cambia automáticamente, aunque puede preguntar primero en una sesión interactiva
settings.json
ultracode
Inicia las sesiones con ultracode activado. Con él activado, Claude planifica un flujo de trabajo para cada tarea sustancial en lugar de esperar a que se lo pidas. Claude planifica flujos de trabajo solo cuando los flujos de trabajo dinámicos están habilitados para ti y tu modelo admite el esfuerzo xhigh. La clave no cambia el nivel de esfuerzo de la sesión: ultracode se ejecuta en el nivel que use la sesión. Claude Code lee esta clave, pero nunca la escribe: /effort ultracode activa ultracode solo para la sesión actual.
- Alcance:
Any file - Tipo: Boolean
true: las sesiones se inician con ultracode activado cuando los flujos de trabajo dinámicos están habilitados para ti y tu modelo admitexhighfalse: las sesiones se inician con ultracode desactivado
- Predeterminado: sin definir, por lo que ultracode está desactivado
- Sobrescrituras por sesión:
/effort ultracodeactiva ultracode durante una sesión sin esta clave, y/effort ultracode offlo desactiva durante una sesión cuando esta clave estrue. El flag--effort ultracodetambién lo activa durante una sesión, con esfuerzoxhigh
settings.json
effortLevel, modelSettings y las demás 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 con esfuerzo xhigh, y un límite de esfuerzo inferior a 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, el modo de permisos predeterminado para las nuevas sesiones 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:
- El directorio
.claude/de un repositorio - Tus directorios
~/.claude/skills/y~/.claude/commands/, incluidos los skills sincronizados desde claude.ai - Un directorio
--add-dir - Plugins declarados con un manifiesto
.claude-plugindentro de~/.claude/skills/o del.claude/skills/del proyecto - Plugins cargados solo para una sesión, cuyos ids terminan en
@inline, cuando se cumplen todas estas condiciones:- La sesión es una sesión de Code o una sesión de Cowork, distinta de una sesión en la nube, para la que la propia app Claude Desktop inicia Claude Code
- Tu configuración administrada establece la clave, no solo la configuración principal de un host de incrustación
- La sesión ejecuta Claude Code v2.1.305 o posterior
allowed-tools. Los plugins @inline fuera de esas sesiones de Desktop también conservan el suyo, excepto uno llamado anthropic-skills. 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.
- Scope:
Managed - Type: Boolean
true: la configuración administrada se convierte en la única fuente de reglas de permisosfalse: Claude Code aplica reglas de permisos de archivos de usuario, proyecto, local y--settingsademá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
managed-settings.json
allowManagedMcpServersOnly. Consulta Configuración solo administrada.
autoMode
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.
- Scope:
User or managed - Type: objeto con matrices
environment,allow,soft_denyyhard_denyde reglas en prosa, más el BooleanclassifyAllShell - Default: sin establecer, por lo que el clasificador usa solo sus reglas integradas
soft_deny integradas, a través de "$defaults", y agrega una más que bloquea terraform apply:
settings.json
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.
- Scope:
User or managed. Se lee donde se leeautoMode. - Type: Boolean
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 aplicanfalse: el modo automático suspende solo las reglas de permitir que podrían ejecutar código arbitrario, comoBash(*)yBash(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
- Default:
false
settings.json
disableAutoMode
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 bajopermissionscomopermissions.disableAutoMode. - Type: la cadena
"disable" - Default: sin establecer
settings.json
permissions
Controla qué herramientas puede usar Claude sin preguntar, cuáles piden confirmación y cuáles están bloqueadas. También establece el modo de permisos predeterminado para las nuevas sesiones. Cada clave permissions.* a continuación se anida bajo este objeto.
- Scope:
Any file - Type: objeto con
allow,ask,deny,additionalDirectories,blockReadsOutsideWorkingDirectories,blockWritesOutsideWorkingDirectories,defaultMode,denyInsteadOfPrompting,disableBypassPermissionsModeydisableAutoMode - Default: sin establecer
npm run sin preguntar, pide confirmación antes de git push, bloquea lecturas de .env e inicia sesiones en acceptEdits:
settings.json
permissions.allow. Para ver cómo se combinan las reglas de permisos de diferentes archivos, consulta cómo se combinan las reglas de permisos entre alcances; para ver cómo se combinan las claves de configuración en general, consulta Precedencia de configuración en la guía de configuración.
useAutoModeDuringPlan
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.
- Scope:
User, local, or managed. Un repositorio no puede desactivarlo por ti.- Un
falseen cualquiera de estos archivos o en--settingslo desactiva, a menos que dejes fuera ese archivo de usuario o local con una opción como--setting-sources. Ignorar un archivo que se dejó fuera requiere Claude Code v2.1.314 o posterior
- Un
- Type: Boolean
true: lo mismo que sin establecer; cuando el modo automático está disponible, el clasificador revisa los comandos de shell durante la planificaciónfalse: obtienes una solicitud de permiso para cada comando fuera del conjunto integrado de solo lectura
- Default:
true
settings.json
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.
- Scope:
Any file - Type: matriz de cadenas de reglas de permisos
- Default: sin establecer
- Per-session overrides:
--allowedToolsagrega 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
git diff y permite que Claude Code lea tu .zshrc sin preguntar:
settings.json
allow del .claude/settings.json de un proyecto solo después de que aceptes el diálogo de confianza del espacio de trabajo para esa carpeta.
Sintaxis de reglas de permisos
Las reglas de permisos siguen el formatoTool 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.
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.
- Scope:
Any file - Type: matriz de cadenas de reglas de permisos
- Default: sin establecer
settings.json
permissions.deny
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.
- Scope:
Any file - Type: matriz de cadenas de reglas de permisos
- Default: sin establecer
- Per-session overrides:
--disallowedToolsagrega reglas de denegar para una sesión junto a esta clave
.env, del directorio secrets y de un archivo de credenciales, y bloquea comandos curl:
settings.json
"*" 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.
- Scope:
Any file, con límites en el acceso de escritura del sandbox que otorgan las entradas de proyecto y locales - Type: matriz de rutas de directorio
- Default: sin establecer
- Per-session overrides:
--add-diry/add-diragregan directorios para una sesión junto a esta clave
settings.json
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:
- Acciones que ningún modo aprueba automáticamente explica cuándo un comando de shell que lee una ruta así te pide confirmación
- Comandos en el sandbox bajo el bloqueo explica lo que puede leer un comando en el sandbox
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.
Claude Code también escribe true aquí cuando eliges bloquear esas lecturas en la solicitud del modo automático antes de la primera lectura fuera de los directorios de trabajo.
- Scope:
Any file. Untrueen 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 trabajofalse: lo mismo que sin establecer; el bloqueo aún se aplica si otro archivo establecetrue
- Default: sin establecer, por lo que las lecturas fuera de los directorios de trabajo siguen tu modo de permisos
settings.json
--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.
Cuando autoMemoryDirectory proviene del .claude/settings.json del proyecto, o de un .claude/settings.local.json tratado como suministrado por el repositorio, Claude Code no carga ninguna memoria automática desde ese directorio ni guarda ninguna en él.
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:
- El aislamiento del sistema de archivos está desactivado mediante
sandbox.filesystem.disabled allowManagedReadPathsOnlyestá establecido- La ruta del directorio en el que iniciaste Claude Code contiene un carácter glob como
*,?o[
git conserve tu identidad y tu configuración:
~/.gitconfig- Los archivos
config,ignoreyattributesbajo$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.excludesFileocore.attributesFile
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.
permissions.blockWritesOutsideWorkingDirectories
Haz que las herramientas Write, Edit y NotebookEdit rechacen rutas fuera de tus directorios de trabajo en cada modo de permisos, incluido bypassPermissions, salvo algunos de los propios archivos de Claude Code. La clave no limita los comandos de shell, las herramientas MCP ni los programas que ejecutan los hooks. Para limitar dónde escriben los comandos de shell, activa el sandboxing. Requiere Claude Code v2.1.314 o posterior.
Una vez activada la clave, Claude Code también elimina las herramientas EnterWorktree y ExitWorktree o rechaza las llamadas a ellas. Para seguir trabajando en worktrees, sigue Claude no tiene la herramienta EnterWorktree.
- Scope:
Any file. Untrueen cualquier archivo que cargue la sesión se aplica, por lo que un repositorio puede activar el bloqueo para sí mismo, pero no puede levantar el tuyo. En una sesión en la nube, es posible que Claude Code no aplique la clave, porque las herramientas de archivo se ejecutan en un contenedor que es en sí mismo el límite. - Type: Boolean
true: activa el bloqueofalse: lo mismo que sin establecer; el bloqueo aún se aplica si otro archivo establecetrue
- Default: sin establecer, por lo que las escrituras fuera de los directorios de trabajo siguen tu modo de permisos. El bloqueo también está activo mientras Claude Code no puede leer el objeto
permissionsde tu configuración administrada.
settings.json
~/block-test.txt si tu directorio home no es uno de ellos. Claude Code rechaza la llamada, y el rechazo indica que el ajuste bloquea las escrituras fuera de los directorios de trabajo.
Para levantar el bloqueo, elimina la clave de cada archivo de configuración que la establezca y luego reinicia Claude Code.
Qué rechaza el bloqueo de escritura y qué sigue siendo escribible
Algunos de los propios archivos de Claude Code siguen siendo escribibles, como los archivos de plan, el scratchpad, el directoriotmp de una sesión en segundo plano y los archivos .md de la memoria automática de este proyecto.
Además de tus propios archivos fuera de los directorios de trabajo, el bloqueo rechaza escrituras en:
- Archivos de configuración de Claude Code: Claude Code rechaza estas escrituras también dentro de los directorios de trabajo, porque un archivo de configuración puede levantar el bloqueo. Edita tú mismo los archivos de configuración.
- Un directorio que solo agrega la configuración del repositorio: uno que
additionalDirectoriesenumera solo en.claude/settings.json, o en.claude/settings.local.jsona menos que git informe que ese archivo no está rastreado - El worktree de un subagente: las ediciones de archivos de un subagente con
isolation: worktreese rechazan cuando su worktree está fuera de los directorios de trabajo - Memoria automática en un directorio que eligió el repositorio: un directorio que
autoMemoryDirectorynombra en la configuración del repositorio
/add-dir necesita un directorio que exista, así que para los worktrees de subagentes indica el directorio .claude/worktrees en la raíz del repositorio.
Dejar pasar un directorio a través del bloqueo de lectura o escritura
Para permitir que Claude acceda a un directorio fuera del proyecto mientrasblockReadsOutsideWorkingDirectories o blockWritesOutsideWorkingDirectories es true, agrégalo como directorio de trabajo. Ejecuta /add-dir <directory> en la sesión, pasa --add-dir <directory> al iniciar Claude Code o enuméralo en additionalDirectories en tu configuración de usuario o administrada. Ninguna regla de permitir deja pasar las herramientas de archivo de Claude a través de ninguno de los dos bloqueos.
permissions.defaultMode
Establece el modo de permisos predeterminado para las nuevas sesiones. Cuando lo dejas sin establecer, se aplica el valor predeterminado integrado para tu superficie.
- Scope:
Any file.autoybypassPermissionsno tienen efecto desde la configuración de proyecto o local, así que establécelos en~/.claude/settings.jsonen su lugar. Antes de v2.1.257,bypassPermissionstení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 comomkdirymvsin 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, aunque un mod que instalaste aún puede aprobar algunas de esas llamadas. Las lecturas de archivos dentro de tus directorios de trabajo, otras acciones que no necesitan aprobación y las herramientas preaprobadas se siguen ejecutando, salvo las lecturas desde rutas de red"bypassPermissions": Claude Code ejecuta todo sin preguntar"manual": un alias de"default"
- Default: sin establecer
- Per-session overrides:
--permission-mode, y su equivalente--dangerously-skip-permissionsparabypassPermissions, tienen precedencia sobre esta clave para una sesión
settings.json
deny bloquean en todos los modos, incluido bypassPermissions. Consulta Modos de permisos. 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.denyInsteadOfPrompting
Establece esto en true para mantener una sesión en ejecución cuando no hay nadie para responder una solicitud de permiso. Claude Code deniega una llamada a herramienta que de otro modo quedaría esperando una solicitud de confirmación, y el turno continúa. Requiere Claude Code v2.1.319 o posterior.
Una llamada sigue adelante si la aprueba una regla de permitir, tu modo de permisos o el clasificador del modo automático. Para permitir la mayoría de las llamadas que de otro modo pedirían confirmación, responde desde un hook PermissionRequest.
- Scope:
User or managed, y--settings. Un repositorio no puede establecerlo por ti. - Type: Boolean
true: Claude Code deniega las llamadas que de otro modo pedirían confirmaciónfalse: lo mismo que sin establecer; las llamadas se siguen denegando si otra de estas fuentes establecetrue
- Default: sin establecer, por lo que una llamada que necesita aprobación te pide confirmación
~/.claude/settings.json, este ejemplo inicia las sesiones en modo automático y deniega todo lo que aún recurriría a una solicitud de confirmación:
settings.json
-p, sesiones interactivas de terminal, la extensión de VS Code, sesiones locales en la app de Desktop, subagentes y equipos de agentes. Para denegar en su lugar lo que pediría confirmación en una sola ejecución no interactiva, pasa --permission-prompts none con -p.
Qué más detiene denyInsteadOfPrompting
Con el ajuste activado, Claude Code también detiene estas solicitudes de respuesta:
- Herramientas de preguntas y de plan: Claude Code omite
AskUserQuestion,EnterPlanModeyExitPlanMode, por lo que una sesión en modo plan no puede salir de él por sí sola. Un compañero de equipo en un equipo de agentes conservaEnterPlanModeyExitPlanMode - Elicitación MCP: Claude Code cancela una solicitud de elicitación a menos que un hook
Elicitationla responda - Hosts de permisos: Claude Code no consulta tu callback
canUseToolni--permission-prompt-tool. Para aprobar llamadas desde código, responde desde un hookPermissionRequest. Algunas llamadas se deniegan antes de consultar cualquier hook, como una eliminación de ruta crítica en modoautoque ninguna regla ask cubre. - Aviso de facturación del clasificador: donde el aviso sobre las solicitudes facturadas del clasificador abriría un diálogo, Claude Code no lo muestra y deniega las acciones que necesitan esas solicitudes
Mensajes de denyInsteadOfPrompting
Estos mensajes informan de llamadas rechazadas. No son solicitudes de confirmación, así que nada espera tu respuesta.
La denegación que lee Claude puede comenzar con este texto:
stream-json, las ejecuciones que emiten un mensaje permission_denied informan este decision_reason:
-p informa ese turno como error_during_execution.
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.
- Scope:
Any file. Normalmente se establece en la configuración administrada para hacer cumplir la política de la organización. - Type: la cadena
"disable" - Default: sin establecer
- Per-session overrides: esta clave tiene precedencia sobre
--dangerously-skip-permissions, que Claude Code rechaza mientras la clave está establecida
settings.json
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 avisofalse: lo mismo que sin establecer; el aviso aparece una vez a menos que otro de estos archivos establezcatrue
- Default: sin establecer, por lo que el aviso aparece una vez
settings.json
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, y los archivos pasados con--settings. Las sesiones en segundo plano solo tienen en cuenta la configuración de usuario y la administrada. 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 modobypassPermissionsfalse: lo mismo que sin establecer; el diálogo aparece a menos que otro de estos archivos establezcatrue
- Default: sin establecer, por lo que el diálogo aparece
settings.json
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.
- Scope:
Any file - Tipo: objeto con
enabled,failIfUnavailable,autoAllowBashIfSandboxed,excludedCommands,allowUnsandboxedCommands,enableWeakerNestedSandbox,enableWeakerNetworkIsolation,allowAppleEvents,allowNestedUserNamespaces,bwrapPath,socatPath,ignoreViolationsyripgrep, además de los objetosfilesystem,networkycredentials - Default: sin establecer, por lo que Claude Code ejecuta comandos sin sandbox
docker fuera del sandbox, abre dos rutas de escritura adicionales, oculta tu archivo de credenciales de AWS y permite de antemano GitHub y npm:
settings.json
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.
- Scope:
Any file, con límites en la configuración de proyecto y local - Type: Boolean
true: Claude Code ejecuta los comandos Bash en sandboxfalse: los comandos Bash se ejecutan sin sandbox
- Default:
false
settings.json
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
Hace que Claude Code salga con un error al iniciar cuando sandbox.enabled es true pero el sandbox no puede iniciarse porque la plataforma no lo admite o falla la comprobación de dependencias. Sin esta clave, Claude Code ejecuta los comandos fuera del sandbox. Los despliegues administrados que exigen el sandboxing como barrera de seguridad pueden usar este ajuste.
En una plataforma que el sandbox no admite, Claude Code no se inicia con esta clave activada. Consulta Aplicar el sandboxing con configuración administrada.
- Scope:
Any file, con límites en la configuración de proyecto y local - Tipo: booleano
true: Claude Code termina con un error al iniciarse cuandosandbox.enabledestruepero el sandbox no puede iniciarse. Si el sandbox supera esa comprobación y luego no logra inicializarse, la sesión sigue en ejecución y Claude Code rechaza cada comando en el sandboxfalse: Claude Code ejecuta los comandos sin sandbox cuando el sandbox no puede iniciarse
- Default:
false
failIfUnavailable en true:
managed-settings.json
sandbox.autoAllowBashIfSandboxed
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.
- Scope:
Any file - Type: Boolean
true: Claude Code ejecuta comandos Bash en sandbox sin una solicitud de permiso, excepto en los casos que describe Modo de aprobación automática;CLAUDE_CODE_SUBPROCESS_ENV_SCRUBdesactiva la aprobación automáticafalse: 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/sandboxllama a esto modo de permisos normal
- Default:
true
settings.json
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 permisos Bash(...): 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.
- Scope:
Any file, con límites en la configuración de proyecto y local - Type: array de patrones de comando
- Default: sin establecer, por lo que no se excluye ningún comando
settings.json
- Un comando que comienza con
sudo,evaloxargs - Un
cd,pushdopopd, dondequiera que aparezca en la llamada - Una sustitución de comando, un subshell o un bloque de flujo de control como
ifofor - Una redirección, como
docker build . > build.logo un heredoc<<EOF, salvo una que solo duplique un descriptor de archivo, como hace2>&1 - Un nombre de comando que proviene de una variable
- Un
git clone,git init,git worktree add,git worktree moveogit bundle createcon un argumento de ruta que es absoluto, comienza con~o contiene un segmento..
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.
- Scope:
Any file, con un límite en la configuración de proyecto y local - Type: Boolean
true: Claude puede reintentar un comando fuera del sandbox con el parámetrodangerouslyDisableSandboxdespués de que el sandbox lo bloqueefalse: 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 deexcludedCommands
- Default:
true
managed-settings.json