Claude Code ofrece una variedad de configuraciones para personalizar su comportamiento según tus necesidades. Puedes configurar Claude Code ejecutando el comando /config cuando uses el REPL interactivo, que abre una interfaz de Configuración con pestañas donde puedes ver información de estado y modificar opciones de configuración.

Archivos de configuración

El archivo settings.json es nuestro mecanismo oficial para configurar Claude Code a través de configuraciones jerárquicas:
  • Configuración de usuario se define en ~/.claude/settings.json y se aplica a todos los proyectos.
  • Configuración de proyecto se guarda en tu directorio de proyecto:
    • .claude/settings.json para configuraciones que se verifican en el control de código fuente y se comparten con tu equipo
    • .claude/settings.local.json para configuraciones que no se verifican, útil para preferencias personales y experimentación. Claude Code configurará git para ignorar .claude/settings.local.json cuando se cree.
  • Para implementaciones empresariales de Claude Code, también admitimos configuraciones de política administrada empresarial. Estas tienen precedencia sobre la configuración de usuario y proyecto. Los administradores del sistema pueden implementar políticas en:
    • macOS: /Library/Application Support/ClaudeCode/managed-settings.json
    • Linux y WSL: /etc/claude-code/managed-settings.json
    • Windows: C:\ProgramData\ClaudeCode\managed-settings.json
  • Las implementaciones empresariales también pueden configurar servidores MCP administrados que anulan los servidores configurados por el usuario. Consulta Configuración empresarial de MCP:
    • macOS: /Library/Application Support/ClaudeCode/managed-mcp.json
    • Linux y WSL: /etc/claude-code/managed-mcp.json
    • Windows: C:\ProgramData\ClaudeCode\managed-mcp.json
Ejemplo settings.json
{
  "permissions": {
    "allow": [
      "Bash(npm run lint)",
      "Bash(npm run test:*)",
      "Read(~/.zshrc)"
    ],
    "deny": [
      "Bash(curl:*)",
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)"
    ]
  },
  "env": {
    "CLAUDE_CODE_ENABLE_TELEMETRY": "1",
    "OTEL_METRICS_EXPORTER": "otlp"
  }
}

Configuraciones disponibles

settings.json admite varias opciones:
ClaveDescripciónEjemplo
apiKeyHelperScript personalizado, a ejecutarse en /bin/sh, para generar un valor de autenticación. Este valor se enviará como encabezados X-Api-Key y Authorization: Bearer para solicitudes de modelo/bin/generate_temp_api_key.sh
cleanupPeriodDaysCuánto tiempo retener localmente transcripciones de chat basado en la fecha de última actividad (predeterminado: 30 días)20
envVariables de entorno que se aplicarán a cada sesión{"FOO": "bar"}
includeCoAuthoredBySi incluir la línea co-authored-by Claude en commits de git y solicitudes de extracción (predeterminado: true)false
permissionsConsulta la tabla a continuación para la estructura de permisos.
hooksConfigura comandos personalizados para ejecutar antes o después de ejecuciones de herramientas. Consulta documentación de hooks{"PreToolUse": {"Bash": "echo 'Running command...'"}}
disableAllHooksDeshabilita todos los hookstrue
modelAnula el modelo predeterminado a usar para Claude Code"claude-sonnet-4-5-20250929"
statusLineConfigura una línea de estado personalizada para mostrar contexto. Consulta documentación de statusLine{"type": "command", "command": "~/.claude/statusline.sh"}
outputStyleConfigura un estilo de salida para ajustar el indicador del sistema. Consulta documentación de estilos de salida"Explanatory"
forceLoginMethodUsa claudeai para restringir el inicio de sesión a cuentas de Claude.ai, console para restringir el inicio de sesión a cuentas de Claude Console (facturación de uso de API)claudeai
forceLoginOrgUUIDEspecifica el UUID de una organización para seleccionarla automáticamente durante el inicio de sesión, omitiendo el paso de selección de organización. Requiere que forceLoginMethod esté configurado"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
enableAllProjectMcpServersAprueba automáticamente todos los servidores MCP definidos en archivos .mcp.json del proyectotrue
enabledMcpjsonServersLista de servidores MCP específicos de archivos .mcp.json para aprobar["memory", "github"]
disabledMcpjsonServersLista de servidores MCP específicos de archivos .mcp.json para rechazar["filesystem"]
useEnterpriseMcpConfigOnlyCuando se establece en managed-settings.json, restringe los servidores MCP solo a los definidos en managed-mcp.json. Consulta Configuración empresarial de MCPtrue
allowedMcpServersCuando se establece en managed-settings.json, lista de permitidos de servidores MCP que los usuarios pueden configurar. Sin definir = sin restricciones, matriz vacía = bloqueo. Se aplica a todos los ámbitos. La lista de denegados tiene precedencia. Consulta Configuración empresarial de MCP[{ "serverName": "github" }]
deniedMcpServersCuando se establece en managed-settings.json, lista de denegados de servidores MCP que están explícitamente bloqueados. Se aplica a todos los ámbitos incluyendo servidores empresariales. La lista de denegados tiene precedencia sobre la lista de permitidos. Consulta Configuración empresarial de MCP[{ "serverName": "filesystem" }]
awsAuthRefreshScript personalizado que modifica el directorio .aws (consulta configuración avanzada de credenciales)aws sso login --profile myprofile
awsCredentialExportScript personalizado que genera JSON con credenciales de AWS (consulta configuración avanzada de credenciales)/bin/generate_aws_grant.sh

