Saltar al contenido principal
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.

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: --advisor tiene precedencia sobre esta clave durante una sesión. CLAUDE_CODE_DISABLE_ADVISOR_TOOL desactiva el advisor, y esta clave no puede volver a activarlo
settings.json
La clave no tiene efecto en los proveedores donde el advisor no está disponible, como Amazon Bedrock. En Claude Platform on AWS, la clave requiere Claude Code v2.1.300 o posterior. "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á activado
    • false: 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_TOKENS tiene precedencia sobre esta clave durante una sesión: 0 desactiva el pensamiento, con los mismos límites de modelo y proveedor que false, y un valor positivo activa el pensamiento incluso cuando esta clave es false. 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
Este ejemplo permite que las personas seleccionen solo modelos Sonnet y Haiku:
settings.json
Una entrada de ID de modelo como "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 no claude-opus-5-5. Una entrada como "claude-opus-4-5" también permite su ID de modelo de Anthropic con fecha claude-opus-4-5-20251101. Un alias de familia como "opus" sigue permitiendo toda la familia, y las entradas best, opusplan y default se ignoran
  • Predeterminado: "prefix"
Este ejemplo permite Opus 5 y Sonnet 5, y ninguna versión posterior de ninguno de los dos:
managed-settings.json
Con "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, opusplan y default se ignoran
  • Predeterminado: sin definir, por lo que no se bloquea ningún modelo
Este ejemplo permite los modelos Opus y Sonnet y bloquea Opus 5.5:
managed-settings.json
Consulta Bloquear modelos o versiones específicos.

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: --effort tiene precedencia sobre esta clave durante una sesión, y CLAUDE_CODE_EFFORT_LEVEL tiene precedencia sobre ambos
settings.json
En tu 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 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 de availableModels, Claude Code lo resuelve al primer modelo disponible de la lista
    • false: esta clave no cambia cómo se resuelve Default
  • Predeterminado: false
