Qué archivo de settings.json manda en Claude Code

Cambias un ajuste, no pasa nada y no sabes por qué. Lo normal es que la misma clave esté puesta en un segundo archivo que va por encima del tuyo. Esta página lista los archivos y el orden.

Las cuatro fuentes

En Windows, ~/.claude es %USERPROFILE%\.claude. Instalar Claude Code no crea ninguno de estos archivos. El menú /config escribe el archivo de usuario la primera vez que cambias una opción que se guarda ahí, y una aprobación permanente como «Yes, and don't ask again» en un aviso de permiso escribe el archivo local.

Hay un quinto archivo, ~/.claude.json. Lo escribe Claude Code para sí mismo y guarda cosas como los datos de la cuenta, la configuración de servidores MCP y las decisiones de confianza. No hace falta que lo edites.

Cuál gana

Cuando la misma clave está puesta en más de un sitio, Claude Code usa el valor del nivel más alto. De más alto a más bajo:

  1. Ajustes gestionados de tu organización.
  2. La línea de comandos: JSON que pasas con --settings para una sola sesión.
  3. Proyecto local: .claude/settings.local.json.
  4. Proyecto compartido: .claude/settings.json.
  5. Usuario: ~/.claude/settings.json.

Un ejemplo de la documentación: el archivo compartido de tu equipo activa un consejo y tu archivo de usuario lo desactiva. Gana el valor del proyecto, así que ves el consejo en ese proyecto y en ningún otro. Para recuperar tu valor en ese proyecto, ponlo en .claude/settings.local.json, que va por encima del compartido y no cambia nada a tus compañeros.

Las listas se suman

En las claves de lista, como permissions.allow, Claude Code combina las entradas de todos los archivos en lugar de elegir uno. Cada archivo puede añadir reglas sin quitar las de otro. Unas pocas claves de modelos siguen sus propias reglas, así que mira la entrada de la clave que te interese.

Las variables de entorno no son un nivel

Si manda una variable de la terminal o una clave de ajustes se decide clave por clave, no por nivel. Por ejemplo, ANTHROPIC_MODEL en tu terminal pasa por encima de la clave model de cualquier archivo. La página de cada clave dice cuál se aplica.

Un archivo para empezar

Los archivos de ajustes son JSON estricto. Un comentario o una coma al final es un error. Este ejemplo deja que Claude Code ejecute tus comandos de lint y de tests sin preguntar y le impide leer archivos .env. Ponlo en ~/.claude/settings.json:

{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "permissions": {
    "allow": [
      "Bash(npm run lint)",
      "Bash(npm run test *)"
    ],
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)"
    ]
  }
}

La línea $schema es opcional. Da autocompletado y avisos a los editores que entienden JSON schema. El esquema puede ir por detrás de las últimas versiones, así que un aviso en una clave recién añadida no significa que tu archivo esté mal. Cambia los comandos por los que use de verdad tu proyecto.

Comprueba qué se cargó

Por qué un ajuste no hace nada

Prueba una sesión sin guardar

claude --settings '{"permissions": {"deny": ["Read(./.env)"]}}'

Eso se aplica a una sola sesión y no escribe nada en disco.

Límites

Esta página sigue la documentación de ajustes de Anthropic tal como la leemos en octubre de 2026. No tenemos relación con Anthropic. La escribimos a partir de la documentación y no hemos probado todos los casos.

Para las reglas de dentro de permissions, mira una lista de partida de reglas de permisos. Si quieres una segunda mirada a tu CLAUDE.md y a tus ajustes, el Tune-Up Kit es una lista de comprobación para eso (la ficha está en inglés).

Mira también: Claude Code en un código grande.