Configuración de permisos

ClavesDescripciónEjemplo
allowMatriz de reglas de permisos para permitir el uso de herramientas. Nota: Las reglas de Bash usan coincidencia de prefijo, no regex[ "Bash(git diff:*)" ]
askMatriz de reglas de permisos para pedir confirmación al usar herramientas.[ "Bash(git push:*)" ]
denyMatriz de reglas de permisos para denegar el uso de herramientas. Usa esto también para excluir archivos sensibles del acceso de Claude Code. Nota: Los patrones de Bash son coincidencias de prefijo y pueden ser eludidos (consulta limitaciones de permisos de Bash)[ "WebFetch", "Bash(curl:*)", "Read(./.env)", "Read(./secrets/**)" ]
additionalDirectoriesDirectorios de trabajo adicionales a los que Claude tiene acceso[ "../docs/" ]
defaultModeModo de permiso predeterminado al abrir Claude Code"acceptEdits"
disableBypassPermissionsModeEstablece en "disable" para evitar que se active el modo bypassPermissions. Esto deshabilita la bandera de línea de comandos --dangerously-skip-permissions. Consulta configuración de política administrada"disable"

Configuración de sandbox

Configura el comportamiento avanzado de sandboxing. El sandboxing aísla comandos bash de tu sistema de archivos y red. Consulta Sandboxing para detalles. Las restricciones de sistema de archivos y red se configuran a través de reglas de permisos Read, Edit y WebFetch, no a través de estas configuraciones de sandbox.
ClavesDescripciónEjemplo
enabledHabilita sandboxing de bash (solo macOS/Linux). Predeterminado: falsetrue
autoAllowBashIfSandboxedAprueba automáticamente comandos bash cuando están en sandbox. Predeterminado: truetrue
excludedCommandsComandos que deben ejecutarse fuera del sandbox["git", "docker"]
network.allowUnixSocketsRutas de socket Unix accesibles en sandbox (para agentes SSH, etc.)["~/.ssh/agent-socket"]
network.allowLocalBindingPermite enlazar a puertos localhost (solo MacOS). Predeterminado: falsetrue
network.httpProxyPortPuerto de proxy HTTP usado si deseas traer tu propio proxy. Si no se especifica, Claude ejecutará su propio proxy.8080
network.socksProxyPortPuerto de proxy SOCKS5 usado si deseas traer tu propio proxy. Si no se especifica, Claude ejecutará su propio proxy.8081
enableWeakerNestedSandboxHabilita sandbox más débil para entornos Docker sin privilegios (solo Linux). Reduce la seguridad. Predeterminado: falsetrue
Ejemplo de configuración:
{
  "sandbox": {
    "enabled": true,
    "autoAllowBashIfSandboxed": true,
    "excludedCommands": ["docker"],
    "network": {
      "allowUnixSockets": [
        "/var/run/docker.sock"
      ],
      "allowLocalBinding": true
    }
  },
  "permissions": {
    "deny": [
      "Read(.envrc)",
      "Read(~/.aws/**)"
    ]
  }
}
El acceso al sistema de archivos se controla a través de permisos Read/Edit:
  • Las reglas de denegación de Read bloquean lecturas de archivos en sandbox
  • Las reglas de permiso de Edit permiten escrituras de archivos (además de los predeterminados, por ejemplo, el directorio de trabajo actual)
  • Las reglas de denegación de Edit bloquean escrituras dentro de rutas permitidas