Este ejemplo restringe las selecciones por nombre a los modelos Sonnet y Haiku, y hace que Default se resuelva al primero de ellos que esté disponible:
settings.json
Esta clave no tiene efecto cuando 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-model tiene precedencia sobre esta clave durante una sesión
Este ejemplo prueba primero Sonnet 5 y luego Haiku 4.5 cuando tu modelo principal falla:
settings.json
A diferencia de la mayoría de los ajustes de tipo array, esta clave no se combina entre archivos de configuración: el archivo de mayor precedencia que la define proporciona la cadena completa. Si tu archivo de proyecto establece ["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 /fast mientras usas Fable 5.2
    • false: 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_MODE desactiva 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: un fastMode: true guardado ya no activa el modo rápido al iniciar la sesión, así que cada persona ejecuta /fast en cada sesión en la que lo quiera; un fastMode: true pasado con --settings sigue contando para esa sesión, a menos que la configuración administrada establezca esta clave
    • false: un fastMode: true guardado funciona como se describe en fastMode
  • Predeterminado: false
settings.json
Consulta Requerir activación por sesión.

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 maxEffortLevel a la entrada de un modelo en modelSettings. 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
Este ejemplo limita todos los modelos a medium y exime a Sonnet 4.6:
settings.json
Cuando tu organización también establece un límite de esfuerzo para un modelo, se aplica el menor de los dos límites.

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: --model tiene precedencia sobre ANTHROPIC_MODEL, y ambos tienen precedencia sobre esta clave durante una sesión, incluso sobre un model administrado; una lista de availableModels sigue aplicándose a la elección
settings.json
Un valor aquí tiene prioridad sobre 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
Este ejemplo dirige todas las llamadas a Opus 4.6 al perfil de inferencia de Bedrock indicado:
settings.json
Consulta Sobrescribir IDs de modelo por versión.

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 --settings y 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 options de filas y un Boolean opcional replaceBuiltInOptions
  • Predeterminado: sin definir, por lo que el selector muestra la lista integrada
Este ejemplo agrega dos despliegues de Bedrock después de la lista integrada, con nombres que tu equipo reconoce:
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
Claude Code descarta una fila que no puede analizar y conserva el resto. Consulta Corregir un archivo de configuración dañado.

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 archivo managed-settings.json o un programa auxiliar de políticas. Claude Code la ignora en la configuración de usuario, de proyecto y local, en --settings y, 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 establece CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST puede proporcionar una tabla propia mediante la opción managedSettings del 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 multiplier opcional y un mapa overrides opcional
  • Predeterminado: sin definir, por lo que Claude Code informa el precio de lista a menos que una aplicación host proporcione una tabla
Establece solo 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
Establece 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 modelOverrides o la consulta bedrock: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 modelo
    • autoCompactWindow: un número de tokens de 100000 a 1000000, o "auto" para la ventana ajustada al 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 definir
Claude Code escribe cada entrada bajo el nombre canónico del modelo, como 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
Ejecuta /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
Este ejemplo selecciona el estilo integrado Explanatory, que agrega explicaciones educativas entre tareas:
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. Este ejemplo mantiene la conversación principal con la duración de una hora y deja a los subagentes con cinco minutos:
settings.json
Para saber cuánto cuesta cada duración, consulta Duración de la caché.

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 con Ctrl+O
    • false: la API de Anthropic oculta los bloques de pensamiento y Claude Code muestra un marcador contraído
  • Predeterminado: false
settings.json
La ocultación cambia solo lo que ves, no lo que genera el modelo. Para reducir el gasto en pensamiento, reduce el presupuesto o desactiva el pensamiento en su lugar.

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. Este ejemplo da a los subagentes y a las demás solicitudes fuera de la conversación principal la duración de una hora:
settings.json
Esta clave cubre las solicitudes que 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 /config como 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úa
    • false: 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
Consulta Preguntar antes de cambiar.

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 admite xhigh
    • false: las sesiones se inician con ultracode desactivado
  • Predeterminado: sin definir, por lo que ultracode está desactivado
  • Sobrescrituras por sesión: /effort ultracode activa ultracode durante una sesión sin esta clave, y /effort ultracode off lo desactiva durante una sesión cuando esta clave es true. El flag --effort ultracode también lo activa durante una sesión, con esfuerzo xhigh
settings.json
El nivel de esfuerzo de la sesión proviene de 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: Los skills de la configuración administrada y los skills incluidos conservan su 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 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
managed-settings.json
Esta clave no bloquea la lista de servidores MCP permitidos; para eso, establece 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. Este ejemplo mantiene las reglas soft_deny integradas, a través de "$defaults", y agrega una más que bloquea terraform apply:
settings.json
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.
  • Scope: User or managed. Se lee donde se lee autoMode.
  • 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 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
  • Default: false
settings.json
Esta clave funciona de forma diferente en una sesión de Code Mode. Consulta Enrutar todos los comandos de shell a través del clasificador.

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 bajo permissions como permissions.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, disableBypassPermissionsMode y disableAutoMode
  • Default: sin establecer
Este ejemplo aprueba comandos npm run sin preguntar, pide confirmación antes de git push, bloquea lecturas de .env e inicia sesiones en acceptEdits:
settings.json
Las tres matrices de reglas comparten una sintaxis; consulta Sintaxis de reglas de permisos bajo 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 false en cualquiera de estos archivos o en --settings lo 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
  • 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ón
    • false: 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: --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:
settings.json
Claude Code aplica reglas 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 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. 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: --disallowedTools agrega reglas de denegar para una sesión junto a esta clave
Este ejemplo deniega lecturas de archivos .env, del directorio secrets y de un archivo de credenciales, y bloquea comandos curl:
settings.json
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.
  • 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-dir y /add-dir agregan directorios para una sesión junto a esta clave
settings.json
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. 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. 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
settings.json
Para levantar el bloqueo, elimina la clave de cada archivo de configuración que la establezca y luego reinicia cada sesión en ejecución. 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. 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: 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.

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. Un true en 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 bloqueo
    • false: lo mismo que sin establecer; el bloqueo aún se aplica si otro archivo establece true
  • 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 permissions de tu configuración administrada.
settings.json
Para probar el bloqueo, pídele a Claude que use la herramienta Write para crear un archivo fuera de tus directorios de trabajo, como ~/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 directorio tmp 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 additionalDirectories enumera solo en .claude/settings.json, o en .claude/settings.local.json a menos que git informe que ese archivo no está rastreado
  • El worktree de un subagente: las ediciones de archivos de un subagente con isolation: worktree se rechazan cuando su worktree está fuera de los directorios de trabajo
  • Memoria automática en un directorio que eligió el repositorio: un directorio que autoMemoryDirectory nombra en la configuración del repositorio
Los archivos de configuración siguen rechazados sin importar lo que agregues. Para dejar pasar una escritura en cualquiera de los demás casos, agrega un directorio de trabajo. /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 mientras blockReadsOutsideWorkingDirectories 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. 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, 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-permissions para bypassPermissions, tienen precedencia sobre esta clave para una sesión
settings.json
Las reglas de permisos se superponen a todos los modos: las reglas 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ón
    • false: lo mismo que sin establecer; las llamadas se siguen denegando si otra de estas fuentes establece true
  • Default: sin establecer, por lo que una llamada que necesita aprobación te pide confirmación
En ~/.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
La clave se aplica en ejecuciones con -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: Una sesión aún puede quedar esperando el diálogo de confianza del espacio de trabajo y la aprobación de servidores MCP del proyecto. Responde ambos antes de dejar la sesión en ejecución.

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:
En la salida stream-json, las ejecuciones que emiten un mensaje permission_denied informan este decision_reason:
En modo automático con el ajuste activado, el turno termina después de 20 llamadas seguidas que el clasificador bloqueó o que una verificación de seguridad rechazó, y ves este mensaje:
Una ejecución con -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
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
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 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
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, ignoreViolations y ripgrep, además de 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:
settings.json
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.
settings.json
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

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 cuando sandbox.enabled es true pero 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 sandbox
    • false: Claude Code ejecuta los comandos sin sandbox cuando el sandbox no puede iniciarse
  • Default: false
Esto activa el sandbox en las máquinas administradas y establece failIfUnavailable en true:
managed-settings.json
Consulta Aplicar el sandboxing con configuración administrada.

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_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:
settings.json
Consulta Modo de aprobación automática 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 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.
settings.json
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 o un heredoc <<EOF, 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.
  • 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á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:
managed-settings.json