El acceso a la red se controla a través de permisos de WebFetch:
  • Las reglas de permiso de WebFetch permiten dominios de red
  • Las reglas de denegación de WebFetch bloquean dominios de red

Precedencia de configuración

Las configuraciones se aplican en orden de precedencia (mayor a menor):
  1. Políticas administradas empresariales (managed-settings.json)
    • Implementadas por TI/DevOps
    • No se pueden anular
  2. Argumentos de línea de comandos
    • Anulaciones temporales para una sesión específica
  3. Configuración de proyecto local (.claude/settings.local.json)
    • Configuraciones personales específicas del proyecto
  4. Configuración de proyecto compartida (.claude/settings.json)
    • Configuraciones de proyecto compartidas con el equipo en control de código fuente
  5. Configuración de usuario (~/.claude/settings.json)
    • Configuraciones globales personales
Esta jerarquía asegura que las políticas de seguridad empresarial siempre se apliquen mientras permite que equipos e individuos personalicen su experiencia.

Puntos clave sobre el sistema de configuración

  • Archivos de memoria (CLAUDE.md): Contienen instrucciones y contexto que Claude carga al iniciar
  • Archivos de configuración (JSON): Configuran permisos, variables de entorno y comportamiento de herramientas
  • Comandos de barra: Comandos personalizados que se pueden invocar durante una sesión con /command-name
  • Servidores MCP: Extienden Claude Code con herramientas e integraciones adicionales
  • Precedencia: Las configuraciones de nivel superior (Empresarial) anulan las de nivel inferior (Usuario/Proyecto)
  • Herencia: Las configuraciones se fusionan, con configuraciones más específicas agregando o anulando las más amplias

Disponibilidad del indicador del sistema

A diferencia de claude.ai, no publicamos el indicador del sistema interno de Claude Code en este sitio web. Usa archivos CLAUDE.md o --append-system-prompt para agregar instrucciones personalizadas al comportamiento de Claude Code.

Exclusión de archivos sensibles

Para evitar que Claude Code acceda a archivos que contienen información sensible (por ejemplo, claves de API, secretos, archivos de entorno), usa la configuración permissions.deny en tu archivo .claude/settings.json:
{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)",
      "Read(./config/credentials.json)",
      "Read(./build)"
    ]
  }
}
Esto reemplaza la configuración ignorePatterns deprecada. Los archivos que coincidan con estos patrones serán completamente invisibles para Claude Code, evitando cualquier exposición accidental de datos sensibles.

Configuración de subagentos

Claude Code admite subagentos de IA personalizados que se pueden configurar a nivel de usuario y proyecto. Estos subagentos se almacenan como archivos Markdown con frontmatter YAML:
  • Subagentos de usuario: ~/.claude/agents/ - Disponibles en todos tus proyectos
  • Subagentos de proyecto: .claude/agents/ - Específicos de tu proyecto y pueden compartirse con tu equipo
Los archivos de subagentos definen asistentes de IA especializados con indicadores personalizados y permisos de herramientas. Obtén más información sobre cómo crear y usar subagentos en la documentación de subagentos.

Configuración de complementos

Claude Code admite un sistema de complementos que te permite extender la funcionalidad con comandos personalizados, agentes, hooks y servidores MCP. Los complementos se distribuyen a través de mercados y se pueden configurar a nivel de usuario y repositorio.

Configuración de complementos

Configuraciones relacionadas con complementos en settings.json:
{
  "enabledPlugins": {
    "formatter@company-tools": true,
    "deployer@company-tools": true,
    "analyzer@security-plugins": false
  },
  "extraKnownMarketplaces": {
    "company-tools": {
      "source": "github",
      "repo": "company/claude-plugins"
    }
  }
}

enabledPlugins

Controla qué complementos están habilitados. Formato: "plugin-name@marketplace-name": true/false Ámbitos:
  • Configuración de usuario (~/.claude/settings.json): Preferencias personales de complementos
  • Configuración de proyecto (.claude/settings.json): Complementos específicos del proyecto compartidos con el equipo
  • Configuración local (.claude/settings.local.json): Anulaciones por máquina (no confirmadas)
Ejemplo:
{
  "enabledPlugins": {
    "code-formatter@team-tools": true,
    "deployment-tools@team-tools": true,
    "experimental-features@personal": false
  }
}

extraKnownMarketplaces

Define mercados adicionales que deben estar disponibles para el repositorio. Típicamente se usa en configuraciones a nivel de repositorio para asegurar que los miembros del equipo tengan acceso a las fuentes de complementos requeridas. Cuando un repositorio incluye extraKnownMarketplaces:
  1. Se solicita a los miembros del equipo que instalen el mercado cuando confían en la carpeta
  2. Luego se solicita a los miembros del equipo que instalen complementos de ese mercado
  3. Los usuarios pueden omitir mercados o complementos no deseados (almacenados en configuración de usuario)
  4. La instalación respeta límites de confianza y requiere consentimiento explícito
Ejemplo:
{
  "extraKnownMarketplaces": {
    "company-tools": {
      "source": {
        "source": "github",
        "repo": "company-org/claude-plugins"
      }
    },
    "security-plugins": {
      "source": {
        "source": "git",
        "url": "https://git.company.com/security/plugins.git"
      }
    }
  }
}
Tipos de fuente de mercado:
  • github: Repositorio de GitHub (usa repo)
  • git: Cualquier URL de git (usa url)
  • directory: Ruta del sistema de archivos local (usa path, solo para desarrollo)

Gestión de complementos

Usa el comando /plugin para gestionar complementos interactivamente:
  • Explora complementos disponibles de mercados
  • Instala/desinstala complementos
  • Habilita/deshabilita complementos
  • Ver detalles de complementos (comandos, agentes, hooks proporcionados)
  • Agregar/eliminar mercados
Obtén más información sobre el sistema de complementos en la documentación de complementos.

Variables de entorno

Claude Code admite las siguientes variables de entorno para controlar su comportamiento:
Todas las variables de entorno también se pueden configurar en settings.json. Esto es útil como una forma de configurar automáticamente variables de entorno para cada sesión, o para implementar un conjunto de variables de entorno para todo tu equipo u organización.
VariablePropósito
ANTHROPIC_API_KEYClave de API enviada como encabezado X-Api-Key, típicamente para el SDK de Claude (para uso interactivo, ejecuta /login)
ANTHROPIC_AUTH_TOKENValor personalizado para el encabezado Authorization (el valor que establezca aquí tendrá el prefijo Bearer )
ANTHROPIC_CUSTOM_HEADERSEncabezados personalizados que deseas agregar a la solicitud (en formato Name: Value)
ANTHROPIC_DEFAULT_HAIKU_MODELConsulta Configuración de modelo
ANTHROPIC_DEFAULT_OPUS_MODELConsulta Configuración de modelo
ANTHROPIC_DEFAULT_SONNET_MODELConsulta Configuración de modelo
ANTHROPIC_MODELNombre de la configuración de modelo a usar (consulta Configuración de modelo)
ANTHROPIC_SMALL_FAST_MODEL[DEPRECADO] Nombre de modelo de clase Haiku para tareas de fondo
ANTHROPIC_SMALL_FAST_MODEL_AWS_REGIONAnula la región de AWS para el modelo de clase Haiku cuando se usa Bedrock
AWS_BEARER_TOKEN_BEDROCKClave de API de Bedrock para autenticación (consulta Claves de API de Bedrock)
BASH_DEFAULT_TIMEOUT_MSTiempo de espera predeterminado para comandos bash de larga duración
BASH_MAX_OUTPUT_LENGTHNúmero máximo de caracteres en salidas de bash antes de que se truncen en el medio
BASH_MAX_TIMEOUT_MSTiempo de espera máximo que el modelo puede establecer para comandos bash de larga duración
CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIRVuelve al directorio de trabajo original después de cada comando Bash
CLAUDE_CODE_API_KEY_HELPER_TTL_MSIntervalo en milisegundos en el que las credenciales deben actualizarse (cuando se usa apiKeyHelper)
CLAUDE_CODE_CLIENT_CERTRuta al archivo de certificado de cliente para autenticación mTLS
CLAUDE_CODE_CLIENT_KEY_PASSPHRASEFrase de contraseña para CLAUDE_CODE_CLIENT_KEY cifrada (opcional)
CLAUDE_CODE_CLIENT_KEYRuta al archivo de clave privada de cliente para autenticación mTLS
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICEquivalente a configurar DISABLE_AUTOUPDATER, DISABLE_BUG_COMMAND, DISABLE_ERROR_REPORTING y DISABLE_TELEMETRY
CLAUDE_CODE_DISABLE_TERMINAL_TITLEEstablece en 1 para deshabilitar actualizaciones automáticas del título del terminal basadas en contexto de conversación
CLAUDE_CODE_IDE_SKIP_AUTO_INSTALLOmite la instalación automática de extensiones de IDE
CLAUDE_CODE_MAX_OUTPUT_TOKENSEstablece el número máximo de tokens de salida para la mayoría de solicitudes
CLAUDE_CODE_SKIP_BEDROCK_AUTHOmite la autenticación de AWS para Bedrock (por ejemplo, cuando se usa una puerta de enlace de LLM)
CLAUDE_CODE_SKIP_VERTEX_AUTHOmite la autenticación de Google para Vertex (por ejemplo, cuando se usa una puerta de enlace de LLM)
CLAUDE_CODE_SUBAGENT_MODELConsulta Configuración de modelo
CLAUDE_CODE_USE_BEDROCKUsa Bedrock
CLAUDE_CODE_USE_VERTEXUsa Vertex
DISABLE_AUTOUPDATEREstablece en 1 para deshabilitar actualizaciones automáticas. Esto tiene precedencia sobre la configuración autoUpdates.
DISABLE_BUG_COMMANDEstablece en 1 para deshabilitar el comando /bug
DISABLE_COST_WARNINGSEstablece en 1 para deshabilitar mensajes de advertencia de costo
DISABLE_ERROR_REPORTINGEstablece en 1 para optar por no participar en informes de errores de Sentry
DISABLE_NON_ESSENTIAL_MODEL_CALLSEstablece en 1 para deshabilitar llamadas de modelo para rutas no críticas como texto de sabor
DISABLE_PROMPT_CACHINGEstablece en 1 para deshabilitar el almacenamiento en caché de indicadores para todos los modelos (tiene precedencia sobre configuraciones por modelo)
DISABLE_PROMPT_CACHING_HAIKUEstablece en 1 para deshabilitar el almacenamiento en caché de indicadores para modelos Haiku
DISABLE_PROMPT_CACHING_OPUSEstablece en 1 para deshabilitar el almacenamiento en caché de indicadores para modelos Opus
DISABLE_PROMPT_CACHING_SONNETEstablece en 1 para deshabilitar el almacenamiento en caché de indicadores para modelos Sonnet
DISABLE_TELEMETRYEstablece en 1 para optar por no participar en telemetría de Statsig (nota que los eventos de Statsig no incluyen datos de usuario como código, rutas de archivo o comandos bash)
HTTP_PROXYEspecifica servidor proxy HTTP para conexiones de red
HTTPS_PROXYEspecifica servidor proxy HTTPS para conexiones de red
MAX_MCP_OUTPUT_TOKENSNúmero máximo de tokens permitidos en respuestas de herramientas MCP. Claude Code muestra una advertencia cuando la salida excede 10,000 tokens (predeterminado: 25000)
MAX_THINKING_TOKENSHabilita pensamiento extendido y establece el presupuesto de tokens para el proceso de pensamiento. El pensamiento extendido mejora el rendimiento en tareas complejas de razonamiento y codificación pero impacta eficiencia de almacenamiento en caché de indicadores. Deshabilitado por defecto.
MCP_TIMEOUTTiempo de espera en milisegundos para inicio de servidor MCP
MCP_TOOL_TIMEOUTTiempo de espera en milisegundos para ejecución de herramientas MCP
NO_PROXYLista de dominios e IPs a los que se emitirán solicitudes directamente, omitiendo proxy
SLASH_COMMAND_TOOL_CHAR_BUDGETNúmero máximo de caracteres para metadatos de comandos de barra mostrados a herramienta SlashCommand (predeterminado: 15000)
USE_BUILTIN_RIPGREPEstablece en 0 para usar rg instalado en el sistema en lugar de rg incluido con Claude Code
VERTEX_REGION_CLAUDE_3_5_HAIKUAnula región para Claude 3.5 Haiku cuando se usa Vertex AI
VERTEX_REGION_CLAUDE_3_7_SONNETAnula región para Claude 3.7 Sonnet cuando se usa Vertex AI
VERTEX_REGION_CLAUDE_4_0_OPUSAnula región para Claude 4.0 Opus cuando se usa Vertex AI
VERTEX_REGION_CLAUDE_4_0_SONNETAnula región para Claude 4.0 Sonnet cuando se usa Vertex AI
VERTEX_REGION_CLAUDE_4_1_OPUSAnula región para Claude 4.1 Opus cuando se usa Vertex AI

Herramientas disponibles para Claude

Claude Code tiene acceso a un conjunto de herramientas poderosas que lo ayudan a entender y modificar tu base de código:
HerramientaDescripciónPermiso Requerido
BashEjecuta comandos de shell en tu entorno
EditRealiza ediciones dirigidas a archivos específicos
GlobEncuentra archivos basados en coincidencia de patronesNo
GrepBusca patrones en contenidos de archivosNo
NotebookEditModifica celdas de cuadernos Jupyter
NotebookReadLee y muestra contenidos de cuadernos JupyterNo
ReadLee el contenido de archivosNo
SlashCommandEjecuta un comando de barra personalizado
TaskEjecuta un subagentos para manejar tareas complejas de múltiples pasosNo
TodoWriteCrea y gestiona listas de tareas estructuradasNo
WebFetchObtiene contenido de una URL especificada
WebSearchRealiza búsquedas web con filtrado de dominio
WriteCrea o sobrescribe archivos
Las reglas de permisos se pueden configurar usando /allowed-tools o en configuración de permisos. Consulta también Reglas de permisos específicas de herramientas.

Extensión de herramientas con hooks

Puedes ejecutar comandos personalizados antes o después de que cualquier herramienta se ejecute usando hooks de Claude Code. Por ejemplo, podrías ejecutar automáticamente un formateador de Python después de que Claude modifique archivos de Python, o evitar modificaciones a archivos de configuración de producción bloqueando operaciones de Write a ciertas rutas.

Ver también