> ## Documentation Index
> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Toda la configuración

> Referencia completa para cada clave settings.json de Claude Code: dónde va cada una, su tipo y valor predeterminado, y un ejemplo listo para pegar, con un índice de cada clave.

[Volver al índice](#all-settings)

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](#global-config-settings) que mantiene en `~/.claude.json` en su lugar. Para elegir un archivo o verificar la precedencia, comience con [Archivos de configuración y precedencia](https://code.claude.com/docs/es/settings.md).

## Índice de configuración

Cada clave a continuación enlaza a su entrada. El alcance enumera los [archivos](https://code.claude.com/docs/es/settings.md#settings-files-and-who-they-affect) 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](https://code.claude.com/docs/es/managed-settings.md). `Any file` significa los cuatro, y `Global config` significa [`~/.claude.json`](#global-config-settings).

| Key | Description | Topic | Scope |
| :- | :- | :- | :- |
| [`advisorModel`](#advisormodel) | Elige qué modelo responde cuando Claude consulta la [herramienta asesor](https://code.claude.com/docs/es/advisor.md) | Modelo y respuestas | Any file |
| [`agent`](#agent) | Inicia cada sesión como un [subagente](https://code.claude.com/docs/es/sub-agents.md) con nombre, con su prompt, herramientas y modelo | Agentes, sesiones y worktrees | Any file |
| [`agentPushNotifEnabled`](#agentpushnotifenabled) | Permite que Claude envíe una [notificación push a tu teléfono](https://code.claude.com/docs/es/remote-control.md#mobile-push-notifications) cuando lo decida | Remoto, escritorio y notificaciones | Any file |
| [`allowAllClaudeAiMcps`](#allowallclaudeaimcps) | Carga los [conectores de claude.ai](https://code.claude.com/docs/es/mcp.md) que Claude Code obtiene por sí mismo junto con un [`managed-mcp.json`](https://code.claude.com/docs/es/managed-mcp#exclusive-control-with-managed-mcp-json) implementado | MCP | Managed |
| [`allowClaudeInChromeWithManagedMcp`](#allowclaudeinchromewithmanagedmcp) | Permite que el servidor integrado de [Claude en Chrome](https://code.claude.com/docs/es/chrome.md) se ejecute junto con un [`managed-mcp.json`](https://code.claude.com/docs/es/managed-mcp#exclusive-control-with-managed-mcp-json) implementado | MCP | Managed |
| [`allowedChannelPlugins`](#allowedchannelplugins) | Reemplaza la lista de permitidos predeterminada de [plugins de canal](https://code.claude.com/docs/es/channels.md#restrict-which-channel-plugins-can-run) que pueden enviar mensajes | Plugins y skills | Managed |
| [`allowedHttpHookUrls`](#allowedhttphookurls) | Limita a qué URLs pueden dirigirse los [hooks HTTP](https://code.claude.com/docs/es/hooks.md) | Hooks y automatización | Any file |
| [`allowedMcpServers`](#allowedmcpservers) | Define una lista de permitidos de los [servidores MCP](https://code.claude.com/docs/es/mcp.md) que los usuarios pueden agregar | MCP | Any file |
| [`allowedProviders`](#allowedproviders) | Limita qué [proveedores de API](https://code.claude.com/docs/es/third-party-integrations.md) puede usar una máquina | Autenticación y proveedores | Managed |
| [`allowManagedHooksOnly`](#allowmanagedhooksonly) | Ejecuta solo los [hooks](https://code.claude.com/docs/es/hooks.md) que tu organización implementa | Hooks y automatización | Managed |
| [`allowManagedMcpServersOnly`](#allowmanagedmcpserversonly) | Haz que la lista de permitidos de [MCP](https://code.claude.com/docs/es/mcp.md) administrada sea la única que se aplique | MCP | Managed |
| [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly) | Haz que la [configuración administrada](https://code.claude.com/docs/es/managed-settings.md) sea la única fuente de configuración de [reglas de permisos](https://code.claude.com/docs/es/permissions.md#managed-settings) | Configuración de permisos | Managed |
| [`alwaysThinkingEnabled`](#alwaysthinkingenabled) | Desactiva el [pensamiento extendido](https://code.claude.com/docs/es/model-config.md#extended-thinking) en todas las sesiones | Modelo y respuestas | Any file |
| [`apiKeyHelper`](#apikeyhelper) | Genera la [credencial de API](https://code.claude.com/docs/es/authentication.md#credential-management) con tu propio comando | Autenticación y proveedores | Any file |
| [`askUserQuestionTimeout`](#askuserquestiontimeout) | Permite que una pregunta sin respuesta [continúe automáticamente](https://code.claude.com/docs/es/tools-reference.md#question-auto-continue-timeout) después de un tiempo de inactividad | Interfaz y terminal | User or managed |
| [`appendPlugins`](#appendplugins) | Ejecuta los [mods](https://code.claude.com/docs/es/plugins/mods/admin.md) de tu organización después de cada mod que instale un usuario | Plugins y skills | User or managed |
| [`attribution`](#attribution) | Personaliza la atribución que Claude Code agrega a los commits y pull requests | Git y atribución | Any file |
| [`attribution.commit`](#attribution-commit) | Cambia u oculta el tráiler que Claude Code agrega a los commits | Git y atribución | Any file |
| [`attribution.pr`](#attribution-pr) | Cambia u oculta la línea de atribución en las descripciones de los pull requests | Git y atribución | Any file |
| [`attribution.sessionUrl`](#attribution-sessionurl) | Omite el enlace de sesión de claude.ai en los commits de [la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md) y de [Remote Control](https://code.claude.com/docs/es/remote-control.md) | Git y atribución | Any file |
| [`autoCompactEnabled`](#autocompactenabled) | Desactiva o activa la [compactación automática](https://code.claude.com/docs/es/context-window.md) | Memoria y contexto | Any file |
| [`autoCompactWindow`](#autocompactwindow) | Establece qué tan lleno puede estar el contexto antes de que Claude Code lo [compacte](https://code.claude.com/docs/es/context-window.md) | Memoria y contexto | Any file |
| [`autoConnectIde`](#autoconnectide) | Conéctate automáticamente a un IDE de [VS Code](https://code.claude.com/docs/es/vs-code.md) o [JetBrains](https://code.claude.com/docs/es/jetbrains.md#from-external-terminals) en ejecución desde una terminal externa | Configuración de configuración global | Global config |
| [`autoContinueAtUsageLimit`](#autocontinueatusagelimit) | Espera en la sesión abierta y [continúa la tarea automáticamente](https://code.claude.com/docs/es/interactive-mode.md#wait-for-a-usage-limit-to-reset) después de que se restablezca un límite de uso de claude.ai | Interfaz y terminal | User or managed |
| [`autoInstallIdeExtension`](#autoinstallideextension) | Desactiva la instalación automática de la [extensión del IDE](https://code.claude.com/docs/es/vs-code.md#install-the-extension) desde una terminal de VS Code | Configuración de configuración global | Global config |
| [`autoMemoryDirectory`](#automemorydirectory) | Almacena la [memoria automática](https://code.claude.com/docs/es/memory.md#auto-memory) en un directorio que elijas | Memoria y contexto | Any file |
| [`autoMemoryEnabled`](#automemoryenabled) | Desactiva o activa la [memoria automática](https://code.claude.com/docs/es/memory.md#auto-memory) | Memoria y contexto | Any file |
| [`autoMode`](#automode) | Agrega tus propias reglas de permitir y denegar al clasificador del [modo automático](https://code.claude.com/docs/es/permission-modes.md#eliminate-prompts-with-auto-mode) | Configuración de permisos | User or managed |
| [`autoMode.classifyAllShell`](#automode-classifyallshell) | Envía cada comando de shell a través del [clasificador del modo automático](https://code.claude.com/docs/es/permission-modes.md#what-the-classifier-blocks-by-default), incluso los que coinciden con una regla de permitir específica | Configuración de permisos | User or managed |
| [`autoScrollEnabled`](#autoscrollenabled) | [Sigue la nueva salida](https://code.claude.com/docs/es/fullscreen.md#auto-follow) hasta el final en el renderizado de pantalla completa | Interfaz y terminal | Any file |
| [`autoUpdatesChannel`](#autoupdateschannel) | Sigue el [canal de lanzamiento](https://code.claude.com/docs/es/setup.md#configure-release-channel) estable en lugar del más reciente | Actualizaciones y versiones | Any file |
| [`availableModels`](#availablemodels) | [Restringe qué modelos](https://code.claude.com/docs/es/model-config.md#restrict-model-selection) pueden elegir las personas | Modelo y respuestas | Any file |
| [`availableModelsMatch`](#availablemodelsmatch) | Haz que cada entrada de ID de modelo de `availableModels` [permita solo la versión que nombra](https://code.claude.com/docs/es/model-config.md#block-specific-models-or-versions) | Modelo y respuestas | Managed |
| [`awaySummaryEnabled`](#awaysummaryenabled) | Desactiva el [resumen de sesión](https://code.claude.com/docs/es/interactive-mode.md#session-recap) que se muestra cuando regresas a la terminal | Remoto, escritorio y notificaciones | Any file |
| [`awsAuthRefresh`](#awsauthrefresh) | Actualiza las [credenciales de Bedrock](https://code.claude.com/docs/es/amazon-bedrock.md#advanced-credential-configuration) expiradas en `.aws` con tu propio comando | Autenticación y proveedores | Any file |
| [`awsCredentialExport`](#awscredentialexport) | Proporciona [credenciales de Bedrock](https://code.claude.com/docs/es/amazon-bedrock.md#advanced-credential-configuration) como JSON desde tu propio comando | Autenticación y proveedores | Any file |
| [`axScreenReader`](#axscreenreader) | Genera una [salida compatible con lectores de pantalla](https://code.claude.com/docs/es/accessibility.md) | Interfaz y terminal | User or managed |
| [`bashEditDiffEnabled`](#basheditdiffenabled) | Registra los [archivos que cambiaron mientras se ejecutaba un comando Bash](https://code.claude.com/docs/es/hooks.md#bash) en todos los modos de permisos | Interfaz y terminal | User or managed |
| [`bashOutputMaxChars`](#bashoutputmaxchars) | Establece cuánta [salida](https://code.claude.com/docs/es/tools-reference.md#output-limits) de un comando exitoso recibe Claude en línea | Memoria y contexto | Any file |
| [`blockedMarketplaces`](#blockedmarketplaces) | Bloquea fuentes de [marketplaces de plugins](https://code.claude.com/docs/es/plugins/overview.md) para tu organización | Plugins y skills | Managed |
| [`browserExternalPageTools`](#browserexternalpagetools) | Mantén las herramientas de Claude fuera de las páginas externas en el panel Browser de [escritorio](https://code.claude.com/docs/es/desktop.md) | Herramientas | Managed |
| [`channelsEnabled`](#channelsenabled) | Permite los [canales](https://code.claude.com/docs/es/channels.md#enable-channels-for-your-organization) para tu organización | Plugins y skills | Managed |
| [`claudeInChromeDefaultEnabled`](#claudeinchromedefaultenabled) | Activa la [integración con Chrome](https://code.claude.com/docs/es/chrome.md) al iniciar una sesión, en la CLI interactiva y en la extensión de VS Code | Configuración de configuración global | Global config |
| [`claudeMd`](#claudemd) | Inyecta instrucciones de [CLAUDE.md](https://code.claude.com/docs/es/memory.md#deploy-organization-wide-claude-md) para toda la organización desde la configuración administrada | Memoria y contexto | Managed |
| [`claudeMdExcludes`](#claudemdexcludes) | Omite archivos [CLAUDE.md](https://code.claude.com/docs/es/memory.md#exclude-specific-claude-md-files) específicos cuando se carga la memoria | Memoria y contexto | Any file |
| [`cleanupPeriodDays`](#cleanupperioddays) | Elige cuántos días conserva Claude Code las [transcripciones](https://code.claude.com/docs/es/data-usage.md#data-retention) antes de eliminarlas | Privacidad y telemetría | Any file |
| [`companyAnnouncements`](#companyannouncements) | Muestra los anuncios de tu organización al iniciar | Interfaz y terminal | Any file |
| [`copyFullResponse`](#copyfullresponse) | Haz que [`/copy`](https://code.claude.com/docs/es/commands) copie la respuesta completa sin mostrar el selector | Configuración de configuración global | Global config |
| [`copyOnSelect`](#copyonselect) | Desactiva la copia automática del texto que seleccionas con el mouse en el [renderizado de pantalla completa](https://code.claude.com/docs/es/fullscreen.md#use-the-mouse) y en la vista de agentes | Configuración de configuración global | Global config |
| [`crossSessionInbound`](#crosssessioninbound) | Elige si Claude Code entrega los [mensajes de tus otras sesiones](https://code.claude.com/docs/es/cross-session-messaging.md#control-inbound-messages), muestra un aviso sin entregarlos o los rechaza | Agentes, sesiones y worktrees | Any file |
| [`defaultShell`](#defaultshell) | Elige si Bash o PowerShell ejecuta los comandos de shell que escribes con el [prefijo `!`](https://code.claude.com/docs/es/interactive-mode#shell-mode-with-prefix) | Interfaz y terminal | Any file |
| [`defaultToAgentsView`](#defaulttoagentsview) | Abre la [vista de agentes](https://code.claude.com/docs/es/agent-view.md) en lugar de una nueva conversación cuando ejecutas `claude` sin argumentos | Configuración de configuración global | Global config |
| [`deniedMcpServers`](#deniedmcpservers) | Bloquea [servidores MCP](https://code.claude.com/docs/es/mcp.md) específicos por URL, comando o nombre | MCP | Any file |
| [`deniedModels`](#deniedmodels) | [Bloquea modelos específicos](https://code.claude.com/docs/es/model-config.md#block-specific-models-or-versions), incluso los que `availableModels` permite | Modelo y respuestas | Managed |
| [`desktopSessionCleanupPeriodDays`](#desktopsessioncleanupperioddays) | Establece un límite de antigüedad en días para las [transcripciones de Claude Desktop y Cowork](https://code.claude.com/docs/es/claude-directory.md#cleaned-up-automatically) | Privacidad y telemetría | User or managed |
| [`dialogExpiry`](#dialogexpiry) | Establece cuánto tiempo espera Claude Code a que [Remote Control](https://code.claude.com/docs/es/remote-control.md) o un host del SDK responda a un diálogo reenviado antes de cancelarlo | Interfaz y terminal | User or managed |
| [`diffTool`](#difftool) | Elige si los cambios de archivos que propone Claude se abren en el visor de diffs de [VS Code](https://code.claude.com/docs/es/vs-code.md) o [JetBrains](https://code.claude.com/docs/es/jetbrains.md#features) o permanecen en la terminal | Configuración de configuración global | Global config |
| [`disableAgentView`](#disableagentview) | Desactiva los agentes en segundo plano y la [vista de agentes](https://code.claude.com/docs/es/agent-view.md) | Agentes, sesiones y worktrees | Any file |
| [`disableAllHooks`](#disableallhooks) | Desactiva a la vez los [hooks](https://code.claude.com/docs/es/hooks.md), una [línea de estado](https://code.claude.com/docs/es/statusline.md) personalizada y un comando personalizado de [sugerencias de archivos `@`](https://code.claude.com/docs/es/interactive-mode#quick-commands) | Hooks y automatización | Any file |
| [`disableArtifact`](#disableartifact) | Obsoleto; usa `enableArtifact` para desactivar la [herramienta Artifact](https://code.claude.com/docs/es/artifacts.md) | Remoto, escritorio y notificaciones | Any file |
| [`disableAutoMode`](#disableautomode) | Elimina el [modo automático](https://code.claude.com/docs/es/permission-modes.md#eliminate-prompts-with-auto-mode) del ciclo de modos de permisos | Configuración de permisos | Any file |
| [`disableBrowserExternalNavigation`](#disablebrowserexternalnavigation) | Limita el panel Browser de [escritorio](https://code.claude.com/docs/es/desktop.md) a localhost, tanto para las personas como para Claude | Herramientas | Managed |
| [`disableBundledSkills`](#disablebundledskills) | Desactiva los [skills](https://code.claude.com/docs/es/skills.md#bundled-skills) y [workflows](https://code.claude.com/docs/es/workflows.md) incluidos con Claude Code | Plugins y skills | Any file |
| [`disableClaudeAiConnectors`](#disableclaudeaiconnectors) | Desactiva los [conectores de claude.ai](https://code.claude.com/docs/es/mcp.md#disable-claude-ai-connectors) para que Claude Code no los obtenga | MCP | Any file |
| [`disableCommandPluginSources`](#disablecommandpluginsources) | Bloquea los [plugins](https://code.claude.com/docs/es/plugins/overview.md) que se instalan ejecutando un comando declarado por el marketplace | Plugins y skills | Managed |
| [`disableDeepLinkRegistration`](#disabledeeplinkregistration) | Impide que Claude Code registre el [manejador `claude-cli://`](https://code.claude.com/docs/es/deep-links) | Remoto, escritorio y notificaciones | Any file |
| [`disableDesktopLocalSessions`](#disabledesktoplocalsessions) | Desactiva las [sesiones de Desktop Code](https://code.claude.com/docs/es/desktop.md#local-sessions-on-managed-devices) que se ejecutan en el dispositivo, y deja disponibles SSH a otros hosts y la nube | Remoto, escritorio y notificaciones | Managed |
| [`disabledMcpjsonServers`](#disabledmcpjsonservers) | Rechaza servidores específicos del [`.mcp.json`](https://code.claude.com/docs/es/mcp#project-scope) de un proyecto | MCP | Any file |
| [`disableMobileSimulatorTools`](#disablemobilesimulatortools) | Bloquea las herramientas de Claude en el panel iOS Simulator de [escritorio](https://code.claude.com/docs/es/desktop.md) | Herramientas | Managed |
| [`disableRemoteControl`](#disableremotecontrol) | Desactiva [Remote Control](https://code.claude.com/docs/es/remote-control.md) en todos los lugares donde puede iniciarse | Remoto, escritorio y notificaciones | Any file |
| [`disableSideloadFlags`](#disablesideloadflags) | Rechaza los flags de la CLI que cargan de forma lateral [plugins](https://code.claude.com/docs/es/plugins/overview.md), [subagentes](https://code.claude.com/docs/es/sub-agents.md) y [servidores MCP](https://code.claude.com/docs/es/mcp.md) | Configuración empresarial y administrada | Managed |
| [`disableSkillShellExecution`](#disableskillshellexecution) | Impide que los [skills](https://code.claude.com/docs/es/skills.md) y los comandos personalizados ejecuten shell en línea | Plugins y skills | Any file |
| [`disableWorkflows`](#disableworkflows) | Desactiva los [workflows dinámicos](https://code.claude.com/docs/es/workflows.md) para todos; usa `enableWorkflows` para ti | Hooks y automatización | Any file |
| [`editorMode`](#editormode) | Usa los [atajos de teclado de vim](https://code.claude.com/docs/es/interactive-mode.md#vim-editor-mode) en el prompt de entrada | Interfaz y terminal | Any file |
| [`effortLevel`](#effortlevel) | Establece un [nivel de esfuerzo](https://code.claude.com/docs/es/model-config.md#adjust-effort-level) predeterminado para los modelos que no tienen un nivel guardado propio | Modelo y respuestas | Any file |
| [`emojiCompletionEnabled`](#emojicompletionenabled) | Desactiva las [sugerencias y el reemplazo de emojis `:shortcode:`](https://code.claude.com/docs/es/interactive-mode#emoji-shortcodes) en la entrada del prompt | Interfaz y terminal | Any file |
| [`enableAllProjectMcpServers`](#enableallprojectmcpservers) | Aprueba todos los servidores de los archivos [`.mcp.json`](https://code.claude.com/docs/es/mcp#project-server-approvals-and-workspace-trust) del proyecto sin pedir confirmación | MCP | Any file |
| [`enableArtifact`](#enableartifact) | Desactiva la [herramienta Artifact](https://code.claude.com/docs/es/artifacts.md) con un `false` en cualquier archivo; ningún archivo puede volver a activarla | Remoto, escritorio y notificaciones | Any file |
| [`enabledMcpjsonServers`](#enabledmcpjsonservers) | Aprueba servidores específicos del [`.mcp.json`](https://code.claude.com/docs/es/mcp#project-server-approvals-and-workspace-trust) de un proyecto | MCP | Any file |
| [`enabledPlugins`](#enabledplugins) | Activa o desactiva [plugins](https://code.claude.com/docs/es/plugins/overview.md) individuales por alcance | Plugins y skills | Any file |
| [`enableWorkflows`](#enableworkflows) | Activa o desactiva los [workflows dinámicos](https://code.claude.com/docs/es/workflows.md) frente al valor predeterminado de tu plan | Hooks y automatización | Any file |
| [`enforceAvailableModels`](#enforceavailablemodels) | Mantén la [opción Default de `/model`](https://code.claude.com/docs/es/model-config#enforce-the-allowlist-for-the-default-model) dentro de tu lista de permitidos `availableModels` | Modelo y respuestas | Any file |
| [`env`](#env) | Establece [variables de entorno](https://code.claude.com/docs/es/env-vars.md#in-settings-files) para cada sesión y sus subprocesos | Memoria y contexto | Any file |
| [`externalEditorContext`](#externaleditorcontext) | Muestra la última respuesta de Claude como comentarios cuando presionas [Ctrl+G](https://code.claude.com/docs/es/interactive-mode.md#general-controls) para editar | Configuración de configuración global | Global config |
| [`extraKnownMarketplaces`](#extraknownmarketplaces) | Registra [marketplaces](https://code.claude.com/docs/es/plugins/overview.md) para un repositorio o una organización | Plugins y skills | Any file |
| [`fallbackModel`](#fallbackmodel) | Indica [modelos de respaldo](https://code.claude.com/docs/es/model-config.md#fallback-model-chains) para cuando el principal esté sobrecargado | Modelo y respuestas | Any file |
| [`fastMode`](#fastmode) | Activa el [modo rápido](https://code.claude.com/docs/es/fast-mode.md) en las sesiones donde esté disponible | Modelo y respuestas | Any file |
| [`fastModePerSessionOptIn`](#fastmodepersessionoptin) | Exige que las personas activen el [modo rápido](https://code.claude.com/docs/es/fast-mode.md) en cada sesión | Modelo y respuestas | Any file |
| [`feedbackDrafts`](#feedbackdrafts) | Controla si Claude pone en cola [borradores de comentarios](https://code.claude.com/docs/es/tools-reference.md#sendfeedback-tool-behavior) para que los revises | Privacidad y telemetría | User or managed |
| [`feedbackSurveyRate`](#feedbacksurveyrate) | Cambia la frecuencia con la que aparece la [encuesta de calidad de la sesión](https://code.claude.com/docs/es/data-usage.md#session-quality-surveys) | Privacidad y telemetría | Any file |
| [`fileCheckpointingEnabled`](#filecheckpointingenabled) | Desactiva o activa las instantáneas de archivos que restaura [`/rewind`](https://code.claude.com/docs/es/checkpointing) | Memoria y contexto | Any file |
| [`fileSuggestion`](#filesuggestion) | Proporciona el [autocompletado de archivos `@`](https://code.claude.com/docs/es/interactive-mode#quick-commands) desde tu propio comando | Interfaz y terminal | Any file |
| [`footerLinksRegexes`](#footerlinksregexes) | Convierte los ID de issues o revisiones de la salida en [enlaces en los que se puede hacer clic](https://code.claude.com/docs/es/statusline.md#clickable-links) debajo del cuadro de entrada | Interfaz y terminal | User or managed |
| [`forceLoginGatewayUrl`](#forcelogingatewayurl) | Establece la [URL del gateway](https://code.claude.com/docs/es/claude-apps-gateway#set-the-gateway-url) a la que se conecta la pantalla de inicio de sesión | Autenticación y proveedores | User or managed |
| [`forceLoginMethod`](#forceloginmethod) | [Restringe el inicio de sesión](https://code.claude.com/docs/es/authentication.md#restrict-login-to-your-organization) a claude.ai, Claude Console o un [gateway en la nube](https://code.claude.com/docs/es/claude-apps-gateway) | Autenticación y proveedores | Any file |
| [`forceLoginOrgUUID`](#forceloginorguuid) | [Fija los inicios de sesión de claude.ai a tu organización](https://code.claude.com/docs/es/authentication.md#restrict-login-to-your-organization); solo una fuente administrada lo aplica | Autenticación y proveedores | Any file |
| [`forceRemoteSettingsRefresh`](#forceremotesettingsrefresh) | Bloquea el inicio hasta que la [configuración administrada por el servidor](https://code.claude.com/docs/es/server-managed-settings.md) se haya obtenido de nuevo | Configuración empresarial y administrada | Managed |
| [`gatewayInternalNetworks`](#gatewayinternalnetworks) | Permite que `/login` alcance un [gateway en la nube](https://code.claude.com/docs/es/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) en espacio IPv4 público que tu organización usa internamente | Autenticación y proveedores | Managed |
| [`gcpAuthRefresh`](#gcpauthrefresh) | Actualiza las [credenciales de Google Cloud](https://code.claude.com/docs/es/google-vertex-ai.md#advanced-credential-configuration) con tu propio comando | Autenticación y proveedores | Any file |
| [`hooks`](#hooks) | Ejecuta tus propios comandos como [hooks](https://code.claude.com/docs/es/hooks.md) en distintos puntos del ciclo de vida de Claude Code | Hooks y automatización | Any file |
| [`httpHookAllowedEnvVars`](#httphookallowedenvvars) | Limita qué variables de entorno pueden poner los [hooks HTTP](https://code.claude.com/docs/es/hooks.md) en los encabezados | Hooks y automatización | Any file |
| [`idleCompaction`](#idlecompaction) | Impide que Claude Code compacte una conversación larga de la que te alejaste | Memoria y contexto | Any file |
| [`includeCoAuthoredBy`](#includecoauthoredby) | Obsoleto; usa `attribution` para ocultar o cambiar la atribución de commits y PR | Git y atribución | Any file |
| [`includeGitInstructions`](#includegitinstructions) | Elimina del contexto de Claude las instrucciones integradas de commits y PR | Git y atribución | Any file |
| [`inputNeededNotifEnabled`](#inputneedednotifenabled) | Recibe una [notificación push](https://code.claude.com/docs/es/remote-control.md#mobile-push-notifications) cuando Claude esté esperándote | Remoto, escritorio y notificaciones | Any file |
| [`isolatePeerMachines`](#isolatepeermachines) | Pide tu aprobación antes de que Claude [envíe un mensaje a una de tus sesiones en otra máquina](https://code.claude.com/docs/es/cross-session-messaging.md#require-approval-for-cross-machine-messages) | Agentes, sesiones y worktrees | Any file |
| [`keybindingFlavor`](#keybindingflavor) | Obsoleto y sin efecto; los atajos de edición de palabras siempre [siguen las convenciones de readline](https://code.claude.com/docs/es/interactive-mode.md#make-ctrl-w-delete-back-to-whitespace) | Interfaz y terminal | Any file |
| [`language`](#language) | Haz que Claude responda en un idioma distinto del inglés | Modelo y respuestas | Any file |
| [`leftArrowOpensAgents`](#leftarrowopensagents) | Desactiva el atajo `←` que [pasa la sesión a segundo plano y abre la vista de agentes](https://code.claude.com/docs/es/agent-view.md#switch-sessions-without-leaving-the-terminal) | Configuración de configuración global | Global config |
| [`managedMcpServers`](#managedmcpservers) | Proporciona [servidores MCP](https://code.claude.com/docs/es/managed-mcp.md#provide-servers-through-managed-settings) remotos a todos los usuarios, junto con los que ellos agregan | MCP | Managed |
| [`managedSourcesBehavior`](#managedsourcesbehavior) | Combina todas las [fuentes administradas](https://code.claude.com/docs/es/managed-settings.md#how-claude-code-combines-managed-sources) que implementes en lugar de usar solo la de mayor prioridad | Configuración empresarial y administrada | Managed |
| [`maxEffortLevel`](#maxeffortlevel) | Limita el [nivel de esfuerzo](https://code.claude.com/docs/es/model-config.md#adjust-effort-level) para todos los modelos o por modelo, en todos los proveedores | Modelo y respuestas | Any file |
| [`maxProseWidth`](#maxprosewidth) | Limita el ancho de la prosa de las respuestas de Claude en una terminal ancha | Interfaz y terminal | Any file |
| [`minimumVersion`](#minimumversion) | Impide que las [actualizaciones automáticas](https://code.claude.com/docs/es/setup.md#pin-a-minimum-version) instalen cualquier versión inferior a una dada | Actualizaciones y versiones | Any file |
| [`model`](#model) | Cambia el [modelo](https://code.claude.com/docs/es/model-config.md#set-a-default-model-for-new-sessions) con el que inicia Claude Code | Modelo y respuestas | Any file |
| [`modelOverrides`](#modeloverrides) | [Asigna los ID de modelo](https://code.claude.com/docs/es/model-config.md#override-model-ids-per-version) a los ID de tu proveedor, como los ARN de Bedrock | Modelo y respuestas | Any file |
| [`modelPicker`](#modelpicker) | Elige qué modelos muestra el [selector de `/model`](https://code.claude.com/docs/es/model-config#available-models), en tu propio orden y con tus propias etiquetas | Modelo y respuestas | User or managed |
| [`modelPricing`](#modelpricing) | Reporta el gasto con las tarifas contratadas por tu organización en lugar del precio de lista | Modelo y respuestas | Managed |
| [`modelSettings`](#modelsettings) | Guarda un [nivel de esfuerzo](https://code.claude.com/docs/es/model-config.md#adjust-effort-level) o una [ventana de compactación automática](https://code.claude.com/docs/es/model-config.md#set-the-auto-compact-window) por modelo, o limita el esfuerzo de un modelo | Modelo y respuestas | Any file |
| [`otelHeadersHelper`](#otelheadershelper) | Genera encabezados rotativos de [OpenTelemetry](https://code.claude.com/docs/es/monitoring-usage.md#dynamic-headers) con tu propio comando | Autenticación y proveedores | Any file |
| [`outputStyle`](#outputstyle) | Cambia el rol, el tono y el formato de salida de Claude con un [estilo de salida](https://code.claude.com/docs/es/output-styles.md) | Modelo y respuestas | Any file |
| [`parentSettingsBehavior`](#parentsettingsbehavior) | Aplica o descarta las restricciones que pasa un [host de SDK o IDE](https://code.claude.com/docs/es/managed-settings.md#let-an-embedding-host-add-policy) cuando implementas la [configuración administrada](https://code.claude.com/docs/es/managed-settings.md) | Configuración empresarial y administrada | Managed |
| [`permissionExplainerEnabled`](#permissionexplainerenabled) | Eliminado en v2.1.257, junto con la explicación de comandos con `Ctrl+E` en las solicitudes de permiso de shell | Configuración de configuración global | Global config |
| [`permissions`](#permissions) | Establece las reglas de permitir, preguntar y denegar, y el [modo de permisos](https://code.claude.com/docs/es/permission-modes.md) inicial | Configuración de permisos | Any file |
| [`permissions.additionalDirectories`](#permissions-additionaldirectories) | Da a Claude acceso a archivos en [directorios fuera del actual](https://code.claude.com/docs/es/permissions.md#working-directories) | Configuración de permisos | Any file |
| [`permissions.allow`](#permissions-allow) | Aprueba los [usos de herramientas](https://code.claude.com/docs/es/permissions.md#permission-rule-syntax) enumerados sin pedir confirmación | Configuración de permisos | Any file |
| [`permissions.ask`](#permissions-ask) | Pide confirmación siempre antes de los [usos de herramientas](https://code.claude.com/docs/es/permissions.md#permission-rule-syntax) enumerados | Configuración de permisos | Any file |
| [`permissions.blockReadsOutsideWorkingDirectories`](#permissions-blockreadsoutsideworkingdirectories) | Haz que las herramientas de archivos rechacen las lecturas fuera de los [directorios de trabajo](https://code.claude.com/docs/es/permissions.md#working-directories) en todos los modos de permisos | Configuración de permisos | Any file |
| [`permissions.defaultMode`](#permissions-defaultmode) | Establece el [modo de permisos](https://code.claude.com/docs/es/permission-modes.md#which-mode-a-session-starts-in) en el que inician las nuevas sesiones | Configuración de permisos | Any file |
| [`permissions.deny`](#permissions-deny) | Bloquea los [usos de herramientas](https://code.claude.com/docs/es/permissions.md#permission-rule-syntax) enumerados, incluidas las lecturas de archivos que contienen secretos | Configuración de permisos | Any file |
| [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) | Impide que cualquiera entre en el [modo bypassPermissions](https://code.claude.com/docs/es/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) | Configuración de permisos | Any file |
| [`plansDirectory`](#plansdirectory) | Elige dónde escribe el [modo plan](https://code.claude.com/docs/es/permission-modes.md#analyze-before-you-edit-with-plan-mode) los archivos de plan | Memoria y contexto | Any file |
| [`pluginConfigs`](#pluginconfigs) | Almacena las respuestas que diste en el diálogo de configuración de un [plugin](https://code.claude.com/docs/es/plugins/overview.md) | Plugins y skills | User or managed |
| [`pluginSuggestionMarketplaces`](#pluginsuggestionmarketplaces) | Elige qué [marketplaces](https://code.claude.com/docs/es/plugins/org.md#restrict-what-users-can-install) pueden mostrar sugerencias de instalación de plugins en `/plugin` | Plugins y skills | Managed |
| [`pluginTrustMessage`](#plugintrustmessage) | Agrega tu propio texto a la advertencia de confianza de los [plugins](https://code.claude.com/docs/es/plugins/overview.md) | Plugins y skills | Managed |
| [`policyHelper`](#policyhelper) | Ejecuta un ejecutable que calcula la [configuración administrada](https://code.claude.com/docs/es/managed-settings.md#compute-the-policy-with-a-helper-program) al iniciar | Configuración empresarial y administrada | Managed |
| [`policyHelper.path`](#policyhelper-path) | Indica el [ejecutable auxiliar](https://code.claude.com/docs/es/managed-settings.md#compute-the-policy-with-a-helper-program) que ejecuta Claude Code | Configuración empresarial y administrada | Managed |
| [`policyHelper.refreshIntervalMs`](#policyhelper-refreshintervalms) | Vuelve a ejecutar el [auxiliar](https://code.claude.com/docs/es/managed-settings.md#compute-the-policy-with-a-helper-program) en segundo plano a intervalos | Configuración empresarial y administrada | Managed |
| [`policyHelper.timeoutMs`](#policyhelper-timeoutms) | Establece cuánto tiempo espera Claude Code al [auxiliar](https://code.claude.com/docs/es/managed-settings.md#compute-the-policy-with-a-helper-program) | Configuración empresarial y administrada | Managed |
| [`preferredNotifChannel`](#preferrednotifchannel) | Elige un [timbre de terminal o una notificación de escritorio](https://code.claude.com/docs/es/terminal-config.md#get-a-terminal-bell-or-notification) al completarse las tareas | Remoto, escritorio y notificaciones | Any file |
| [`prefersReducedMotion`](#prefersreducedmotion) | [Reduce o desactiva](https://code.claude.com/docs/es/accessibility.md#accessibility-settings) las animaciones de spinner, shimmer y flash | Interfaz y terminal | Any file |
| [`prependPlugins`](#prependplugins) | Ejecuta los [mods](https://code.claude.com/docs/es/plugins/mods/admin.md) de tu organización antes de cada mod que instale un usuario | Plugins y skills | User or managed |
| [`processWrapper`](#processwrapper) | Ejecuta los procesos en segundo plano de Claude Code a través de un [iniciador corporativo](https://code.claude.com/docs/es/corporate-launcher.md) en macOS y Linux | Agentes, sesiones y worktrees | User or managed |
| [`promptCacheTtl`](#promptcachettl) | Elige la [duración de la caché de prompts](https://code.claude.com/docs/es/prompt-caching.md#cache-lifetime) para la conversación principal | Modelo y respuestas | Any file |
| [`promptSuggestionEnabled`](#promptsuggestionenabled) | Oculta las [sugerencias de prompts](https://code.claude.com/docs/es/interactive-mode.md#prompt-suggestions) atenuadas en el cuadro de entrada | Interfaz y terminal | Any file |
| [`prStatusFooterEnabled`](#prstatusfooterenabled) | Desactiva la insignia de [estado de revisión del PR](https://code.claude.com/docs/es/interactive-mode.md#pr-review-status) en el pie del prompt y la verificación del pull request que la alimenta | Configuración de configuración global | Global config |
| [`prUrlTemplate`](#prurltemplate) | Apunta los enlaces de PR a una herramienta interna de revisión de código en lugar de github.com | Git y atribución | Any file |
| [`remote.defaultEnvironmentId`](#remote-defaultenvironmentid) | Elige el [entorno en la nube](https://code.claude.com/docs/es/cloud-environments.md) predeterminado para `claude --cloud`; un ID `ccpool_` autohospedado solo se lee desde la configuración de usuario y administrada y desde `--settings` | Remoto, escritorio y notificaciones | Any file |
| [`remoteControlAtStartup`](#remotecontrolatstartup) | Conecta [Remote Control](https://code.claude.com/docs/es/remote-control.md#enable-remote-control-for-all-sessions) automáticamente cuando se inicia una sesión | Remoto, escritorio y notificaciones | Any file |
| [`requiredMaximumVersion`](#requiredmaximumversion) | [Impide el inicio](https://code.claude.com/docs/es/setup.md#pin-a-minimum-version) con una versión más nueva de la que tu organización permite | Actualizaciones y versiones | Managed |
| [`requiredMinimumVersion`](#requiredminimumversion) | [Impide el inicio](https://code.claude.com/docs/es/setup.md#pin-a-minimum-version) con una versión más antigua de la que tu organización exige | Actualizaciones y versiones | Managed |
| [`respectGitignore`](#respectgitignore) | Mantén los archivos ignorados por git fuera del [selector de archivos `@`](https://code.claude.com/docs/es/interactive-mode#quick-commands) | Interfaz y terminal | Any file |
| [`respondToBashCommands`](#respondtobashcommands) | Impide que Claude responda después de que se ejecuta un [comando de shell con `!`](https://code.claude.com/docs/es/interactive-mode#shell-mode-with-prefix) | Interfaz y terminal | Any file |
| [`sandbox`](#sandbox) | [Aísla los comandos Bash](https://code.claude.com/docs/es/sandboxing.md) de tu sistema de archivos y tu red en macOS, Linux y WSL2 | Configuración de sandbox | Any file |
| [`sandbox.allowAppleEvents`](#sandbox-allowappleevents) | Permite que los [comandos en sandbox](https://code.claude.com/docs/es/sandboxing.md) envíen Apple Events en macOS | Configuración de sandbox | User or managed |
| [`sandbox.allowNestedUserNamespaces`](#sandbox-allownestedusernamespaces) | Permite que los [comandos en sandbox](https://code.claude.com/docs/es/sandboxing.md#chromium-or-rootless-podman-fails-inside-the-sandbox-on-linux) creen espacios de nombres de usuario en Linux y WSL2 | Configuración de sandbox | User or managed |
| [`sandbox.allowUnsandboxedCommands`](#sandbox-allowunsandboxedcommands) | Permite que Claude reintente un comando bloqueado fuera del [sandbox](https://code.claude.com/docs/es/sandboxing.md#the-unsandboxed-retry-escape-hatch), o prohíbelo | Configuración de sandbox | Any file |
| [`sandbox.autoAllowBashIfSandboxed`](#sandbox-autoallowbashifsandboxed) | Ejecuta los [comandos en sandbox](https://code.claude.com/docs/es/sandboxing.md#auto-allow-mode) sin una solicitud de permiso | Configuración de sandbox | Any file |
| [`sandbox.bwrapPath`](#sandbox-bwrappath) | Apunta el [sandbox](https://code.claude.com/docs/es/sandboxing.md) a un binario de bubblewrap fuera de `PATH` | Configuración de sandbox | Managed |
| [`sandbox.credentials`](#sandbox-credentials) | Oculta o enmascara archivos y variables de credenciales dentro del [sandbox](https://code.claude.com/docs/es/sandboxing.md#protect-credentials) | Configuración de sandbox | Any file |
| [`sandbox.credentials.allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) | Permite que las [credenciales enmascaradas](https://code.claude.com/docs/es/sandboxing.md#mask-credentials) lleguen a servicios HTTP simples en redes de prueba de confianza | Configuración de sandbox | User or managed |
| [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs) | Vincula variables de claves de AWS con nombres personalizados en una sola credencial para [volver a firmar](https://code.claude.com/docs/es/sandboxing.md#re-sign-aws-requests) | Configuración de sandbox | User or managed |
| [`sandbox.credentials.envVars`](#sandbox-credentials-envvars) | Elimina o enmascara una variable de entorno dentro del [sandbox](https://code.claude.com/docs/es/sandboxing.md#mask-environment-variables) | Configuración de sandbox | Any file |
| [`sandbox.credentials.files`](#sandbox-credentials-files) | Bloquea o enmascara las lecturas de un archivo de credenciales dentro del [sandbox](https://code.claude.com/docs/es/sandboxing.md#mask-credential-files) | Configuración de sandbox | Any file |
| [`sandbox.credentials.sigv4`](#sandbox-credentials-sigv4) | Elige si las solicitudes de AWS en streaming, prefirmadas o [SigV4A](https://code.claude.com/docs/es/sandboxing.md#re-sign-aws-requests) fallan o pasan sin cambios | Configuración de sandbox | User or managed |
| [`sandbox.enabled`](#sandbox-enabled) | Activa el [sandboxing de Bash](https://code.claude.com/docs/es/sandboxing.md#get-started) en macOS, Linux y WSL2 | Configuración de sandbox | Any file |
| [`sandbox.enableWeakerNestedSandbox`](#sandbox-enableweakernestedsandbox) | Ejecuta el [sandbox](https://code.claude.com/docs/es/sandboxing.md) de Linux dentro de un contenedor sin privilegios | Configuración de sandbox | Any file |
| [`sandbox.enableWeakerNetworkIsolation`](#sandbox-enableweakernetworkisolation) | Permite que `gh`, `gcloud` y `terraform` verifiquen TLS detrás de un proxy MITM dentro del [sandbox](https://code.claude.com/docs/es/sandboxing.md#go-based-clis-fail-tls-verification-on-macos) en macOS | Configuración de sandbox | Any file |
| [`sandbox.excludedCommands`](#sandbox-excludedcommands) | Indica los comandos que Claude Code puede ejecutar fuera del [sandbox](https://code.claude.com/docs/es/sandboxing.md) | Configuración de sandbox | Any file |
| [`sandbox.failIfUnavailable`](#sandbox-failifunavailable) | Impide el inicio cuando el [sandbox](https://code.claude.com/docs/es/sandboxing.md) no puede iniciarse, en lugar de ejecutar sin sandbox | Configuración de sandbox | Any file |
| [`sandbox.filesystem`](#sandbox-filesystem) | Controla qué rutas pueden leer y escribir los [comandos en sandbox](https://code.claude.com/docs/es/sandboxing.md#filesystem-isolation) | Configuración de sandbox | Any file |
| [`sandbox.filesystem.allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) | Impide que los desarrolladores vuelvan a abrir [rutas de lectura que tu organización bloqueó](https://code.claude.com/docs/es/sandboxing.md#keep-developers-from-widening-the-policy) | Configuración de sandbox | Managed |
| [`sandbox.filesystem.allowRead`](#sandbox-filesystem-allowread) | Vuelve a permitir la lectura dentro de una región que [`denyRead`](#sandbox-filesystem-denyread) bloquea | Configuración de sandbox | Any file |
| [`sandbox.filesystem.allowWrite`](#sandbox-filesystem-allowwrite) | Agrega rutas en las que pueden escribir los [comandos en sandbox](https://code.claude.com/docs/es/sandboxing.md) | Configuración de sandbox | Any file |
| [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread) | Impide que los [comandos en sandbox](https://code.claude.com/docs/es/sandboxing.md) lean rutas específicas | Configuración de sandbox | Any file |
| [`sandbox.filesystem.denyWrite`](#sandbox-filesystem-denywrite) | Impide que los [comandos en sandbox](https://code.claude.com/docs/es/sandboxing.md) escriban en rutas específicas | Configuración de sandbox | Any file |
| [`sandbox.filesystem.disabled`](#sandbox-filesystem-disabled) | [Desactiva el aislamiento del sistema de archivos](https://code.claude.com/docs/es/sandboxing.md#disable-filesystem-isolation) y mantén el aislamiento de red | Configuración de sandbox | User or managed |
| [`sandbox.ignoreViolations`](#sandbox-ignoreviolations) | Silencia los reportes de violaciones para las rutas que se espera que un comando sondee | Configuración de sandbox | Any file |
| [`sandbox.network`](#sandbox-network) | Controla a qué hosts, puertos y sockets pueden acceder los [comandos en sandbox](https://code.claude.com/docs/es/sandboxing.md#network-isolation) | Configuración de sandbox | Any file |
| [`sandbox.network.allowAllUnixSockets`](#sandbox-network-allowallunixsockets) | Permite que los [comandos en sandbox](https://code.claude.com/docs/es/sandboxing.md) se conecten a cualquier socket Unix | Configuración de sandbox | Any file |
| [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) | Permite dominios de antemano para que los [comandos en sandbox](https://code.claude.com/docs/es/sandboxing.md) no pidan permiso para ellos | Configuración de sandbox | Any file |
| [`sandbox.network.allowLocalBinding`](#sandbox-network-allowlocalbinding) | Permite que los [comandos en sandbox](https://code.claude.com/docs/es/sandboxing.md) escuchen en puertos de red y se conecten a localhost en macOS | Configuración de sandbox | Any file |
| [`sandbox.network.allowMachLookup`](#sandbox-network-allowmachlookup) | Permite que las herramientas [en sandbox](https://code.claude.com/docs/es/sandboxing.md) de macOS, como iOS Simulator o Playwright, accedan a sus servicios XPC | Configuración de sandbox | Any file |
| [`sandbox.network.allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly) | Restringe la lista de dominios permitidos de red a la [configuración administrada](https://code.claude.com/docs/es/sandboxing.md#keep-developers-from-widening-the-policy) | Configuración de sandbox | Managed |
| [`sandbox.network.allowUnixSockets`](#sandbox-network-allowunixsockets) | Enumera las rutas de sockets Unix que pueden usar los [comandos en sandbox](https://code.claude.com/docs/es/sandboxing.md) en macOS | Configuración de sandbox | Any file |
| [`sandbox.network.deniedDomains`](#sandbox-network-denieddomains) | Bloquea dominios para los [comandos en sandbox](https://code.claude.com/docs/es/sandboxing.md), incluso dentro de un comodín permitido | Configuración de sandbox | Any file |
| [`sandbox.network.httpProxyPort`](#sandbox-network-httpproxyport) | Enruta el tráfico HTTP del [sandbox](https://code.claude.com/docs/es/sandboxing.md#custom-proxy-configuration) a través de tu propio proxy | Configuración de sandbox | Any file |
| [`sandbox.network.socksProxyPort`](#sandbox-network-socksproxyport) | Enruta el tráfico SOCKS del [sandbox](https://code.claude.com/docs/es/sandboxing.md#custom-proxy-configuration) a través de tu propio proxy | Configuración de sandbox | Any file |
| [`sandbox.network.strictAllowlist`](#sandbox-network-strictallowlist) | Deniega los hosts que están fuera de la [lista de permitidos](https://code.claude.com/docs/es/sandboxing.md#network-isolation) en lugar de pedir permiso | Configuración de sandbox | User or managed |
| [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate) | Haz que el proxy del [sandbox](https://code.claude.com/docs/es/sandboxing.md#network-isolation) termine TLS para que pueda leer las solicitudes HTTPS | Configuración de sandbox | User or managed |
| [`sandbox.ripgrep`](#sandbox-ripgrep) | Usa tu propio binario de ripgrep dentro del [sandbox](https://code.claude.com/docs/es/sandboxing.md) | Configuración de sandbox | User or managed |
| [`sandbox.socatPath`](#sandbox-socatpath) | Apunta el proxy del [sandbox](https://code.claude.com/docs/es/sandboxing.md) a un binario de `socat` fuera de `PATH` | Configuración de sandbox | Managed |
| [`showClearContextOnPlanAccept`](#showclearcontextonplanaccept) | Muestra una opción "borrar contexto" en la [pantalla de aceptación del plan](https://code.claude.com/docs/es/permission-modes.md#review-and-approve-a-plan) | Interfaz y terminal | Any file |
| [`showThinkingSummaries`](#showthinkingsummaries) | Ve resúmenes del [pensamiento](https://code.claude.com/docs/es/model-config.md#extended-thinking) de Claude en lugar de un marcador contraído | Modelo y respuestas | Any file |
| [`showTurnDuration`](#showturnduration) | Oculta la duración "Cooked for" después de cada respuesta | Interfaz y terminal | Any file |
| [`skillListingBudgetFraction`](#skilllistingbudgetfraction) | Reserva más o menos contexto para el [listado de skills](https://code.claude.com/docs/es/skills.md#skill-descriptions-are-cut-short) | Memoria y contexto | Any file |
| [`skillListingMaxDescChars`](#skilllistingmaxdescchars) | Limita la longitud de la descripción de cada skill en el [listado de skills](https://code.claude.com/docs/es/skills.md#skill-descriptions-are-cut-short) | Memoria y contexto | Any file |
| [`skillOverrides`](#skilloverrides) | [Oculta o contrae un skill](https://code.claude.com/docs/es/skills.md#override-skill-visibility-from-settings) sin editar su SKILL.md | Plugins y skills | Any file |
| [`skipAutoPermissionPrompt`](#skipautopermissionprompt) | Omite el aviso único que Claude Code muestra cuando entras por primera vez al [modo automático](https://code.claude.com/docs/es/permission-modes.md#eliminate-prompts-with-auto-mode) por tu cuenta en lugar de a través del valor predeterminado integrado | Configuración de permisos | User or managed |
| [`skipDangerousModePermissionPrompt`](#skipdangerousmodepermissionprompt) | Omite el diálogo de confirmación antes del [modo bypassPermissions](https://code.claude.com/docs/es/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) | Configuración de permisos | User, local, or managed |
| [`skipWebFetchPreflight`](#skipwebfetchpreflight) | Omite la [verificación del nombre de host de WebFetch](https://code.claude.com/docs/es/tools-reference.md#webfetch-tool-behavior) cuando Anthropic no está accesible | Privacidad y telemetría | Any file |
| [`spellcheck`](#spellcheck) | Subraya las palabras mal escritas en la entrada del prompt con un [corrector ortográfico](https://code.claude.com/docs/es/interactive-mode.md#check-spelling-as-you-type) que instales | Interfaz y terminal | User or managed |
| [`spinnerTipsEnabled`](#spinnertipsenabled) | Oculta los consejos en el spinner mientras Claude trabaja | Interfaz y terminal | Any file |
| [`spinnerTipsOverride`](#spinnertipsoverride) | Agrega tus propios consejos a la rotación del spinner, o reemplaza los consejos integrados | Interfaz y terminal | Any file |
| [`spinnerVerbs`](#spinnerverbs) | Agrega o reemplaza los verbos que se muestran mientras se ejecuta un turno | Interfaz y terminal | Any file |
| [`sshConfigs`](#sshconfigs) | Agrega [conexiones SSH](https://code.claude.com/docs/es/desktop.md#pre-configure-ssh-connections-for-your-team) al selector de entornos de Desktop | Remoto, escritorio y notificaciones | User or managed |
| [`sshHostAllowlist`](#sshhostallowlist) | Limita a qué hosts pueden conectarse las [sesiones SSH de Desktop](https://code.claude.com/docs/es/desktop.md#restrict-which-ssh-hosts-users-can-connect-to) | Remoto, escritorio y notificaciones | Managed |
| [`sshHostCommands`](#sshhostcommands) | Agrega [conexiones SSH cuyo host proviene de un comando](https://code.claude.com/docs/es/desktop.md#create-an-ssh-connection-from-a-command) al selector de entornos de Desktop | Remoto, escritorio y notificaciones | User or managed |
| [`statusLine`](#statusline) | Ejecuta tu propio comando para mostrar una [línea de estado](https://code.claude.com/docs/es/statusline.md) debajo del prompt | Interfaz y terminal | Any file |
| [`strictKnownMarketplaces`](#strictknownmarketplaces) | Define una lista de permitidos de las fuentes de [marketplaces](https://code.claude.com/docs/es/plugins/overview.md) que los usuarios pueden agregar y desde las que pueden instalar | Plugins y skills | Managed |
| [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | Bloquea los [skills](https://code.claude.com/docs/es/skills.md), [agentes](https://code.claude.com/docs/es/sub-agents.md), [hooks](https://code.claude.com/docs/es/hooks.md) y [servidores MCP](https://code.claude.com/docs/es/mcp.md) de fuentes de usuario y de proyecto | Plugins y skills | Managed |
| [`strictPluginOnlyCustomization.agents`](#strictpluginonlycustomization-agents) | Restringe los [agentes](https://code.claude.com/docs/es/sub-agents.md) a fuentes de plugins y administradas | Plugins y skills | Managed |
| [`strictPluginOnlyCustomization.hooks`](#strictpluginonlycustomization-hooks) | Restringe los [hooks](https://code.claude.com/docs/es/hooks.md) a fuentes de plugins y administradas | Plugins y skills | Managed |
| [`strictPluginOnlyCustomization.mcp`](#strictpluginonlycustomization-mcp) | Restringe los [servidores MCP](https://code.claude.com/docs/es/mcp.md) a fuentes de plugins y administradas | Plugins y skills | Managed |
| [`strictPluginOnlyCustomization.skills`](#strictpluginonlycustomization-skills) | Restringe los [skills](https://code.claude.com/docs/es/skills.md) a fuentes de plugins y administradas | Plugins y skills | Managed |
| [`subagentPromptCacheTtl`](#subagentpromptcachettl) | Elige la [duración de la caché de prompts](https://code.claude.com/docs/es/prompt-caching.md#cache-lifetime) para los subagentes y otras solicitudes fuera de la conversación principal | Modelo y respuestas | Any file |
| [`subagentStatusLine`](#subagentstatusline) | Reescribe filas de la visualización de tareas del [subagente](https://code.claude.com/docs/es/sub-agents.md) con tu propio comando | Interfaz y terminal | Any file |
| [`switchModelsOnFlag`](#switchmodelsonflag) | Cambia de modelo automáticamente o haz una pausa cuando un [clasificador de seguridad](https://code.claude.com/docs/es/model-config.md#ask-before-switching) marca una solicitud | Modelo y respuestas | Any file |
| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | Deja de cargar los [plugins habilitados en tu cuenta de claude.ai](https://code.claude.com/docs/es/plugins/loading.md#synced-plugins) y deja de descargar nuevos | Plugins y skills | User, local, or managed |
| [`syncClaudeAiSkills`](#syncclaudeaiskills) | Deja de cargar los [skills habilitados en tu cuenta de claude.ai](https://code.claude.com/docs/es/skills.md#how-synced-skills-behave) y deja de descargar nuevos | Plugins y skills | User, local, or managed |
| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | Desactiva el resaltado de sintaxis en los diffs y los bloques de código | Interfaz y terminal | Any file |
| [`taskOutputMaxChars`](#taskoutputmaxchars) | Eliminado en v2.1.277, junto con la herramienta `TaskOutput` cuyo tamaño definía | Memoria y contexto | Any file |
| [`teammateDefaultModel`](#teammatedefaultmodel) | Eliminado en v2.1.234; consulta [Especificar compañeros de equipo y modelos](https://code.claude.com/docs/es/agent-teams.md#specify-teammates-and-models) para ver cómo elige Claude Code el modelo de un compañero de equipo | Configuración de configuración global | Global config |
| [`teammateMode`](#teammatemode) | Elige cómo se muestran los [compañeros de equipo de un equipo de agentes](https://code.claude.com/docs/es/agent-teams.md#choose-a-display-mode) | Agentes, sesiones y worktrees | Any file |
| [`terminalProgressBarEnabled`](#terminalprogressbarenabled) | Oculta la barra de progreso de la terminal en las terminales que la admiten | Interfaz y terminal | Any file |
| [`terminalTitleFromRename`](#terminaltitlefromrename) | Impide que [`/rename`](https://code.claude.com/docs/es/sessions#name-your-sessions) y `--name` cambien el título de la pestaña de la terminal | Interfaz y terminal | Any file |
| [`theme`](#theme) | Elige el [tema de color](https://code.claude.com/docs/es/terminal-config.md#match-the-color-theme) de la interfaz, integrado o personalizado | Interfaz y terminal | Any file |
| [`timeFormat`](#timeformat) | Muestra las horas de la interfaz en formato de 12 o 24 horas, en UTC o con un patrón strftime | Interfaz y terminal | Any file |
| [`timeZone`](#timezone) | Muestra las horas de la interfaz en una zona horaria distinta de la de tu sistema | Interfaz y terminal | Any file |
| [`tui`](#tui) | Elige el renderizador de terminal [de pantalla completa](https://code.claude.com/docs/es/fullscreen.md) o el clásico | Interfaz y terminal | Any file |
| [`ultracode`](#ultracode) | Haz que Claude planifique un [workflow](https://code.claude.com/docs/es/workflows.md#let-claude-decide-with-ultracode) para cada tarea sustancial sin que se lo pidas | Modelo y respuestas | Any file |
| [`useAutoModeDuringPlan`](#useautomodeduringplan) | Permite que el clasificador del [modo automático](https://code.claude.com/docs/es/permission-modes.md#eliminate-prompts-with-auto-mode) revise los comandos de shell en el [modo plan](https://code.claude.com/docs/es/permission-modes.md#analyze-before-you-edit-with-plan-mode); establece `false` para recibir solicitudes de permiso en su lugar | Configuración de permisos | User, local, or managed |
| [`verbose`](#verbose) | Muestra la [salida completa de las herramientas](https://code.claude.com/docs/es/cli-reference.md#cli-flags) en lugar de resúmenes truncados; `viewMode` tiene prioridad cuando ambos están establecidos | Interfaz y terminal | Any file |
| [`viewMode`](#viewmode) | Inicia cada sesión en la [vista predeterminada, detallada o enfocada](https://code.claude.com/docs/es/cli-reference.md#cli-flags) | Interfaz y terminal | Any file |
| [`vimInsertModeRemaps`](#viminsertmoderemaps) | Asigna una [secuencia de dos teclas del modo INSERT](https://code.claude.com/docs/es/interactive-mode.md#remap-insert-mode-key-sequences), como `jj`, a Escape | Interfaz y terminal | User or managed |
| [`voice`](#voice) | Activa el [dictado por voz](https://code.claude.com/docs/es/voice-dictation.md) y elige el modo mantener o tocar | Interfaz y terminal | Any file |
| [`voiceEnabled`](#voiceenabled) | Activa el [dictado por voz](https://code.claude.com/docs/es/voice-dictation.md) con la forma anterior de una sola tecla | Interfaz y terminal | Any file |
| [`wheelScrollAccelerationEnabled`](#wheelscrollaccelerationenabled) | Desactiva la [aceleración de la rueda del mouse](https://code.claude.com/docs/es/fullscreen.md#mouse-wheel-scrolling) en el renderizado de pantalla completa | Interfaz y terminal | Any file |
| [`workflowKeywordTriggerEnabled`](#workflowkeywordtriggerenabled) | Permite que la palabra `ultracode` en un prompt inicie un [workflow](https://code.claude.com/docs/es/workflows.md); establece `false` para escribirla sin iniciar uno | Hooks y automatización | Any file |
| [`workflowSizeGuideline`](#workflowsizeguideline) | Establece la cantidad de agentes que Claude busca usar en los [workflows dinámicos](https://code.claude.com/docs/es/workflows.md) | Hooks y automatización | Any file |
| [`worktree`](#worktree) | Configura cómo crea Claude Code los [worktrees](https://code.claude.com/docs/es/worktrees.md) de git | Agentes, sesiones y worktrees | Any file |
| [`worktree.baseRef`](#worktree-baseref) | Crea nuevos [worktrees](https://code.claude.com/docs/es/worktrees.md) a partir de la rama predeterminada remota o de tu HEAD local | Agentes, sesiones y worktrees | Any file |
| [`worktree.bgIsolation`](#worktree-bgisolation) | Permite que las sesiones en segundo plano editen la copia de trabajo sin un [worktree](https://code.claude.com/docs/es/worktrees.md) | Agentes, sesiones y worktrees | Any file |
| [`worktree.location`](#worktree-location) | Elige dónde crean sus worktrees las [sesiones SSH de Desktop](https://code.claude.com/docs/es/desktop.md#ssh-sessions) en una máquina remota | Agentes, sesiones y worktrees | User |
| [`worktree.sparsePaths`](#worktree-sparsepaths) | Haz checkout solo de los directorios que necesitas en cada [worktree](https://code.claude.com/docs/es/worktrees.md) | Agentes, sesiones y worktrees | Any file |
| [`worktree.symlinkDirectories`](#worktree-symlinkdirectories) | Crea enlaces simbólicos de directorios grandes en cada [worktree](https://code.claude.com/docs/es/worktrees.md) en lugar de duplicarlos | Agentes, sesiones y worktrees | Any file |
| [`wslInheritsWindowsSettings`](#wslinheritswindowssettings) | Haz que WSL lea la [configuración administrada](https://code.claude.com/docs/es/managed-settings.md) desde la cadena de políticas de Windows | Configuración empresarial y administrada | Managed |

## Modelo y respuestas

Elija qué modelos utiliza Claude Code y cómo responde. Para saber cómo estas configuraciones interactúan con el comando `/model` y las variables de entorno, consulte [Configuración de modelos](https://code.claude.com/docs/es/model-config.md).

### `advisorModel`

Elija qué modelo responde cuando Claude llama a la [herramienta advisor](https://code.claude.com/docs/es/advisor.md) del lado del servidor. Déjelo sin establecer para desactivar el advisor. El advisor debe ser al menos tan capaz como su modelo principal. Consulte [Elegir un modelo advisor](https://code.claude.com/docs/es/advisor.md#choose-an-advisor-model) para los emparejamientos aceptados y qué sucede cuando elige uno que no es aceptado.

Normalmente no edita esta clave manualmente. Ejecute `/advisor` para abrir un selector que muestre la opción actual, los modelos que pueden asesorar y **Sin advisor**. Claude Code guarda su selección en esta clave en `~/.claude/settings.json`. Si elige desde un cliente de [Control Remoto](https://code.claude.com/docs/es/remote-control.md) o en una sesión conectada a un trabajador remoto, la selección se aplica solo a esa sesión y no cambia esta clave.

Si su cuenta requiere el [consentimiento de créditos de uso](https://code.claude.com/docs/es/advisor.md#fable-advisor-and-usage-credits), acéptelo primero ejecutando `/model fable`. Hasta que lo haga, elegir Fable en `/advisor` no guarda nada y Claude Code le indica que ejecute `/model fable` primero.

* **Alcance**: [`Cualquier archivo`](#scopes)
* **Tipo**: cadena, uno de los alias `"fable"`, `"opus"` u `"sonnet"`, que se resuelven a la versión predeterminada actual de Claude Code de esa familia de modelos, o un ID de modelo completo como `"claude-opus-5-5"`
* **Predeterminado**: sin establecer, por lo que el advisor está desactivado
* **Anulaciones por sesión**: `--advisor` tiene precedencia sobre esta clave para una sesión. [`CLAUDE_CODE_DISABLE_ADVISOR_TOOL`](https://code.claude.com/docs/es/env-vars) desactiva el advisor, y esta clave no puede reactivarlo

```json settings.json theme={null}
{
  "advisorModel": "opus"
}
```

La clave no tiene efecto en proveedores donde el advisor [no está disponible](https://code.claude.com/docs/es/advisor.md#requirements), como Amazon Bedrock y Claude Platform en AWS. `"fable"` requiere [acceso a Fable](https://code.claude.com/docs/es/advisor.md#choose-an-advisor-model).

### `alwaysThinkingEnabled`

Desactive el [pensamiento extendido](https://code.claude.com/docs/es/model-config.md#extended-thinking) para cada sesión estableciendo esto en `false`. El pensamiento está activado de forma predeterminada, por lo que `true` no cambia nada. La mayoría de las personas establecen esto a través de `/config` en lugar de editar el archivo.

En modelos que siempre piensan, como Opus 5.5, Sonnet 5.5, Haiku 5.5 y los modelos Fable, `false` no tiene efecto. En [proveedores de terceros](https://code.claude.com/docs/es/third-party-integrations.md) Claude Code omite el parámetro `thinking` en lugar de desactivar el pensamiento, por lo que los modelos de razonamiento adaptativo pueden seguir pensando. Con el pensamiento desactivado en la API de Anthropic, Claude Code envía esfuerzo `high` en lugar de un nivel superior a modelos que sabe que [no aceptan esa combinación](https://code.claude.com/docs/es/errors.md#effort-isnt-available-with-thinking-turned-off), como Opus 5.

* **Alcance**: [`Cualquier archivo`](#scopes)
* **Tipo**: Booleano
  * `true`: sin efecto; el pensamiento ya está activado
  * `false`: Claude Code desactiva el pensamiento extendido para cada sesión
* **Predeterminado**: sin establecer, por lo que el pensamiento está activado para modelos que lo admiten
* **Anulaciones por sesión**: [`MAX_THINKING_TOKENS`](https://code.claude.com/docs/es/env-vars) tiene precedencia sobre esta clave para una sesión: `0` desactiva el pensamiento, bajo los mismos límites de modelo y proveedor que `false`, y un valor positivo activa el pensamiento incluso cuando esta clave es `false`. En modelos de razonamiento adaptativo, el número en sí se ignora

```json settings.json theme={null}
{
  "alwaysThinkingEnabled": false
}
```

### `availableModels`

Restrinja qué modelos pueden seleccionar las personas para la sesión principal, [subagentes](https://code.claude.com/docs/es/sub-agents.md), [skills](https://code.claude.com/docs/es/skills.md) y el [advisor](https://code.claude.com/docs/es/advisor.md). Una lista administrada limita `/model`, `--model` y la clave `model` en los archivos propios del desarrollador; un modelo fuera de ella no puede seleccionarse. Con la coincidencia de prefijo predeterminada, esto no afecta la opción Predeterminado por sí sola; emparéjelo con [`enforceAvailableModels`](#enforceavailablemodels) para eso.

* **Alcance**: [`Cualquier archivo`](#scopes). Impleméntelo en configuraciones administradas para aplicarlo a una organización.
* **Tipo**: matriz de alias o IDs de modelos
* **Predeterminado**: sin establecer, por lo que cada modelo está disponible

Este ejemplo permite que las personas seleccionen solo modelos Sonnet y Haiku:

```json settings.json theme={null}
{
  "availableModels": ["sonnet", "haiku"]
}
```

Una entrada de ID de modelo como `"claude-opus-5"` también permite versiones posteriores que la extienden, como Opus 5.5. Para bloquear una de esas versiones, usa [`deniedModels`](#deniedmodels). Para hacer que cada entrada de ID de modelo permita solo la versión que nombra, usa [`availableModelsMatch`](#availablemodelsmatch). Consulta [Restringir la selección de modelos](https://code.claude.com/docs/es/model-config.md#restrict-model-selection). Para IDs de proveedores de terceros, consulta [Fijar modelos para despliegues de terceros](https://code.claude.com/docs/es/model-config.md#pin-models-for-third-party-deployments).

### `availableModelsMatch`

Elija cómo las entradas de [`availableModels`](#availablemodels) coinciden con IDs de modelos. De forma predeterminada, una entrada de ID de modelo también permite versiones posteriores que la extienden, por lo que `"claude-opus-5"` permite Opus 5.5. Con `"exact"`, cada entrada de ID de modelo permite solo la versión que nombra, por lo que una versión más nueva de ese modelo permanece bloqueada hasta que la enumere. Requiere Claude Code v2.1.283 o posterior.

* **Alcance**: [`Administrado`](#scopes). Claude Code ignora la clave en configuraciones de usuario, proyecto y local y en `--settings`, con una advertencia
* **Tipo**: cadena, uno de:
  * `"prefix"`: una entrada de ID de modelo permite su versión y cualquier ID de modelo que la extienda con otro segmento
  * `"exact"`: una entrada de ID de modelo permite solo la versión que nombra, por lo 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 fechado `claude-opus-4-5-20251101`. Un alias de familia como `"opus"` aún permite toda la familia, y las entradas `best`, `opusplan` y `default` se ignoran
* **Predeterminado**: `"prefix"`

Este ejemplo permite Opus 5 y Sonnet 5 y ningún lanzamiento posterior de ninguno:

```json managed-settings.json theme={null}
{
  "availableModels": ["claude-opus-5", "claude-sonnet-5"],
  "availableModelsMatch": "exact"
}
```

Con `"exact"`, la opción Predeterminado también se limita a los modelos enumerados siempre que la lista nombre al menos un modelo o familia. Consulte [Bloquear modelos o versiones específicas](https://code.claude.com/docs/es/model-config.md#block-specific-models-or-versions).

### `deniedModels`

Bloquee modelos específicos, con o sin una lista de permitidos [`availableModels`](#availablemodels) e incluso cuando esa lista los permite. Claude Code oculta un modelo bloqueado del selector `/model`, y el modelo no puede seleccionarse en ningún lugar donde se aplique `availableModels`. Una sesión en la opción Predeterminado tampoco ejecuta un modelo bloqueado, como describe [Bloquear modelos o versiones específicas](https://code.claude.com/docs/es/model-config.md#block-specific-models-or-versions). Requiere Claude Code v2.1.283 o posterior.

* **Alcance**: [`Administrado`](#scopes). Claude Code ignora la clave en configuraciones de usuario, proyecto y local y en `--settings`, con una advertencia
* **Tipo**: matriz de alias o IDs de modelos
  * Un alias de familia como `"opus"` bloquea cada modelo en esa familia
  * Un ID de modelo como `"claude-opus-5-5"` bloquea esa versión en cada ortografía, incluidos IDs fechados e IDs específicos del proveedor
  * Un ID de modelo sin versión menor, como `"claude-opus-5"`, también bloquea versiones menores posteriores como Opus 5.5. Escriba `"claude-opus-5-0"` para bloquear solo Opus 5
  * Las entradas `best`, `opusplan` y `default` se ignoran
* **Predeterminado**: sin establecer, por lo que ningún modelo está bloqueado

Este ejemplo permite modelos Opus y Sonnet y bloquea Opus 5.5:

```json managed-settings.json theme={null}
{
  "availableModels": ["opus", "sonnet"],
  "deniedModels": ["claude-opus-5-5"]
}
```

Consulte [Bloquear modelos o versiones específicas](https://code.claude.com/docs/es/model-config.md#block-specific-models-or-versions).

### `effortLevel`

Establezca un [nivel de esfuerzo](https://code.claude.com/docs/es/model-config.md#adjust-effort-level) predeterminado para modelos para los que no ha guardado un nivel. Los niveles más bajos son más rápidos y económicos en tareas sencillas, y los niveles más altos razonan más profundamente en problemas complejos.

Cuando ejecuta `/effort low`, `medium`, `high` o `xhigh` en una sesión interactiva en su máquina, Claude Code guarda el nivel para el modelo activo bajo [`modelSettings`](#modelsettings) en lugar de escribir esta clave. Antes de v2.1.251, `/effort` escribía esta clave.

Dentro del mismo archivo de configuración, Claude Code utiliza el nivel guardado de un modelo en lugar de esta clave. [`modelSettings`](#modelsettings) indica la precedencia entre archivos.

En una sesión conectada a un trabajador remoto, en una ejecución `-p` y en el Agent SDK, `/effort` se aplica solo a esa sesión. [Ajustar el nivel de esfuerzo](https://code.claude.com/docs/es/model-config.md#adjust-effort-level) enumera las selecciones interactivas que también se aplican solo a esa sesión. El mensaje que imprime `/effort` indica qué sucedió.

* **Alcance**: [`Cualquier archivo`](#scopes)
* **Tipo**: cadena, uno de:
  * `"low"`: el menor razonamiento, para tareas cortas, limitadas y sensibles a la latencia que no son sensibles a la inteligencia
  * `"medium"`: reduce el uso de tokens para trabajo sensible a costos que puede comprometer algo de inteligencia
  * `"high"`: equilibra el uso de tokens e inteligencia
  * `"xhigh"`: razonamiento más profundo con mayor gasto de tokens
* **Predeterminado**: sin establecer
* **Anulaciones por sesión**: `--effort` tiene precedencia sobre esta clave para una sesión, y [`CLAUDE_CODE_EFFORT_LEVEL`](https://code.claude.com/docs/es/env-vars) tiene precedencia sobre ambas

```json settings.json theme={null}
{
  "effortLevel": "xhigh"
}
```

En su archivo de configuración de usuario, `~/.claude/settings.json`, esta clave es la forma anterior que `/effort` escribía antes de guardar niveles por modelo, y sigue aplicándose donde se aplicaba antes, en Opus 5, Fable 5.1 y modelos anteriores. Opus 5.5 y modelos lanzados después de él la ignoran y comienzan en su propio predeterminado hasta que guarde un nivel para ellos, que `/effort` escribe bajo [`modelSettings`](#modelsettings). En configuraciones de proyecto, local y administrada, y con `--settings`, esta clave se aplica a cada modelo.

### `enforceAvailableModels`

El selector `/model` tiene una opción **Predeterminado**, y [`default` model setting](https://code.claude.com/docs/es/model-config#default-model-setting) describe el modelo al que se resuelve. Una lista de permitidos [`availableModels`](#availablemodels) limita los modelos que puede nombrar, pero con la [coincidencia de prefijo](#availablemodelsmatch) predeterminada no remapea el predeterminado de su tipo de cuenta, por lo que **Predeterminado** aún puede resolverse a un modelo fuera de la lista. Esta clave cierra esa brecha. Requiere Claude Code v2.1.175 o posterior.

Cuando su organización implementa cualquier configuración administrada, Claude Code lee esta clave solo de la fuente administrada e la ignora en sus otros archivos.

Para saber cómo se aplica esta clave a las comprobaciones de modelo al inicio, consulta [Amazon Bedrock](https://code.claude.com/docs/es/amazon-bedrock.md#when-your-organization-enforces-a-model-allowlist) y [Agent Platform de Google Cloud](https://code.claude.com/docs/es/google-vertex-ai.md#when-your-organization-enforces-a-model-allowlist).

* **Alcance**: [`Cualquier archivo`](#scopes)
* **Tipo**: Booleano
  * `true`: cuando **Predeterminado** se resolvería a un modelo fuera de `availableModels`, Claude Code lo resuelve al primer modelo disponible en la lista
  * `false`: esta clave no cambia cómo se resuelve **Predeterminado**
* **Predeterminado**: `false`

Este ejemplo restringe las selecciones nombradas a modelos Sonnet y Haiku y hace que **Predeterminado** se resuelva al primero de ellos que esté disponible:

```json settings.json theme={null}
{
  "availableModels": ["sonnet", "haiku"],
  "enforceAvailableModels": true
}
```

Esta clave no tiene efecto cuando `availableModels` no está establecido o está vacío. Consulte [Aplicar la lista de permitidos al modelo Predeterminado](https://code.claude.com/docs/es/model-config.md#enforce-the-allowlist-for-the-default-model). Requiere Claude Code v2.1.175 o posterior.

### `fallbackModel`

Nombre modelos de respaldo para que Claude Code intente, en orden, cuando su modelo principal está sobrecargado o no disponible. Claude Code cambia al siguiente modelo disponible en la cadena para el resto del turno y muestra un aviso. Sin una cadena, Claude Code reintenta el mismo modelo y luego muestra el error del servidor, y usted reintenta o cambia de modelos.

Un cambio significa un turno con un [caché de solicitud](https://code.claude.com/docs/es/prompt-caching.md#switching-models) frío en el modelo de respaldo; su siguiente mensaje intenta el modelo principal primero nuevamente.

* **Alcance**: [`Cualquier archivo`](#scopes)
* **Tipo**: matriz de alias o IDs de modelos; `"default"` se expande al modelo predeterminado
* **Predeterminado**: sin establecer, por lo que una solicitud fallida no se reintenta en otro modelo
* **Anulaciones por sesión**: `--fallback-model` tiene precedencia sobre esta clave para una sesión

Este ejemplo intenta Sonnet 5 primero, luego Haiku 4.5, cuando su modelo principal falla:

```json settings.json theme={null}
{
  "fallbackModel": ["claude-sonnet-5", "claude-haiku-4-5"]
}
```

A diferencia de la mayoría de las configuraciones de matriz, esta clave no se fusiona entre archivos de configuración: el archivo de mayor precedencia que la define proporciona toda la cadena. Si su archivo de proyecto establece `["claude-sonnet-5"]` y su archivo de usuario establece `["claude-haiku-4-5"]`, la cadena es solo `["claude-sonnet-5"]`. Claude Code mantiene como máximo tres modelos permitidos distintos de la lista e ignora el resto. Consulte [Cadenas de modelos de respaldo](https://code.claude.com/docs/es/model-config.md#fallback-model-chains).

### `fastMode`

Active el [modo rápido](https://code.claude.com/docs/es/fast-mode.md) para sesiones donde está disponible, para trabajo interactivo como iteración rápida o depuración en vivo donde desea velocidad a un costo más alto por token. Normalmente no edita esta clave manualmente: ejecutar `/fast` escribe `fastMode: true` en `~/.claude/settings.json`, y ejecutarlo nuevamente para desactivar el modo rápido elimina la clave. El modo rápido se ejecuta solo en Opus 5.5, Opus 5 y Opus 4.8: activarlo desde otro modelo lo cambia a Opus, y cambiar a un modelo no compatible lo desactiva. Consulte [Cambiar modelos mientras el modo rápido está activado](https://code.claude.com/docs/es/fast-mode.md#switch-models-while-fast-mode-is-on).

* **Alcance**: [`Cualquier archivo`](#scopes)
* **Tipo**: Booleano
  * `true`: Claude Code activa el modo rápido para sesiones donde está disponible
  * `false`: el modo rápido permanece desactivado
* **Predeterminado**: sin establecer, por lo que el modo rápido está desactivado
* **Anulaciones por sesión**: [`CLAUDE_CODE_DISABLE_FAST_MODE`](https://code.claude.com/docs/es/env-vars) desactiva el modo rápido para una sesión, y esta clave no puede reactivarlo

```json settings.json theme={null}
{
  "fastMode": true
}
```

### `fastModePerSessionOptIn`

Normalmente, ejecutar `/fast` guarda [`fastMode`](#fastmode) en la configuración de usuario de una persona, por lo que el modo rápido está activado al inicio de cada sesión posterior. Establezca esta clave en `true` para detener eso: un `fastMode: true` guardado ya no activa el modo rápido al inicio de la sesión, y cada persona debe ejecutar `/fast` en cada sesión que lo desee. Claude Code deja la clave `fastMode` en su archivo, por lo que desactivar esta clave restaura el comportamiento anterior.

Los propietarios en planes Team o Enterprise pueden implementarlo en toda la organización a través de [configuraciones administradas por el servidor](https://code.claude.com/docs/es/server-managed-settings.md). Cuando las configuraciones administradas establecen la clave, `/fast on` se rechaza fuera de sesiones de terminal interactivas e informa que su organización ha desactivado el modo rápido. Eso cubre [modo no interactivo](https://code.claude.com/docs/es/headless.md), la [extensión VS Code](https://code.claude.com/docs/es/vs-code.md) y [sesiones en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md).

* **Alcance**: [`Cualquier archivo`](#scopes)
* **Tipo**: Booleano
  * `true`: un `fastMode: true` guardado ya no activa el modo rápido al inicio de la sesión, por lo que cada persona ejecuta `/fast` en cada sesión que lo desee; un `fastMode: true` pasado con `--settings` aún cuenta para esa sesión a menos que las configuraciones administradas establezcan esta clave
  * `false`: un `fastMode: true` guardado activa el modo rápido al inicio de cada sesión posterior
* **Predeterminado**: `false`

```json settings.json theme={null}
{
  "fastModePerSessionOptIn": true
}
```

Consulte [Requerir opción de participación por sesión](https://code.claude.com/docs/es/fast-mode.md#require-per-session-opt-in).

### `language`

Haga que Claude responda en un idioma distinto del inglés de forma predeterminada. No hay una lista fija para respuestas: Claude Code agrega el valor textualmente a Claude como una instrucción para responder siempre en ese idioma, por lo que cualquier nombre de idioma que Claude pueda leer funciona. Claude Code no valida el valor, por lo que un nombre mal escrito llega a Claude tal como está escrito en lugar de producir un error. El mismo valor establece el idioma para [dictado de voz](https://code.claude.com/docs/es/voice-dictation.md#change-the-dictation-language), que tiene una lista fija de [idiomas de dictado admitidos](https://code.claude.com/docs/es/voice-dictation.md#change-the-dictation-language), y para títulos de sesión generados automáticamente.

* **Alcance**: [`Cualquier archivo`](#scopes)
* **Tipo**: cadena, cualquier nombre de idioma, como `"japanese"`, `"spanish"` o `"french"`; Claude Code no lo valida
* **Predeterminado**: sin establecer; los títulos de sesión coinciden con el idioma de su conversación

```json settings.json theme={null}
{
  "language": "japanese"
}
```

### `maxEffortLevel`

Limite el [nivel de esfuerzo](https://code.claude.com/docs/es/model-config.md#adjust-effort-level) que una sesión puede usar, dejando disponibles niveles más bajos. Cualquier nivel más alto se ejecuta en el límite en su lugar, incluido uno de `/effort`, el selector `/model`, `--effort`, [`CLAUDE_CODE_EFFORT_LEVEL`](https://code.claude.com/docs/es/env-vars), el frontmatter `effort` de una skill o subagente, o el predeterminado del modelo. Claude Code aplica el límite a sí mismo antes de cada solicitud, por lo que se mantiene en cada proveedor, incluidos Amazon Bedrock, la Plataforma de Agentes de Google Cloud y Microsoft Foundry. Requiere Claude Code v2.1.267 o posterior.

* **Alcance**: [`Cualquier archivo`](#scopes). Impleméntelo en configuraciones administradas para aplicarlo a una organización. Cuando varios alcances establecen un límite, se aplica el más bajo, por lo que un límite establecido en un alcance no puede elevarse desde otro
* **Tipo**: cadena, uno de `"low"`, `"medium"`, `"high"`, `"xhigh"` o `"max"`. Un valor `"max"` no establece límite
* **Predeterminado**: sin establecer, por lo que no se aplica límite
* **Límites por modelo**: agregue `maxEffortLevel` a la entrada [`modelSettings`](#modelsettings) de un modelo. Esa entrada reemplaza esta clave solo para el modelo dentro de la fuente de configuración que establece ambas, como su configuración de usuario o una [fuente administrada](https://code.claude.com/docs/es/managed-settings.md#how-claude-code-combines-managed-sources). Establezca `"max"` allí para eximir el modelo del límite de esa fuente; Claude Code aún aplica límites de otras fuentes

Este ejemplo limita cada modelo a `medium` y exime a Sonnet 4.6:

```json settings.json theme={null}
{
  "maxEffortLevel": "medium",
  "modelSettings": {
    "claude-sonnet-4-6": {
      "maxEffortLevel": "max"
    }
  }
}
```

Cuando su organización también establece un [límite de esfuerzo](https://code.claude.com/docs/es/model-config.md#organization-effort-limits) para un modelo, se aplica el límite más bajo de los dos.

### `model`

Establezca el modelo que cada nueva sesión utiliza, para que no tenga que elegir uno con `/model` cada vez. Establecerlo aquí no le impide cambiar de modelo a mitad de sesión. Si su administrador estableció un [modelo predeterminado de la organización](https://code.claude.com/docs/es/model-config.md#organization-default-model) para anular la selección del usuario, obtiene ese modelo incluso cuando establece esta clave en configuraciones de usuario, proyecto o local.

* **Alcance**: [`Cualquier archivo`](#scopes)
* **Tipo**: cadena, un alias de modelo o ID de modelo completo
* **Predeterminado**: sin establecer, por lo que Claude Code utiliza el modelo predeterminado de su cuenta
* **Anulaciones por sesión**: `--model` tiene precedencia sobre [`ANTHROPIC_MODEL`](https://code.claude.com/docs/es/env-vars), y ambas tienen precedencia sobre esta clave para una sesión, incluida una `model` administrada; una lista [`availableModels`](#availablemodels) aún se aplica a la selección

```json settings.json theme={null}
{
  "model": "claude-sonnet-5"
}
```

Un valor aquí supera [`ANTHROPIC_DEFAULT_MODEL`](https://code.claude.com/docs/es/model-config#set-a-default-model-for-new-sessions), que Claude Code utiliza solo cuando nada más selecciona un modelo.

### `modelOverrides`

Asigne IDs de modelos de Anthropic a IDs de modelos específicos del proveedor, como ARNs de perfil de inferencia de Amazon Bedrock. Cada entrada del selector de modelos utiliza su valor asignado al llamar a la API del proveedor. Los administradores utilizan esto en [Amazon Bedrock, la Plataforma de Agentes de Google Cloud y Microsoft Foundry](https://code.claude.com/docs/es/model-config.md#override-model-ids-per-version) para enrutar cada versión de modelo a un perfil de inferencia específico, nombre de versión o implementación para gobernanza, asignación de costos o enrutamiento regional.

* **Alcance**: [`Cualquier archivo`](#scopes)
* **Tipo**: objeto que asigna ID de modelo a ID de modelo del proveedor
* **Predeterminado**: sin establecer

Este ejemplo enruta cada llamada para Opus 4.6 al perfil de inferencia de Bedrock nombrado:

```json settings.json theme={null}
{
  "modelOverrides": {
    "claude-opus-4-6": "arn:aws:bedrock:us-east-1:123456789012:inference-profile/example"
  }
}
```

Consulte [Anular IDs de modelos por versión](https://code.claude.com/docs/es/model-config.md#override-model-ids-per-version).

### `modelPicker`

Enumere los modelos que el selector `/model` ofrece, en el orden que escriba y bajo etiquetas que elija, para que el selector enumere los modelos que su organización ejecuta, después de la alineación integrada o en su lugar. El `model` de cada fila se toma textualmente, por lo que acepta cualquier cosa que `--model` acepte: un alias como `opus`, un ID de modelo de Anthropic, o un ID de formato de proveedor para Amazon Bedrock, la Plataforma de Agentes de Google Cloud, Microsoft Foundry, o una puerta de enlace LLM. Requiere Claude Code v2.1.242 o posterior.

* **Alcance**: [`Usuario o administrado`](#scopes). Claude Code lee la clave de configuraciones administradas, `--settings` y configuraciones de usuario, e la ignora en configuraciones de proyecto y local para que un repositorio que clone no pueda reetiquetear el selector. El más alto de esos tres que establece la clave proporciona toda la alineación, y Claude Code nunca combina alineaciones de dos fuentes.
* **Tipo**: objeto con una matriz `options` de filas y un Booleano `replaceBuiltInOptions` opcional
* **Predeterminado**: sin establecer, por lo que el selector muestra la alineación integrada

Este ejemplo agrega dos implementaciones de Bedrock después de la alineación integrada, bajo nombres que su equipo reconoce:

```json managed-settings.json theme={null}
{
  "modelPicker": {
    "options": [
      { "model": "us.anthropic.claude-opus-4-8", "label": "Opus (production)" },
      {
        "model": "us.anthropic.claude-sonnet-4-6",
        "label": "Sonnet (production)",
        "description": "Day-to-day work"
      }
    ]
  }
}
```

#### Campos para `modelPicker`

La clave toma dos campos, uno para las filas en sí y otro para si reemplazan la alineación integrada o se agregan a ella.

| Campo | Tipo | Qué hace |
| :- | :- | :- |
| `options` | matriz de filas, cada una con un `model` requerido y un `label`, `description` y `behavesAs` opcionales | Las filas que muestra el selector, en este orden, excepto que una fila atenuada se mueve al final. Sin un `label`, Claude Code titula la fila con el nombre integrado para un modelo que conoce, o el ID del modelo de lo contrario, y sin una `description` escribe una segunda línea genérica |
| `replaceBuiltInOptions` | Booleano, predeterminado `false` | Establézcalo en `true` para mostrar solo estas filas, **Predeterminado** y una fila para el modelo que la sesión ya está usando. Déjelo sin establecer para agregar estas filas después de la alineación integrada |

Una entrada en `options` también puede llevar una cadena `behavesAs` opcional junto a su `model`, que requiere v2.1.257 o posterior. Establézcala al ID de un modelo que su versión de Claude Code ya conoce, como `claude-opus-4-8`, en una entrada cuyo `model` es más nuevo que su versión. Claude Code entonces aplica las capacidades y valores predeterminados de esfuerzo de ese modelo conocido a la entrada en lugar de tratar su modelo como desconocido. La etiqueta de la entrada y el ID del modelo que Claude Code envía en solicitudes no cambian.

Con `replaceBuiltInOptions` activado, Claude Code oculta todas las demás filas: la alineación integrada, las filas que agrega para entradas [`availableModels`](#availablemodels), los modelos que [descubrimiento de puerta de enlace](https://code.claude.com/docs/es/llm-gateway-protocol.md#model-discovery) encontró, y [`ANTHROPIC_CUSTOM_MODEL_OPTION`](https://code.claude.com/docs/es/model-config#add-a-custom-model-option). Con él desactivado, Claude Code omite un modelo listado que la alineación integrada ya cubre. Una etiqueta cambia lo que muestra el selector, no qué modelo ejecuta Claude Code.

Una lista de permitidos [`availableModels`](#availablemodels) aún se aplica a estas filas. Antes de agregar un modelo listado a la lista de permitidos, lea [Comportamiento de fusión](https://code.claude.com/docs/es/model-config.md#merge-behavior): un ID de modelo específico reduce la entrada comodín de su familia. Claude Code también verifica cada fila contra la sesión antes de mostrar el selector:

* **Descartada**: una fila que Claude Code no puede servir, como un modelo retirado o un modelo al que su organización no tiene acceso
* **Atenuada**: una fila que no puede seleccionar aún, mostrada con la razón
* **Ninguna fila sobrevive**: Claude Code mantiene la alineación integrada, filtrada por la lista de permitidos como de costumbre

Claude Code descarta una fila que no puede analizar y mantiene el resto. Consulte [Reparar un archivo de configuración roto](https://code.claude.com/docs/es/settings.md#fix-a-broken-settings-file).

### `modelPricing`

Informe el gasto a las tasas que su organización paga en lugar del precio de lista. Establézcalo cuando su organización tenga tasas contratadas, para que las cifras en dólares que ven los desarrolladores coincidan con su factura. Claude Code aplica las tasas en `/usage`, la [línea de estado](https://code.claude.com/docs/es/statusline.md), el `total_cost_usd` del Agent SDK, el límite [`--max-budget-usd`](https://code.claude.com/docs/es/cli-reference) y la métrica de costo de [OpenTelemetry](https://code.claude.com/docs/es/monitoring-usage.md) y eventos. Usted proporciona las tasas: Claude Code no las lee de su contrato o la Consola de Claude. Requiere Claude Code v2.1.242 o posterior.

* **Alcance**: [`Administrado`](#scopes). Implemente la clave a través de configuraciones administradas por el servidor, una política MDM, un archivo `managed-settings.json` o un [asistente de política](https://code.claude.com/docs/es/managed-settings.md#compute-the-policy-with-a-helper-program). Claude Code la ignora en configuraciones de usuario, proyecto y local, en `--settings` y en Windows en el [registro HKCU](https://code.claude.com/docs/es/managed-settings.md#where-each-mechanism-stores-the-policy) escribible por el usuario. Con configuraciones administradas por el servidor, cada sesión informa costos al precio de lista hasta que la [búsqueda de configuración](https://code.claude.com/docs/es/server-managed-settings.md#fetch-and-caching-behavior) de esa sesión haya confirmado la configuración. Una aplicación host que incrusta Claude Code y establece [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/es/env-vars) puede proporcionar una tabla propia a través de la opción [`managedSettings`](https://code.claude.com/docs/es/agent-sdk/typescript#options) del SDK, que Claude Code utiliza solo cuando ninguna fuente administrada establece la clave y solo en Claude Code v2.1.246 o posterior.
* **Tipo**: objeto con un `multiplier` opcional y un mapa `overrides` opcional
* **Predeterminado**: sin establecer, por lo que Claude Code informa el precio de lista a menos que una aplicación host proporcione una tabla

Establezca `multiplier` solo para un descuento plano o marcado, `overrides` solo para tasas por modelo, o ambos.

Este ejemplo establece tasas contratadas para Sonnet 4.6 y luego reduce cada cifra, la fila Sonnet incluida, en un 15%:

```json managed-settings.json theme={null}
{
  "modelPricing": {
    "multiplier": 0.85,
    "overrides": {
      "claude-sonnet-4-6": {
        "input": 2.4,
        "output": 12,
        "cacheRead": 0.24,
        "cacheWrite": 3
      }
    }
  }
}
```

Establezca `multiplier` por encima de 1, hasta 10, para marcar cada cifra. Un marcado requiere Claude Code v2.1.271 o posterior. Las versiones anteriores ignoran un `multiplier` por encima de 1 con una advertencia y mantienen el resto de la configuración.

Para los pasos, incluida la forma de confirmar que las tasas están en vigor, consulte [Informar el gasto a sus tasas contratadas](https://code.claude.com/docs/es/costs.md#report-spend-at-your-contracted-rates).

#### Campos para `modelPricing`

| Campo | Tipo | Qué hace |
| :- | :- | :- |
| `multiplier` | número mayor que 0 y como máximo 10 | Escala cada costo que Claude Code calcula, independientemente de si una fila `overrides` la cubre. Por debajo de 1 es un descuento, por encima de 1 un marcado |
| `overrides` | mapa de ID de modelo a un objeto de tasa con `input`, `output`, `cacheRead` y `cacheWrite`, cada uno de 0 a 10000 | Las tasas USD por millón de tokens para ese modelo, las cuatro requeridas. `cacheWrite` cubre tanto escrituras de caché de cinco minutos como de una hora. Consulte [Qué modelos se aplica una fila de modelPricing](#which-models-a-modelpricing-row-applies-to) |

Claude Code utiliza las tasas de una fila exactamente como las escribió, sin agregar el recargo de modo rápido o la [tasa de inferencia solo para EE.UU.](https://platform.claude.com/docs/en/about-claude/pricing). Si también establece `multiplier`, Claude Code la aplica además de las tasas de la fila. Claude Code descarta una fila con una tasa que no puede analizar, o un `multiplier` que no puede analizar, y mantiene el resto; consulte [Reparar un archivo de configuración roto](https://code.claude.com/docs/es/settings.md#fix-a-broken-settings-file).

#### Qué modelos se aplica una fila de `modelPricing`

Claude Code decide a qué modelos se aplica una fila desde la clave de la fila:

* **ID de un modelo integrado**: una clave que Claude Code utiliza para un modelo integrado, ya sea que esa clave sea el ID del modelo, como `claude-sonnet-4-6`, o su ID de Bedrock, Plataforma de Agentes o Foundry. Claude Code aplica la fila a cada ID de instantánea fechada e ID específico del proveedor de ese modelo.
* **Cualquier otra clave**: una clave que no es el ID de un modelo integrado, como un alias de modelo de puerta de enlace. Claude Code aplica la fila solo a ese ID. Cuando un ID de modelo coincide exactamente con una de sus claves y también cae bajo una fila codificada por un ID de modelo integrado, Claude Code utiliza la coincidencia exacta.
* **Un perfil de inferencia de aplicación de Bedrock**: una vez que Claude Code ha resuelto el perfil al modelo al que enruta, a través de su mapa [`modelOverrides`](#modeloverrides) o la búsqueda [`bedrock:GetInferenceProfile`](https://code.claude.com/docs/es/amazon-bedrock#iam-configuration), Claude Code aplica la fila de ese modelo al perfil.

### `modelSettings`

Guarde un [nivel de esfuerzo](https://code.claude.com/docs/es/model-config.md#adjust-effort-level) para cada modelo que utilice. Requiere Claude Code v2.1.251 o posterior.

En una sesión interactiva en su máquina, cuando guarda `low`, `medium`, `high` o `xhigh` como su predeterminado con `/effort` o el control deslizante de esfuerzo del selector `/model`, Claude Code escribe ese nivel aquí bajo el modelo que está utilizando, por lo que rara vez edita esta clave usted mismo. Cuando elige uno de esos niveles en el [selector de modelos de la extensión VS Code](https://code.claude.com/docs/es/vs-code.md#use-the-prompt-box), Claude Code lo guarda aquí de la misma manera. La entrada [`effortLevel`](#effortlevel) enumera las sesiones donde `/effort` se aplica solo a esa sesión.

Edite la clave manualmente para cambiar o eliminar un nivel que guardó.

Un `effortLevel` de un modelo aquí tiene precedencia sobre el [`effortLevel`](#effortlevel) de nivel superior en el mismo archivo de configuración. Entre archivos, Claude Code resuelve cada modelo por separado: el [archivo de configuración](https://code.claude.com/docs/es/settings.md#settings-precedence) de mayor precedencia que establece un `effortLevel` para ese modelo o el `effortLevel` de nivel superior que [se aplica a ese modelo](#effortlevel) decide, por lo que un `effortLevel` en configuraciones administradas supera un nivel que guardó en configuraciones de usuario. [Ajustar el nivel de esfuerzo](https://code.claude.com/docs/es/model-config.md#adjust-effort-level) enumera qué más puede anular un nivel guardado, como `--effort` al iniciar.

Para limitar el esfuerzo de un modelo en lugar de establecer su nivel, agregue un campo [`maxEffortLevel`](#maxeffortlevel) a la entrada de ese modelo. El campo requiere Claude Code v2.1.267 o posterior.

* **Alcance**: [`Cualquier archivo`](#scopes)
* **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`](#maxeffortlevel): el nivel de esfuerzo más alto con el que puede ejecutarse el modelo
  * `autoCompactWindow`: un número de tokens de `100000` a `1000000`, o `"auto"` para la ventana ajustada para el modelo. [`/autocompact`](https://code.claude.com/docs/es/model-config#set-the-auto-compact-window) guarda aquí. Para ese modelo, el valor tiene precedencia sobre un [`autoCompactWindow`](#autocompactwindow) de nivel superior en el mismo archivo de configuración. Requiere Claude Code v2.1.288 o posterior
* **Predeterminado**: sin establecer

Claude Code escribe cada entrada bajo el nombre canónico del modelo, como `claude-opus-5-5`, y coincide con el alias de ese modelo, con sufijo de fecha, `[1m]` e IDs específicos del proveedor reconocidos a la misma entrada.

Este ejemplo mantiene Opus 5.5 en `high` mientras otros modelos utilizan sus propios niveles guardados o predeterminados:

```json settings.json theme={null}
{
  "modelSettings": {
    "claude-opus-5-5": {
      "effortLevel": "high"
    }
  }
}
```

Ejecute `/effort auto` para borrar su nivel guardado para el modelo que está utilizando. Claude Code deja las otras entradas y cualquier `effortLevel` de nivel superior en su lugar.

### `outputStyle`

Seleccione un [estilo de salida](https://code.claude.com/docs/es/output-styles.md) por nombre. Un estilo de salida es un conjunto guardado de instrucciones que cambia el rol, tono y formato de salida de Claude, como los estilos Explanatory y Learning integrados o uno que escribió usted mismo.

Si cambia esta clave durante una sesión, Claude utiliza el nuevo estilo a partir de su siguiente mensaje. Para lo que ese mensaje cuesta en almacenamiento en caché de solicitudes, consulte [Cambiar estilo de salida](https://code.claude.com/docs/es/prompt-caching.md#changing-output-style). Antes de v2.1.251, la edición se aplicaba solo después de ejecutar `/clear` o iniciar una nueva sesión.

* **Alcance**: [`Cualquier archivo`](#scopes)
* **Tipo**: cadena, el nombre de un estilo de salida [integrado](https://code.claude.com/docs/es/output-styles.md#built-in-output-styles) o [personalizado](https://code.claude.com/docs/es/output-styles.md#create-a-custom-output-style)
* **Predeterminado**: sin establecer, por lo que Claude Code utiliza el estilo predeterminado

Este ejemplo selecciona el estilo Explanatory integrado, que agrega información educativa entre tareas:

```json settings.json theme={null}
{
  "outputStyle": "Explanatory"
}
```

### `promptCacheTtl`

Elija cuánto tiempo el [caché de solicitud](https://code.claude.com/docs/es/prompt-caching.md) mantiene la conversación principal. Esta clave se aplica a sus turnos interactivos, `-p` y Agent SDK, junto con los asistentes que Claude Code ejecuta en línea con ellos. La vida útil de una hora mantiene el caché activo en descansos más largos, y la API [factura cada escritura de caché a una tasa más alta](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing) que en la vida útil de cinco minutos. Requiere Claude Code v2.1.242 o posterior.

* **Alcance**: [`Cualquier archivo`](#scopes)
* **Tipo**: cadena, uno de:
  * `"5m"`: el caché se mantiene durante cinco minutos
  * `"1h"`: el caché se mantiene durante una hora
* **Predeterminado**: sin establecer, por lo que cada solicitud de conversación principal obtiene su [vida útil predeterminada](https://code.claude.com/docs/es/prompt-caching.md#which-ttl-each-request-gets)
* **Anulaciones por sesión**: [`FORCE_PROMPT_CACHING_5M`](https://code.claude.com/docs/es/env-vars) tiene precedencia sobre todo lo demás, luego [`CLAUDE_CODE_PROMPT_CACHE_TTL`](https://code.claude.com/docs/es/env-vars), luego esta clave, y por último [`ENABLE_PROMPT_CACHING_1H`](https://code.claude.com/docs/es/env-vars)

Este ejemplo mantiene la conversación principal en la vida útil de una hora y deja los subagentes en cinco minutos:

```json settings.json theme={null}
{
  "promptCacheTtl": "1h",
  "subagentPromptCacheTtl": "5m"
}
```

Para lo que cuesta cada vida útil, consulte [Vida útil del caché](https://code.claude.com/docs/es/prompt-caching.md#cache-lifetime).

### `showThinkingSummaries`

Ve resúmenes del [pensamiento extendido](https://code.claude.com/docs/es/model-config.md#extended-thinking) de Claude en sesiones interactivas. Establécelo si quieres los resúmenes completos cuando expandes el pensamiento con `Ctrl+O`. Cuando no está establecido o es `false`, la API de Anthropic oculta el contenido de los bloques de pensamiento y Claude Code muestra un resumen contraído.

* **Alcance**: [`Cualquier archivo`](#scopes)
* **Tipo**: Booleano
  * `true`: ve resúmenes completos de pensamiento cuando expande el pensamiento con `Ctrl+O`
  * `false`: la API de Anthropic redacta bloques de pensamiento y Claude Code muestra un resumen contraído
* **Predeterminado**: `false`

```json settings.json theme={null}
{
  "showThinkingSummaries": true
}
```

La redacción cambia solo lo que ve, no lo que genera el modelo. Para reducir el gasto de pensamiento, [reduzca el presupuesto o desactive el pensamiento](https://code.claude.com/docs/es/model-config.md#extended-thinking) en su lugar.

### `subagentPromptCacheTtl`

Elija cuánto tiempo el [caché de solicitud](https://code.claude.com/docs/es/prompt-caching.md) mantiene las solicitudes que Claude Code realiza fuera de la conversación principal. Esta clave se aplica a [subagentes](https://code.claude.com/docs/es/sub-agents.md), [flujos de trabajo](https://code.claude.com/docs/es/workflows.md) y las solicitudes propias de Claude Code en segundo plano y asistentes, como compactación y títulos de sesión. La vida útil de una hora mantiene el caché activo en descansos más largos, y la API [factura cada escritura de caché a una tasa más alta](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing) que en la vida útil de cinco minutos. Requiere Claude Code v2.1.242 o posterior.

* **Alcance**: [`Cualquier archivo`](#scopes)
* **Tipo**: cadena, uno de:
  * `"5m"`: el caché se mantiene durante cinco minutos
  * `"1h"`: el caché se mantiene durante una hora
* **Predeterminado**: sin establecer, por lo que cada una de estas solicitudes obtiene su [vida útil predeterminada](https://code.claude.com/docs/es/prompt-caching.md#which-ttl-each-request-gets)
* **Anulaciones por sesión**: [`FORCE_PROMPT_CACHING_5M`](https://code.claude.com/docs/es/env-vars) tiene precedencia sobre todo lo demás, luego [`CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`](https://code.claude.com/docs/es/env-vars), luego esta clave, luego [`ENABLE_PROMPT_CACHING_1H`](https://code.claude.com/docs/es/env-vars), que solicita la vida útil de una hora en cada solicitud. Para dónde se clasifica el valor de frontmatter propio de un subagente, consulte [Elegir el TTL usted mismo](https://code.claude.com/docs/es/prompt-caching.md#choose-the-ttl-yourself)

Este ejemplo proporciona a los subagentes y las otras solicitudes fuera de la conversación principal la vida útil de una hora:

```json settings.json theme={null}
{
  "subagentPromptCacheTtl": "1h"
}
```

Esta clave cubre las solicitudes que [`promptCacheTtl`](#promptcachettl) no cubre, por lo que establezca ambas para elegir una vida útil para cada solicitud que Claude Code realiza. Para cómo difiere el caché de un subagente del de la conversación principal, consulte [Subagentes y el caché](https://code.claude.com/docs/es/prompt-caching.md#subagents-and-the-cache).

### `switchModelsOnFlag`

Elija qué sucede cuando un [clasificador de seguridad marca una solicitud](https://code.claude.com/docs/es/model-config.md#automatic-model-fallback): cambiar al modelo de respaldo y continuar, o pausar para que pueda elegir entre cambiar y editar el mensaje.

* **Alcance**: [`Cualquier archivo`](#scopes). Aparece en `/config` como **Cambiar de modelo cuando se marca un mensaje**, con las opciones **Cambiar automáticamente** y **Preguntar cada vez**.
* **Tipo**: Booleano
  * `true`: Claude Code cambia al modelo de respaldo y continúa
  * `false`: en una sesión interactiva Claude Code pausa para que pueda elegir entre cambiar y editar el mensaje; donde no puede mostrarse un diálogo, como una ejecución `-p`, la solicitud marcada termina como un error
* **Predeterminado**: sin establecer. Claude Code cambia automáticamente, aunque puede [preguntar primero](https://code.claude.com/docs/es/model-config.md#ask-before-switching) en una sesión interactiva

```json settings.json theme={null}
{
  "switchModelsOnFlag": false
}
```

Consulte [Preguntar antes de cambiar](https://code.claude.com/docs/es/model-config.md#ask-before-switching).

### `ultracode`

Inicie sesiones con [ultracode](https://code.claude.com/docs/es/workflows.md#let-claude-decide-with-ultracode) activado. Con él activado, Claude planifica un flujo de trabajo para cada tarea sustancial en lugar de esperar a que lo pida. Claude planifica flujos de trabajo solo cuando [flujos de trabajo dinámicos](https://code.claude.com/docs/es/workflows.md) están habilitados para usted y su modelo admite esfuerzo `xhigh`. La clave no cambia el nivel de esfuerzo de la sesión: ultracode se ejecuta en cualquier nivel que la sesión utilice. Claude Code lee esta clave pero nunca la escribe: `/effort ultracode` activa ultracode solo para la sesión actual.

* **Alcance**: [`Cualquier archivo`](#scopes)
* **Tipo**: Booleano
  * `true`: las sesiones comienzan con ultracode activado cuando flujos de trabajo dinámicos están habilitados para usted y su modelo admite `xhigh`
  * `false`: las sesiones comienzan con ultracode desactivado
* **Predeterminado**: sin establecer, por lo que ultracode está desactivado
* **Sobrescrituras por sesión**: `/effort ultracode` activa ultracode para una sesión sin esta clave, y `/effort ultracode off` lo desactiva para una sesión cuando esta clave es `true`. El flag `--effort ultracode` también lo activa para una sesión, con esfuerzo `xhigh`

```json settings.json theme={null}
{
  "ultracode": true
}
```

El nivel de esfuerzo de la sesión proviene de [`effortLevel`](#effortlevel), [`modelSettings`](#modelsettings) y las otras [fuentes de esfuerzo](https://code.claude.com/docs/es/model-config.md#adjust-effort-level), y un [límite de esfuerzo](https://code.claude.com/docs/es/model-config.md#organization-effort-limits) como [`maxEffortLevel`](#maxeffortlevel) reduce ese nivel sin desactivar ultracode. Esto y la forma `/effort ultracode off` requieren Claude Code v2.1.284 o posterior. Antes de v2.1.284, `ultracode: true` ejecutaba la sesión en esfuerzo `xhigh`, y un límite de esfuerzo por debajo de `xhigh` mantenía ultracode desactivado. Una solicitud de control `apply_flag_settings` del Agent SDK también acepta la clave.

## Configuración de permisos

Decide qué puede hacer Claude sin preguntar, en qué modo de permisos comienza una sesión y qué permite el clasificador del modo automático. Para la sintaxis de reglas y el modelo de permisos, consulta [Configurar permisos](https://code.claude.com/docs/es/permissions.md).

### `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](https://code.claude.com/docs/es/managed-settings.md#let-an-embedding-host-add-policy), 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](https://code.claude.com/docs/es/permissions.md#read-and-edit).

Cuando estableces esta clave, Claude Code v2.1.282 o posterior también ignora el frontmatter [`allowed-tools`](https://code.claude.com/docs/es/skills#pre-approve-tools-for-a-skill) en los skills y en los archivos de `.claude/commands/` de estas fuentes:

* El directorio `.claude/` de un repositorio
* Tus directorios `~/.claude/skills/` y `~/.claude/commands/`, incluidos los [skills sincronizados desde claude.ai](https://code.claude.com/docs/es/skills.md#where-synced-skills-load)
* Un directorio `--add-dir`
* [Plugins declarados con un manifiesto `.claude-plugin`](https://code.claude.com/docs/es/plugins/loading#plugins-shared-through-a-repository) dentro de `~/.claude/skills/` o del `.claude/skills/` del proyecto
* Plugins cargados solo para una sesión, cuyos ids terminan en [`@inline`](https://code.claude.com/docs/es/plugins/loading#find-where-a-plugin-came-from), cuando se cumplen todas estas condiciones:
  * La sesión es una [sesión de Code](https://code.claude.com/docs/es/desktop.md#environment-configuration) o una [sesión de Cowork](https://code.claude.com/docs/es/managed-settings.md#where-and-when-a-policy-applies), distinta de una sesión en la nube, para la que la propia app Claude Desktop inicia Claude Code
  * Tu configuración administrada establece la clave, no solo la [configuración principal](https://code.claude.com/docs/es/managed-settings.md#let-an-embedding-host-add-policy) de un host de incrustación
  * La sesión ejecuta Claude Code v2.1.305 o posterior

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`](https://code.claude.com/docs/es/skills#names-reserved-for-synced-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](https://code.claude.com/docs/es/skills.md#when-only-managed-permission-rules-apply).

* **Scope**: [`Managed`](#scopes)
* **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

```json managed-settings.json theme={null}
{
  "allowManagedPermissionRulesOnly": true
}
```

Esta clave no bloquea la lista de servidores MCP permitidos; para eso, establece [`allowManagedMcpServersOnly`](#allowmanagedmcpserversonly). Consulta [Configuración solo administrada](https://code.claude.com/docs/es/managed-settings.md#managed-only-settings).

### `autoMode`

Agrega tus propias reglas a lo que el clasificador del [modo automático](https://code.claude.com/docs/es/permission-modes.md#eliminate-prompts-with-auto-mode) 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](https://code.claude.com/docs/es/auto-mode-config.md#inspect-the-defaults-and-your-effective-config). Incluye la cadena literal `"$defaults"` en una matriz para mantener esas reglas integradas en esa posición y agregar las tuyas alrededor; omítela para reemplazarlas con las tuyas.

* **Scope**: [`User or managed`](#scopes)
* **Type**: objeto con matrices `environment`, `allow`, `soft_deny` y `hard_deny` de reglas en prosa, más el Boolean [`classifyAllShell`](#automode-classifyallshell)
* **Default**: sin establecer, por lo que el clasificador usa solo sus [reglas integradas](https://code.claude.com/docs/es/auto-mode-config.md#inspect-the-defaults-and-your-effective-config)

Este ejemplo mantiene las reglas `soft_deny` integradas, a través de `"$defaults"`, y agrega una más que bloquea `terraform apply`:

```json settings.json theme={null}
{
  "autoMode": {
    "soft_deny": ["$defaults", "Never run terraform apply"]
  }
}
```

Cuando más de uno de esos archivos establece la misma matriz, Claude Code concatena las entradas. Para el formato de regla y cómo se aplica cada matriz, consulta [Configurar el modo automático](https://code.claude.com/docs/es/auto-mode-config.md).

### `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](https://code.claude.com/docs/es/sandboxing.md#per-command-allowed-domains-in-auto-mode). 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`](#scopes). Se lee donde se lee [`autoMode`](#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](https://code.claude.com/docs/es/sandboxing.md#per-command-allowed-domains-in-auto-mode), y todos los demás comandos de shell pasan por él
* **Default**: `false`

```json settings.json theme={null}
{
  "autoMode": {
    "classifyAllShell": true
  }
}
```

Consulta [Enrutar todos los comandos de shell a través del clasificador](https://code.claude.com/docs/es/auto-mode-config.md#route-all-shell-commands-through-the-classifier).

### `disableAutoMode`

Elimina el [modo automático](https://code.claude.com/docs/es/permission-modes.md#eliminate-prompts-with-auto-mode) del ciclo `Shift+Tab`. Cualquier sesión que de otro modo [comenzaría en modo automático](https://code.claude.com/docs/es/permission-modes.md#which-mode-a-session-starts-in), 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`](#scopes). Más útil en la [configuración administrada](https://code.claude.com/docs/es/managed-settings.md), donde los usuarios no pueden sobrescribirlo. También se acepta bajo `permissions` como `permissions.disableAutoMode`.
* **Type**: la cadena `"disable"`
* **Default**: sin establecer

```json settings.json theme={null}
{
  "disableAutoMode": "disable"
}
```

### `permissions`

Controla qué herramientas puede usar Claude sin preguntar, cuáles siempre piden confirmación y cuáles están bloqueadas, y establece el [modo de permisos](https://code.claude.com/docs/es/permission-modes.md) en el que comienza una sesión. Cada clave `permissions.*` a continuación se anida bajo este objeto.

* **Scope**: [`Any file`](#scopes)
* **Type**: objeto con `allow`, `ask`, `deny`, `additionalDirectories`, `blockReadsOutsideWorkingDirectories`, `defaultMode`, `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`:

```json settings.json theme={null}
{
  "permissions": {
    "allow": ["Bash(npm run *)"],
    "ask": ["Bash(git push *)"],
    "deny": ["Read(./.env)"],
    "defaultMode": "acceptEdits"
  }
}
```

Las tres matrices de reglas comparten una sintaxis; consulta [Sintaxis de reglas de permisos](#permission-rule-syntax) 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](https://code.claude.com/docs/es/permissions.md#settings-precedence); para ver cómo se combinan las claves de configuración en general, consulta [Precedencia de configuración](https://code.claude.com/docs/es/settings.md#settings-precedence) 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](https://code.claude.com/docs/es/permission-modes.md#critical-paths). 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`](#scopes). Un repositorio no puede desactivarlo por ti.
* **Type**: Boolean
  * `true`: lo mismo que sin establecer; cuando el modo automático está disponible, el clasificador revisa cada comando de shell durante la planificación en lugar de pedirte confirmación, excepto [eliminaciones de rutas críticas](https://code.claude.com/docs/es/permission-modes.md#critical-paths). Un `false` en cualquiera de estos archivos aún lo desactiva
  * `false`: obtienes una solicitud de permiso para cada comando fuera del conjunto integrado de solo lectura
* **Default**: `true`

```json settings.json theme={null}
{
  "useAutoModeDuringPlan": false
}
```

### `permissions.allow`

Enumera los usos de herramientas que Claude Code aprueba sin preguntarte. En una regla MCP, `*` puede aparecer solo en el nombre de la herramienta después del prefijo `mcp__<server>__`, como `mcp__github__get_*`; no puede aparecer en el nombre del servidor.

* **Scope**: [`Any file`](#scopes)
* **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:

```json settings.json theme={null}
{
  "permissions": {
    "allow": ["Bash(git diff *)", "Read(~/.zshrc)"]
  }
}
```

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](https://code.claude.com/docs/es/permissions.md#project-allow-rules-and-workspace-trust) 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](https://code.claude.com/docs/es/permissions.md#manage-permissions).

Cada fila muestra una forma de regla y lo que coincide.

| Regla | Con qué coincide |
| :- | :- |
| `Bash` | Todos los comandos Bash |
| `Bash(npm run *)` | Comandos que comienzan con `npm run` |
| `Read(./.env)` | Lecturas del archivo `.env` |
| `WebFetch(domain:example.com)` | Solicitudes de fetch a example.com |

Para la sintaxis de reglas completa, incluido el comportamiento de los comodines, los patrones específicos de herramientas para reglas de Read, Edit, WebFetch, MCP y Agent, y las limitaciones de seguridad de los patrones Bash, consulta [Sintaxis de reglas de permisos](https://code.claude.com/docs/es/permissions.md#permission-rule-syntax).

### `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`](#scopes)
* **Type**: matriz de cadenas de reglas de permisos
* **Default**: sin establecer

```json settings.json theme={null}
{
  "permissions": {
    "ask": ["Bash(git push *)"]
  }
}
```

### `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](https://code.claude.com/docs/es/permissions.md#read-and-edit) 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](https://code.claude.com/docs/es/permissions.md#redirections) 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](https://code.claude.com/docs/es/sandboxing.md).

* **Scope**: [`Any file`](#scopes)
* **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`:

```json settings.json theme={null}
{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)",
      "Read(./config/credentials.json)",
      "Bash(curl *)"
    ]
  }
}
```

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`](https://code.claude.com/docs/es/tools-reference#endconversation-tool-behavior) 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](https://code.claude.com/docs/es/permissions.md#bash-rule-limits). 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](https://code.claude.com/docs/es/permissions.md#working-directories) adicionales. La mayor parte de la configuración de `.claude/` [no se descubre](https://code.claude.com/docs/es/permissions.md#additional-directories-grant-file-access-not-configuration) desde estos directorios.

* **Scope**: [`Any file`](#scopes), con [límites en el acceso de escritura del sandbox](https://code.claude.com/docs/es/sandboxing.md#repository-settings-under-an-admin-required-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

```json settings.json theme={null}
{
  "permissions": {
    "additionalDirectories": ["../docs/"]
  }
}
```

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](https://code.claude.com/docs/es/permissions.md#project-allow-rules-and-workspace-trust) para esa carpeta.

### `permissions.blockReadsOutsideWorkingDirectories`

Haz que las herramientas de archivo de Claude rechacen lecturas fuera de tus [directorios de trabajo](https://code.claude.com/docs/es/permissions.md#working-directories) en cada modo de permisos, incluido `bypassPermissions`. Claude Code deniega las llamadas a `Read`, `Grep`, `Glob` y `LSP` en esas rutas y le indica a Claude que te pida agregar el directorio con `/add-dir`. Los archivos que Claude Code necesita siguen siendo legibles, como tus skills, plugins, reglas, agentes, comandos y el archivo de memoria `CLAUDE.md` bajo `~/.claude/`. Requiere Claude Code v2.1.257 o posterior.

Claude Code no rechaza los comandos de shell de la misma manera:

* [Acciones que ningún modo aprueba automáticamente](https://code.claude.com/docs/es/permission-modes.md#actions-no-mode-auto-approves) explica cuándo un comando de shell que lee una ruta así te pide confirmación
* [Comandos en el sandbox bajo el bloqueo](#sandboxed-commands-under-the-block) explica lo que puede leer un comando en el sandbox

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](https://code.claude.com/docs/es/sandboxing.md) 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](https://code.claude.com/docs/es/permission-modes.md#first-read-outside-the-working-directories).

* **Scope**: [`Any file`](#scopes). 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](https://code.claude.com/docs/es/permission-modes.md)

```json settings.json theme={null}
{
  "permissions": {
    "blockReadsOutsideWorkingDirectories": true
  }
}
```

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`](#automemorydirectory) proviene del `.claude/settings.json` del proyecto, o de un `.claude/settings.local.json` [tratado como suministrado por el repositorio](https://code.claude.com/docs/es/permissions.md#when-your-local-settings-file-needs-trust), Claude Code no carga ninguna [memoria automática](https://code.claude.com/docs/es/memory.md#storage-location) desde ese directorio ni guarda ninguna en él.

Para levantar el bloqueo, elimina la clave de cada archivo de configuración que la establezca y luego inicia una nueva sesión.

#### Comandos en el sandbox bajo el bloqueo

Cuando el [sandboxing](https://code.claude.com/docs/es/sandboxing.md) 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](https://code.claude.com/docs/es/worktrees.md) 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](https://code.claude.com/docs/es/worktrees.md) vinculado, incluido uno en el que Claude Code entró a mitad de la sesión, el directorio `.git` común del repositorio sigue siendo legible y escribible para los comandos en el sandbox, por lo que git sigue funcionando allí.

En estos casos el bloqueo no alcanza a los comandos en el sandbox, mientras que las herramientas de archivo de Claude siguen haciéndolo cumplir:

* El aislamiento del sistema de archivos está desactivado mediante [`sandbox.filesystem.disabled`](#sandbox-filesystem-disabled)
* [`allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) está establecido
* La ruta del directorio en el que iniciaste Claude Code contiene un carácter glob como `*`, `?` o `[`

Bajo el bloqueo, Claude Code vuelve a abrir tus archivos de configuración global de git para los comandos en el sandbox, de modo que `git` conserve tu identidad y tu configuración:

* `~/.gitconfig`
* Los archivos `config`, `ignore` y `attributes` bajo `$XDG_CONFIG_HOME/git`, que de forma predeterminada es `~/.config/git`
* Los archivos que tu configuración global de git nombra mediante `[include]`, `[includeIf]`, `core.excludesFile` o `core.attributesFile`

Claude Code evalúa cada archivo por separado. Cuando un archivo se encuentra donde un comando en el sandbox puede escribir, directamente o a través de un enlace simbólico, Claude Code no vuelve a abrir los archivos que nombra.

En Linux y WSL2, un archivo de configuración que es un enlace simbólico puede seguir siendo ilegible en su propia ruta, y entonces `git` se ejecuta sin él. `~/.git-credentials` y `$XDG_CONFIG_HOME/git/credentials` siguen bloqueados.

Si un archivo que se vuelve a abrir contiene un secreto, como un token `http.extraHeader`, agrega su ruta a [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread). Una entrada `denyRead` que cubre un archivo siempre tiene precedencia sobre esta reapertura.

### `permissions.defaultMode`

Establece el [modo de permisos](https://code.claude.com/docs/es/permission-modes.md) en el que comienzan las nuevas sesiones. Cuando lo dejas sin establecer, las sesiones comienzan en el [valor predeterminado integrado](https://code.claude.com/docs/es/permission-modes.md#which-mode-a-session-starts-in) para tu superficie.

* **Scope**: [`Any file`](#scopes). `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](https://code.claude.com/docs/es/plugins/mods/overview.md) que instalaste aún puede aprobar [algunas de esas llamadas](https://code.claude.com/docs/es/permissions.md#precedence-among-rules-hooks-and-mods). 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](https://code.claude.com/docs/es/permissions.md#network-paths)
  * `"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

```json settings.json theme={null}
{
  "permissions": {
    "defaultMode": "acceptEdits"
  }
}
```

Las reglas de permisos se superponen a todos los modos: las reglas `deny` bloquean en todos los modos, incluido `bypassPermissions`. Consulta [Modos de permisos](https://code.claude.com/docs/es/permission-modes.md). 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](https://code.claude.com/docs/es/permission-modes.md#switch-permission-modes).

### `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](https://code.claude.com/docs/es/sub-agents.md#permission-modes), por lo que el subagente se ejecuta con el modo de permisos de la sesión principal.

* **Scope**: [`Any file`](#scopes). Normalmente se establece en la [configuración administrada](https://code.claude.com/docs/es/managed-settings.md) 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

```json settings.json theme={null}
{
  "permissions": {
    "disableBypassPermissionsMode": "disable"
  }
}
```

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](https://code.claude.com/docs/es/permission-modes.md#eliminate-prompts-with-auto-mode) 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`](#scopes). 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

```json settings.json theme={null}
{
  "skipAutoPermissionPrompt": true
}
```

### `skipDangerousModePermissionPrompt`

Omite el diálogo de confirmación que Claude Code muestra antes de que una sesión entre en el modo `bypassPermissions`, ya sea desde `--dangerously-skip-permissions` o desde `defaultMode: "bypassPermissions"`. Claude Code escribe `true` aquí en tu configuración de usuario cuando aceptas ese diálogo una vez.

* **Scope**: [`User, local, or managed`](#scopes). 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

```json settings.json theme={null}
{
  "skipDangerousModePermissionPrompt": true
}
```

## Configuración de sandbox

Aísla los comandos que Claude ejecuta de tu sistema de archivos, tu red y tus credenciales. Para saber cómo funciona el sandboxing y los requisitos de plataforma, consulta [Sandboxing](https://code.claude.com/docs/es/sandboxing.md).

### `sandbox`

Aísla los comandos Bash que Claude ejecuta de tu sistema de archivos y tu red con [sandboxing](https://code.claude.com/docs/es/sandboxing.md). 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`](#scopes)
* **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:

```json settings.json theme={null}
{
  "sandbox": {
    "enabled": true,
    "autoAllowBashIfSandboxed": true,
    "excludedCommands": ["docker *"],
    "filesystem": {
      "allowWrite": ["/tmp/build", "~/.kube"],
      "denyRead": ["~/.aws/credentials"]
    },
    "network": {
      "allowedDomains": ["github.com", "*.npmjs.org"]
    }
  }
}
```

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](https://code.claude.com/docs/es/sandboxing.md#keep-developers-from-widening-the-policy) 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](https://code.claude.com/docs/es/sandboxing.md#enforce-sandboxing-with-managed-settings).

### `sandbox.enabled`

Activa el [sandboxing](https://code.claude.com/docs/es/sandboxing.md) para los comandos Bash. Cuando eliges un modo en el panel `/sandbox`, Claude Code escribe esta clave en `.claude/settings.local.json` para el proyecto actual; establécela en `~/.claude/settings.json` para aplicar el sandbox en todos los proyectos.

* **Scope**: [`Any file`](#scopes), con [límites en la configuración de proyecto y local](https://code.claude.com/docs/es/sandboxing.md#repository-settings-under-an-admin-required-sandbox)
* **Type**: Boolean
  * `true`: Claude Code ejecuta los comandos Bash en sandbox
  * `false`: los comandos Bash se ejecutan sin sandbox
* **Default**: `false`

```json settings.json theme={null}
{
  "sandbox": {
    "enabled": true
  }
}
```

En Linux y WSL2, el sandbox necesita `bubblewrap` y `socat`; consulta [Configurar Linux y WSL2](https://code.claude.com/docs/es/sandboxing.md#set-up-linux-and-wsl2). Cuando el sandbox no puede iniciarse, Claude Code ejecuta los comandos sin sandbox a menos que también establezcas [`failIfUnavailable`](#sandbox-failifunavailable).

### `sandbox.failIfUnavailable`

Haz que Claude Code salga con un error al inicio cuando `sandbox.enabled` es `true` pero el sandbox no puede iniciarse, porque falta una dependencia o la plataforma no es compatible. Sin esta clave, Claude Code ejecuta los comandos sin sandbox. Los despliegues administrados que requieren el sandboxing como barrera de seguridad pueden usar este ajuste.

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](https://code.claude.com/docs/es/sandboxing.md#enforce-sandboxing-with-managed-settings).

* **Scope**: [`Any file`](#scopes), con [límites en la configuración de proyecto y local](https://code.claude.com/docs/es/sandboxing.md#repository-settings-under-an-admin-required-sandbox)
* **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](https://code.claude.com/docs/es/sandboxing.md#commands-refused-with-sandbox-is-required)
  * `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`:

```json managed-settings.json theme={null}
{
  "sandbox": {
    "enabled": true,
    "failIfUnavailable": true
  }
}
```

Consulta [Aplicar el sandboxing con configuración administrada](https://code.claude.com/docs/es/sandboxing.md#enforce-sandboxing-with-managed-settings).

### `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`](#scopes)
* **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](https://code.claude.com/docs/es/sandboxing.md#auto-allow-mode); `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:

```json settings.json theme={null}
{
  "sandbox": {
    "enabled": true,
    "autoAllowBashIfSandboxed": false
  }
}
```

Consulta [Modo de aprobación automática](https://code.claude.com/docs/es/sandboxing.md#auto-allow-mode) 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](https://code.claude.com/docs/es/permissions.md#permission-rule-syntax) `Bash(...)`: un comando exacto, un prefijo como `docker *` o un patrón con comodines. Un patrón sin comodín es una coincidencia exacta, por lo que `docker` solo coincide con `docker` sin argumentos.

Tus entradas sacan una llamada Bash del sandbox solo cuando cubren todos los comandos que contiene, y algunas formas de llamada permanecen en sandbox incluso así. Una entrada `docker *` por sí sola no saca `npm ci && docker build .` del sandbox.

* **Scope**: [`Any file`](#scopes), con [límites en la configuración de proyecto y local](https://code.claude.com/docs/es/sandboxing.md#repository-settings-under-an-admin-required-sandbox)
* **Type**: array de patrones de comando
* **Default**: sin establecer, por lo que no se excluye ningún comando

```json settings.json theme={null}
{
  "sandbox": {
    "excludedCommands": ["docker *"]
  }
}
```

Claude Code mantiene una llamada Bash en sandbox cuando tiene una de estas formas, entre otras:

* Un comando que comienza con `sudo`, `eval` o `xargs`
* Un `cd`, `pushd` o `popd`, dondequiera que aparezca en la llamada
* Una sustitución de comando, un subshell o un bloque de flujo de control como `if` o `for`
* Una redirección, como `docker build . > build.log`, salvo una que solo duplique un descriptor de archivo, como hace `2>&1`
* Un nombre de comando que proviene de una variable
* Un `git clone`, `git init`, `git worktree add`, `git worktree move` o `git bundle create` con un argumento de ruta que es absoluto, comienza con `~` o contiene un segmento `..`

Por ejemplo, `cd build && docker compose up` permanece en sandbox con una entrada `docker *`, y agregar una entrada `cd` no cambia eso. Con una entrada `git *`, `git clone <url> vendor/lib` se ejecuta fuera del sandbox, pero `git clone <url> ~/tools` permanece en sandbox. Un clon escribe todo un árbol de archivos, posiblemente ejecutables, dondequiera que apunte su ruta de destino.

Los comandos excluidos siguen pasando por el flujo de permisos normal. La exclusión es una comodidad, no un límite de seguridad: cuando una herramienta solo necesita escribir en un lugar específico, [`filesystem.allowWrite`](#sandbox-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](https://code.claude.com/docs/es/sandboxing.md#repository-settings-under-an-admin-required-sandbox). 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`](#sandbox-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`](#scopes), con [un límite en la configuración de proyecto y local](https://code.claude.com/docs/es/sandboxing.md#turn-off-the-retry-with-strict-sandbox-mode)
* **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:

```json managed-settings.json theme={null}
{
  "sandbox": {
    "enabled": true,
    "allowUnsandboxedCommands": false
  }
}
```

Un `false` de la configuración administrada o de `--settings` también hace que el sandbox sea [requerido por el administrador](https://code.claude.com/docs/es/sandboxing.md#repository-settings-under-an-admin-required-sandbox). Un `false` en tu configuración de usuario prevalece sobre un `true` de un proyecto, pero no hace que el sandbox sea requerido por el administrador. Prevalecer sobre el valor de un proyecto requiere Claude Code v2.1.285 o posterior.

Quién aprueba un reintento sin sandbox depende de tu modo de permisos y tus reglas allow. Consulta [La vía de escape del reintento sin sandbox](https://code.claude.com/docs/es/sandboxing.md#the-unsandboxed-retry-escape-hatch).

Para saber cuándo se ejecutan en sandbox los comandos que escribes tú mismo en el [prompt del modo shell `!`](https://code.claude.com/docs/es/interactive-mode#shell-mode-with-prefix), consulta [modo sandbox estricto](https://code.claude.com/docs/es/sandboxing.md#turn-off-the-retry-with-strict-sandbox-mode).

### `sandbox.filesystem`

Controla qué rutas pueden leer y escribir los comandos en sandbox. De forma predeterminada, pueden escribir en el directorio de trabajo, el directorio temporal por usuario y los directorios que agregues con `--add-dir`, `/add-dir` o `permissions.additionalDirectories`, y pueden leer el resto del sistema de archivos, incluidos los archivos de credenciales. Amplía o reduce eso con las cuatro listas de rutas, o desactiva la capa del sistema de archivos con `disabled`. Consulta [Aislamiento del sistema de archivos](https://code.claude.com/docs/es/sandboxing.md#filesystem-isolation) para ver los límites predeterminados.

* **Scope**: [`Any file`](#scopes)
* **Type**: object con los arrays `allowWrite`, `denyWrite`, `denyRead` y `allowRead`, más los booleanos `allowManagedReadPathsOnly` y `disabled`
* **Default**: sin establecer, por lo que se aplican los límites de lectura y escritura predeterminados

Esto permite que los comandos en sandbox escriban en un directorio de compilación y en tu kubeconfig, y oculta tu archivo de credenciales de AWS:

```json settings.json theme={null}
{
  "sandbox": {
    "filesystem": {
      "allowWrite": ["/tmp/build", "~/.kube"],
      "denyRead": ["~/.aws/credentials"]
    }
  }
}
```

Claude Code aplica estas listas en el límite del sandbox del sistema operativo, por lo que afectan a cada subproceso que inicia un comando en sandbox, como `kubectl`, `terraform` o `npm`. Claude Code agrega tus [reglas de permisos](https://code.claude.com/docs/es/sandboxing.md#permission-rules) a las mismas listas: las reglas allow y deny de `Edit` a `allowWrite` y `denyWrite`, las reglas deny de `Read` a `denyRead`, y las reglas allow y deny de `WebFetch(domain:...)` a las listas de dominios de [`network`](#sandbox-network).

A menos que se aplique un bloqueo, Claude Code combina estas listas de todos los archivos de configuración que carga la sesión. [`allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) limita `allowRead` a las entradas de la configuración administrada, y [`allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly) hace lo mismo con los dominios permitidos. Los [bloqueos de repositorio](https://code.claude.com/docs/es/sandboxing.md#repository-settings-under-an-admin-required-sandbox) dejan fuera las entradas de los archivos de configuración de un repositorio.

[Configurar el sandboxing](https://code.claude.com/docs/es/sandboxing.md#configure-sandboxing) cubre las fuentes que excluyes con `--setting-sources`. Cuando editas una lista durante una sesión, Claude Code [aplica el cambio a la sesión en ejecución](https://code.claude.com/docs/es/settings.md#when-edits-take-effect).

#### Prefijos de ruta del sandbox

Las rutas en `allowWrite`, `denyWrite`, `denyRead`, `allowRead` y [`credentials.files`](#sandbox-credentials-files) se resuelven según su prefijo:

| Prefijo | Significado | Ejemplo |
| :- | :- | :- |
| `/` | Ruta absoluta desde la raíz del sistema de archivos | `/tmp/build` sigue siendo `/tmp/build` |
| `~/` | Relativa al directorio home | `~/.kube` se convierte en `$HOME/.kube` |
| `./` o sin prefijo | Relativa a la raíz del proyecto en la configuración de proyecto, o a `~/.claude` en la configuración de usuario | `./output` en `.claude/settings.json` se resuelve como `<project-root>/output` |

El prefijo `//path` para rutas absolutas también funciona. Si usas una sola barra `/path` esperando una resolución relativa al proyecto, cambia a `./path`. Esta sintaxis difiere de las [reglas de permisos Read y Edit](https://code.claude.com/docs/es/permissions.md#read-and-edit), que usan `//path` para rutas absolutas y `/path` para rutas relativas al proyecto: las rutas del sistema de archivos del sandbox usan las convenciones estándar, por lo que `/tmp/build` es una ruta absoluta.

Claude Code elimina la barra final de una ruta de directorio, por lo que `~/.aws` y `~/.aws/` coinciden con el mismo directorio. Antes de v2.1.224, Claude Code pasaba la barra final al sandbox, y Claude aún podía leer o escribir rutas bajo una entrada `denyRead` o `denyWrite` escrita con ella.

##### Dónde funcionan los comodines en las rutas del sandbox

Los comodines `*`, `?` y `**` funcionan en las cuatro listas de rutas de `sandbox.filesystem` en macOS, y en menos lugares en Linux y WSL2:

| Lista de `sandbox.filesystem` | Qué funciona en Linux y WSL2 | Ejemplo que no funciona en Linux y WSL2 | Qué escribir en su lugar |
| :- | :- | :- | :- |
| `denyRead`, `allowRead` | Un `/**` final funciona, así que `~/build/**` cubre el mismo directorio que `~/build`. Cualquier otro comodín funciona solo después del primer nombre de directorio de la [ruta completa](#sandbox-path-prefixes) de la entrada. | `/**/*.pem` en `denyRead` no cubre nada, así que no bloquea ninguna lectura | `/srv/**/*.pem`, con una entrada para cada directorio de nivel superior |
| `allowWrite`, `denyWrite` | Solo funciona un `/**` final, así que `~/build/**` cubre el mismo directorio que `~/build` | `./src/*` cubre solo un archivo o directorio dentro de `src` que se llame literalmente `*`, y nada cuando no existe | `./src`, que cubre todo lo que hay bajo `src`, o una entrada para cada ruta |

En `~/keys/*.pem`, el comodín va después del primer nombre de directorio, que es `home` para un directorio home `/home/alice`:

```text theme={null}
~/keys/*.pem              the entry
/home/alice/keys/*.pem    its full path
 ^^^^                     the first directory name, home
```

En Linux y WSL2, la pestaña **Config** de `/sandbox` en una sesión advierte sobre las reglas de permisos `Edit` que contienen un comodín distinto de un `/**` final. Esos comodines no funcionan para los comandos en el sandbox. Agrega cada ruta que deba cubrir la regla, o el directorio que las contiene, a `allowWrite` para una regla de permitir o a `denyWrite` para una regla de denegar.

##### Nombres de directorios con corchetes, llaves o paréntesis

Para permitir o bloquear un directorio cuyo nombre contiene corchetes, escribe el nombre tal como es, por ejemplo `./app/[slug]`. En esa entrada, `[slug]` es el nombre real del directorio, con los corchetes incluidos:

```text theme={null}
app/
└── [slug]/
    └── page.tsx
```

Esa entrada cubre todo lo que hay bajo el directorio, así que no agregues un `/**` final. En macOS y en Linux y WSL2, el directorio `app/[slug]` tiene que existir cuando se inicia el comando en el sandbox.

* **Corchetes como `[slug]`**: en todas las listas en macOS, y en `denyRead` y `allowRead` en Linux y WSL2, los corchetes de `./app/[slug]` también son un patrón. La entrada entonces también coincide con cualquier ruta bajo `app` cuyo nombre sea un carácter de `slug`, como `app/s` o `app/g`. Con esa entrada en `allowRead`, o en `allowWrite` en macOS, los comandos en el sandbox también pueden acceder a esas rutas. Cambia el nombre de las que no deberían alcanzar.
* **Corchetes como `[user-id]` o `[post-id]`, donde el carácter a la izquierda del guion se ordena después del de la derecha**: `./app/[user-id]` cubre solo el directorio con exactamente ese nombre, en todas las listas y en todas las plataformas. Antes de v2.1.304, los comandos en el sandbox en Linux y WSL2 no se iniciaban mientras `denyRead` o `allowRead` contenía una entrada así.
* **Llaves y paréntesis**: son caracteres comunes, así que `~/data/{keys,tokens}` cubre un directorio llamado `{keys,tokens}`, no dos alternativas. Para cubrir `~/data/keys` y `~/data/tokens`, agrega cada uno como una entrada propia.

### `sandbox.filesystem.allowWrite`

Agrega rutas donde los comandos en sandbox pueden escribir, además del directorio de trabajo, el directorio temporal por usuario y los directorios que agregaste con `--add-dir`, `/add-dir` o `permissions.additionalDirectories`. Úsalo cuando un subproceso como `kubectl` o una herramienta de compilación necesite escribir fuera del proyecto.

* **Scope**: [`Any file`](#scopes), con [límites en la configuración de proyecto y local](https://code.claude.com/docs/es/sandboxing.md#repository-settings-under-an-admin-required-sandbox)
* **Type**: array de cadenas de ruta, con los [prefijos de ruta del sandbox](#sandbox-path-prefixes)
* **Default**: sin establecer, por lo que los comandos en sandbox pueden escribir en el directorio de trabajo, el directorio temporal por usuario, los directorios que agregaste con `--add-dir` o `/add-dir` y los directorios de [`permissions.additionalDirectories`](#permissions-additionaldirectories)

Esto permite que una compilación escriba bajo `/tmp/build` y que `kubectl` actualice tu kubeconfig:

```json settings.json theme={null}
{
  "sandbox": {
    "filesystem": {
      "allowWrite": ["/tmp/build", "~/.kube"]
    }
  }
}
```

Claude Code combina las entradas de `allowWrite` y las rutas de tus reglas de permisos allow `Edit(...)` de todos los alcances de configuración que carga la sesión, y deja fuera las de la configuración del repositorio mientras [`permissions.blockReadsOutsideWorkingDirectories`](#sandboxed-commands-under-the-block) está activado. Los [bloqueos de repositorio](https://code.claude.com/docs/es/sandboxing.md#repository-settings-under-an-admin-required-sandbox) también pueden dejar fuera las entradas de un repositorio. Una entrada `allowWrite` no puede levantar una [ruta protegida](https://code.claude.com/docs/es/sandboxing.md#protected-paths).

### `sandbox.filesystem.denyWrite`

Impide que los comandos en sandbox escriban en rutas específicas, incluidas las rutas dentro de un directorio que de otro modo sería escribible.

* **Scope**: [`Any file`](#scopes)
* **Type**: array de cadenas de ruta, con los [prefijos de ruta del sandbox](#sandbox-path-prefixes)
* **Default**: sin establecer

Esto evita que los comandos en sandbox cambien la configuración del sistema o instalen binarios:

```json settings.json theme={null}
{
  "sandbox": {
    "filesystem": {
      "denyWrite": ["/etc", "/usr/local/bin"]
    }
  }
}
```

Claude Code combina las entradas de todos los alcances de configuración que carga la sesión y agrega las rutas de tus reglas de permisos deny `Edit(...)`.

### `sandbox.filesystem.denyRead`

Impide que los comandos en sandbox lean rutas específicas, como archivos de credenciales que la política de lectura predeterminada expondría. Para proteger un archivo de credenciales y mantenerlo utilizable a través del proxy del sandbox, consulta [`sandbox.credentials`](#sandbox-credentials) en su lugar.

* **Scope**: [`Any file`](#scopes)
* **Type**: array de cadenas de ruta, con los [prefijos de ruta del sandbox](#sandbox-path-prefixes)
* **Default**: sin establecer, por lo que los comandos en sandbox conservan el [acceso de lectura predeterminado](https://code.claude.com/docs/es/sandboxing.md#filesystem-isolation), que incluye archivos de credenciales como `~/.aws/credentials`

```json settings.json theme={null}
{
  "sandbox": {
    "filesystem": {
      "denyRead": ["~/.aws/credentials"]
    }
  }
}
```

Claude Code combina las entradas de todos los alcances de configuración que carga la sesión y agrega las rutas de tus reglas de permisos deny `Read(...)`. Cuando [`filesystem.disabled`](#sandbox-filesystem-disabled) es `true`, Claude Code no aplica estas entradas.

### `sandbox.filesystem.allowRead`

Vuelve a habilitar la lectura de rutas específicas dentro de una región que [`denyRead`](#sandbox-filesystem-denyread) bloquea, para crear un acceso de lectura limitado al espacio de trabajo. Una entrada `denyRead` exacta o con comodines sigue bloqueada dentro de un `allowRead` más amplio, como muestra la [tabla de superposición](https://code.claude.com/docs/es/sandboxing.md#configure-sandboxing). Cuando una entrada `denyRead` con comodines, como `~/**/.env`, coincide con un directorio, Claude Code también bloquea la lectura de su contenido. Antes de v2.1.236 en macOS, Claude Code volvía a habilitar las rutas con las que coincidía una entrada `denyRead` con comodines siempre que una entrada `allowRead` más amplia las cubriera, y dejaba legible el contenido de un directorio coincidente.

* **Scope**: [`Any file`](#scopes), con [límites en la configuración de proyecto y local](https://code.claude.com/docs/es/sandboxing.md#repository-settings-under-an-admin-required-sandbox)
* **Type**: array de cadenas de ruta, con los [prefijos de ruta del sandbox](#sandbox-path-prefixes)
* **Default**: sin establecer

Esto bloquea la lectura de tu directorio home excepto el propio proyecto:

```json settings.json theme={null}
{
  "sandbox": {
    "filesystem": {
      "denyRead": ["~/"],
      "allowRead": ["."]
    }
  }
}
```

Claude Code resuelve una entrada `.` como la raíz del proyecto en la configuración de proyecto y como `~/.claude` en la configuración de usuario. Claude Code combina las entradas de los archivos de configuración que carga la sesión a menos que [`allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) esté establecido, y deja fuera las entradas de la configuración del repositorio mientras [`permissions.blockReadsOutsideWorkingDirectories`](#sandboxed-commands-under-the-block) está activado. Los [bloqueos de repositorio](https://code.claude.com/docs/es/sandboxing.md#repository-settings-under-an-admin-required-sandbox) también pueden dejar fuera las entradas de un repositorio.

### `sandbox.filesystem.allowManagedReadPathsOnly`

Respeta solo las entradas de [`allowRead`](#sandbox-filesystem-allowread) que provienen de la configuración administrada, para que los desarrolladores no puedan volver a habilitar el acceso de lectura a rutas que tu organización bloqueó. Claude Code sigue combinando las entradas de `denyRead` de todos los alcances de configuración que carga la sesión.

* **Scope**: [`Managed`](#scopes)
* **Type**: Boolean
  * `true`: Claude Code respeta solo las entradas de `allowRead` de la configuración administrada
  * `false`: las entradas de `allowRead` de otros archivos de configuración pueden combinarse
* **Default**: `false`

Esto bloquea la lectura del directorio home, vuelve a habilitar `~/work` e impide que los desarrolladores habiliten cualquier otra cosa:

```json managed-settings.json theme={null}
{
  "sandbox": {
    "filesystem": {
      "denyRead": ["~/"],
      "allowRead": ["~/work"],
      "allowManagedReadPathsOnly": true
    }
  }
}
```

Consulta [Evitar que los desarrolladores amplíen la política](https://code.claude.com/docs/es/sandboxing.md#keep-developers-from-widening-the-policy).

### `sandbox.filesystem.disabled`

Omite el aislamiento del sistema de archivos y mantén el aislamiento de red. Los comandos en sandbox obtienen acceso de lectura y escritura sin restricciones al sistema de archivos del host, y su tráfico de red saliente permanece limitado a [`network.allowedDomains`](#sandbox-network-alloweddomains). Úsalo cuando uses el sandbox para controlar adónde se conectan los comandos y no lo que escriben. Requiere Claude Code v2.1.216 o posterior.

* **Scope**: [`User or managed`](#scopes). Cuando la configuración administrada configura `sandbox.filesystem` de cualquier forma, o incluye una entrada de `sandbox.credentials.files` con `"mode": "deny"`, solo la configuración administrada puede establecerlo.
* **Type**: Boolean
  * `true`: Claude Code omite el aislamiento del sistema de archivos y mantiene el aislamiento de red
  * `false`: el aislamiento del sistema de archivos permanece activado
* **Default**: `false`, por lo que el aislamiento del sistema de archivos permanece activado

Esto deja el sistema de archivos abierto y limita el tráfico de red saliente a GitHub y npm:

```json settings.json theme={null}
{
  "sandbox": {
    "enabled": true,
    "filesystem": {
      "disabled": true
    },
    "network": {
      "allowedDomains": ["github.com", "*.npmjs.org"]
    }
  }
}
```

Con la capa desactivada, Claude Code no aplica las entradas `denyRead` ni las entradas `deny` de `credentials.files`, mientras que las entradas de `credentials.envVars` y las entradas `mask` aplicadas siguen funcionando. [`autoAllowBashIfSandboxed`](#sandbox-autoallowbashifsandboxed) sigue teniendo el valor predeterminado `true`, así que establécelo en `false` para seguir recibiendo solicitudes. Consulta [Desactivar el aislamiento del sistema de archivos](https://code.claude.com/docs/es/sandboxing.md#disable-filesystem-isolation) para ver la lista completa de fuentes que pueden establecerlo y qué cambia cuando el aislamiento está desactivado. Requiere Claude Code v2.1.216 o posterior.

### `sandbox.ignoreViolations`

Silencia los informes de violaciones del sandbox para rutas que esperas que un comando sondee y que se le rechacen, como una herramienta que verifica `/etc/hosts` al iniciarse, para que esos rechazos no aparezcan como violaciones ni en lo que Claude ve. El sandbox sigue bloqueando el acceso; solo se suprime el informe. Las claves son subcadenas que se comparan con el comando, donde `*` coincide con todos los comandos, y los valores son subcadenas de la violación que se ignorará para ese comando, como una ruta del sistema de archivos.

* **Scope**: [`Any file`](#scopes), con [límites en la configuración de proyecto y local](https://code.claude.com/docs/es/sandboxing.md#repository-settings-under-an-admin-required-sandbox)
* **Type**: object que asigna una subcadena de comando a un array de subcadenas de violación, generalmente rutas
* **Default**: sin establecer, por lo que se informa cada violación

```json settings.json theme={null}
{
  "sandbox": {
    "ignoreViolations": {
      "*": ["/etc/hosts"]
    }
  }
}
```

### `sandbox.enableWeakerNestedSandbox`

Ejecuta el sandbox de Linux dentro de un contenedor Docker sin privilegios, donde bubblewrap no puede montar un `/proc` nuevo. En su lugar, el sandbox interno monta mediante bind el `/proc` existente del contenedor, lo que expone información de procesos que un montaje nuevo ocultaría. Esto reduce la seguridad; úsalo solo cuando el contenedor externo ya proporcione el aislamiento que necesitas.

* **Scope**: [`Any file`](#scopes), con [límites en la configuración de proyecto y local](https://code.claude.com/docs/es/sandboxing.md#repository-settings-under-an-admin-required-sandbox)
* **Type**: Boolean
  * `true`: el sandbox interno monta mediante bind el `/proc` existente del contenedor en lugar de montar uno nuevo
  * `false`: el sandbox monta un `/proc` nuevo, lo que no funciona en un contenedor Docker sin privilegios
* **Default**: `false`

```json settings.json theme={null}
{
  "sandbox": {
    "enabled": true,
    "enableWeakerNestedSandbox": true
  }
}
```

Solo Linux y WSL2. Consulta [Bubblewrap no se inicia dentro de un contenedor](https://code.claude.com/docs/es/sandboxing.md#bubblewrap-fails-to-start-inside-a-container).

### `sandbox.enableWeakerNetworkIsolation`

Permite que los comandos en sandbox en macOS accedan al servicio de confianza TLS del sistema, `com.apple.trustd.agent`. Las herramientas basadas en Go, como `gh`, `gcloud` y `terraform`, lo necesitan para verificar certificados TLS cuando usas [`network.httpProxyPort`](#sandbox-network-httpproxyport) con un proxy MITM y una CA personalizada. Esto reduce la seguridad al abrir una posible vía de exfiltración de datos a través del servicio de confianza.

* **Scope**: [`Any file`](#scopes), con [límites en la configuración de proyecto y local](https://code.claude.com/docs/es/sandboxing.md#repository-settings-under-an-admin-required-sandbox)
* **Type**: Boolean
  * `true`: los comandos en sandbox en macOS pueden acceder a `com.apple.trustd.agent`
  * `false`: los comandos en sandbox en macOS no pueden acceder al servicio de confianza TLS del sistema
* **Default**: `false`

```json settings.json theme={null}
{
  "sandbox": {
    "enabled": true,
    "enableWeakerNetworkIsolation": true
  }
}
```

Si no usas un proxy MITM, incluye las herramientas que fallan en [`excludedCommands`](#sandbox-excludedcommands) en su lugar; consulta [Las CLI basadas en Go fallan en la verificación TLS en macOS](https://code.claude.com/docs/es/sandboxing.md#go-based-clis-fail-tls-verification-on-macos).

### `sandbox.allowAppleEvents`

Permite que los comandos en sandbox en macOS envíen Apple Events, que necesitan `open`, `osascript` y las herramientas que abren URLs en un navegador; sin esto, fallan con el error `-600`. Esto elimina el aislamiento de ejecución de código: los comandos en sandbox pueden iniciar otras aplicaciones sin sandbox y sin preguntarle al usuario, y pueden enviar comandos AppleScript a aplicaciones en ejecución como Terminal, sujeto a la solicitud de consentimiento de automatización por aplicación de macOS (TCC).

* **Scope**: [`User or managed`](#scopes)
* **Type**: Boolean
  * `true`: los comandos en sandbox en macOS pueden enviar Apple Events
  * `false`: los comandos en sandbox en macOS no pueden enviar Apple Events, por lo que `open` y `osascript` fallan con el error `-600`
* **Default**: `false`

```json settings.json theme={null}
{
  "sandbox": {
    "enabled": true,
    "allowAppleEvents": true
  }
}
```

Para mantener el aislamiento y aun así ejecutar una de esas herramientas, agrégala a [`excludedCommands`](#sandbox-excludedcommands) en su lugar. Consulta [Apple Events en macOS](https://code.claude.com/docs/es/sandboxing.md#security-limitations).

### `sandbox.allowNestedUserNamespaces`

Permite que los comandos en el sandbox en Linux y WSL2 creen espacios de nombres de usuario, que necesitan el propio sandbox de Chromium y de Electron, un bubblewrap anidado y `unshare`. Si defines esta clave en `true`, desactivas un límite de seguridad: el código de un comando en el sandbox puede terminar ejecutándose fuera del sandbox. Para Podman o Buildah sin root, usa [`excludedCommands`](#sandbox-excludedcommands) en su lugar, porque el sandbox también los detiene de otras formas. Requiere Claude Code v2.1.305 o posterior.

* **Alcance**: [`User or managed`](#scopes). Un `true` cuenta si proviene de `~/.claude/settings.json`, de JSON pasado con `--settings` o de la [configuración administrada](https://code.claude.com/docs/es/managed-settings.md). Claude Code ignora un `true` en el `.claude/settings.json` o `.claude/settings.local.json` de un proyecto. En una sesión con [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](https://code.claude.com/docs/es/env-vars#variables) definido en `1`, Claude Code ignora un `true` de cualquier fuente. Un `false` cuenta desde cualquier archivo, según la [precedencia de configuración](https://code.claude.com/docs/es/settings.md#settings-precedence).
* **Tipo**: booleano
  * `true`: los comandos en el sandbox pueden crear espacios de nombres de usuario
  * `false`: esta clave no permite nada adicional y se aplica el comportamiento predeterminado del sandbox
* **Valor predeterminado**: `false`

```json settings.json theme={null}
{
  "sandbox": {
    "enabled": true,
    "allowNestedUserNamespaces": true
  }
}
```

Con esta clave activada, no confíes en ninguna de las restricciones del sandbox, incluidas las [rutas protegidas](https://code.claude.com/docs/es/sandboxing.md#protected-paths) y las entradas de [`credentials.files`](#sandbox-credentials-files), para detener un comando malicioso. En el [modo de permiso automático](https://code.claude.com/docs/es/sandboxing.md#auto-allow-mode), ese comando puede ejecutarse sin una solicitud de permiso. Si tu organización tiene un equipo de seguridad, consúltalo antes de activar la clave.

Para encontrar la solución para tu herramienta, consulta [Chromium o Podman sin root fallan dentro del sandbox en Linux](https://code.claude.com/docs/es/sandboxing.md#chromium-or-rootless-podman-fails-inside-the-sandbox-on-linux).

### `sandbox.ripgrep`

Apunta el sandbox a un binario de ripgrep propio en lugar del que usa Claude Code, por ejemplo cuando tu plataforma necesita un `rg` compilado de otra manera.

* **Scope**: [`User or managed`](#scopes)
* **Type**: object con `command`, la ruta al binario de ripgrep, y `args` opcional, un array de argumentos que se anteponen
* **Default**: sin establecer, por lo que el sandbox usa el mismo binario de ripgrep que Claude Code. Ese es el binario incluido a menos que establezcas [`USE_BUILTIN_RIPGREP`](https://code.claude.com/docs/es/env-vars) en `0`

```json settings.json theme={null}
{
  "sandbox": {
    "ripgrep": {
      "command": "/usr/local/bin/rg"
    }
  }
}
```

### `sandbox.bwrapPath`

Apunta el sandbox a un binario de bubblewrap instalado fuera de `PATH`, como una copia incluida localmente en un host aislado de la red. Claude Code usa la ruta tanto para la verificación de dependencias al inicio como al envolver cada comando en sandbox.

* **Scope**: [`Managed`](#scopes). Claude Code lo lee solo de la configuración administrada para que un archivo de usuario, de proyecto o local no pueda apuntar el sandbox a otro binario.
* **Type**: string, una ruta absoluta; Claude Code descarta una ruta relativa y recurre a la búsqueda en `PATH`
* **Default**: sin establecer, por lo que Claude Code busca `bwrap` en `PATH`

```json managed-settings.json theme={null}
{
  "sandbox": {
    "enabled": true,
    "bwrapPath": "/opt/admin/bwrap"
  }
}
```

Solo Linux y WSL2.

### `sandbox.socatPath`

Apunta el proxy de red del sandbox a un binario de `socat` instalado fuera de `PATH`.

* **Scope**: [`Managed`](#scopes)
* **Type**: string, una ruta absoluta; Claude Code descarta una ruta relativa y recurre a la búsqueda en `PATH`
* **Default**: sin establecer, por lo que Claude Code busca `socat` en `PATH`

```json managed-settings.json theme={null}
{
  "sandbox": {
    "enabled": true,
    "socatPath": "/opt/admin/socat"
  }
}
```

Solo Linux y WSL2.

### `sandbox.credentials`

Declara los archivos de credenciales y las variables de entorno que se [protegerán de los comandos en sandbox](https://code.claude.com/docs/es/sandboxing.md#protect-credentials). Cada entrada indica un archivo `path` o una variable `name` y un `mode`: `deny` oculta la credencial dentro del sandbox, y `mask` muestra a los comandos en sandbox un marcador de posición mientras el [proxy del sandbox](https://code.claude.com/docs/es/sandboxing.md#mask-credentials) sustituye el valor real en las solicitudes salientes. Claude Code protege solo las entradas que incluyes; no hay una lista integrada de credenciales denegadas.

* **Scope**: [`Any file`](#scopes). Claude Code respeta las entradas `mask`, `allowPlaintextInject`, `awsPairs` y `sigv4` solo desde la configuración de usuario, la configuración administrada y el flag `--settings`.
* **Type**: object con `files`, `envVars`, `allowPlaintextInject`, `awsPairs` y `sigv4`
* **Default**: sin establecer, por lo que no se protege ninguna credencial

Esto oculta tu archivo de credenciales de AWS y elimina `GITHUB_TOKEN` de los comandos en sandbox:

```json settings.json theme={null}
{
  "sandbox": {
    "credentials": {
      "files": [{ "path": "~/.aws/credentials", "mode": "deny" }],
      "envVars": [{ "name": "GITHUB_TOKEN", "mode": "deny" }]
    }
  }
}
```

La protección de archivos `deny` forma parte de la capa del sistema de archivos, por lo que no se aplica cuando [desactivas el aislamiento del sistema de archivos](https://code.claude.com/docs/es/sandboxing.md#disable-filesystem-isolation); la protección de variables de entorno sí se sigue aplicando.

#### Entradas de credenciales no válidas en la configuración administrada

Cuando una entrada administrada de `sandbox.credentials` no supera la validación, Claude Code sigue protegiendo la credencial en la medida de lo posible:

* Una entrada de `files` o `envVars` que aún tiene un `path` o `name` válido y un `mode` de `mask` o `deny`, como una cuyo patrón `extract` no tiene grupo de captura, se degrada a `mode: "deny"` con una advertencia, por lo que la credencial permanece bloqueada, no enmascarada, hasta que corrijas la entrada. Una entrada de `files` degradada fija [`filesystem.disabled`](https://code.claude.com/docs/es/sandboxing#disable-filesystem-isolation) igual que una entrada `deny` explícita, y la advertencia indica que su bloqueo de lectura no se aplica si la configuración administrada desactiva el aislamiento del sistema de archivos.
* Una entrada con un `mode` desconocido o con un `path` o `name` no válido se elimina.
* Cada caso genera una advertencia; tanto si una entrada se degrada como si se elimina, las entradas válidas restantes siguen aplicándose.

Se aplica en v2.1.191 y posterior; antes de v2.1.221, se eliminaba cada entrada no válida. Para las demás claves administradas con tratamiento por campo, consulta [Entradas no válidas en la configuración administrada](https://code.claude.com/docs/es/managed-settings.md#invalid-entries-in-managed-settings).

### `sandbox.credentials.files`

Protege archivos o directorios de credenciales de los comandos en sandbox. Con `"mode": "deny"`, Claude Code bloquea la lectura de la ruta dentro del sandbox, el mismo bloqueo de lectura que [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread). Con `"mode": "mask"`, los comandos en sandbox en Linux y WSL2 leen una copia centinela del archivo, y el proxy del sandbox sustituye el valor real en las solicitudes salientes a los `injectHosts` de esa entrada; en macOS, en cambio, el archivo no se puede leer dentro del sandbox. `"mode": "mask"` requiere Claude Code v2.1.221 o posterior.

* **Scope**: [`Any file`](#scopes). Claude Code descarta las entradas `mask` del `.claude/settings.json` del proyecto y del `.claude/settings.local.json` local.
* **Type**: array de objetos, cada uno con `path` y un `mode` de `"deny"` o `"mask"`, más los [campos de máscara para archivos](#mask-fields-for-files) opcionales
* **Default**: sin establecer, por lo que no se protege ningún archivo de credenciales

Esto oculta tu archivo de credenciales de AWS y enmascara el archivo de hosts de `gh`, sustituyendo el valor real solo en las solicitudes a `api.github.com`:

```json settings.json theme={null}
{
  "sandbox": {
    "credentials": {
      "files": [
        { "path": "~/.aws/credentials", "mode": "deny" },
        { "path": "~/.config/gh/hosts.yml", "mode": "mask", "injectHosts": ["api.github.com"] }
      ]
    }
  }
}
```

Las rutas usan los mismos [prefijos](#sandbox-path-prefixes) que los ajustes `sandbox.filesystem.*`, y Claude Code combina los arrays de todos los alcances de configuración que carga la sesión. [Proteger credenciales](https://code.claude.com/docs/es/sandboxing.md#protect-credentials) cubre lo que sigue aplicándose de las fuentes que excluyes con `--setting-sources`. Las entradas `mask` requieren Claude Code v2.1.221 o posterior.

La sustitución `mask` solo se realiza a través del proxy del sandbox, así que establece [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate), o [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) para redes de prueba con HTTP simple. `mask` se aplica a un solo archivo, así que incluye cada archivo de credenciales por separado. Claude Code acepta pero ignora los campos `mask` en una entrada `deny`. [Enmascarar credenciales](https://code.claude.com/docs/es/sandboxing.md#mask-credentials) cubre qué fuentes de configuración se respetan, y [Enmascarar archivos de credenciales](https://code.claude.com/docs/es/sandboxing.md#mask-credential-files) cubre cuándo una entrada pasa a `deny`.

#### Campos de máscara para archivos

Una entrada `mask` acepta estos campos opcionales. Sin `extract` ni `decode`, Claude Code reemplaza todo el contenido del archivo con un solo centinela. En macOS, con el aislamiento del sistema de archivos activado, Claude Code aplica una entrada `mask` como `deny` antes de que se ejecute `extract` o `decode`; consulta [Enmascarar archivos de credenciales](https://code.claude.com/docs/es/sandboxing.md#mask-credential-files).

| Campo | Tipo | Qué hace |
| :- | :- | :- |
| `extract` | string, una expresión regular con al menos un grupo de captura | Enmascara solo el texto capturado por el grupo 1 de cada coincidencia, para que el resto del archivo siga siendo analizable. Si también se establece `decode`, Claude Code verifica cada captura como un posible JWT en lugar de reemplazarla directamente. Requiere v2.1.221 o posterior |
| `onExtractNoMatch` | `"warn"`, `"deny"` o `"error"`; predeterminado `"warn"` | Qué sucede cuando `extract` o `decode` no encuentra nada que enmascarar. `warn` deja el archivo legible tal cual dentro del sandbox, `deny` lo hace ilegible y `error` detiene la configuración del sandbox hasta que corrijas la configuración. Claude Code trata `deny` como `error` cuando el bloqueo de lectura no se aplicaría, porque [desactivas el aislamiento del sistema de archivos](https://code.claude.com/docs/es/sandboxing.md#disable-filesystem-isolation) o una entrada de [`sandbox.filesystem.allowRead`](#sandbox-filesystem-allowread) vuelve a habilitar la ruta. Requiere v2.1.221 o posterior; el caso de `decode` requiere v2.1.224 o posterior |
| `decode` | la cadena `"jwt"` | Busca JSON Web Tokens (JWTs) en el archivo, con un patrón integrado o con `extract` si está establecido, verifica cada candidato y lo reemplaza con un token falso estructuralmente válido, para que el código dentro del sandbox que decodifica el token siga funcionando. Cuando ningún candidato se verifica, `onExtractNoMatch` determina el resultado. Requiere v2.1.224 o posterior |
| `maskClaims` | array de strings, al menos un nombre de claim; requiere `decode` | Enmascara solo los claims de nivel superior indicados del payload de cada JWT verificado y reconstruye el token en torno al payload modificado, para que los demás claims sigan siendo legibles. Cuando ningún claim indicado coincide, `onExtractNoMatch` determina el resultado. Requiere v2.1.224 o posterior |
| `maskDuplicates` | Boolean, predeterminado `false` | Reemplaza también las copias literales de cada valor enmascarado en otras partes del archivo, como un secreto pegado en un comentario. Claude Code busca coincidencias de subcadenas sin procesar, así que resérvalo para secretos largos y de alta entropía. Solo se consulta cuando `extract` o `decode` está establecido. Requiere v2.1.221 o posterior |
| `injectHosts` | array de strings, cada uno un host que [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) también admite | Restringe los hosts en los que el proxy del sandbox sustituye el valor real. Si no está establecido, el proxy lo sustituye en las solicitudes a todos los hosts de `sandbox.network.allowedDomains`. Requiere v2.1.221 o posterior |

Esto enmascara solo el valor de `oauth_token` en el archivo de hosts de `gh`, reemplaza todas las demás copias de ese valor en el archivo, hace que el archivo sea ilegible si el patrón no coincide con nada y sustituye el token real solo en las solicitudes a `api.github.com`:

```json settings.json theme={null}
{
  "sandbox": {
    "credentials": {
      "files": [
        {
          "path": "~/.config/gh/hosts.yml",
          "mode": "mask",
          "extract": "oauth_token:\\s*(\\S+)",
          "maskDuplicates": true,
          "onExtractNoMatch": "deny",
          "injectHosts": ["api.github.com"]
        }
      ]
    }
  }
}
```

### `sandbox.credentials.envVars`

Protege variables de entorno de los comandos en sandbox. Con `"mode": "deny"`, Claude Code elimina la variable del entorno de los comandos en sandbox. Con `"mode": "mask"`, los comandos en sandbox ven un valor centinela por sesión, y el proxy del sandbox sustituye el valor real en las solicitudes salientes a los `injectHosts` de esa entrada, para que herramientas como `gh` y `npm` sigan autenticándose sin tener nunca la credencial real.

* **Scope**: [`Any file`](#scopes). Claude Code descarta las entradas `mask` del `.claude/settings.json` del proyecto y del `.claude/settings.local.json` local.
* **Type**: array de objetos, cada uno con `name` y un `mode` de `"deny"` o `"mask"`, más los [campos de máscara para variables de entorno](#mask-fields-for-environment-variables) opcionales
* **Default**: sin establecer, por lo que no se protege ninguna variable de entorno

Esto elimina `NPM_TOKEN` de los comandos en sandbox y enmascara `GITHUB_TOKEN`, sustituyendo el valor real solo en las solicitudes a `api.github.com`:

```json settings.json theme={null}
{
  "sandbox": {
    "credentials": {
      "envVars": [
        { "name": "NPM_TOKEN", "mode": "deny" },
        { "name": "GITHUB_TOKEN", "mode": "mask", "injectHosts": ["api.github.com"] }
      ]
    }
  }
}
```

El `name` debe comenzar con una letra o un guion bajo y contener solo letras, dígitos y guiones bajos. Claude Code combina los arrays de todos los alcances de configuración que carga la sesión y aplica `deny` cuando la misma variable aparece con ambos modos. [Proteger credenciales](https://code.claude.com/docs/es/sandboxing.md#protect-credentials) cubre lo que sigue aplicándose de las fuentes que excluyes con `--setting-sources`.

La sustitución `mask` solo se realiza a través del proxy del sandbox, así que establece [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate), o [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) para redes de prueba con HTTP simple; consulta [Enmascarar credenciales](https://code.claude.com/docs/es/sandboxing.md#mask-credentials). Claude Code acepta pero ignora los campos `mask` en una entrada `deny`.

#### Campos de máscara para variables de entorno

Una entrada `mask` acepta estos campos opcionales. Sin `extract` ni `decode`, Claude Code reemplaza todo el valor con un solo centinela. `extract` y `decode` no se pueden combinar en la misma entrada.

| Campo | Tipo | Qué hace |
| :- | :- | :- |
| `extract` | string, una expresión regular con al menos un grupo de captura | Enmascara solo el texto capturado por el grupo 1 de cada coincidencia, como la contraseña dentro de una cadena de conexión `DATABASE_URL`, para que el resto del valor siga siendo analizable. Requiere v2.1.224 o posterior |
| `onExtractNoMatch` | `"warn"`, `"deny"` o `"error"`; predeterminado `"warn"`. En una entrada con `decode`, solo se acepta `"warn"` | Qué sucede cuando `extract` no coincide con nada. `warn` deja pasar la variable sin enmascarar, `deny` la elimina dentro del sandbox y `error` detiene la configuración del sandbox hasta que corrijas la configuración. Requiere v2.1.224 o posterior |
| `decode` | la cadena `"jwt"` | Verifica que todo el valor sea un JWT y lo reemplaza con un token falso estructuralmente válido, para que el código dentro del sandbox que decodifica el token siga funcionando; el proxy sustituye todo el token real en el tráfico saliente. Un valor que no se verifica pasa sin enmascarar con una advertencia. Requiere v2.1.224 o posterior |
| `maskClaims` | array de strings, al menos un nombre de claim; requiere `decode` | Enmascara solo los claims de nivel superior indicados del payload del JWT decodificado y reconstruye el token en torno al payload modificado, para que los demás claims sigan siendo legibles. Cuando ningún claim indicado coincide, la variable pasa sin enmascarar con una advertencia. Requiere v2.1.224 o posterior |
| `injectHosts` | array de strings, cada uno un host que [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) también admite | Restringe los hosts en los que el proxy del sandbox sustituye el valor real. Si no está establecido, el proxy lo sustituye en las solicitudes a todos los hosts de `sandbox.network.allowedDomains`. Escribe un destino IPv6 como la dirección comprimida sin corchetes, como `"::1"`, no en la forma entre corchetes; consulta [Destinos IPv6 en `injectHosts`](https://code.claude.com/docs/es/sandboxing#ipv6-destinations-in-injecthosts) |

Esto enmascara solo la contraseña dentro de `DATABASE_URL`, elimina la variable si el patrón no coincide con nada y enmascara un JWT en `SERVICE_JWT` dejando legibles todos los claims excepto `api_key`:

```json settings.json theme={null}
{
  "sandbox": {
    "credentials": {
      "envVars": [
        {
          "name": "DATABASE_URL",
          "mode": "mask",
          "extract": "://[^:]+:([^@]+)@",
          "onExtractNoMatch": "deny"
        },
        {
          "name": "SERVICE_JWT",
          "mode": "mask",
          "decode": "jwt",
          "maskClaims": ["api_key"]
        }
      ]
    }
  }
}
```

### `sandbox.credentials.allowPlaintextInject`

Permite la sustitución `mask` en solicitudes HTTP simples además de en HTTPS con terminación TLS. En HTTP simple, la identidad del servidor de destino no se verifica y la credencial viaja en texto plano, así que deja esto desactivado fuera de redes de prueba de confianza.

* **Scope**: [`User or managed`](#scopes)
* **Type**: Boolean
  * `true`: Claude Code permite la sustitución `mask` en solicitudes HTTP simples además de en HTTPS con terminación TLS
  * `false`: Claude Code permite la sustitución `mask` solo en HTTPS con terminación TLS
* **Default**: `false`

```json settings.json theme={null}
{
  "sandbox": {
    "credentials": {
      "allowPlaintextInject": true
    }
  }
}
```

### `sandbox.credentials.awsPairs`

Agrupa las variables de entorno enmascaradas que forman una sola credencial de AWS para [volver a firmar con SigV4](https://code.claude.com/docs/es/sandboxing.md#re-sign-aws-requests) cuando tu credencial está en variables con nombres no estándar. Claude Code vincula automáticamente el trío convencional `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` y `AWS_SESSION_TOKEN` cuando enmascaras sus valores completos, así que solo necesitas esta clave para otros nombres. Requiere Claude Code v2.1.224 o posterior.

* **Scope**: [`User or managed`](#scopes)
* **Type**: array de objetos, cada uno con `accessKeyIdVar`, `secretAccessKeyVar` y, opcionalmente, `sessionTokenVar`, que nombran entradas de `sandbox.credentials.envVars`
* **Default**: sin establecer, por lo que solo se empareja el trío convencional

Esto vincula tres variables con nombres personalizados en una sola credencial de AWS para volver a firmar:

```json settings.json theme={null}
{
  "sandbox": {
    "credentials": {
      "awsPairs": [
        {
          "accessKeyIdVar": "MY_KEY_ID",
          "secretAccessKeyVar": "MY_SECRET_KEY",
          "sessionTokenVar": "MY_SESSION_TOKEN"
        }
      ]
    }
  }
}
```

Cada variable nombrada debe ser una entrada `mask` de valor completo en [`sandbox.credentials.envVars`](#sandbox-credentials-envvars), sin `extract` ni `decode`, y solo puede ocupar una posición entre todos los pares. También se aplican estas reglas:

* El proxy vuelve a firmar las solicitudes en los hosts indicados en los `injectHosts` de la entrada del ID de clave de acceso
* Cuando `sessionTokenVar` está establecido, el proxy envía el token real como `x-amz-security-token` en las solicitudes que vuelve a firmar
* Nombrar cualquiera de las variables convencionales en un par reemplaza el emparejamiento automático

### `sandbox.credentials.sigv4`

Elige qué hace el proxy del sandbox con las formas de solicitud de AWS que [no puede volver a firmar](https://code.claude.com/docs/es/sandboxing.md#re-sign-aws-requests): `streaming` para cargas en streaming aws-chunked, `presigned` para URLs prefirmadas y `sigv4a` para firmas asimétricas SigV4A. Esto se aplica solo a solicitudes firmadas con el ID de clave de acceso de marcador de posición de un par enmascarado. Requiere Claude Code v2.1.224 o posterior.

* **Scope**: [`User or managed`](#scopes)
* **Type**: object con `streaming`, `presigned` y `sigv4a`, cada uno con uno de estos valores:
  * `"deny"`: el proxy hace fallar la solicitud
  * `"passthrough"`: el proxy reenvía la solicitud firmada con el marcador de posición enmascarado, para que la herramienta reciba el rechazo propio de AWS
* **Default**: sin establecer, por lo que cada forma es `"deny"`

Esto reenvía las cargas en streaming en lugar de hacerlas fallar en el proxy:

```json settings.json theme={null}
{
  "sandbox": {
    "credentials": {
      "sigv4": {
        "streaming": "passthrough"
      }
    }
  }
}
```

Con `deny`, el proxy hace fallar la solicitud. Con `passthrough`, el proxy reenvía la solicitud con su firma calculada a partir del marcador de posición enmascarado, por lo que AWS la rechaza y la herramienta que hace la llamada recibe la respuesta propia de AWS en lugar de un error del proxy.

### `sandbox.network`

Controla a qué hosts, puertos y sockets pueden acceder los comandos en sandbox. El sandbox enruta el tráfico saliente a través de un proxy que aplica estas listas; consulta [Aislamiento de red](https://code.claude.com/docs/es/sandboxing.md#network-isolation) para saber cómo decide el proxy y cuándo solicita aprobación.

* **Scope**: [`Any file`](#scopes). `strictAllowlist`, `allowManagedDomainsOnly` y `tlsTerminate` se leen de menos fuentes, como indican sus entradas.
* **Type**: object con las subclaves que se describen a continuación
* **Default**: sin establecer, por lo que no se permite ningún dominio de antemano y tu modo de permisos decide [qué sucede con cada host nuevo](https://code.claude.com/docs/es/sandboxing.md#hosts-outside-your-allowed-domains)

Esto permite de antemano GitHub y npm, bloquea `uploads.github.com` y permite que los comandos se vinculen a localhost:

```json settings.json theme={null}
{
  "sandbox": {
    "network": {
      "allowedDomains": ["github.com", "*.npmjs.org"],
      "deniedDomains": ["uploads.github.com"],
      "allowLocalBinding": true
    }
  }
}
```

Claude Code combina las subclaves de array de todos los alcances de configuración, por lo que un proyecto puede agregar dominios a tu lista de usuario a menos que se aplique un [bloqueo de repositorio](https://code.claude.com/docs/es/sandboxing.md#repository-settings-under-an-admin-required-sandbox). Las [reglas de permisos](https://code.claude.com/docs/es/sandboxing.md#permission-rules) allow y deny de `WebFetch(domain:...)` alimentan las mismas listas de permitidos y denegados.

### `sandbox.network.allowUnixSockets`

Indica las rutas de socket Unix a las que pueden conectarse los comandos en sandbox en macOS. Claude Code ignora esta lista en Linux y WSL2, donde el filtro seccomp no puede inspeccionar las rutas de socket; usa [`allowAllUnixSockets`](#sandbox-network-allowallunixsockets) allí en su lugar.

* **Scope**: [`Any file`](#scopes), con [límites en la configuración de proyecto y local](https://code.claude.com/docs/es/sandboxing.md#repository-settings-under-an-admin-required-sandbox)
* **Type**: array de strings, cada uno una ruta de socket
* **Default**: sin establecer, por lo que el sandbox de macOS bloquea todos los sockets Unix

```json settings.json theme={null}
{
  "sandbox": {
    "network": {
      "allowUnixSockets": ["~/.ssh/agent-socket"]
    }
  }
}
```

Una ruta de socket puede otorgar un acceso amplio: permitir `/var/run/docker.sock`, por ejemplo, permite que un comando en sandbox controle el daemon de Docker. Consulta [Limitaciones de seguridad](https://code.claude.com/docs/es/sandboxing.md#security-limitations).

### `sandbox.network.allowAllUnixSockets`

Permite que los comandos en sandbox se conecten a todos los sockets Unix. En Linux y WSL2, el [filtro seccomp](https://code.claude.com/docs/es/sandboxing.md#set-up-linux-and-wsl2) del sandbox bloquea las llamadas `socket(AF_UNIX, ...)`, por lo que esta es la única forma de permitir sockets Unix allí. Cuando falta el filtro, algo que `/sandbox` informa en su pestaña Dependencies, el sandbox no bloquea las llamadas a sockets Unix. Consulta [Configurar Linux y WSL2](https://code.claude.com/docs/es/sandboxing.md#set-up-linux-and-wsl2) para saber de dónde proviene el filtro.

* **Scope**: [`Any file`](#scopes), con [límites en la configuración de proyecto y local](https://code.claude.com/docs/es/sandboxing.md#repository-settings-under-an-admin-required-sandbox)
* **Tipo**: Boolean
  * `true`: los comandos en el sandbox pueden conectarse a cualquier socket Unix. En Linux y WSL2 también pueden conectarse a sockets de VM, la familia de direcciones `AF_VSOCK`
  * `false`: el sandbox bloquea las conexiones a sockets Unix: en macOS, excepto las rutas de `allowUnixSockets`, y en Linux y WSL2, mediante el filtro seccomp cuando está presente
* **Default**: `false`

```json settings.json theme={null}
{
  "sandbox": {
    "network": {
      "allowAllUnixSockets": true
    }
  }
}
```

En WSL2, `true` también vuelve a abrir el socket de interoperabilidad que inicia binarios de Windows como `cmd.exe` y `powershell.exe`.

### `sandbox.network.allowLocalBinding`

Permite que los comandos en sandbox en macOS escuchen en puertos de red, por ejemplo para iniciar un servidor de desarrollo, y se conecten a cualquier puerto de localhost. Un comando que escucha en una dirección que no es de loopback acepta conexiones de otras máquinas. La clave no tiene efecto en Linux y WSL2, donde cada comando en sandbox tiene su propia interfaz de loopback. Para acceder a un servidor del host desde Linux o WSL2, consulta [Un comando no puede acceder a un servidor en localhost](https://code.claude.com/docs/es/sandboxing.md#a-command-fails-to-reach-a-server-on-localhost).

* **Scope**: [`Any file`](#scopes), con [límites en la configuración de proyecto y local](https://code.claude.com/docs/es/sandboxing.md#repository-settings-under-an-admin-required-sandbox)
* **Type**: Boolean
  * `true`: los comandos en sandbox en macOS pueden escuchar en cualquier dirección local y conectarse a cualquier puerto de localhost
  * `false`: los comandos en sandbox en macOS no pueden escuchar en un puerto ni conectarse directamente a servidores en localhost
* **Default**: `false`

```json settings.json theme={null}
{
  "sandbox": {
    "network": {
      "allowLocalBinding": true
    }
  }
}
```

### `sandbox.network.allowMachLookup`

Indica nombres adicionales de servicios XPC y Mach que el sandbox de macOS puede buscar. Las herramientas que se comunican por XPC, como el simulador de iOS o Playwright, necesitan que sus servicios aparezcan aquí.

* **Scope**: [`Any file`](#scopes), con [límites en la configuración de proyecto y local](https://code.claude.com/docs/es/sandboxing.md#repository-settings-under-an-admin-required-sandbox)
* **Type**: array de strings, cada uno un nombre de servicio; un único `*` final coincide con un prefijo, y `"*"` por sí solo coincide con todos los servicios
* **Default**: sin establecer

Esto permite todos los servicios con el prefijo `com.apple.coresimulator.`:

```json settings.json theme={null}
{
  "sandbox": {
    "network": {
      "allowMachLookup": ["com.apple.coresimulator.*"]
    }
  }
}
```

### `sandbox.network.allowedDomains`

Permite de antemano dominios para el tráfico saliente de los comandos en sandbox, para que el sandbox no solicite aprobación para ellos. Los comodines como `*.example.com` coinciden con subdominios, y un sufijo `:port` opcional limita una entrada a un puerto; una entrada sin puerto coincide con todos los puertos.

* **Scope**: [`Any file`](#scopes), con [límites en la configuración de proyecto y local](https://code.claude.com/docs/es/sandboxing.md#repository-settings-under-an-admin-required-sandbox). Solo la configuración administrada cuando [`allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly) está establecido.
* **Type**: array de strings, cada uno un dominio, un patrón con comodines o un literal IP, con un sufijo `:port` opcional
* **Default**: sin establecer, por lo que tu modo de permisos decide [qué sucede con cada host nuevo](https://code.claude.com/docs/es/sandboxing.md#hosts-outside-your-allowed-domains)

Esto permite de antemano GitHub en todos los puertos, todos los subdominios de npm y un host de API solo en el puerto 443:

```json settings.json theme={null}
{
  "sandbox": {
    "network": {
      "allowedDomains": ["github.com", "*.npmjs.org", "api.example.com:443"]
    }
  }
}
```

Escribe los literales IPv6 entre corchetes, con un puerto opcional: `"[::1]"` permite todos los puertos y `"[::1]:443"` un solo puerto. La forma entre corchetes requiere Claude Code v2.1.229 o posterior. Consulta [Direcciones IPv6 en las listas de dominios](https://code.claude.com/docs/es/sandboxing.md#ipv6-addresses-in-domain-lists).

### `sandbox.network.deniedDomains`

Bloquea dominios para el tráfico saliente de los comandos en sandbox, con la misma sintaxis de comodines, puertos e IPv6 que [`allowedDomains`](#sandbox-network-alloweddomains). Un dominio denegado permanece bloqueado incluso cuando una entrada de `allowedDomains` también coincide con él.

* **Scope**: [`Any file`](#scopes)
* **Type**: array de strings, cada uno un dominio, un patrón con comodines o un literal IP, con un sufijo `:port` opcional
* **Default**: sin establecer

```json settings.json theme={null}
{
  "sandbox": {
    "network": {
      "deniedDomains": ["sensitive.cloud.example.com"]
    }
  }
}
```

Claude Code combina esta lista de todas las fuentes de configuración que carga la sesión incluso cuando `allowManagedDomainsOnly` está establecido, por lo que un desarrollador siempre puede hacer más estricta la lista de denegados. Para los literales IPv6, consulta [Direcciones IPv6 en las listas de dominios](https://code.claude.com/docs/es/sandboxing.md#ipv6-addresses-in-domain-lists).

Una entrada escrita con el punto final que marca un nombre de dominio completo, como `example.com.`, bloquea las mismas conexiones que `example.com`.

### `sandbox.network.strictAllowlist`

Deniega a los comandos en sandbox el acceso a hosts fuera de la lista de permitidos en lugar de solicitar aprobación. La lista de permitidos es [`allowedDomains`](#sandbox-network-alloweddomains) más los dominios de las reglas allow de `WebFetch(domain:...)`, o solo las entradas de la configuración administrada cuando [`allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly) está establecido. [Bloqueos que se aplican sin un sandbox requerido por el administrador](https://code.claude.com/docs/es/sandboxing.md#locks-that-apply-without-an-admin-required-sandbox) cubre las entradas de un repositorio. Requiere Claude Code v2.1.219 o posterior.

* **Scope**: [`User or managed`](#scopes). Un repositorio no puede activarlo ni desactivarlo.
* **Type**: Boolean
  * `true`: Claude Code deniega a los comandos en sandbox el acceso a hosts fuera de la lista de permitidos
  * `false`: a menos que otro archivo de configuración de confianza establezca `true`, Claude Code decide sobre un host fuera de la lista de permitidos según el modo de permisos en lugar de denegarlo directamente: en modo automático comprueba el host con los [dominios permitidos por comando](https://code.claude.com/docs/es/sandboxing.md#per-command-allowed-domains-in-auto-mode) del comando, en modo `dontAsk` lo deniega, en modo `bypassPermissions` y en sesiones interactivas de terminal en modo plan donde el bypass está disponible lo permite, y en los demás casos te pregunta
* **Default**: `false`

```json settings.json theme={null}
{
  "sandbox": {
    "network": {
      "strictAllowlist": true
    }
  }
}
```

Claude Code aplica esto solo a los comandos en sandbox; las herramientas que se ejecutan en el proceso, como `WebFetch`, siguen sus [reglas de permisos](https://code.claude.com/docs/es/sandboxing.md#permission-rules). Cuando cualquiera de las fuentes respetadas lo establece en `true`, permanece activado. Consulta [Aislamiento de red](https://code.claude.com/docs/es/sandboxing.md#network-isolation). Requiere Claude Code v2.1.219 o posterior.

### `sandbox.network.allowManagedDomainsOnly`

Bloquea la lista de permitidos de red a lo que define la configuración administrada. Claude Code respeta entonces solo `allowedDomains` y las reglas allow de `WebFetch(domain:...)` de la configuración administrada, ignora los dominios de la configuración de usuario, de proyecto, local y de `--settings`, y bloquea automáticamente un dominio no permitido en lugar de solicitar aprobación.

* **Scope**: [`Managed`](#scopes)
* **Type**: Boolean
  * `true`: Claude Code respeta solo `allowedDomains` y las reglas allow de `WebFetch(domain:...)` de la configuración administrada, y bloquea un dominio no permitido en lugar de solicitar aprobación
  * `false`: los dominios de otros archivos de configuración pueden combinarse en la lista de permitidos
* **Default**: `false`

Esto limita la lista de permitidos a GitHub y npm e ignora cualquier dominio que agreguen los desarrolladores:

```json managed-settings.json theme={null}
{
  "sandbox": {
    "network": {
      "allowManagedDomainsOnly": true,
      "allowedDomains": ["github.com", "*.npmjs.org"]
    }
  }
}
```

Mientras la clave es `true`, el sandbox es [requerido por el administrador](https://code.claude.com/docs/es/sandboxing.md#repository-settings-under-an-admin-required-sandbox), y solo la configuración administrada puede establecer un [puerto de proxy](#sandbox-network-httpproxyport).

Los dominios denegados siguen combinándose de todas las fuentes que carga la sesión. Consulta [Evitar que los desarrolladores amplíen la política](https://code.claude.com/docs/es/sandboxing.md#keep-developers-from-widening-the-policy).

### `sandbox.network.httpProxyPort`

Apunta el sandbox a tu propio proxy HTTP en lugar del que ejecuta Claude Code. Las organizaciones hacen esto para inspeccionar el tráfico HTTPS, aplicar sus propias reglas de filtrado o registrar las solicitudes. Tu proxy se encarga del filtrado, y Claude Code deja de aplicar sus listas de dominios y sus solicitudes de red al tráfico enviado allí. Si no está establecido, Claude Code inicia su propio proxy para el tráfico HTTP.

* **Scope**: [`Any file`](#scopes), a menos que [otros ajustes del sandbox limiten qué archivos pueden establecer un puerto](https://code.claude.com/docs/es/sandboxing.md#custom-proxy-configuration)
* **Type**: number, un puerto TCP local
* **Default**: sin establecer, por lo que Claude Code ejecuta su propio proxy

```json settings.json theme={null}
{
  "sandbox": {
    "network": {
      "httpProxyPort": 8080
    }
  }
}
```

Establece también [`socksProxyPort`](#sandbox-network-socksproxyport) si tu proxy también debe gestionar el tráfico SOCKS; si solo estableces uno de los dos, Claude Code sigue ejecutando su propio proxy para el otro protocolo. Consulta [Configuración de proxy personalizado](https://code.claude.com/docs/es/sandboxing.md#custom-proxy-configuration).

### `sandbox.network.socksProxyPort`

Apunta el sandbox a tu propio proxy SOCKS5 en lugar del que ejecuta Claude Code. Tu proxy se encarga del filtrado, y Claude Code deja de aplicar sus listas de dominios y sus solicitudes de red al tráfico enviado allí. Si no está establecido, Claude Code inicia su propio proxy para el tráfico SOCKS.

* **Scope**: [`Any file`](#scopes), a menos que [otros ajustes del sandbox limiten qué archivos pueden establecer un puerto](https://code.claude.com/docs/es/sandboxing.md#custom-proxy-configuration)
* **Type**: number, un puerto TCP local
* **Default**: sin establecer, por lo que Claude Code ejecuta su propio proxy

```json settings.json theme={null}
{
  "sandbox": {
    "network": {
      "socksProxyPort": 8081
    }
  }
}
```

Consulta [Configuración de proxy personalizado](https://code.claude.com/docs/es/sandboxing.md#custom-proxy-configuration).

### `sandbox.network.tlsTerminate`

Haz que el proxy del sandbox termine TLS para que pueda leer el contenido de las solicitudes HTTPS. Esto es experimental, y la [sustitución de credenciales](https://code.claude.com/docs/es/sandboxing.md#mask-credentials) `mask` lo requiere. Establece `{}` para generar una autoridad de certificación efímera para la sesión, o establece `caCertPath` y `caKeyPath` para usar la tuya.

* **Scope**: [`User or managed`](#scopes). Un repositorio no puede activarlo ni proporcionar una autoridad de certificación.
* **Type**: object con los strings opcionales `caCertPath` y `caKeyPath`, cada uno una ruta de archivo
* **Default**: sin establecer, por lo que el proxy no termina ni inspecciona TLS

```json settings.json theme={null}
{
  "sandbox": {
    "network": {
      "tlsTerminate": {}
    }
  }
}
```

Cuando más de una fuente respetada lo establece, Claude Code usa el valor de la fuente con mayor precedencia: la configuración administrada, luego el flag `--settings` y luego la configuración de usuario.

## Memoria y contexto

Controle qué carga Claude Code en el contexto, cómo se compacta y dónde mantiene la memoria y los planes. Consulte [Gestionar contexto](https://code.claude.com/docs/es/context-window.md) y [Memoria](https://code.claude.com/docs/es/memory.md).

### `autoCompactEnabled`

Haga que Claude Code [compacte la conversación automáticamente](https://code.claude.com/docs/es/context-window.md#when-your-context-fills-up) cuando el contexto se aproxime al límite. Aparece en `/config` como **Auto-compact**, y al activarlo/desactivarlo allí se escribe esta clave en la configuración del usuario.

* **Scope**: [`Any file`](#scopes)
* **Type**: Boolean
  * `true`: Claude Code compacta la conversación automáticamente cuando el contexto se aproxima al límite
  * `false`: Claude Code no compacta automáticamente
* **Default**: `true`
* **Per-session overrides**: [`DISABLE_AUTO_COMPACT`](https://code.claude.com/docs/es/env-vars) desactiva la auto-compactación para una sesión; cualquiera de los dos que la desactive, el otro no puede volver a activarla

```json settings.json theme={null}
{
  "autoCompactEnabled": false
}
```

El comando manual `/compact` sigue funcionando mientras la compactación automática está desactivada. Si desactivas la compactación automática, la [compactación en inactividad](#idlecompaction) también se desactiva.

### `autoCompactWindow`

Establezca qué tan llena se llena la ventana de contexto antes de que Claude Code [se compacte automáticamente](https://code.claude.com/docs/es/context-window.md#when-your-context-fills-up).

* **Scope**: [`Any file`](#scopes)
* **Type**: número de tokens, de `100000` a `1000000`. Claude Code limita el valor a la ventana de contexto de su modelo; la [descripción general de modelos](https://platform.claude.com/docs/en/about-claude/models/overview) enumera la ventana de cada modelo
* **Default**: sin establecer, por lo que Claude Code elige una ventana optimizada para su modelo
* **Per-session overrides**: [`--autocompact`](https://code.claude.com/docs/es/cli-reference#cli-flags) tiene prioridad sobre esta clave para una sesión, y [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](https://code.claude.com/docs/es/env-vars) tiene prioridad sobre ambas, a menos que Claude Code [ignore el valor de la variable](https://code.claude.com/docs/es/model-config.md#claude_code_auto_compact_window-values)

```json settings.json theme={null}
{
  "autoCompactWindow": 500000
}
```

El comando [`/autocompact`](https://code.claude.com/docs/es/commands#all-commands) guarda una ventana para el modelo actual en [`modelSettings`](#modelsettings), que tiene prioridad sobre esta clave en el mismo archivo para ese modelo. [Establecer la ventana de compactación automática](https://code.claude.com/docs/es/model-config.md#set-the-auto-compact-window) cubre cómo interactúan el comando, el flag, la variable y el ajuste.

### `autoMemoryDirectory`

Almacene [memoria automática](https://code.claude.com/docs/es/memory.md#storage-location) en un directorio de su elección en lugar del predeterminado por proyecto.

* **Scope**: [`Any file`](#scopes)
* **Type**: string, una ruta de directorio absoluta o con prefijo `~/`
* **Default**: sin establecer, por lo que Claude Code usa `~/.claude/projects/<project>/memory/`

```json settings.json theme={null}
{
  "autoMemoryDirectory": "~/my-memory-dir"
}
```

Desde la configuración del proyecto o local, Claude Code respeta esta clave bajo la misma [regla de confianza del espacio de trabajo que los hooks](https://code.claude.com/docs/es/permissions.md#what-runs-before-you-trust-a-folder), ya que un repositorio clonado puede proporcionar esos archivos.

### `autoMemoryEnabled`

Active o desactive [memoria automática](https://code.claude.com/docs/es/memory.md#enable-or-disable-auto-memory). Cuando es `false`, Claude no lee ni escribe en el directorio de memoria automática. También puede activarlo/desactivarlo con `/memory` durante una sesión, que escribe esta clave en la configuración del usuario.

* **Scope**: [`Any file`](#scopes)
* **Type**: Boolean
  * `true`: lo mismo que sin establecer; la memoria automática permanece activada a menos que algo que supere esta clave la desactive para la sesión, como `--bare`, modo seguro o `CLAUDE_CODE_DISABLE_AUTO_MEMORY`
  * `false`: Claude no lee ni escribe en el directorio de memoria automática
* **Default**: `true`
* **Per-session overrides**: [`CLAUDE_CODE_DISABLE_AUTO_MEMORY`](https://code.claude.com/docs/es/env-vars) tiene prioridad sobre esta clave para una sesión, en cualquier dirección

```json settings.json theme={null}
{
  "autoMemoryEnabled": false
}
```

### `bashOutputMaxChars`

Establezca cuántos caracteres de la [salida](https://code.claude.com/docs/es/tools-reference.md#output-limits) de un comando Bash o PowerShell exitoso recibe Claude en línea. Cuando la salida supera el límite, Claude Code la guarda en un archivo y Claude recibe una vista previa breve más la ruta del archivo. Aumente el límite cuando la salida del comando, como una compilación detallada o un registro completo de suite de pruebas, regularmente supera el predeterminado y desea que Claude lo lea sin abrir el archivo. Requiere Claude Code v2.1.261 o posterior.

* **Scope**: [`Any file`](#scopes)
* **Type**: número de caracteres, un entero positivo. Claude Code limita el valor al rango `4000` a `128000`
* **Default**: sin establecer, por lo que Claude recibe hasta 30.000 caracteres en línea

```json settings.json theme={null}
{
  "bashOutputMaxChars": 100000
}
```

Cuando establece esta clave, Claude Code ignora la variable de entorno [`BASH_MAX_OUTPUT_LENGTH`](https://code.claude.com/docs/es/env-vars).

### `claudeMd`

Inyecte instrucciones de estilo CLAUDE.md como memoria administrada por la organización sin implementar un archivo separado. Claude Code carga el texto como una entrada de memoria administrada antes de los archivos CLAUDE.md del usuario y del proyecto.

* **Scope**: [`Managed`](#scopes)
* **Type**: string, el texto de un archivo CLAUDE.md; escríbalo como lo haría con el archivo, Markdown incluido, con saltos de línea como `\n`
* **Default**: sin establecer

Este ejemplo implementa dos reglas como una breve lista de Markdown:

```json managed-settings.json theme={null}
{
  "claudeMd": "# Engineering rules\n\n- Always run make lint before committing.\n- Never push directly to main."
}
```

Consulte [Implementar CLAUDE.md en toda la organización](https://code.claude.com/docs/es/memory.md#deploy-organization-wide-claude-md).

### `claudeMdExcludes`

Omita archivos `CLAUDE.md` específicos cuando Claude Code carga [memoria](https://code.claude.com/docs/es/memory.md#exclude-specific-claude-md-files). En un monorepo grande, úselo para omitir archivos CLAUDE.md de otros equipos que no sean relevantes para su trabajo; [Excluir archivos CLAUDE.md irrelevantes](https://code.claude.com/docs/es/large-codebases.md#exclude-irrelevant-claude-md-files) en la guía de codebases grandes le muestra cómo hacerlo. Los patrones coinciden con rutas de archivo absolutas.

* **Scope**: [`Any file`](#scopes)
* **Type**: array de strings, cada uno un patrón glob o ruta absoluta
* **Default**: sin establecer, por lo que Claude Code carga cada CLAUDE.md que encuentra

```json settings.json theme={null}
{
  "claudeMdExcludes": ["**/vendor/**/CLAUDE.md"]
}
```

Las exclusiones se aplican solo a los archivos de memoria del usuario, proyecto y local; los archivos CLAUDE.md de política administrada no se pueden excluir.

### `env`

Establezca variables de entorno para cada sesión y para los subprocesos que Claude Code inicia desde ella. La mayoría de variables en la [referencia de variables de entorno](https://code.claude.com/docs/es/env-vars.md) pueden ir aquí, que es cómo se aplica una a cada sesión o se implementa en su equipo. La configuración del proyecto y local no puede establecer [algunas de ellas](#variables-claude-code-ignores-in-env).

* **Scope**: [`Any file`](#scopes)
* **Type**: objeto que asigna nombres de variables a valores de string
* **Default**: sin establecer

Este ejemplo desactiva la compactación automática y enruta las solicitudes de API a través de un proxy:

```json settings.json theme={null}
{
  "env": {
    "DISABLE_AUTO_COMPACT": "1",
    "ANTHROPIC_BASE_URL": "https://proxy.example.com"
  }
}
```

#### Cómo interactúan los valores de `env` con su shell

* Un valor aquí sobrescribe la misma variable exportada en su shell, y cuando más de un archivo de configuración establece una variable, se aplica la [más alta precedencia](https://code.claude.com/docs/es/settings.md#settings-precedence). [Variables que Claude Code ignora en `env`](#variables-claude-code-ignores-in-env) enumera las excepciones para la configuración del proyecto y local.
* Cuando la aplicación Claude Desktop o un [entorno autohospedado](https://code.claude.com/docs/es/self-hosted-environments) inicia la sesión, el entorno de lanzamiento que construye tiene prioridad en su lugar: Claude Code ignora un valor de `env` de cualquier archivo de configuración para una variable que el entorno de lanzamiento ya establece. El [registro de depuración](https://code.claude.com/docs/es/debug-your-config.md) nombra cada variable ignorada.
* Para cancelar una exportación de shell, establezca la variable en `""`. Claude Code trata un valor vacío como sin establecer para la selección de proveedor, y los subprocesos heredan el valor vacío.
* `NO_COLOR` y `FORCE_COLOR` establecidos aquí llegan solo a los subprocesos. Para cambiar los colores de la interfaz propia de Claude Code, establézcalos en su shell antes de lanzar `claude`.
* Los valores aquí son texto sin formato en el archivo de configuración y llegan a cada subproceso que Claude Code inicia. Para un token portador OTLP que rota, use [`otelHeadersHelper`](#otelheadershelper); para credenciales de API, use [`apiKeyHelper`](#apikeyhelper).

#### Cuándo Claude Code aplica valores de `env`

* Desde la configuración del usuario, `--settings` y configuración administrada: al inicio, y nuevamente en la sesión en ejecución cuando un cambio guardado altera el `env` fusionado.
* Desde la configuración del proyecto y local: después de confiar en el espacio de trabajo, o al inicio en modo `-p`, que nunca muestra el diálogo de confianza, y nuevamente cuando un cambio guardado altera el `env` fusionado.
* Variables que Claude Code clasifica como seguras, como selección de modelo, tiempos de espera y límites, y alternadores de características: al inicio desde cada archivo de configuración, aparte de las [variables que la configuración del proyecto y local no puede establecer](#variables-claude-code-ignores-in-env).
* Después de [mover la sesión con `/cd`](https://code.claude.com/docs/es/permissions#move-the-session-to-another-directory) en v2.1.246 o posterior: los valores de `env` del proyecto y local del nuevo directorio, además de los del directorio anterior.

#### Variables que Claude Code ignora en `env`

* La configuración del proyecto y local no puede establecer variables que un repositorio descargado no debería controlar; establécelas en tu shell, en tu configuración de usuario o en la configuración administrada en su lugar. Claude Code descarta cada una, salvo unos pocos valores que desactivan la telemetría, y registra una advertencia que puedes ver con `claude --debug`. Incluyen:

  * Variables que eligen dónde Claude Code almacena o escribe sus propios archivos: `CLAUDE_CONFIG_DIR`, `CLAUDE_CODE_TMPDIR` y las variables de directorio del sistema operativo como `HOME`, `TMPDIR`, `TMP`, `TEMP` y la familia `XDG_*`.
  * Variables de Windows que eligen los programas y la configuración de todo el equipo para los procesos que Claude Code inicia, como `SystemRoot`, `ComSpec`, `ProgramData`, `LOCALAPPDATA`, `PATHEXT`, `PSModulePath` y la familia `ProgramFiles`.
  * Variables que exportan contenido de la sesión: [`OTEL_LOG_RAW_API_BODIES`](https://code.claude.com/docs/es/env-vars#variables) y el par de rastreo beta detallado `ENABLE_BETA_TRACING_DETAILED` y `BETA_TRACING_ENDPOINT`.
  * Las variables del [exportador de OpenTelemetry](https://code.claude.com/docs/es/monitoring-usage.md) que activan la telemetría, eligen adónde va o eligen qué contenido captura:

    * `CLAUDE_CODE_ENABLE_TELEMETRY`, más el par de telemetría mejorada beta `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA` y `ENABLE_ENHANCED_TELEMETRY_BETA`
    * Los selectores de exportador `OTEL_LOGS_EXPORTER`, `OTEL_METRICS_EXPORTER` y `OTEL_TRACES_EXPORTER`
    * Las variables de contenido `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_ASSISTANT_RESPONSES`, `OTEL_LOG_TOOL_CONTENT` y `OTEL_LOG_TOOL_DETAILS`
    * Variables `OTEL_EXPORTER_OTLP_*` cuyos nombres terminan en `_ENDPOINT`, `_HEADERS`, `_PROTOCOL`, `_CERTIFICATE`, `_CLIENT_KEY` o `_INSECURE`, en las formas genérica y por señal, como `OTEL_EXPORTER_OTLP_ENDPOINT` y `OTEL_EXPORTER_OTLP_METRICS_HEADERS`
    * `OTEL_EXPORTER_PROMETHEUS_HOST` y `OTEL_EXPORTER_PROMETHEUS_PORT`

    Solo estos valores aún se aplican desde la configuración del proyecto y local, porque apagan algo: `none` para los tres selectores de exportador, y un valor apagado como `0` para `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_CONTENT` y `OTEL_LOG_TOOL_DETAILS`. Tal valor anula la misma variable en su configuración del usuario, pero no una que el entorno desde el que inicia Claude Code, un archivo `--settings` o la configuración administrada establece.

    Cuando un archivo de configuración del proyecto o local establece una variable en este grupo, una sesión interactiva local muestra un aviso al inicio. Ejecute `/status` o `claude doctor` para ver cuáles ignoró Claude Code y cuáles apagaron la telemetría; ambos enumeran nombres, nunca valores. Una ejecución no interactiva con `-p` o una sesión del Agent SDK no muestra aviso, así que verifique que su recopilador aún reciba datos después de actualizar. Si no lo hace, establezca las variables en su configuración del usuario, configuración administrada, el entorno del trabajo, o un archivo que pase con `--settings`.

    Ignorar este grupo en la configuración del proyecto y local requiere Claude Code v2.1.282 o posterior.
  * Variables que cambian cómo Claude Code se inicia o se sincroniza, como `CLAUDE_CODE_PROCESS_WRAPPER`, `CLAUDE_CODE_SYNC_SKILLS`, `CLAUDE_CODE_SYNC_PLUGINS`, `CLAUDE_CODE_PLUGIN_CACHE_DIR` y `CLAUDE_CODE_PLUGIN_SEED_DIR`.
  * La variable del [modo de lector de pantalla](https://code.claude.com/docs/es/accessibility.md) `CLAUDE_AX_SCREEN_READER` y las demás variables cuyos nombres empiezan por `CLAUDE_AX_`, como [`CLAUDE_AX_STARTUP_QUIET_MS`](https://code.claude.com/docs/es/env-vars#variables).
  * [`CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS`](https://code.claude.com/docs/es/env-vars#variables), que establece el temporizador de un diálogo sin respuesta.
  * [`CLAUDE_CODE_DISABLE_ATTACHMENTS`](https://code.claude.com/docs/es/env-vars#variables), que desactiva el procesamiento de archivos adjuntos.
  * [`CLAUDE_CODE_DISABLE_FILE_MENTIONS`](https://code.claude.com/docs/es/env-vars#variables), que impide que Claude Code expanda las menciones con `@` de archivos y directorios.

  Antes de v2.1.251, la configuración del proyecto y local también podía establecer las variables de esta lista que eligen dónde Claude Code escribe sus archivos o que exportan contenido de la sesión, excepto `HOME` y `XDG_CONFIG_HOME`. Antes de v2.1.290, también podía establecer las variables de temporizador de diálogo y `CLAUDE_CODE_DISABLE_ATTACHMENTS`.
* Variables de identidad que los entornos de alojamiento de Claude Code poseen, como `CLAUDE_CODE_REMOTE` y `CLAUDE_CODE_ACCOUNT_UUID`, se ignoran de cada archivo.
* [`CLAUDE_CODE_MESSAGING_SOCKET` y `CLAUDE_CODE_MESSAGING_TOKEN`](https://code.claude.com/docs/es/env-vars#variables), que Claude Code exporta a sí mismo, se ignoran de cada archivo. Ignorar la variable de socket requiere Claude Code v2.1.224 o posterior, e ignorar el token requiere v2.1.228 o posterior.
* [`CLAUDE_CODE_PROJECT_DIR_NAME`](https://code.claude.com/docs/es/sessions#name-the-project-directory-yourself), que Claude Code lee solo del entorno de lanzamiento, se ignora de cada archivo; requiere v2.1.234 o posterior.
* [`CLAUDE_CODE_RESTRICTED`](https://code.claude.com/docs/es/env-vars#variables), que Claude Code lee solo del entorno de lanzamiento, se ignora de cada archivo.
* [`CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY`](https://code.claude.com/docs/es/env-vars#variables), que Claude Code lee solo del entorno de lanzamiento, se ignora de cada archivo. La variable requiere Claude Code v2.1.283 o posterior.
* [`CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT`, `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT`, `CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT` y `CLAUDE_CODE_DISABLE_MOUNTED_DRIVE_RM_PROMPT`](https://code.claude.com/docs/es/env-vars#variables), que Claude Code lee solo del entorno de lanzamiento, se ignoran en todos los archivos.
* [`CLAUDE_CODE_WARN_DISK_FREE_GIB` y `CLAUDE_CODE_WARN_MEMORY_FREE_GIB`](https://code.claude.com/docs/es/env-vars#variables), que Claude Code lee solo del entorno de lanzamiento, se ignoran en todos los archivos. Las variables requieren Claude Code v2.1.304 o posterior.

### `fileCheckpointingEnabled`

Haga que Claude Code tome una instantánea de los archivos antes de cada edición para que [`/rewind`](https://code.claude.com/docs/es/checkpointing) pueda restaurarlos. Aparece en `/config` como **Rewind code (checkpoints)**, y al activarlo/desactivarlo allí se escribe esta clave en la configuración del usuario.

* **Scope**: [`Any file`](#scopes)
* **Type**: Boolean
  * `true`: Claude Code toma una instantánea de los archivos antes de cada edición para que `/rewind` pueda restaurarlos
  * `false`: Claude Code no toma instantáneas de archivos, por lo que `/rewind` no puede restaurarlos
* **Default**: `true`
* **Per-session overrides**: [`CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING`](https://code.claude.com/docs/es/env-vars) desactiva el checkpointing para una sesión; cualquiera de los dos que lo desactive, el otro no puede volver a activarlo

```json settings.json theme={null}
{
  "fileCheckpointingEnabled": false
}
```

En una ejecución `-p` o una sesión del Agent SDK, Claude Code ignora esta clave. El SDK activa el checkpointing con su opción `enableFileCheckpointing`, y una ejecución `-p` simple necesita `CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING=true`. Consulte [File checkpointing in the Agent SDK](https://code.claude.com/docs/es/agent-sdk/file-checkpointing.md).

### `idleCompaction`

La compactación en inactividad [compacta](https://code.claude.com/docs/es/context-window.md#what-survives-compaction) una conversación larga de la que te has alejado. Así, tu siguiente mensaje envía un resumen en lugar de la conversación completa. Una vez compactada, la conversación muestra un aviso:

* **Terminal**: una línea que comienza con `Compacted while idle, before the prompt cache expired`
* **[Panel de chat de VS Code](#idle-compaction-in-vs-code-and-the-desktop-app)**: un aviso que incluye `a summary written while you were away`
* **[Aplicación de escritorio](#idle-compaction-in-vs-code-and-the-desktop-app)**: el mismo aviso, dentro de una fila cuya etiqueta incluye `Claude Code notice`. Si no ves esa fila o su texto, cambia al [modo de vista Verbose](https://code.claude.com/docs/es/desktop.md#switch-view-modes).

La compactación en inactividad está activada de forma predeterminada para las conversaciones que cumplen todas estas condiciones:

* **Sesión**: estás en una sesión interactiva de terminal, o en el panel de chat de la extensión de VS Code o en la pestaña Code de la aplicación de escritorio con una [cuenta que Anthropic selecciona](#idle-compaction-in-vs-code-and-the-desktop-app)
* **Compactación automática**: [`autoCompactEnabled`](#autocompactenabled) está activado
* **Caché de prompts**: la conversación usa el [TTL de una hora de la caché de prompts](https://code.claude.com/docs/es/prompt-caching.md#which-ttl-each-request-gets)
* **Flags de funciones**: Claude Code puede [obtener flags de funciones de Anthropic](https://code.claude.com/docs/es/env-vars.md#features-that-need-feature-flag-fetching)
* **Tamaño**: el contexto de la conversación ha alcanzado el umbral de tokens, que puedes [cambiar](#change-the-idle-compaction-threshold) respecto a su valor predeterminado de 200.000
* **Tiempo de inactividad**: han pasado unos 54 minutos desde la última solicitud, y tu computadora está activa en ese momento

Para desactivar la compactación en inactividad, establece esta clave en `false`.

* **Scope**: [`Any file`](#scopes)
* **Type**: Boolean
  * `true`: Claude Code compacta las conversaciones inactivas que cumplen las condiciones
  * `false`: Claude Code no compacta mientras tu sesión está inactiva
* **Default**: `true`
* **Per-session overrides**: [`DISABLE_AUTO_COMPACT`](https://code.claude.com/docs/es/env-vars) desactiva la compactación en inactividad junto con la compactación automática

```json settings.json theme={null}
{
  "idleCompaction": false
}
```

Para desactivar o activar la compactación en inactividad desde dentro de una sesión de terminal, ejecuta `/config` y cambia la fila **Idle compaction**. Tu elección se guarda en tu configuración de usuario y se aplica de inmediato. La fila requiere Claude Code v2.1.302 o posterior. Si ejecutas una de esas versiones y `/config` no muestra la fila, revisa estas causas:

* **Otra fuente de configuración establece la clave**: un valor en la configuración administrada, el flag `--settings` o un archivo de configuración del proyecto o local sobrescribe tu configuración de usuario. Cambia la clave en esa fuente
* **Los flags de funciones no están disponibles**: donde Claude Code no puede [obtener flags de funciones de Anthropic](https://code.claude.com/docs/es/env-vars.md#features-that-need-feature-flag-fetching), la compactación en inactividad no se ejecuta, así que no hay nada que desactivar

La clave requiere Claude Code v2.1.290 o posterior. En una versión anterior, que ignora esta clave, desactiva [`autoCompactEnabled`](#autocompactenabled) para detener la compactación en inactividad.

#### Cambiar el umbral de compactación en inactividad

Establece [`CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS`](https://code.claude.com/docs/es/env-vars) en el número de tokens que debe alcanzar el contexto de una conversación antes de que se le aplique la compactación en inactividad. Usa un número entero positivo. Los valores inferiores a `100000` se elevan a `100000`, el umbral más bajo.

Con el valor predeterminado, una conversación en una ventana de contexto de 200K se compacta automáticamente antes de alcanzar los 200.000 tokens. Este ejemplo baja el umbral a 150.000 para que esas conversaciones cumplan la condición:

```json settings.json theme={null}
{
  "env": {
    "CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS": "150000"
  }
}
```

#### Compactación en inactividad en VS Code y la aplicación de escritorio

Un aviso como este significa que Claude Code [reemplazó tu conversación anterior por un resumen](https://code.claude.com/docs/es/context-window.md#what-survives-compaction) a partir del cual Claude trabaja ahora:

```text theme={null}
Compacted using a summary written while you were away · turn off with "idleCompaction": false in settings.json
```

No necesitas hacer nada. Para desactivar la compactación en inactividad, establece `idleCompaction` en `false` en `~/.claude/settings.json` o en otro [archivo de configuración](https://code.claude.com/docs/es/settings.md#settings-files-and-who-they-affect).

En el panel de chat de la extensión de VS Code y en la pestaña Code de la aplicación de escritorio, la compactación en inactividad se ejecuta para las cuentas que Anthropic selecciona. Claude Code escribe el resumen mientras no estás, y luego compacta con él solo si tu siguiente mensaje llega una hora o más después de la última solicitud.

### `plansDirectory`

Elige dónde Claude Code almacena los archivos de plan que escribe en [modo plan](https://code.claude.com/docs/es/permission-modes.md#analyze-before-you-edit-with-plan-mode). Claude Code resuelve la ruta de forma relativa a la raíz del proyecto.

* **Scope**: [`Any file`](#scopes)
* **Type**: string, una ruta relativa a la raíz del proyecto
* **Default**: sin establecer, por lo que Claude Code usa `~/.claude/plans`

```json settings.json theme={null}
{
  "plansDirectory": "./plans"
}
```

Claude Code almacena los planes en `~/.claude/plans` en lugar del directorio que establezcas en casos como estos:

* **Fuera de la raíz del proyecto**: la ruta se resuelve fuera de la raíz del proyecto, como ocurre con `"../plans"`.
* **Barra invertida en macOS, Linux y WSL**: la ruta resuelta contiene una barra invertida, como ocurre con `"docs\\plans"` al estilo de Windows. Escribe `"docs/plans"`, que también funciona en Windows.

### `skillListingBudgetFraction`

Cada turno, Claude ve un [listado de sus skills](https://code.claude.com/docs/es/skills.md#skill-descriptions-are-cut-short) con sus descripciones, y Claude Code limita ese listado a una parte de la ventana de contexto. Cuando el listado supera el límite, Claude Code mantiene el nombre de cada skill pero descarta las descripciones de los skills menos utilizados, para que Claude aún pueda invocar esos skills pero sea menos probable que elija uno por su cuenta. Aumente esta clave para mantener más descripciones visibles al costo de más contexto por turno.

* **Scope**: [`Any file`](#scopes)
* **Type**: número, una fracción mayor que `0` y como máximo `1`
* **Default**: `0.01`, que reserva el 1% de la ventana de contexto

```json settings.json theme={null}
{
  "skillListingBudgetFraction": 0.02
}
```

Para ver cuánto contexto usa el listado y qué skills contribuyen más, ejecute `/doctor`.

### `skillListingMaxDescChars`

Cada turno, Claude ve un [listado de sus skills](https://code.claude.com/docs/es/skills.md#skill-descriptions-are-cut-short) que muestra el texto `description` y `when_to_use` de cada skill. Esta clave limita cuántos caracteres de ese texto muestra Claude Code por skill; el texto más largo se corta en el límite.

* **Scope**: [`Any file`](#scopes)
* **Type**: número de caracteres, un entero positivo
* **Default**: `1536`

```json settings.json theme={null}
{
  "skillListingMaxDescChars": 2048
}
```

Aumente para mantener descripciones largas intactas al costo de más contexto por turno; disminuya para ajustar más skills bajo [`skillListingBudgetFraction`](#skilllistingbudgetfraction).

### `taskOutputMaxChars`

> [!WARNING]
>
> Eliminado en v2.1.277, junto con la herramienta `TaskOutput` que dimensionaba. Establecer esta clave no tiene efecto en las versiones actuales. Claude lee un [archivo de salida](https://code.claude.com/docs/es/tools-reference.md#background-commands) de tarea en segundo plano con `Read` en su lugar.

Hasta v2.1.276, establecía esta clave al número de caracteres de la [salida de una tarea en segundo plano](https://code.claude.com/docs/es/tools-reference.md#background-commands) que Claude recibía en línea cuando leía la tarea con la herramienta `TaskOutput`.

## Interfaz y terminal

Cambia cómo se ve y se comporta Claude Code en tu terminal: tema, modo de editor, línea de estado, spinner, notificaciones dentro de la sesión y accesibilidad. Consulta [Configuración de terminal](https://code.claude.com/docs/es/terminal-config.md).

### `askUserQuestionTimeout`

Permite que un diálogo [`AskUserQuestion`](https://code.claude.com/docs/es/tools-reference) sin respuesta continúe automáticamente después de un período de tiempo inactivo, enviando cualquier opción que ya hayas seleccionado. Establécelo cuando te alejes y quieras que Claude continúe sin ti. Con el valor predeterminado, las preguntas esperan hasta que las respondas. Para saber cuándo el temporizador se pausa o nunca comienza, consulta [Tiempo de espera de continuación automática de preguntas](https://code.claude.com/docs/es/tools-reference.md#question-auto-continue-timeout).

* **Scope**: [`User or managed`](#scopes)
* **Type**: string, uno de `"60s"`, `"5m"`, `"10m"`, o `"never"`
* **Default**: `"never"`

```json settings.json theme={null}
{
  "askUserQuestionTimeout": "5m"
}
```

Aparece en `/config` como **Question auto-continue timeout**, que escribe esta clave en la configuración del usuario; Claude Code oculta la fila mientras la configuración administrada o la bandera `--settings` establezcan la clave.

### `autoContinueAtUsageLimit`

Después de que un límite de uso de claude.ai detenga tu sesión, espera en la sesión abierta y continúa la tarea automáticamente después del reinicio. Consulta [Desactiva la continuación automática](https://code.claude.com/docs/es/interactive-mode.md#turn-automatic-continue-off). Requiere Claude Code v2.1.234 o posterior.

* **Scope**: [`User or managed`](#scopes). Se lee desde la configuración del usuario, `--settings` y la configuración administrada solamente. Cuando ninguno de esos establece la clave, un archivo de configuración de proyecto o local que la establece desactiva la función en lugar de ser ignorado.
* **Type**: Boolean
  * `true`: después de que un límite de uso de claude.ai detenga tu sesión, Claude Code espera en la sesión abierta y continúa la tarea automáticamente después del reinicio
  * `false`: Claude Code no inicia la espera por su cuenta. Aún puedes [iniciar una espera tú mismo](https://code.claude.com/docs/es/interactive-mode.md#start-a-wait-yourself) desde el menú de opciones de límite de uso
* **Default**: `true`

```json settings.json theme={null}
{
  "autoContinueAtUsageLimit": false
}
```

Aparece en `/config` como **Continue automatically at usage limit**, que escribe esta clave en la configuración del usuario; Claude Code oculta la fila mientras la configuración administrada o la bandera `--settings` establezcan la clave.

### `autoScrollEnabled`

Sigue la nueva salida hasta el final de la conversación en [renderizado de pantalla completa](https://code.claude.com/docs/es/fullscreen.md). Desactívalo para permanecer donde desplazaste mientras Claude sigue trabajando; los avisos de permiso aún se desplazan a la vista.

* **Scope**: [`Any file`](#scopes)
* **Type**: Boolean
  * `true`: la conversación sigue la nueva salida hasta el final
  * `false`: permaneces donde desplazaste mientras Claude sigue trabajando; los avisos de permiso aún aparecen debajo de la transcripción
* **Default**: `true`

```json settings.json theme={null}
{
  "autoScrollEnabled": false
}
```

Aparece en `/config` como **Auto-scroll** cuando el renderizado de pantalla completa está activado, que escribe esta clave en la configuración del usuario.

### `axScreenReader`

Renderiza salida compatible con lectores de pantalla: texto plano sin bordes decorativos ni animaciones. El modo lector de pantalla utiliza el renderizador clásico, por lo que la configuración `tui` no tiene efecto mientras está activo; las [sesiones en segundo plano](https://code.claude.com/docs/es/agent-view.md) adjuntas aún se renderizan en pantalla completa.

* **Scope**: [`User or managed`](#scopes). También puedes establecer la clave en un archivo que pases con `--settings`. Claude Code ignora la clave en la configuración de proyecto y local, por lo que ni un repositorio ni tu propio `.claude/settings.local.json` pueden activar o desactivar el modo lector de pantalla.
* **Type**: Boolean
  * `true`: Claude Code renderiza texto plano sin bordes decorativos ni animaciones, utilizando el renderizador clásico
  * `false`: Claude Code se renderiza normalmente
* **Default**: unset, por lo que el modo lector de pantalla está desactivado
* **Per-session overrides**: [`--ax-screen-reader`](https://code.claude.com/docs/es/cli-reference#cli-flags) tiene precedencia sobre [`CLAUDE_AX_SCREEN_READER`](https://code.claude.com/docs/es/env-vars), y ambos tienen precedencia sobre esta clave para una sesión

```json settings.json theme={null}
{
  "axScreenReader": true
}
```

### `bashEditDiffEnabled`

Elige si Claude Code registra qué archivos cambiaron en un repositorio Git mientras se ejecuta un comando Bash. Cuando los registra, ves su diff en la terminal después del comando, y tus [hooks PostToolUse Bash](https://code.claude.com/docs/es/hooks.md#bash) reciben la lista de archivos cambiados.

Un archivo listado no siempre es uno que el comando cambió. Un cambio que otro programa u otra llamada Bash hizo mientras el comando se ejecutaba también puede aparecer allí.

Establece la clave a `true` para registrarlos en cada modo de permiso. Requiere Claude Code v2.1.269 o posterior.

* **Scope**: [`User or managed`](#scopes). Un `true` cuenta solo desde tu configuración de usuario, JSON pasado con `--settings`, o [configuración administrada](https://code.claude.com/docs/es/managed-settings.md), por lo que un `true` en el `.claude/settings.json` o `.claude/settings.local.json` de un repositorio no puede activar el registro. Un `false` en cualquier archivo de repositorio aún lo desactiva a menos que un archivo de [precedencia más alta](https://code.claude.com/docs/es/settings.md#settings-precedence) establezca `true`.
* **Type**: Boolean
* **Default**: unset, por lo que Claude Code registra cambios en modo auto y modo `bypassPermissions` cuando dirige a Claude a editar archivos a través de Bash
* **Per-session overrides**: [`CLAUDE_CODE_BASH_EDIT_DIFF`](https://code.claude.com/docs/es/env-vars) tiene precedencia sobre esta clave para una sesión

```json settings.json theme={null}
{
  "bashEditDiffEnabled": true
}
```

### `companyAnnouncements`

Muestra los anuncios de tu organización a los usuarios al iniciar. Cuando enumeras más de uno, Claude Code elige uno al azar para cada sesión; en el primer lanzamiento de una persona muestra la primera entrada.

* **Scope**: [`Any file`](#scopes)
* **Type**: array de strings
* **Default**: unset, por lo que no se muestra ningún anuncio

```json settings.json theme={null}
{
  "companyAnnouncements": [
    "Welcome to Acme Corp! Review our code guidelines at docs.example.com"
  ]
}
```

### `defaultShell`

Elige si Bash o PowerShell ejecutan los comandos de shell que escribes con el prefijo [`!`](https://code.claude.com/docs/es/interactive-mode#shell-mode-with-prefix) en el cuadro de entrada, los que Claude Code ejecuta directamente y agrega a la sesión.

`"powershell"` funciona solo mientras la [herramienta PowerShell](https://code.claude.com/docs/es/tools-reference.md#powershell-tool) está activada. La herramienta está activada de forma predeterminada en Windows sin Git Bash, y en Windows con Git Bash para cuentas de claude.ai y Console. En sesiones de Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, y en macOS, Linux y WSL, establece `CLAUDE_CODE_USE_POWERSHELL_TOOL=1` para activar la herramienta. Establece esa variable a `0` para desactivar la herramienta.

* **Scope**: [`Any file`](#scopes)
* **Type**: string, uno de:
  * `"bash"`: Claude Code ejecuta tus comandos `!` en Bash
  * `"powershell"`: Claude Code ejecuta tus comandos `!` en PowerShell
* **Default**: `"bash"`, o `"powershell"` en Windows cuando Bash no está disponible

```json settings.json theme={null}
{
  "defaultShell": "powershell"
}
```

Si el shell que nombras no está disponible, Claude Code usa el otro: `"powershell"` vuelve a Bash cuando la herramienta PowerShell está desactivada, y `"bash"` vuelve a PowerShell cuando Bash no está instalado.

### `dialogExpiry`

Establece el plazo para diálogos que Claude Code [reenvía a un cliente remoto](https://code.claude.com/docs/es/remote-control.md#limitations), como un host de Remote Control o SDK, y para el diálogo de aprobación de un [mensaje de sesión cruzada retenido](https://code.claude.com/docs/es/cross-session-messaging.md#control-inbound-messages). En Claude Code v2.1.236 o posterior, el mismo plazo limita el [aviso de consentimiento de créditos de uso de Fable a mitad de sesión](https://code.claude.com/docs/es/model-config.md#fable-and-usage-credits) en una sesión que puede no tener a nadie en la terminal. Cuando no llega respuesta antes del plazo, Claude Code cancela el diálogo y continúa con su valor predeterminado sin acción. Requiere Claude Code v2.1.224 o posterior.

* **Scope**: [`User or managed`](#scopes)
* **Type**: string, uno de `"60s"`, `"5m"`, `"10m"`, o `"never"`, que desactiva el plazo
* **Default**: `"5m"`
* **Per-session overrides**: [`CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS`](https://code.claude.com/docs/es/env-vars) tiene precedencia sobre esta clave para una sesión

```json settings.json theme={null}
{
  "dialogExpiry": "10m"
}
```

Los avisos de permiso y las preguntas [`AskUserQuestion`](https://code.claude.com/docs/es/tools-reference#askuserquestion-tool-behavior) utilizan sus propios flujos y no se rigen por este plazo. Aparece en `/config` como **Dialog expiry**, que escribe esta clave en la configuración del usuario; la fila requiere Claude Code v2.1.232 o posterior, y Claude Code la oculta mientras la configuración administrada o la bandera `--settings` establezcan la clave.

### `editorMode`

Elige el modo de atajos de teclado para el aviso de entrada.

* **Scope**: [`Any file`](#scopes)
* **Type**: string, uno de:
  * `"normal"`: atajos de teclado estándar en la entrada del aviso
  * `"vim"`: edición de estilo vim con modos NORMAL, INSERT y VISUAL
* **Default**: `"normal"`

```json settings.json theme={null}
{
  "editorMode": "vim"
}
```

Aparece en `/config` como **Editor mode**, que escribe esta clave en la configuración del usuario.

### `emojiCompletionEnabled`

Muestra sugerencias de emoji cuando escribes `:` más un código corto en la entrada del aviso, y reemplaza un código corto completado como `:heart:` con su emoji. Establécelo a `false` para desactivar ambos.

* **Scope**: [`Any file`](#scopes)
* **Type**: Boolean
  * `true`: Claude Code muestra sugerencias de emoji después de `:` y reemplaza un código corto completado con su emoji
  * `false`: Claude Code ni sugiere emoji ni reemplaza códigos cortos
* **Default**: `true`

```json settings.json theme={null}
{
  "emojiCompletionEnabled": false
}
```

Consulta [Códigos cortos de emoji](https://code.claude.com/docs/es/interactive-mode.md#emoji-shortcodes). Requiere Claude Code v2.1.217 o posterior.

### `fileSuggestion`

Ejecuta tu propio comando para proporcionar autocompletado de ruta de archivo `@` en lugar de la sugerencia de archivo integrada. La sugerencia integrada utiliza recorrido rápido del sistema de archivos; un monorepo grande puede funcionar mejor con indexación específica del proyecto, como un índice de archivo precompilado.

* **Scope**: [`Any file`](#scopes). Bajo las [puertas de línea de estado y sugerencia de archivo](#status-line-and-file-suggestion-gates), Claude Code desactiva el comando o ejecuta solo un valor administrado, y omite el tuyo sin advertencia.
* **Type**: objeto con `type`, siempre `"command"`, y `command`, el comando de shell a ejecutar
* **Default**: unset, por lo que Claude Code usa la sugerencia de archivo integrada

```json settings.json theme={null}
{
  "fileSuggestion": {
    "type": "command",
    "command": "~/.claude/file-suggestion.sh"
  }
}
```

Después de guardar esto, escribe `@` seguido de parte de una ruta en el aviso: las sugerencias provienen de la salida de tu comando.

#### Entrada y salida del comando

Claude Code ejecuta el comando con las mismas variables de entorno que los [hooks](https://code.claude.com/docs/es/hooks.md), incluyendo `CLAUDE_PROJECT_DIR`, y deja de esperar después de cinco segundos. El comando recibe JSON en stdin con un campo `query` que contiene lo que has escrito hasta ahora:

```json theme={null}
{"query": "src/comp"}
```

Imprime rutas de archivo separadas por saltos de línea en stdout. Claude Code muestra como máximo 15:

```text theme={null}
src/components/Button.tsx
src/components/Modal.tsx
src/components/Form.tsx
```

El siguiente script lee la consulta y la entrega a un índice de archivo de repositorio:

```bash theme={null}
#!/bin/bash
query=$(cat | jq -r '.query')
# Replace your-repo-file-index with your own file search command
your-repo-file-index --query "$query" | head -20
```

### `footerLinksRegexes`

Renderiza insignias clickeables adicionales en el pie de página debajo del cuadro de entrada cuando una regex coincide con la salida de turno: resultados de herramientas, incluyendo contenidos de archivo y páginas obtenidas, y respuestas propias de Claude. Úsalo para convertir IDs impresos por CLI de proyecto, como herramientas de revisión y rastreadores de problemas, en enlaces de sesión.

* **Scope**: [`User or managed`](#scopes)
* **Type**: array de objetos, cada uno con `type` establecido a `"regex"`, una regex `pattern`, una plantilla `url`, y una `label` opcional; los marcadores de posición `{name}` en `url` y `label` se rellenan desde grupos de captura nombrados en `pattern`
* **Default**: unset, por lo que no se renderizan insignias

Este ejemplo coincide con claves de problema como `PROJ-1234` y construye cada enlace a partir de la clave capturada:

```json settings.json theme={null}
{
  "footerLinksRegexes": [
    {
      "type": "regex",
      "pattern": "\\b(?<key>PROJ-\\d+)\\b",
      "url": "https://issues.example.com/browse/{key}",
      "label": "{key}"
    }
  ]
}
```

Con esto configurado, cuando `PROJ-1234` aparece en un resultado de herramienta o en la respuesta de Claude, una insignia `PROJ-1234` aparece en el pie de página vinculando a `https://issues.example.com/browse/PROJ-1234`.

#### Restricciones de insignia

El URL, la etiqueta y el recuento de insignias de cada entrada están limitados de la siguiente manera:

| Restricción | Comportamiento |
| :- | :- |
| Origen de URL | Los valores capturados se codifican en URL y el URL construido debe compartir el origen literal de la plantilla. Una captura puede rellenar un segmento de ruta o valor de consulta pero no puede cambiar a dónde apunta el enlace |
| Longitud de URL | Los URLs construidos más largos que 2048 caracteres se descartan |
| Esquema de URL | Debe ser `https`, `http`, o un esquema de enlace profundo de editor o espacio de trabajo reconocido: `vscode`, `vscode-insiders`, `cursor`, `windsurf`, `zed`, `jetbrains`, `idea`, `slack`, `linear`, `notion`, `figma` |
| Etiqueta | Por defecto es el texto coincidente y se trunca a 28 columnas de visualización |
| Recuento de insignias | Como máximo 5 insignias se renderizan. La más antigua es desplazada por coincidencias más nuevas y `/clear` las elimina |

Cuando un turno se completa, Claude Code coincide con la regex `pattern` de cada entrada contra la salida de turno en el hilo principal, por lo que una regex lenta bloquea la interfaz hasta que termina. Los cuantificadores anidados como `(a+)+$` pueden tomar exponencialmente tiempo contra ciertas entradas y congelar la sesión, así que mantén cada `pattern` lineal y evita anidar `+` o `*`.

Las insignias de pie de página se renderizan junto a una [línea de estado personalizada](https://code.claude.com/docs/es/statusline.md) cuando una está configurada; ninguna reemplaza a la otra. Usa una línea de estado para una fila impulsada por script que calcula su propio contenido a partir de datos de sesión, e insignias de pie de página para convertir IDs de la conversación en enlaces sin un script.

### `keybindingFlavor`

> [!WARNING]
>
> Deprecado desde v2.1.261 y no tiene efecto. Las teclas de edición de palabras del aviso siempre [siguen convenciones readline](https://code.claude.com/docs/es/interactive-mode.md#make-ctrl-w-delete-back-to-whitespace), como en Bash. Claude Code aún acepta `keybindingFlavor`, por lo que un archivo de configuración que lo establece sigue siendo válido.

En v2.1.238 a v2.1.260, establecerlo a `"readline"` hizo que `Ctrl+W` eliminara hacia el espacio en blanco anterior en lugar de solo la palabra anterior.

* **Scope**: [`Any file`](#scopes)
* **Type**: string, `"classic"` o `"readline"`
* **Default**: unset

### `maxProseWidth`

Limita el ancho de la prosa en las respuestas de Claude para que las líneas permanezcan legibles en una terminal ancha. Los párrafos, encabezados, listas y citas se ajustan dentro de este número de columnas, mientras que las tablas y bloques de código mantienen el ancho completo de la terminal. Requiere Claude Code v2.1.282 o posterior.

* **Scope**: [`Any file`](#scopes)
* **Type**: número de columnas de terminal, un número entero, mínimo `40`. Claude Code ignora cualquier otro valor
* **Default**: unset, por lo que la prosa se ajusta al borde de la terminal

```json settings.json theme={null}
{
  "maxProseWidth": 80
}
```

### `prefersReducedMotion`

Reduce o desactiva animaciones de interfaz como el spinner, shimmer y efectos de destello. Aparece en `/config` como **Reduce motion**.

* **Scope**: [`Any file`](#scopes)
* **Type**: Boolean
  * `true`: Claude Code reduce o desactiva animaciones de interfaz como el spinner, shimmer y efectos de destello
  * `false`: lo mismo que unset; Claude Code muestra sus animaciones
* **Default**: `false`

```json settings.json theme={null}
{
  "prefersReducedMotion": true
}
```

### `promptSuggestionEnabled`

Muestra u oculta [sugerencias de aviso](https://code.claude.com/docs/es/interactive-mode.md#prompt-suggestions), las predicciones atenuadas que aparecen en tu entrada de aviso. Establécelo a `false`, o desactiva **Prompt suggestions** en `/config`, para ocultarlas.

* **Scope**: [`Any file`](#scopes)
* **Type**: Boolean
  * `true`: ves sugerencias de aviso en tu entrada de aviso
  * `false`: Claude Code oculta sugerencias de aviso
* **Default**: `true`
* **Per-session overrides**: [`CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION`](https://code.claude.com/docs/es/env-vars) tiene precedencia sobre esta clave para una sesión

```json settings.json theme={null}
{
  "promptSuggestionEnabled": false
}
```

Las sugerencias de aviso necesitan una cuenta de claude.ai o Console con telemetría activada. En Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, o con telemetría desactivada, como por [`DISABLE_TELEMETRY`](https://code.claude.com/docs/es/env-vars), esta clave no tiene efecto y solo `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=1` las activa.

### `respectGitignore`

Controla si el selector de archivo `@` deja fuera archivos que coinciden con patrones `.gitignore`. Aparece en `/config` como **Respect .gitignore in file picker**.

* **Scope**: [`Any file`](#scopes). Cuando ningún archivo de configuración lo establece, Claude Code vuelve a `respectGitignore` en `~/.claude.json`, que el toggle `/config` escribe.
* **Type**: Boolean
  * `true`: el selector de archivo `@` deja fuera archivos que coinciden con patrones `.gitignore`
  * `false`: el selector de archivo `@` incluye archivos que coinciden con patrones `.gitignore`
* **Default**: `true`

```json settings.json theme={null}
{
  "respectGitignore": false
}
```

### `respondToBashCommands`

Elige si Claude responde después de que ejecutes un comando de shell con el prefijo [`!`](https://code.claude.com/docs/es/interactive-mode#shell-mode-with-prefix) en el cuadro de entrada. De forma predeterminada, Claude Code agrega la salida del comando a la conversación y Claude responde a ella. Establece esta clave a `false` para agregar la salida al contexto sin una respuesta, para que puedas ejecutar varios comandos y preguntar sobre ellos juntos.

* **Scope**: [`Any file`](#scopes)
* **Type**: Boolean
  * `true`: Claude Code agrega la salida del comando a la conversación y Claude responde a ella
  * `false`: Claude Code agrega la salida al contexto sin una respuesta
* **Default**: `true`

```json settings.json theme={null}
{
  "respondToBashCommands": false
}
```

Consulta [Modo de shell con prefijo `!`](https://code.claude.com/docs/es/interactive-mode#shell-mode-with-prefix).

### `showClearContextOnPlanAccept`

Cuando Claude termina un plan en [modo plan](https://code.claude.com/docs/es/permission-modes.md#review-and-approve-a-plan), muestra un menú de aprobación. La planificación puede usar mucho contexto, por lo que esta clave agrega una primera opción a ese menú, **Yes, clear context and …**, que aprueba el plan, borra el contexto de conversación e inicia la implementación solo desde el plan. El resto de la etiqueta nombra el modo de permiso en el que continúa la sesión, y muestra cuánto de tu contexto usó la planificación.

* **Scope**: [`Any file`](#scopes)
* **Type**: Boolean
  * `true`: el menú de aprobación del plan obtiene una primera opción, **Yes, clear context and …**, que aprueba el plan y borra el contexto de conversación
  * `false`: el menú de aprobación del plan no muestra opción de borrar contexto
* **Default**: `false`

```json settings.json theme={null}
{
  "showClearContextOnPlanAccept": true
}
```

### `showTurnDuration`

Muestra u oculta el mensaje de duración de turno después de cada respuesta, como "Cooked for 1m 6s · done 6:05 PM". El reloj después de "done" muestra cuándo terminó el turno; [`timeFormat`](#timeformat) y [`timeZone`](#timezone) controlan su formato y zona. Aparece en `/config` como **Show turn duration**.

* **Scope**: [`Any file`](#scopes). Un valor en `~/.claude.json` de una versión anterior se aplica cuando ningún archivo de configuración lo establece.
* **Type**: Boolean
  * `true`: ves el mensaje de duración de turno después de cada respuesta
  * `false`: Claude Code oculta el mensaje de duración de turno
* **Default**: `true`

```json settings.json theme={null}
{
  "showTurnDuration": false
}
```

### `spellcheck`

Subraya palabras mal escritas en la entrada del aviso mientras escribes, usando un corrector ortográfico que instales. Claude Code verifica solo el texto en el cuadro de entrada. [Verifica la ortografía mientras escribes](https://code.claude.com/docs/es/interactive-mode.md#check-spelling-as-you-type) cubre la instalación de aspell, hunspell o ispell y qué cubre el verificador. Requiere Claude Code v2.1.235 o posterior.

* **Scope**: [`User or managed`](#scopes). El bloque del nivel más alto que lo establece se aplica como un todo.
* **Type**: objeto con `enabled` (Boolean), `checker` (`"aspell"`, `"hunspell"`, `"ispell"`, o `"auto"`), `language` (string, pasado al verificador como su nombre de diccionario), y `color` (string, un nombre de color de terminal, `#rrggbb`, `rgb(r,g,b)`, `ansi256(n)`, o `ansi:<name>`)
* **Default**: unset, por lo que la verificación ortográfica está desactivada; `checker` por defecto es `"auto"`, el primero de los tres encontrados en `PATH`; `language` por defecto es el propio diccionario del verificador; `color` por defecto es el color de error del tema

```json settings.json theme={null}
{
  "spellcheck": { "enabled": true, "language": "en_GB" }
}
```

### `spinnerTipsEnabled`

Mientras Claude trabaja, la línea del spinner rota a través de consejos cortos sobre características de Claude Code, como "Use Plan Mode to prepare for a complex request before making changes. Press Shift+Tab twice to enable." Establece esta clave a `false` para ocultarlos. Aparece en `/config` como **Show tips**.

* **Scope**: [`Any file`](#scopes)
* **Type**: Boolean
  * `true`: ves consejos en el spinner mientras Claude está trabajando
  * `false`: Claude Code oculta consejos del spinner
* **Default**: `true`

```json settings.json theme={null}
{
  "spinnerTipsEnabled": false
}
```

### `spinnerTipsOverride`

Agrega tus propios consejos a los [consejos del spinner](#spinnertipsenabled) que Claude Code muestra mientras Claude trabaja, o reemplaza los consejos integrados con los tuyos. Claude Code pone tus consejos en la misma rotación que los integrados.

Si estableces [`spinnerTipsEnabled`](#spinnertipsenabled) a `false`, Claude Code oculta todos los consejos, incluyendo los tuyos.

* **Scope**: [`Any file`](#scopes). Claude Code honra objetos de consejo, `tipsFile`, `label`, y `excludeDefault` desde la configuración del usuario, la bandera `--settings`, y la configuración administrada; desde la configuración de proyecto y local lee solo consejos de string plano.
* **Type**: objeto con campos `tips`, `tipsFile`, `label`, y `excludeDefault`, cada uno opcional
* **Default**: unset, por lo que Claude Code muestra solo los consejos integrados

Objetos de consejo, `tipsFile`, `label`, y la regla de la línea Scope que la configuración de proyecto y local contribuyen solo strings planos requieren Claude Code v2.1.247 o posterior.

Cada entrada `tips` es un string plano u objeto con estos campos:

| Campo | Requerido | Descripción |
| :- | :- | :- |
| `id` | Sí | Hasta 64 letras, dígitos, `.`, `_`, o `-`. Claude Code clave el historial de visualización del consejo en él, por lo que el enfriamiento del consejo sobrevive a la reordenación de la lista. De dos entradas con el mismo id, Claude Code usa la primera |
| `text` | Sí | El consejo, una línea de hasta 500 caracteres. Claude Code elimina escapes ANSI y caracteres de control y colapsa espacios en blanco |
| `cooldownSessions` | No | Sesiones que Claude Code espera antes de mostrar el consejo nuevamente, `0` a `1000`, por defecto `0` |
| `priority` | No | Orden entre consejos que han estado sin mostrarse igualmente tiempo, más alto primero, `-10` a `10`, por defecto `0` |

Claude Code lee un string plano como un consejo con esos valores predeterminados y un id basado en posición, por lo que su historial de visualización se reinicia cuando reordenas la lista. Dale a un consejo un `id` para mantener su historial a través de ediciones.

Claude Code lee como máximo 200 consejos en `tips` y `tipsFile`, y descarta una entrada inválida con una advertencia de depuración en lugar de rechazar el archivo de configuración.

Usa los campos restantes para nombrar un archivo de consejos, establecer el prefijo y ocultar los consejos integrados:

* `tipsFile`: una ruta absoluta o `~/` a un archivo JSON local que contiene un array de las mismas entradas, u objeto con un array `tips`, hasta 256 KB. Claude Code lee el archivo una vez por proceso, por lo que carga tus ediciones en el próximo inicio. No puedes establecerlo a través de [configuración administrada por servidor](https://code.claude.com/docs/es/server-managed-settings.md); despliega `tips` en línea allí, o despliega la ruta en un `managed-settings.json` en disco.
* `label`: el prefijo que Claude Code muestra antes de consejos desde la configuración del usuario, `--settings`, y la configuración administrada, hasta 40 caracteres. El valor predeterminado es `Tip`, el mismo prefijo que los consejos integrados, y los consejos de la configuración de proyecto y local siempre lo usan.
* `excludeDefault`: establécelo a `true` para ocultar los consejos integrados y mostrar solo los tuyos. Cuando Claude Code no puede cargar ninguno de tus consejos, por ejemplo porque `tipsFile` no existe o cada entrada es inválida, mantiene la rotación integrada en lugar de un spinner vacío.

Cuando más de un archivo de configuración establece la clave, Claude Code muestra consejos de todos ellos y toma `tipsFile`, `label`, y `excludeDefault` de cualquiera de la configuración administrada, la bandera `--settings`, y la configuración del usuario que sea el más alto precedente que establezca cada uno.

Este ejemplo, en tu configuración del usuario, agrega un consejo de string plano y un consejo de objeto a la rotación bajo el prefijo `Acme tip`:

```json settings.json theme={null}
{
  "spinnerTipsOverride": {
    "label": "Acme tip",
    "tips": [
      "Run /review before opening a PR",
      {
        "id": "gateway-errors",
        "text": "Seeing 5xx errors? Check the gateway status page first",
        "cooldownSessions": 5,
        "priority": 2
      }
    ]
  }
}
```

Cada campo en el ejemplo cambia una cosa sobre cómo Claude Code muestra los consejos:

* `label`: Claude Code muestra ambos consejos como `Acme tip: ...` en lugar de `Tip: ...`.
* El string plano: Claude Code le da los valores predeterminados, por lo que puede aparecer nuevamente en la sesión siguiente.
* `id`: Claude Code clave el historial de visualización del segundo consejo en `gateway-errors`, por lo que su enfriamiento aún se aplica después de agregar o reordenar consejos.
* `cooldownSessions`: después de que Claude Code muestre el consejo `gateway-errors`, no muestra ese consejo nuevamente hasta cinco sesiones después.
* `priority`: cuando el consejo `gateway-errors` y otro consejo han estado sin mostrarse durante el mismo número de sesiones, por ejemplo cuando ninguno ha sido mostrado aún, Claude Code muestra `gateway-errors` primero. El string plano tiene la prioridad predeterminada, `0`.

Mientras Claude trabaja, Claude Code muestra tus consejos en el spinner con tu prefijo, como `Acme tip: Run /review before opening a PR`.

### `spinnerVerbs`

Mientras un turno está en progreso, el spinner muestra un verbo rotativo como "Accomplishing", "Architecting", o "Baking". Usa esta clave para agregar tus propios verbos a esa rotación o reemplazar la lista integrada con la tuya.

* **Scope**: [`Any file`](#scopes)
* **Type**: objeto con un array `verbs` de strings y `mode`, uno de:
  * `"append"`: Claude Code agrega tus verbos al conjunto integrado
  * `"replace"`: Claude Code muestra solo tus verbos
* **Default**: unset, por lo que Claude Code usa los verbos integrados

Este ejemplo agrega dos verbos al conjunto integrado:

```json settings.json theme={null}
{
  "spinnerVerbs": {
    "mode": "append",
    "verbs": ["Pondering", "Crafting"]
  }
}
```

En modo `"replace"` con un array `verbs` vacío, Claude Code mantiene los verbos integrados.

### `statusLine`

Ejecuta tu propio comando para renderizar una [línea de estado](https://code.claude.com/docs/es/statusline.md) debajo del aviso con contexto como el modelo, costo o rama de git. Los campos opcionales ajustan espaciado, agregan re-ejecuciones periódicas y ocultan el indicador de modo vim integrado cuando tu script renderiza `vim.mode` a sí mismo.

* **Scope**: [`Any file`](#scopes). Cuando [`allowManagedHooksOnly`](#allowmanagedhooksonly) está activado, o [`disableAllHooks`](#disableallhooks) se establece fuera de la configuración administrada, solo se ejecuta el valor de configuración administrada.
* **Type**: objeto con `type` establecido a `"command"` y una string `command`, más `padding` opcional como número de caracteres, `refreshInterval` como número de segundos, mínimo `1`, e `hideVimModeIndicator` como Boolean
* **Default**: unset, por lo que no hay línea de estado

Este ejemplo imprime el nombre del modelo y el uso de contexto, y agrega dos caracteres de espaciado horizontal:

```json settings.json theme={null}
{
  "statusLine": {
    "type": "command",
    "command": "jq -r '\"[\\(.model.display_name)] \\(.context_window.used_percentage // 0)% context\"'",
    "padding": 2
  }
}
```

El ejemplo necesita [`jq`](https://jqlang.org/) instalado y se ejecuta en un shell. Para equivalentes de PowerShell y Git Bash, consulta [Configuración de Windows](https://code.claude.com/docs/es/statusline.md#windows-configuration); para la configuración completa, consulta [Configura manualmente una línea de estado](https://code.claude.com/docs/es/statusline.md#manually-configure-a-status-line).

### `subagentStatusLine`

Cuando Claude ejecuta [subagentes](https://code.claude.com/docs/es/sub-agents.md), Claude Code los enumera en una pantalla de tarea debajo del aviso, una fila por subagente mostrando `name · description · token count`. Esta clave te permite ejecutar tu propio comando para reescribir esas filas, por ejemplo para mostrar el uso de contexto de cada subagente como porcentaje. En cada actualización, Claude Code envía las filas visibles como un objeto JSON en stdin, con un array `tasks` llevando `id`, `name`, `status`, `model`, `tokenCount` de cada subagente, y más, y reemplaza la fila para cada `id` que escribas de vuelta como una línea `{"id", "content"}`. Las filas que no escribas de vuelta mantienen el renderizado predeterminado.

* **Scope**: [`Any file`](#scopes). Cuando [`allowManagedHooksOnly`](#allowmanagedhooksonly) está activado, o [`disableAllHooks`](#disableallhooks) se establece fuera de la configuración administrada, solo se ejecuta el valor de configuración administrada.
* **Type**: objeto con `type` establecido a `"command"` y una string `command`
* **Default**: unset, por lo que Claude Code renderiza las filas predeterminadas

```json settings.json theme={null}
{
  "subagentStatusLine": {
    "type": "command",
    "command": "jq -c '.tasks[] | {id, content: \"\\(.name): \\(.tokenCount) tokens\"}'"
  }
}
```

Consulta [Líneas de estado de subagente](https://code.claude.com/docs/es/statusline.md#subagent-status-lines).

### `syntaxHighlightingDisabled`

Claude Code colorea código por lenguaje en los diffs, bloques de código y vistas previas de archivo que muestra en la terminal, con su resaltador integrado; no hay plugin o servidor de lenguaje involucrado. Establece esta clave a `true` para mostrarlos como texto plano en su lugar, por ejemplo si los colores chocan con tu tema de terminal o ralentizan un lector de pantalla.

* **Scope**: [`Any file`](#scopes)
* **Type**: Boolean
  * `true`: Claude Code desactiva el resaltado de sintaxis en diffs, bloques de código y vistas previas de archivo
  * `false`: Claude Code resalta la sintaxis
* **Default**: `false`

```json settings.json theme={null}
{
  "syntaxHighlightingDisabled": true
}
```

### `terminalProgressBarEnabled`

Algunos terminales pueden mostrar un indicador de progreso en la pestaña o en la barra de tareas del programa que se ejecuta en ellos. Mientras Claude está trabajando, Claude Code reporta un estado en progreso al terminal, para que puedas ver desde otra pestaña o ventana si la sesión aún está ocupada. El indicador permanece visible después de que el turno termina mientras [subagentes en segundo plano](https://code.claude.com/docs/es/sub-agents.md#run-subagents-in-foreground-or-background) o [flujos de trabajo dinámicos](https://code.claude.com/docs/es/workflows.md) aún se están ejecutando, y se borra una vez que la sesión está inactiva.

Claude Code lo reporta solo en terminales que soportan el indicador: ConEmu, Ghostty 1.2.0 o posterior, e iTerm2 3.6.6 o posterior. Establece esta clave a `false` para detener a Claude Code de reportarlo. Aparece en `/config` como **Terminal progress bar**.

* **Scope**: [`Any file`](#scopes). Un valor en `~/.claude.json` de una versión anterior se aplica cuando ningún archivo de configuración lo establece.
* **Type**: Boolean
  * `true`: ves la barra de progreso del terminal en terminales que la soportan
  * `false`: Claude Code oculta la barra de progreso del terminal
* **Default**: `true`

```json settings.json theme={null}
{
  "terminalProgressBarEnabled": false
}
```

### `terminalTitleFromRename`

Claude Code establece el título de la pestaña de tu terminal. De forma predeterminada usa un título que genera a partir de la conversación, y una vez que le das a la sesión un [nombre](https://code.claude.com/docs/es/sessions.md#name-your-sessions) con `/rename` o `--name`, la pestaña muestra ese nombre en su lugar. Establece esta clave a `false` para mantener el título generado en la pestaña incluso después de nombrar la sesión. El nombre en sí aún se aplica, por lo que `/resume <name>` y el selector de sesión lo encuentran.

* **Scope**: [`Any file`](#scopes)
* **Type**: Boolean
  * `true`: el título de la pestaña del terminal muestra el nombre de sesión que estableciste
  * `false`: la pestaña mantiene el título que Claude Code genera a partir de tu conversación
* **Default**: `true`

```json settings.json theme={null}
{
  "terminalTitleFromRename": false
}
```

Para detener a Claude Code de actualizar el título del terminal en absoluto, establece [`CLAUDE_CODE_DISABLE_TERMINAL_TITLE`](https://code.claude.com/docs/es/env-vars) a `1` en su lugar.

### `theme`

Elige el tema de color para la interfaz. Aparece en `/config` como **Theme**.

* **Scope**: [`Any file`](#scopes). Un valor en `~/.claude.json` de una versión anterior se aplica cuando ningún archivo de configuración lo establece.
* **Type**: string, uno de:
  * `"auto"`: coincide con el fondo claro u oscuro de tu terminal
  * `"dark"`: el tema oscuro
  * `"light"`: el tema claro
  * `"dark-daltonized"`: el tema oscuro con colores amigables para daltónicos
  * `"light-daltonized"`: el tema claro con colores amigables para daltónicos
  * `"dark-ansi"`: el tema oscuro usando solo la paleta de color ANSI de tu terminal
  * `"light-ansi"`: el tema claro usando solo la paleta de color ANSI de tu terminal
  * `"custom:<slug>"` o `"custom:<plugin-name>:<slug>"`: un tema personalizado de `~/.claude/themes/` o un plugin
* **Default**: `"dark"`

```json settings.json theme={null}
{
  "theme": "light-daltonized"
}
```

Consulta [Crea un tema personalizado](https://code.claude.com/docs/es/terminal-config.md#create-a-custom-theme).

### `timeFormat`

Elige cómo Claude Code escribe los tiempos que muestra en la interfaz, como el `done 6:05 PM` al final de cada mensaje de duración de turno y las marcas de tiempo en el [visor de transcripción](https://code.claude.com/docs/es/interactive-mode.md#transcript-viewer). Para elegir un preajuste, ejecuta `/config` y establece **Time format**. Requiere Claude Code v2.1.257 o posterior.

* **Scope**: [`Any file`](#scopes)
* **Type**: string, uno de:
  * `"auto"`: lo mismo que unset; cada tiempo mantiene su formato integrado, que sigue tu configuración regional en el mensaje de duración de turno
  * `"12-hour"`: un reloj de 12 horas
  * `"24-hour"`: un reloj de 24 horas
  * `"24-hour-utc"`: un reloj de 24 horas en UTC con `Z` después de los minutos, como `18:05Z`; Claude Code ignora [`timeZone`](#timezone) para este preajuste
  * Un patrón strftime como `"%H:%M"`: Claude Code escribe cada tiempo con el patrón. Cualquier valor que contenga un `%` es un patrón, y cualquier otro valor fuera de los preajustes cuenta como `"auto"`
* **Default**: `"auto"`

```json settings.json theme={null}
{
  "timeFormat": "24-hour"
}
```

`/config` ofrece solo los preajustes, por lo que para usar un patrón strftime, agrega la clave a un archivo de configuración. Este ejemplo muestra cada tiempo como un reloj de 24 horas de dos dígitos:

```json settings.json theme={null}
{
  "timeFormat": "%H:%M"
}
```

El mensaje de duración de turno y el visor de transcripción entonces muestran tiempos como `18:05`. En el visor de transcripción, el patrón es la marca de tiempo completa, así que agrega directivas de fecha cuando quieras la fecha allí. Este ejemplo pone la fecha frente al reloj:

```json settings.json theme={null}
{
  "timeFormat": "%Y-%m-%d %H:%M"
}
```

Las mismas superficies entonces muestran tiempos como `2026-09-01 18:05`.

### `timeZone`

Muestra los tiempos en la interfaz en una zona horaria diferente a la de tu sistema. Establécelo a un [nombre de zona horaria IANA](https://www.iana.org/time-zones), como `"UTC"` o `"Europe/Dublin"`. Los tiempos que [`timeFormat`](#timeformat) controla entonces se muestran en esta zona. Si `timeFormat` es `"24-hour-utc"`, los tiempos permanecen en UTC y Claude Code ignora esta clave. `/config` no tiene fila para esta clave, así que establécela en un archivo de configuración. Requiere Claude Code v2.1.257 o posterior.

* **Scope**: [`Any file`](#scopes)
* **Type**: string, un nombre de zona horaria IANA. Cuando Claude Code no reconoce el nombre, usa tu zona horaria del sistema
* **Default**: unset, por lo que los tiempos se muestran en tu zona horaria del sistema

```json settings.json theme={null}
{
  "timeZone": "Europe/Dublin"
}
```

### `tui`

Elige el renderizador de interfaz de usuario de terminal. Usa `"fullscreen"` para el renderizador [alt-screen](https://code.claude.com/docs/es/fullscreen.md) sin parpadeos con scrollback virtualizado, o `"default"` para el renderizador clásico de pantalla principal. Ejecutar `/tui fullscreen` o `/tui default` escribe esta clave para ti.

* **Scope**: [`Any file`](#scopes)
* **Type**: string, uno de:
  * `"default"`: el renderizador clásico de pantalla principal
  * `"fullscreen"`: el renderizador alt-screen sin parpadeos con scrollback virtualizado
* **Default**: unset, por lo que Claude Code [elige el renderizador para ti](https://code.claude.com/docs/es/fullscreen.md#fullscreen-by-default)
* **Per-session overrides**: [`CLAUDE_CODE_NO_FLICKER`](https://code.claude.com/docs/es/env-vars) y [`CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN`](https://code.claude.com/docs/es/env-vars) tienen precedencia sobre esta clave para una sesión: `CLAUDE_CODE_NO_FLICKER=1` activa pantalla completa, y `CLAUDE_CODE_NO_FLICKER=0` o `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1` la desactiva; cuando ambos se establecen, Claude Code la desactiva

```json settings.json theme={null}
{
  "tui": "fullscreen"
}
```

Bajo tmux `-CC` o sobre SSH a Windows, Claude Code mantiene el renderizador clásico a menos que establezas `CLAUDE_CODE_NO_FLICKER=1`. Las sesiones en segundo plano abiertas desde [vista de agente](https://code.claude.com/docs/es/agent-view.md) siempre usan el renderizador de pantalla completa independientemente de esta configuración.

### `verbose`

De forma predeterminada, la transcripción colapsa cada llamada de herramienta a un resumen corto, como el comando que Claude ejecutó y un recuento de líneas de su salida, y presionas `Ctrl+O` para cambiar toda la transcripción a la vista expandida cuando quieres los detalles. Establece esta clave a `true` para mostrar la entrada y salida completa de cada llamada de herramienta en línea mientras sucede, lo cual es útil cuando estás depurando un hook, un servidor MCP o un comando de shell largo. Aparece en `/config` como **Verbose output**.

* **Scope**: [`Any file`](#scopes). Un valor en `~/.claude.json` de una versión anterior se aplica cuando ningún archivo de configuración lo establece.
* **Type**: Boolean
  * `true`: ves salida de herramienta completa
  * `false`: ves resúmenes truncados de salida de herramienta
* **Default**: `false`
* **Per-session overrides**: [`--verbose`](https://code.claude.com/docs/es/cli-reference#cli-flags) tiene precedencia sobre esta clave para una sesión

```json settings.json theme={null}
{
  "verbose": true
}
```

Un valor [`viewMode`](#viewmode) o una selección pegajosa `/focus` anula esta clave cada sesión.

### `viewMode`

Establece la vista de transcripción en la que Claude Code comienza: `"default"`, `"verbose"`, o `"focus"`. Cuando se establece, anula tanto la selección pegajosa `/focus` como la configuración [`verbose`](#verbose).

* **Scope**: [`Any file`](#scopes)
* **Type**: string, uno de:
  * `"default"`: la transcripción normal con salida de herramienta truncada
  * `"verbose"`: la transcripción con salida de herramienta completa
  * `"focus"`: solo tu último aviso, un resumen de una línea de llamadas de herramientas con estadísticas de diff de edición, y la respuesta final. La vista de enfoque necesita el [renderizador de pantalla completa](#tui)
* **Default**: unset, por lo que la configuración `verbose` y tu última opción `/focus` se aplican
* **Per-session overrides**: [`--verbose`](https://code.claude.com/docs/es/cli-reference#cli-flags) tiene precedencia sobre esta clave para una sesión

```json settings.json theme={null}
{
  "viewMode": "focus"
}
```

### `vimInsertModeRemaps`

Mapea secuencias de modo INSERT de dos teclas a Escape en [modo editor vim](https://code.claude.com/docs/es/interactive-mode.md#vim-editor-mode). Cada clave es exactamente dos caracteres imprimibles escritos en secuencia, y `"<Esc>"` es el único objetivo soportado; Claude Code ignora otras entradas.

* **Scope**: [`User or managed`](#scopes). Un repositorio no puede remapear tus pulsaciones de tecla.
* **Type**: objeto mapeando una secuencia de dos caracteres a `"<Esc>"`
* **Default**: unset

```json settings.json theme={null}
{
  "vimInsertModeRemaps": {
    "jj": "<Esc>"
  }
}
```

No tiene efecto a menos que `editorMode` sea `"vim"`. Consulta [Remapea secuencias de tecla de modo INSERT](https://code.claude.com/docs/es/interactive-mode.md#remap-insert-mode-key-sequences).

### `voice`

Activa [dictado de voz](https://code.claude.com/docs/es/voice-dictation.md) y elige cómo se comporta la tecla de dictado. Claude Code escribe este objeto para ti cuando ejecutas `/voice`.

* **Scope**: [`Any file`](#scopes)
* **Type**: objeto con `enabled` como Boolean, `autoSubmit` como Boolean que se aplica solo en modo de espera, y `mode`, uno de:
  * `"hold"`: mantienes presionada la tecla de dictado mientras hablas y la sueltas para detener
  * `"tap"`: tocas la tecla una vez para comenzar a grabar y nuevamente para enviar
* **Default**: unset, por lo que el dictado está desactivado; cuando `enabled` es `true` y `mode` es unset, Claude Code usa `"hold"`

Este ejemplo activa el dictado y hace que la tecla toque una vez para comenzar a grabar y nuevamente para enviar:

```json settings.json theme={null}
{
  "voice": {
    "enabled": true,
    "mode": "tap"
  }
}
```

`autoSubmit` envía el aviso cuando sueltas la tecla en modo de espera. El dictado de voz requiere una cuenta de claude.ai.

### `voiceEnabled`

> [!WARNING]
>
> Deprecado desde v2.1.92, cuando el objeto [`voice`](#voice) lo reemplazó. Claude Code aún lo lee para que los archivos de configuración más antiguos sigan funcionando, pero las nuevas configuraciones deben establecer `voice.enabled`.

Activa el dictado de voz con la forma Boolean única que precede al objeto `voice`. Cuando ambos se establecen, `voice.enabled` se aplica.

* **Scope**: [`Any file`](#scopes)
* **Type**: Boolean
  * `true`: el dictado de voz está activado cuando estás conectado con una cuenta de claude.ai y la política de tu organización permite voz, a menos que `voice.enabled` se establezca
  * `false`: el dictado de voz está desactivado, a menos que `voice.enabled` se establezca
* **Default**: unset

```json settings.json theme={null}
{
  "voiceEnabled": true
}
```

### `wheelScrollAccelerationEnabled`

Acelera la velocidad de desplazamiento de rueda del ratón durante desplazamientos rápidos en [renderizado de pantalla completa](https://code.claude.com/docs/es/fullscreen.md#mouse-wheel-scrolling). Establécelo a `false` para una velocidad de desplazamiento constante por muesca de rueda.

* **Scope**: [`Any file`](#scopes)
* **Type**: Boolean
  * `true`: Claude Code acelera la velocidad de desplazamiento de rueda del ratón durante desplazamientos rápidos
  * `false`: Claude Code se desplaza a una velocidad constante por muesca de rueda
* **Default**: `true`

```json settings.json theme={null}
{
  "wheelScrollAccelerationEnabled": false
}
```

## Git y atribución

Controle la atribución que Claude Code añade a los commits y solicitudes de extracción y cómo funciona con git.

### `attribution`

Personalice la atribución que Claude Code añade a los commits de git y solicitudes de extracción. Los commits obtienen un [tráiler de git](https://git-scm.com/docs/git-interpret-trailers) como `Co-Authored-By` de forma predeterminada; las descripciones de solicitudes de extracción obtienen texto sin formato. Establezca cada parte por separado con las subclaves que se indican a continuación.

* **Scope**: [`Any file`](#scopes)
* **Type**: objeto con cadenas `commit` y `pr` y un Boolean `sessionUrl`, o `false` para ocultar toda la atribución. El valor `false` requiere Claude Code v2.1.281 o posterior; las versiones anteriores lo rechazan y [omiten todo el archivo de configuración del usuario, proyecto o local](https://code.claude.com/docs/es/settings.md#fix-a-broken-settings-file) que lo contiene
* **Default**: sin establecer, por lo que Claude Code utiliza la atribución estándar que se muestra en cada subclave

Para ocultar toda la atribución, establezca `attribution` en `false`. En un archivo de configuración que las versiones anteriores también leen, establezca [`commit`](#attribution-commit) y [`pr`](#attribution-pr) en cadenas vacías y [`sessionUrl`](#attribution-sessionurl) en `false` en su lugar.

Este ejemplo reemplaza la atribución del commit, elimina la atribución de la solicitud de extracción y descarta el enlace de sesión:

```json settings.json theme={null}
{
  "attribution": {
    "commit": "Generated with AI\n\nCo-Authored-By: AI <ai@example.com>",
    "pr": "",
    "sessionUrl": false
  }
}
```

Una vez que establezca `commit` o `pr`, Claude Code ignora la configuración deprecada `includeCoAuthoredBy` y utiliza su texto predeterminado para cualquiera de los dos que haya dejado sin establecer.

Claude Code le indica a Claude que sus propias instrucciones sobre atribución, como una regla de CLAUDE.md o [memory](https://code.claude.com/docs/es/memory.md), tienen prioridad sobre estas líneas de commit y PR, a menos que la línea esté establecida en [managed settings](https://code.claude.com/docs/es/managed-settings.md).

### `includeCoAuthoredBy`

> [!WARNING]
>
> Deprecado desde v2.0.62, cuando [`attribution`](#attribution) lo reemplazó. Claude Code aún lo lee, pero las nuevas configuraciones deben establecer `attribution`.

Utilice [`attribution`](#attribution) en su lugar, que reemplaza esta clave y le permite cambiar u ocultar el tráiler del commit, el texto de la solicitud de extracción y el enlace de sesión por separado. Claude Code aún respeta `includeCoAuthoredBy: false` de archivos de configuración anteriores a `attribution`, pero lo ignora una vez que establezca `attribution.commit` o `attribution.pr`.

* **Scope**: [`Any file`](#scopes)
* **Type**: Boolean
  * `true`: lo mismo que sin establecer; Claude Code añade el tráiler del commit y el texto de atribución de la solicitud de extracción
  * `false`: Claude Code omite tanto el tráiler del commit como el texto de atribución de la solicitud de extracción, a menos que `attribution` establezca `commit` o `pr`, en cuyo caso se aplican las reglas de [`attribution`](#attribution)
* **Default**: `true`

```json settings.json theme={null}
{
  "includeCoAuthoredBy": false
}
```

Para ocultar toda la atribución, consulte [`attribution`](#attribution).

### `includeGitInstructions`

Claude Code proporciona a Claude dos elementos relacionados con git: sus instrucciones integradas sobre cómo escribir commits y solicitudes de extracción, en la descripción de la herramienta Bash, y una instantánea del estado de git de su repositorio. La instantánea contiene la rama actual, la rama principal, la salida de `git status` y los commits recientes. Claude Code la lee cuando comienza una conversación.

Establezca esta clave en `false` para dejar ambas fuera, por ejemplo cuando utiliza sus propias skills de flujo de trabajo de git.

* **Scope**: [`Any file`](#scopes)
* **Type**: Boolean
  * `true`: Claude Code incluye sus instrucciones integradas de flujo de trabajo de commit y solicitud de extracción y la instantánea del estado de git. Las sesiones en la nube nunca incluyen la instantánea
  * `false`: Claude Code deja ambas fuera
* **Default**: `true`
* **Per-session overrides**: [`CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS`](https://code.claude.com/docs/es/env-vars) tiene prioridad sobre esta clave para una sesión

```json settings.json theme={null}
{
  "includeGitInstructions": false
}
```

Si reemplazas el prompt del sistema en [modo no interactivo](https://code.claude.com/docs/es/headless.md) o en el Agent SDK, la sesión comienza sin la instantánea incluso cuando esta clave es `true`:

* **Ejecuciones con `-p`**: reemplazas el prompt cuando pasas [`--system-prompt`](https://code.claude.com/docs/es/cli-reference#system-prompt-flags) o `--system-prompt-file`. También lo reemplazas cuando ejecutas un agente personalizado con su propio prompt, seleccionado con [`--agent`](https://code.claude.com/docs/es/sub-agents#invoke-subagents-explicitly) o con el ajuste [`agent`](#agent). Fuera del [modo bare](https://code.claude.com/docs/es/headless.md#start-faster-with-bare-mode), para conservar la instantánea, ejecuta sin un agente personalizado y agrega tus instrucciones con [`--append-system-prompt`](https://code.claude.com/docs/es/cli-reference#system-prompt-flags) en lugar de reemplazar el prompt.
* **[Agent SDK](https://code.claude.com/docs/es/agent-sdk/modifying-system-prompts.md)**: reemplazas el prompt con un prompt del sistema personalizado o con un agente de hilo principal personalizado. Si no estableces ningún prompt del sistema, el SDK usa su valor predeterminado mínimo y la sesión también comienza sin la instantánea. Fuera del [modo bare](https://code.claude.com/docs/es/headless.md#start-faster-with-bare-mode), para conservar la instantánea, usa el preset `claude_code` sin un `agent` personalizado.

### `prUrlTemplate`

Apunte los enlaces de PR que Claude Code renderiza, en el distintivo de pie de página y en los resúmenes de resultados de herramientas, a una herramienta de revisión de código interna en lugar de `github.com`. Claude Code sustituye `{host}`, `{owner}`, `{repo}`, `{number}` y `{url}` de la URL de PR. Los enlaces de [solicitud de fusión de GitLab](https://code.claude.com/docs/es/interactive-mode.md#gitlab-merge-requests) en ambas superficies mantienen su URL de GitLab.

* **Scope**: [`Any file`](#scopes)
* **Type**: string, una plantilla de URL utilizando cualquiera de los cinco marcadores de posición
* **Default**: sin establecer

```json settings.json theme={null}
{
  "prUrlTemplate": "https://reviews.example.com/{owner}/{repo}/pull/{number}"
}
```

Claude Code aplica la plantilla solo a los enlaces que renderiza a sí mismo; un número de PR que Claude escribe en un mensaje, como `#123`, permanece como Claude lo escribió. Una URL que no tiene la forma `/pull/<number>` se deja sin cambios.

### `attribution.commit`

Establezca el texto de atribución que Claude Code añade a los commits de git, incluidos los tráilers. Establézcalo en una cadena vacía para ocultar la atribución del commit.

* **Scope**: [`Any file`](#scopes)
* **Type**: string
* **Default**: sin establecer, por lo que Claude Code añade `Co-Authored-By: <name> <noreply@anthropic.com>`. El nombre es el modelo en uso cuando se realiza el commit, como `Claude Sonnet 5`. Cuando un [subagente](https://code.claude.com/docs/es/sub-agents.md) realiza el commit, el tráiler nombra el modelo del subagente.
  * Cuando Claude Code reconoce el modelo como un modelo Claude pero no puede confirmar su versión exacta, escribe `Claude` solo.
  * Cuando no puede hacer coincidir el ID del modelo con ningún modelo Claude, como un modelo de terceros servido a través de un [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/es/env-vars) personalizado, escribe `Claude Code`.

Este ejemplo reemplaza el tráiler predeterminado con una línea personalizada y un tráiler `Co-Authored-By` personalizado:

```json settings.json theme={null}
{
  "attribution": {
    "commit": "Generated with AI\n\nCo-Authored-By: AI <ai@example.com>"
  }
}
```

### `attribution.pr`

Establezca el texto de atribución que Claude Code añade a las descripciones de solicitudes de extracción. Establézcalo en una cadena vacía para ocultar la atribución de la solicitud de extracción.

* **Scope**: [`Any file`](#scopes)
* **Type**: string
* **Default**: sin establecer, por lo que Claude Code añade `🤖 Generated with [Claude Code](https://claude.com/claude-code)`

```json settings.json theme={null}
{
  "attribution": {
    "pr": ""
  }
}
```

### `attribution.sessionUrl`

Elija si Claude Code añade el enlace de sesión de claude.ai cuando realiza un commit o abre una solicitud de extracción desde una sesión [en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md) o [Remote Control](https://code.claude.com/docs/es/remote-control.md). Claude Code añade el enlace como un tráiler `Claude-Session` en los commits y como un enlace en las descripciones de solicitudes de extracción. Establézcalo en `false` para omitir el enlace.

* **Scope**: [`Any file`](#scopes)
* **Type**: Boolean
  * `true`: Claude Code añade el enlace de sesión de claude.ai cuando realiza un commit o abre una solicitud de extracción desde una sesión en la nube o Remote Control
  * `false`: Claude Code omite el enlace
* **Default**: `true`

```json settings.json theme={null}
{
  "attribution": {
    "sessionUrl": false
  }
}
```

## Hooks y automatización

Registra hooks, restringe qué hooks se ejecutan y controla flujos de trabajo. Para eventos y cargas útiles de hooks, consulta la [referencia de hooks](https://code.claude.com/docs/es/hooks.md).

### `allowedHttpHookUrls`

Limita qué URLs pueden dirigirse a los [hooks HTTP](https://code.claude.com/docs/es/hooks.md#http-hook-fields). Cuando defines esta clave, Claude Code ejecuta un hook HTTP solo si su URL coincide con uno de los patrones y bloquea el resto sin ejecutarlos; una matriz vacía bloquea cada hook HTTP.

* **Alcance**: [`Any file`](#scopes). Las matrices se fusionan en los archivos de configuración.
* **Tipo**: matriz de patrones de URL, con `*` como comodín
* **Predeterminado**: no establecido, por lo que se permite cualquier URL

Este ejemplo permite cualquier URL bajo `https://hooks.example.com/` y cualquier URL `http://localhost`:

```json settings.json theme={null}
{
  "allowedHttpHookUrls": ["https://hooks.example.com/*", "http://localhost:*"]
}
```

La coincidencia del nombre de host no distingue mayúsculas de minúsculas y trata `hooks.example.com.`, con el punto final que marca un nombre de dominio completamente calificado, igual que `hooks.example.com`, que es cómo DNS los trata. La lista de permitidos se aplica a hooks de todas las fuentes, incluida la configuración administrada.

En la opción `managedSettings` del Agent SDK, Claude Code ignora una lista con entradas, así que pásala en la [opción `settings`](https://code.claude.com/docs/es/agent-sdk/typescript#options) del SDK en su lugar. Consulta [qué hace una lista vacía en la configuración principal](https://code.claude.com/docs/es/claude-apps-gateway#how-hook-and-skill-keys-in-parent-settings-take-effect).

### `allowManagedHooksOnly`

Restringe la ejecución de hooks solo a los hooks que implementa tu organización.

* **Alcance**: [`Managed`](#scopes)
* **Tipo**: Booleano
  * `true`: solo se ejecutan hooks administrados, más hooks del Agent SDK y hooks de plugins que tu configuración administrada fuerza a habilitar. Consulta [Qué se ejecuta bajo `allowManagedHooksOnly`](#what-runs-under-allowmanagedhooksonly)
  * `false`: se ejecutan hooks de todos los alcances de configuración y plugins
* **Predeterminado**: no establecido, por lo que se ejecutan hooks de todos los alcances de configuración y plugins

```json managed-settings.json theme={null}
{
  "allowManagedHooksOnly": true
}
```

#### Qué se ejecuta bajo `allowManagedHooksOnly`

Cuando lo estableces en `true`, Claude Code cambia qué hooks y comandos similares a hooks se cargan:

* **Se ejecutan hooks administrados y SDK**: hooks de configuración administrada y hooks que el [Agent SDK](https://code.claude.com/docs/es/agent-sdk/overview.md) registra en proceso
* **Se ejecutan hooks de plugins forzados a habilitarse**: hooks de plugins que tu configuración administrada fuerza a habilitar a través de [`enabledPlugins`](#enabledplugins). Claude Code coincide con el ID completo `plugin@marketplace`, por lo que un plugin con el mismo nombre de un marketplace diferente permanece bloqueado. Esto te permite distribuir hooks verificados a través de un marketplace de organización mientras bloqueas todo lo demás. Un [mod](https://code.claude.com/docs/es/plugins/mods/overview.md) en tal plugin se carga solo cuando [cuenta como el de tu organización](https://code.claude.com/docs/es/plugins/mods/admin.md#install-your-organizations-mods)
* **Los monitores de otros plugins están bloqueados**: los [monitores](https://code.claude.com/docs/es/plugins/components.md#monitors) de un plugin no se inician a menos que el plugin esté forzado a habilitarse. Requiere Claude Code v2.1.310 o posterior
* **Todo lo demás está bloqueado**: hooks de usuario, proyecto y locales, hooks y mods de otros plugins instalados, y hooks declarados en frontmatter de agente. [Los mods integrados en Claude Code](https://code.claude.com/docs/es/plugins/mods/overview.md#mods-built-into-claude-code) continúan ejecutándose. Para bloquear solo los mods de los usuarios, establece [`allowManagedModsOnly`](https://code.claude.com/docs/es/plugins/mods/admin#set-options-on-the-built-in-guard) en su lugar.
* **Los plugins con origen de comando están deshabilitados**: Claude Code también deshabilita plugins con un [origen `command`](https://code.claude.com/docs/es/plugins/marketplace-reference#command-plugin-source), incluidos plugins forzados a habilitarse en `enabledPlugins` administrado, a menos que establezcas [`disableCommandPluginSources`](#disablecommandpluginsources) explícitamente en `false`
* **Los comandos `headersHelper` del marketplace están bloqueados**: Claude Code también bloquea los comandos [`headersHelper`](https://code.claude.com/docs/es/plugins/host-marketplace#authenticate-archive-downloads) del marketplace a menos que [`disableCommandPluginSources`](#disablecommandpluginsources) esté explícitamente establecido en `false`, excepto para un marketplace que la configuración administrada declara. Requiere Claude Code v2.1.238 o posterior
* **La línea de estado y la sugerencia de archivo se reducen a configuración administrada**: Claude Code lee [`statusLine`](https://code.claude.com/docs/es/statusline), [`fileSuggestion`](#filesuggestion) y [`subagentStatusLine`](https://code.claude.com/docs/es/statusline#subagent-status-lines) solo de configuración administrada, siguiendo las [puertas de línea de estado y sugerencia de archivo](#status-line-and-file-suggestion-gates)

El comando [`/goal`](https://code.claude.com/docs/es/goal) no puede ejecutarse mientras esta clave está establecida, porque depende de hooks.

### `disableAllHooks`

Desactiva [hooks](https://code.claude.com/docs/es/hooks.md#disable-or-remove-hooks), cualquier [línea de estado](https://code.claude.com/docs/es/statusline.md) personalizada y cualquier comando personalizado de [sugerencia de archivo](#filesuggestion). Úsalo para desactivar todos estos temporalmente sin eliminarlos de tu configuración.

* **Alcance**: [`Any file`](#scopes). Solo la configuración administrada puede deshabilitar hooks administrados.
* **Tipo**: Booleano
  * `true`: Claude Code desactiva hooks, cualquier línea de estado personalizada y cualquier comando personalizado de sugerencia de archivo
  * `false`: se ejecutan hooks, la línea de estado y el comando de sugerencia de archivo
* **Predeterminado**: no establecido, por lo que se ejecutan hooks

```json settings.json theme={null}
{
  "disableAllHooks": true
}
```

El alcance depende de qué archivo lleve la clave:

* **En configuración administrada**: Claude Code deshabilita cada hook configurado, incluidos los administrados, y continúa ejecutando los hooks que el [Agent SDK](https://code.claude.com/docs/es/agent-sdk/overview.md) registra en proceso
* **En la opción `managedSettings` del Agent SDK**: en una máquina donde un administrador implementa configuración administrada, Claude Code ignora esta clave a menos que el administrador [permita que un host integrador agregue políticas](https://code.claude.com/docs/es/managed-settings.md#let-an-embedding-host-add-policy). Donde la clave surte efecto, se detienen los hooks de usuario, proyecto, locales y de plugins, así como cualquiera en la opción `settings` del SDK. Los hooks administrados de un administrador, los hooks de plugins [forzados a habilitarse](#enabledplugins) y tus [callbacks de hooks del SDK](https://code.claude.com/docs/es/agent-sdk/hooks.md) continúan ejecutándose. Requiere Claude Code v2.1.309 o posterior.
* **En cualquier otro archivo de configuración**: Claude Code deshabilita hooks de usuario, proyecto, locales y de plugins; los hooks administrados, hooks del Agent SDK y hooks de plugins forzados a habilitarse en [`enabledPlugins`](#enabledplugins) administrado continúan ejecutándose

La clave también detiene los [mods](https://code.claude.com/docs/es/plugins/mods/overview.md), que son plugins cuyo código registra hooks:

* **En configuración administrada**: se detienen los mods de cada plugin instalado, incluidos los de tu organización
* **En cualquier otro archivo de configuración**: se detienen los mods que instalaste, y [los mods de tu organización](https://code.claude.com/docs/es/plugins/mods/admin.md#install-your-organizations-mods) continúan ejecutándose

Los mods integrados en Claude Code continúan ejecutándose en ambos casos. Cada uno tiene [su propio interruptor](https://code.claude.com/docs/es/plugins/mods/overview.md#mods-built-into-claude-code).

Mantener los hooks del Agent SDK ejecutándose cuando la configuración administrada establece esta clave requiere Claude Code v2.1.242 o posterior.

El comando [`/goal`](https://code.claude.com/docs/es/goal) no puede ejecutarse mientras los hooks están deshabilitados, y el menú `/hooks` muestra un aviso en lugar de tus hooks.

#### Puertas de línea de estado y sugerencia de archivo

Claude Code toma dos decisiones para `statusLine`, `fileSuggestion` y `subagentStatusLine`, en este orden:

* **Desactivado completamente**: cuando la configuración administrada establece `disableAllHooks`, o cuando la carpeta no es de confianza bajo la misma [regla de confianza del espacio de trabajo que los hooks en archivos de configuración](https://code.claude.com/docs/es/permissions.md#what-runs-before-you-trust-a-folder)
* **Reducido a configuración administrada**: cuando [`allowManagedHooksOnly`](#allowmanagedhooksonly) está establecido, cuando `disableAllHooks` es `true` fuera de la configuración administrada después de que se aplica la [precedencia de configuración](https://code.claude.com/docs/es/hooks.md#disable-or-remove-hooks), o cuando inicias Claude Code con `--safe-mode`

Bajo reducción, Claude Code ejecuta un valor administrado si uno está implementado. De lo contrario, omite tu valor sin advertencia: la línea de estado está deshabilitada y el autocompletado `@` vuelve a la sugerencia de archivo integrada.

### `disableWorkflows`

Desactiva [flujos de trabajo dinámicos](https://code.claude.com/docs/es/workflows.md#turn-workflows-off) y los comandos de flujo de trabajo incluidos para todos los que alcanza tu configuración, como una organización a través de configuración administrada. Para activar o desactivar flujos de trabajo solo para ti, usa [`enableWorkflows`](#enableworkflows) en su lugar, que el interruptor **Dynamic workflows** en `/config` escribe en tu configuración de usuario.

* **Alcance**: [`Any file`](#scopes)
* **Tipo**: Booleano
  * `true`: Claude Code desactiva flujos de trabajo dinámicos y los comandos de flujo de trabajo incluidos para todos los que alcanza tu configuración
  * `false`: lo mismo que no establecido; si los flujos de trabajo están activados entonces sigue [`enableWorkflows`](#enableworkflows) y el predeterminado de tu plan
* **Predeterminado**: `false`
* **Sobrescrituras por sesión**: [`CLAUDE_CODE_DISABLE_WORKFLOWS`](https://code.claude.com/docs/es/env-vars) desactiva flujos de trabajo para una sesión; cualquiera de los dos que los desactive, el otro no puede volver a activarlos

```json settings.json theme={null}
{
  "disableWorkflows": true
}
```

### `enableWorkflows`

Activa o desactiva [flujos de trabajo dinámicos](https://code.claude.com/docs/es/workflows.md) para ti cuando el predeterminado de tu plan no sea lo que deseas. Aparece en `/config` como **Dynamic workflows**, que escribe esta clave en tu configuración de usuario y la elimina nuevamente cuando alternas al predeterminado de tu plan. Para desactivar flujos de trabajo para todos desde la configuración administrada, usa [`disableWorkflows`](#disableworkflows) en su lugar.

* **Alcance**: [`Any file`](#scopes)
* **Tipo**: Booleano
  * `true`: Claude Code activa flujos de trabajo dinámicos para ti
  * `false`: Claude Code desactiva flujos de trabajo dinámicos para ti
* **Predeterminado**: no establecido, por lo que los flujos de trabajo están activados a menos que estés en el plan Pro, donde están desactivados
* **Sobrescrituras por sesión**: [`CLAUDE_CODE_DISABLE_WORKFLOWS`](https://code.claude.com/docs/es/env-vars) desactiva flujos de trabajo para una sesión, y `true` aquí no puede volver a activarlos mientras esté establecido

```json settings.json theme={null}
{
  "enableWorkflows": true
}
```

[`disableWorkflows`](#disableworkflows) y la política de flujos de trabajo de tu organización también tienen precedencia: `enableWorkflows: true` no puede volver a activar flujos de trabajo mientras alguna fuente los desactiva. Claude Code oculta la fila `/config` mientras una fuente que no sea tu configuración de usuario establece `enableWorkflows`, o establece `disableWorkflows` en `true`.

### `hooks`

Ejecuta tus propios comandos, prompts, agentes, solicitudes HTTP o herramientas MCP como [hooks](https://code.claude.com/docs/es/hooks.md) en puntos del ciclo de vida de Claude Code, como antes de una llamada a herramienta o cuando comienza una sesión; la [referencia de hooks](https://code.claude.com/docs/es/hooks.md#hook-events) enumera cada evento, su payload y sus códigos de salida. Cada evento se asigna a una lista de grupos de matchers, y cada grupo enumera los controladores a ejecutar cuando se aplica el matcher.

* **Alcance**: [`Any file`](#scopes). Los hooks se combinan entre archivos en lugar de reemplazarse entre sí, y los hooks de configuración administrada no se pueden eliminar desde otros archivos.
* **Tipo**: objeto codificado por [evento de hook](https://code.claude.com/docs/es/hooks.md#hook-events); cada valor es una matriz de grupos `{ "matcher", "hooks" }` cuyas entradas `hooks` tienen un `type` de `"command"`, `"prompt"`, `"agent"`, `"http"` o `"mcp_tool"`
* **Predeterminado**: no establecido, por lo que no se ejecutan hooks

Este ejemplo ejecuta un script antes de cada llamada a la herramienta Bash:

```json settings.json theme={null}
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          { "type": "command", "command": "~/.claude/hooks/check-bash.sh" }
        ]
      }
    ]
  }
}
```

Para cada evento, patrón de matcher y campo de controlador, consulta la [referencia de hooks](https://code.claude.com/docs/es/hooks.md#configuration). Para desactivar hooks, consulta [`disableAllHooks`](#disableallhooks); para limitar hooks a los que implementa tu organización, consulta [`allowManagedHooksOnly`](#allowmanagedhooksonly).

### `httpHookAllowedEnvVars`

Un [hook HTTP](https://code.claude.com/docs/es/hooks.md#http-hook-fields) puede poner el valor de una variable de entorno en un encabezado de solicitud, por ejemplo un encabezado `Authorization: Bearer $HOOK_TOKEN`, pero solo para variables que el hook enumera en su propio `allowedEnvVars`. Esta clave establece un límite externo en esa lista para cada hook HTTP: un hook puede usar una variable solo si tanto su propio `allowedEnvVars` como esta clave la nombran. Úsala para evitar que un hook lea un secreto que no debería, incluso cuando la definición del hook lo solicita.

* **Alcance**: [`Any file`](#scopes). Las matrices se fusionan en los archivos de configuración.
* **Tipo**: matriz de nombres de variables de entorno
* **Predeterminado**: no establecido, por lo que se aplica la lista `allowedEnvVars` de cada hook

Este ejemplo limita la interpolación de encabezados a `MY_TOKEN` y `HOOK_SECRET`:

```json settings.json theme={null}
{
  "httpHookAllowedEnvVars": ["MY_TOKEN", "HOOK_SECRET"]
}
```

La lista de permitidos se aplica a hooks de todas las fuentes, incluida la configuración administrada.

En la opción `managedSettings` del Agent SDK, Claude Code ignora una lista con entradas, así que pásala en la [opción `settings`](https://code.claude.com/docs/es/agent-sdk/typescript#options) del SDK en su lugar. Consulta [qué hace una lista vacía en la configuración principal](https://code.claude.com/docs/es/claude-apps-gateway#how-hook-and-skill-keys-in-parent-settings-take-effect).

### `workflowKeywordTriggerEnabled`

Elige si escribir la palabra clave `ultracode` en un prompt activa un [flujo de trabajo dinámico](https://code.claude.com/docs/es/workflows.md#ask-for-a-workflow-in-your-prompt). Establécelo en `false` para escribir la palabra sin activar uno.

* **Alcance**: [`Any file`](#scopes). Aparece en `/config` como **Ultracode keyword trigger**.
* **Tipo**: Booleano
  * `true`: escribir `ultracode` en un prompt activa un flujo de trabajo dinámico
  * `false`: puedes escribir la palabra sin activar uno
* **Predeterminado**: `true`

```json settings.json theme={null}
{
  "workflowKeywordTriggerEnabled": false
}
```

El ajuste de esfuerzo `ultracode`, `/workflows` y los comandos de flujo de trabajo guardados no se ven afectados.

### `workflowSizeGuideline`

Establece el [recuento de agentes al que Claude apunta](https://code.claude.com/docs/es/workflows.md#set-a-size-guideline) en los flujos de trabajo dinámicos que escribe. Claude Code envía el valor a Claude como consejo, no como un límite impuesto: `"small"` solicita menos de 5 agentes, `"medium"` menos de 10 y `"large"` menos de 50. Elige `"small"` cuando desees limitar lo que gasta un flujo de trabajo. Requiere Claude Code v2.1.219 o posterior.

* **Alcance**: [`Any file`](#scopes). Un valor allí tiene precedencia sobre la opción **Dynamic workflow size** en `/config`, que Claude Code almacena en `~/.claude.json`, y Claude Code oculta esa fila mientras un archivo de configuración establece la clave.
* **Tipo**: cadena, una de:
  * `"unrestricted"`: sin directriz, por lo que Claude dimensiona el flujo de trabajo a la tarea
  * `"small"`: Claude apunta a menos de 5 agentes
  * `"medium"`: Claude apunta a menos de 10 agentes
  * `"large"`: Claude apunta a menos de 50 agentes
* **Predeterminado**: `"medium"`, o `"small"` cuando has iniciado sesión en un plan Pro con Claude Code v2.1.271 o posterior

```json settings.json theme={null}
{
  "workflowSizeGuideline": "small"
}
```

Requiere Claude Code v2.1.219 o posterior; en v2.1.202 a v2.1.218, establece la directriz en `/config` en su lugar.

## Plugins y skills

Habilite plugins, registre mercados, restrinja qué fuentes de plugins permite una organización y controle qué skills se cargan. Para instalar y crear plugins, consulte [Plugins](https://code.claude.com/docs/es/plugins/overview.md).

### `disableBundledSkills`

Desactive los [skills](https://code.claude.com/docs/es/skills.md) y flujos de trabajo incluidos con Claude Code. Claude Code elimina completamente los skills y flujos de trabajo incluidos, mientras que los comandos integrados como `/init` permanecen escribibles pero están ocultos del modelo.

* **Scope**: [`Any file`](#scopes)
* **Type**: Boolean
  * `true`: Claude Code elimina los skills y flujos de trabajo incluidos y oculta del modelo los comandos integrados como `/init`
  * `false`: los skills incluidos se cargan
* **Default**: sin establecer, por lo que los skills incluidos se cargan
* **Per-session overrides**: [`CLAUDE_CODE_DISABLE_BUNDLED_SKILLS`](https://code.claude.com/docs/es/env-vars) establecido en `1` desactiva los skills incluidos durante una sesión; cualquiera de los dos que los desactive, el otro no puede volver a activarlos

```json settings.json theme={null}
{
  "disableBundledSkills": true
}
```

Los skills de plugins, `.claude/skills/` y `.claude/commands/` no se ven afectados. `/doctor` permanece escribible como los comandos integrados; para ocultarlo, establezca [`DISABLE_DOCTOR_COMMAND`](https://code.claude.com/docs/es/env-vars) en su lugar.

### `disableSkillShellExecution`

Desactive la ejecución de shell en línea para bloques `` !`...` `` y ` ```! ` en [skills](https://code.claude.com/docs/es/skills.md) y comandos personalizados de fuentes de usuario, proyecto, plugin o directorio adicional. Claude Code reemplaza cada comando con `[shell command execution disabled by policy]` en lugar de ejecutarlo.

* **Scope**: [`Any file`](#scopes). Un `true` en configuración administrada no puede ser anulado por `false` en otro lugar.
* **Type**: Boolean
  * `true`: Claude Code reemplaza cada comando de shell en línea con `[shell command execution disabled by policy]` en lugar de ejecutarlo
  * `false`: el shell en línea se ejecuta
* **Default**: sin establecer, por lo que el shell en línea se ejecuta

```json settings.json theme={null}
{
  "disableSkillShellExecution": true
}
```

Los skills incluidos y los skills implementados a través de configuración administrada no se ven afectados.

### `skillOverrides`

Oculte o contraiga un [skill](https://code.claude.com/docs/es/skills.md#override-skill-visibility-from-settings) sin editar su `SKILL.md`. Claude Code aplica el valor bajo el nombre de cada skill a la lista de skills que Claude ve y a su autocompletado `/`.

* **Scope**: [`Any file`](#scopes). El menú `/skills` escribe en `.claude/settings.local.json`.
* **Type**: objeto que asigna el nombre del skill a uno de:
  * `"on"`: Claude ve el skill y puede escribir `/name`
  * `"name-only"`: Claude ve el skill por nombre sin su descripción
  * `"user-invocable-only"`: Claude no ve el skill, pero aún puede escribir `/name`
  * `"off"`: Claude no ve el skill y `/name` está oculto del autocompletado
* **Default**: sin establecer, por lo que cada skill es `"on"`

Este ejemplo lista `legacy-context` a Claude solo por nombre y oculta `deploy` de Claude y del autocompletado `/`:

```json settings.json theme={null}
{
  "skillOverrides": {
    "legacy-context": "name-only",
    "deploy": "off"
  }
}
```

Los anulaciones no se aplican a los skills de plugins, que gestiona a través de `/plugin`.

En configuración administrada y archivos pasados con `--settings`, una clave en un alias de un skill incluido, como `checkup` para `/doctor`, también se aplica al skill; consulte [cómo las claves de alias se combinan con las claves en el nombre propio del skill](https://code.claude.com/docs/es/skills.md#override-skill-visibility-from-settings).

### `syncClaudeAiSkills`

Desactive la descarga de los [skills habilitados para su cuenta de claude.ai](https://code.claude.com/docs/es/skills.md#how-synced-skills-behave). Claude Code los descarga en `~/.claude/skills/synced/` en [sesiones de terminal donde inicia sesión con su cuenta de claude.ai](https://code.claude.com/docs/es/skills.md#where-synced-skills-load), interactivas o no interactivas, y en sesiones de Cowork y en la nube. Establezca `false` para detener esa descarga y dejar de cargar los skills que ya sincronizó. Claude Code solo respeta `false`: `true` es lo mismo que sin establecer y no activa la sincronización donde de otro modo está desactivada.

* **Scope**: [`User, local, or managed`](#scopes), y archivos pasados con `--settings`. Un repositorio no puede desactivarla para usted.
* **Type**: Boolean
  * `false`: Claude Code deja de descargar skills sincronizados y deja de cargar los que ya están en `~/.claude/skills/synced/`. En configuración de usuario o administrada, también los mueve a `~/.claude/skills/.trash/`
  * `true`: lo mismo que sin establecer
* **Default**: sin establecer, por lo que las sesiones que inician sesión con su cuenta de claude.ai sincronizan sus skills

Este ejemplo evita que una máquina descargue los skills de la cuenta en cualquier sesión:

```json settings.json theme={null}
{
  "syncClaudeAiSkills": false
}
```

### `syncClaudeAiPlugins`

Desactive la descarga de los [plugins habilitados para su cuenta de claude.ai](https://code.claude.com/docs/es/plugins/loading.md#synced-plugins). Claude Code los descarga en `~/.claude/plugins/synced/` al inicio de sesiones de terminal donde inicia sesión con su cuenta de claude.ai y en sesiones de Cowork, y carga cada uno como `<name>@synced`. Establezca `false` para detener esa descarga y dejar de cargar los plugins que ya sincronizó. Claude Code solo respeta `false`: `true` es lo mismo que sin establecer y no activa la sincronización donde de otro modo está desactivada. Requiere Claude Code v2.1.273 o posterior.

* **Scope**: [`User, local, or managed`](#scopes), y archivos pasados con `--settings`. Un repositorio no puede desactivarla para usted.
* **Type**: Boolean
  * `false`: Claude Code deja de descargar plugins sincronizados y deja de cargar los que ya están en `~/.claude/plugins/synced/`. En configuración de usuario o administrada, también los mueve a `~/.claude/plugins/.trash/`
  * `true`: lo mismo que sin establecer
* **Default**: sin establecer, por lo que las sesiones que inician sesión con su cuenta de claude.ai sincronizan sus plugins

Para desactivar un plugin sincronizado en lugar de todos, establezca `"<name>@synced": false` en [`enabledPlugins`](#enabledplugins).

Este ejemplo evita que una máquina descargue los plugins de la cuenta en cualquier sesión:

```json settings.json theme={null}
{
  "syncClaudeAiPlugins": false
}
```

### `allowedChannelPlugins`

Elija qué plugins de [canal](https://code.claude.com/docs/es/channels.md) pueden enviar mensajes a sesiones en su organización. Cuando lo establece, Claude Code usa su lista en lugar de la lista de permitidos predeterminada de Anthropic; cada entrada nombra un plugin y el mercado del que proviene.

* **Scope**: [`Managed`](#scopes)
* **Type**: matriz de objetos, cada uno con cadenas `marketplace` y `plugin`. Una entrada puede ser una cadena `"plugin@marketplace"` como `"telegram@claude-plugins-official"`, que Claude Code trata como el objeto equivalente. La forma de cadena requiere Claude Code v2.1.267 o posterior; las versiones anteriores rechazan todo el valor `allowedChannelPlugins` cuando contiene una
* **Default**: sin establecer, por lo que Claude Code usa la lista de permitidos predeterminada de Anthropic

Este ejemplo activa canales y permite solo el plugin de Telegram del mercado oficial de Anthropic:

```json managed-settings.json theme={null}
{
  "channelsEnabled": true,
  "allowedChannelPlugins": [
    { "marketplace": "claude-plugins-official", "plugin": "telegram" }
  ]
}
```

Una matriz vacía bloquea cada plugin de canal.

Esta clave entra en vigor una vez que los canales pasan la puerta [`channelsEnabled`](#channelsenabled) para la cuenta: en planes de Team y Enterprise, y en cuentas de Console con configuración administrada, eso significa `channelsEnabled: true`. Consulte [Restringir qué plugins de canal pueden ejecutarse](https://code.claude.com/docs/es/channels.md#restrict-which-channel-plugins-can-run).

### `blockedMarketplaces`

Bloquee fuentes de mercado de plugins para su organización. Claude Code verifica la lista de bloqueo al agregar un mercado y al instalar, actualizar, actualizar y actualizar automáticamente un plugin, por lo que un mercado que alguien agregó antes de establecer la política no puede usarse para obtener plugins tampoco. Las fuentes bloqueadas se verifican antes de la descarga, por lo que nunca tocan el sistema de archivos.

Si establece esta clave en la [consola de administración de claude.ai](https://code.claude.com/docs/es/server-managed-settings.md), claude.ai también la aplica cuando alguien en su organización agrega un mercado desde un repositorio de git en claude.ai, como [Cómo funcionan las restricciones](https://code.claude.com/docs/es/plugins/org.md#restrict-what-users-can-install) describe.

* **Scope**: [`Managed`](#scopes)
* **Type**: matriz de objetos de fuente de mercado, en las mismas formas que [`strictKnownMarketplaces`](#allowed-source-types)
* **Default**: sin establecer, por lo que ningún mercado está bloqueado

Este ejemplo bloquea un repositorio de GitHub como fuente de mercado:

```json managed-settings.json theme={null}
{
  "blockedMarketplaces": [
    { "source": "github", "repo": "untrusted/plugins" }
  ]
}
```

Una entrada `github` puede usar la [forma de comodín de propietario](#owner-wildcards) `"owner/*"` para bloquear todos los repositorios de ese propietario de GitHub, lo que requiere Claude Code v2.1.223 o posterior. Agrega `{ "source": "skills-dir" }` para que Claude Code deje de cargar [plugins `@skills-dir`](https://code.claude.com/docs/es/plugins/loading#plugins-shared-through-a-repository) tanto desde `~/.claude/skills/` como desde el `.claude/skills/` de un proyecto, sin restringir ningún marketplace. Consulta [Restricciones de marketplaces administradas](https://code.claude.com/docs/es/plugins/org.md#restrict-what-users-can-install).

### `channelsEnabled`

Permita [canales](https://code.claude.com/docs/es/channels.md) para su organización. En planes de Team y Enterprise de claude.ai, Claude Code bloquea los canales hasta que establezca esto en `true`. Para cuentas de [Anthropic Console](https://code.claude.com/docs/es/authentication.md#claude-console-authentication) que se autentican con una clave API, los canales se permiten de forma predeterminada. Si su organización implementa configuración administrada, Claude Code también bloquea los canales en esas cuentas hasta que establezca esta clave en `true`.

* **Scope**: [`Managed`](#scopes)
* **Type**: Boolean
  * `true`: Claude Code permite canales para su organización
  * `false`: lo mismo que sin establecer; si los canales están bloqueados depende de su plan, como dice el Default
* **Default**: sin establecer; los canales están bloqueados en planes de Team y Enterprise y en cuentas de Console con configuración administrada, y permitidos en planes Pro y Max y en cuentas de Console sin configuración administrada

```json managed-settings.json theme={null}
{
  "channelsEnabled": true
}
```

Para restringir qué plugins pueden registrarse como canales una vez que estén habilitados, establezca [`allowedChannelPlugins`](#allowedchannelplugins). Consulte [Controles empresariales](https://code.claude.com/docs/es/channels.md#enterprise-controls).

### `disableCommandPluginSources`

Bloquee la [fuente de plugin `command`](https://code.claude.com/docs/es/plugins/marketplace-reference#command-plugin-source), que instala un plugin ejecutando un comando declarado por el mercado en la máquina del usuario. Cuando lo establece en `true`, Claude Code nunca ejecuta el comando, no instala ni actualiza plugins de origen de comando, y deja de cargar los ya instalados. Establézcalo en `false` para permitirlos explícitamente. Siempre que bloquea fuentes de comando, ya sea que lo establezca en `true` o lo deje sin establecer bajo [`allowManagedHooksOnly`](#allowmanagedhooksonly), también bloquea los comandos [`headersHelper`](https://code.claude.com/docs/es/plugins/host-marketplace#authenticate-archive-downloads) del mercado, excepto para un mercado que la configuración administrada declara. Requiere Claude Code v2.1.229 o posterior, y el bloqueo de `headersHelper` requiere v2.1.238 o posterior.

* **Scope**: [`Managed`](#scopes)
* **Type**: Boolean
  * `true`: Claude Code nunca ejecuta el comando declarado por el mercado, no instala ni actualiza plugins de origen de comando, y deja de cargar los ya instalados
  * `false`: Claude Code permite plugins de origen de comando explícitamente
* **Default**: sin establecer, por lo que Claude Code sigue [`allowManagedHooksOnly`](#allowmanagedhooksonly): una organización que restringe la ejecución de hooks a la configuración administrada también tiene las fuentes de comando deshabilitadas. Una aplicación que pasa [`disableAllHooks: true`](#disableallhooks) en la opción `managedSettings` del Agent SDK no deshabilita por sí sola las fuentes de comando.

```json managed-settings.json theme={null}
{
  "disableCommandPluginSources": true
}
```

Requiere Claude Code v2.1.229 o posterior.

### `pluginSuggestionMarketplaces`

Nombre los mercados cuyos plugins pueden aparecer como sugerencias de instalación contextual, en consejos de spinner y fijados en la parte superior de la pestaña **Discover** de `/plugin`. La sugerencia de diseño de interfaz de primera parte integrada no se ve afectada. Las sugerencias provienen de la declaración `relevance` de cada plugin en su entrada de mercado.

* **Scope**: [`Managed`](#scopes)
* **Type**: matriz de nombres de mercado
* **Default**: sin establecer, por lo que no aparecen sugerencias declaradas por mercado

```json managed-settings.json theme={null}
{
  "pluginSuggestionMarketplaces": ["acme-corp-plugins"]
}
```

Un nombre entra en vigor solo cuando el mercado está registrado en la máquina y su fuente registrada también se declara en la misma configuración administrada, ya sea como la entrada [`extraKnownMarketplaces`](#extraknownmarketplaces) para ese nombre o como una entrada de [`strictKnownMarketplaces`](#strictknownmarketplaces). Claude Code ignora un mercado registrado desde una fuente diferente bajo un nombre en la lista de permitidos. El mercado oficial está exento del requisito de fuente: permitir solo su nombre es suficiente, ya que ese nombre solo puede registrarse desde la fuente oficial de Anthropic. Consulte [Sugerir plugins por contexto](https://code.claude.com/docs/es/plugins/relevance.md).

### `pluginTrustMessage`

Agregue el texto de su propia organización al aviso de confianza de plugin que Claude Code muestra antes de la instalación, por ejemplo para confirmar que los plugins de su mercado interno están revisados.

* **Scope**: [`Managed`](#scopes)
* **Type**: cadena
* **Default**: sin establecer, por lo que Claude Code muestra solo el aviso estándar

```json managed-settings.json theme={null}
{
  "pluginTrustMessage": "All plugins from our marketplace are approved by IT"
}
```

### `strictKnownMarketplaces`

Restrinja qué fuentes de mercado de plugins pueden agregar e instalar plugins las personas en su organización. Claude Code aplica la lista de permitidos al agregar un mercado y al instalar, actualizar, actualizar y actualizar automáticamente un plugin, antes de cualquier operación de red o sistema de archivos, por lo que un mercado que alguien agregó antes de establecer la política no puede usarse para obtener plugins una vez que su fuente ya no coincida. Los usuarios bloqueados ven un error que nombra la política administrada.

Si establece esta clave en la [consola de administración de claude.ai](https://code.claude.com/docs/es/server-managed-settings.md), claude.ai también la aplica cuando alguien en su organización agrega un mercado desde un repositorio de git en claude.ai, como [Cómo funcionan las restricciones](https://code.claude.com/docs/es/plugins/org.md#restrict-what-users-can-install) describe.

* **Scope**: [`Managed`](#scopes)
* **Type**: matriz de objetos de fuente de mercado; consulte [Tipos de fuente permitidos](#allowed-source-types)
* **Default**: sin establecer, por lo que los usuarios pueden agregar cualquier mercado. Una matriz vacía es un bloqueo completo que bloquea cada fuente de mercado, incluido el mercado oficial de Anthropic

Este ejemplo permite dos repositorios de GitHub, uno fijado a la ref `v2.0` y uno alojado en URL `marketplace.json`:

```json managed-settings.json theme={null}
{
  "strictKnownMarketplaces": [
    { "source": "github", "repo": "acme-corp/approved-plugins" },
    { "source": "github", "repo": "acme-corp/security-tools", "ref": "v2.0" },
    { "source": "url", "url": "https://plugins.example.com/marketplace.json" }
  ]
}
```

También puede escribir esta clave como `allowedMarketplaces`; [Alias de clave de mercado](#marketplace-key-aliases) describe cómo Claude Code trata el alias y qué versión lo acepta. Esta clave es una puerta de política: controla lo que los usuarios pueden agregar pero no registra nada. Para restringir y preregistrar en un archivo, consulte [Combinar con `extraKnownMarketplaces`](#combine-with-extraknownmarketplaces). Para la vista orientada al usuario, consulte [Restricciones de mercado administradas](https://code.claude.com/docs/es/plugins/org.md#restrict-what-users-can-install).

#### Tipos de fuente permitidos

Cada entrada a continuación muestra una entrada de lista de permitidos por tipo de fuente y los campos que acepta. La mayoría de los tipos coinciden exactamente; `hostPattern` y `pathPattern` coinciden por regex, y las entradas `github` pueden usar un [comodín de propietario](#owner-wildcards).

| Source | Example entry | Fields |
| :- | :- | :- |
| `github` | `{ "source": "github", "repo": "acme-corp/plugins", "ref": "main", "path": "marketplace" }` | `repo` requerido; `ref` es una rama o etiqueta; `path` es un subdirectorio |
| `git` | `{ "source": "git", "url": "https://gitlab.example.com/tools/plugins.git", "ref": "production" }` | `url` requerido; `ref` y `path` como para `github` |
| `url` | `{ "source": "url", "url": "https://plugins.example.com/marketplace.json", "headers": { "Authorization": "Bearer ${TOKEN}" } }` | `url` requerido; `headers` agrega encabezados HTTP para acceso autenticado |
| `file` | `{ "source": "file", "path": "/opt/acme-corp/plugins/marketplace.json" }` | `path` requerido, la ruta absoluta a un archivo `marketplace.json` |
| `directory` | `{ "source": "directory", "path": "/opt/acme-corp/approved-marketplaces" }` | `path` requerido, la ruta absoluta a un directorio que contiene `.claude-plugin/marketplace.json` |
| `hostPattern` | `{ "source": "hostPattern", "hostPattern": "^github\\.example\\.com$" }` | `hostPattern` requerido, una regex coincidida en cualquier lugar del host del mercado; anclela con `^` y `$` para coincidir con todo el host |
| `pathPattern` | `{ "source": "pathPattern", "pathPattern": "^/opt/approved/" }` | `pathPattern` requerido, una regex coincidida en cualquier lugar en la `path` de fuentes `file` y `directory`; comience con `^` para fijar un prefijo |
| `skills-dir` | `{ "source": "skills-dir" }` | Sin campos |

Algunos tipos de fuente tienen reglas adicionales a las de la tabla:

* **`url`**: un mercado de URL descarga solo el archivo `marketplace.json`, y Claude Code no obtiene archivos de plugin por ruta relativa desde ese servidor, por lo que sus plugins deben usar una [fuente de plugin](https://code.claude.com/docs/es/plugins/marketplace-reference.md#plugin-sources) que no sea una ruta relativa, como una URL de archivo, que puede estar en el mismo host. Para plugins con rutas relativas, use un mercado basado en Git en su lugar. Consulte [Los plugins con rutas relativas fallan en mercados basados en URL](https://code.claude.com/docs/es/plugins/troubleshooting.md#plugins-with-relative-paths-fail-in-url-based-marketplaces).
* **`hostPattern`**: úselo para permitir cada mercado en un GitHub Enterprise interno o servidor GitLab sin listar cada repositorio. Claude Code compara fuentes `github` contra `github.com`, toma el nombre de host de fuentes `url`, y lo toma de fuentes `git` dependiendo de la forma de [URL de git](https://git-scm.com/docs/git-clone#_git_urls):

  * Una URL con un esquema, como `https://` o `ssh://`: el nombre de host en la URL.
  * Una dirección SSH sin esquema, en la forma `user@host:path` de git, como `git@git.example.com:tools/plugins.git`: el host entre `@` y `:`, que es el host al que se conecta git.
  * Cualquier otra forma sin esquema: sin host, por lo que ninguna entrada `hostPattern` de `strictKnownMarketplaces` coincide con ella. Para una entrada `hostPattern` de `blockedMarketplaces`, Claude Code toma un host de un conjunto más amplio de formas, por lo que una entrada de lista de bloqueo aún puede coincidir con tal forma. Antes de v2.1.234, una entrada `hostPattern` de `strictKnownMarketplaces` también coincidía con algunas formas que git no trata como direcciones SSH.

  Las fuentes `file` y `directory` no tienen host y nunca coinciden con una entrada `hostPattern`.
* **`pathPattern`**: úselo para permitir mercados del sistema de archivos junto con entradas `hostPattern` para fuentes de red. `".*"` permite cada ruta local; un patrón más estrecho como `"^/opt/approved/"` restringe a un directorio.
* **`skills-dir`**: cualquier lista de permitidos, incluso una vacía, hace que Claude Code deje de cargar [plugins `@skills-dir`](https://code.claude.com/docs/es/plugins/loading#plugins-shared-through-a-repository) tanto desde `~/.claude/skills/` como desde el `.claude/skills/` de un proyecto. Para seguir cargándolos, agrega la entrada `{ "source": "skills-dir" }` y deja [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) sin establecer. La entrada no tiene significado fuera de esta clave y de `blockedMarketplaces`.

#### Comodines de propietario

Una entrada `github` cuyo valor `repo` es `"<owner>/*"` coincide con cada repositorio bajo ese propietario de GitHub. Los comodines de propietario requieren Claude Code v2.1.223 o posterior y funcionan solo en `strictKnownMarketplaces` y `blockedMarketplaces`. En cualquier otro lugar donde aparezca una fuente `github`, como `extraKnownMarketplaces` o `/plugin marketplace add`, el valor `repo` debe nombrar un único repositorio. Antes de v2.1.223, Claude Code comparaba la entrada literalmente, por lo que una entrada de lista de permitidos no coincidía con ningún repositorio y una entrada de lista de bloqueo no bloqueaba nada; las entradas de repositorio único se aplican en cada versión.

Esta entrada permite cualquier repositorio de mercado en la organización `acme-corp`:

```json managed-settings.json theme={null}
{
  "strictKnownMarketplaces": [
    { "source": "github", "repo": "acme-corp/*" }
  ]
}
```

Solo la posición de nombre de repositorio completo puede ser un comodín. Claude Code ignora entradas como `*`, `*/plugins` o `acme-corp/tools-*` como inválidas, por lo que no coinciden con ningún repositorio.

Las reglas de coincidencia difieren entre las dos configuraciones:

| Rule | `strictKnownMarketplaces` | `blockedMarketplaces` |
| - | - | - |
| Coincidencia de ortografías de fuente | Solo forma `owner/repo`. Una URL de git que clona el mismo repositorio no coincide | Cualquier ortografía, incluidas URLs de git que se resuelven en el mismo repositorio github.com |
| Mayúsculas y minúsculas del propietario | Distingue mayúsculas y minúsculas | No distingue mayúsculas y minúsculas |
| `ref` | Sigue las reglas de entrada exacta: una entrada con un `ref` coincide solo con fuentes con ese ref exacto, y una entrada sin uno coincide solo con fuentes que no especifican un ref | Una entrada sin un `ref` bloquea todos los refs de los repositorios que coincide |
| `path` | Más flexible que las reglas de entrada exacta: una entrada con un `path` requiere ese valor exacto, mientras que una entrada sin uno coincide con cualquier ruta dentro del repositorio | Una entrada sin un `path` bloquea todas las rutas de los repositorios que coincide |

#### Coincidencia exacta

Para cada tipo de fuente excepto entradas `github` de comodín de propietario y entradas `hostPattern` y `pathPattern` coincididas por regex, Claude Code permite una adición de usuario solo cuando la fuente de mercado coincide exactamente con una entrada. Para las fuentes basadas en git `github` y `git`, la coincidencia exacta incluye los campos opcionales:

* El `repo` o `url` debe coincidir exactamente
* El campo `ref` debe coincidir exactamente, o ambos deben ser indefinidos
* El campo `path` debe coincidir exactamente, o ambos deben ser indefinidos

Por ejemplo, Claude Code trata cada par a continuación como dos fuentes diferentes:

* `{ "source": "github", "repo": "acme-corp/plugins" }` y `{ "source": "github", "repo": "acme-corp/plugins", "ref": "main" }`
* `{ "source": "github", "repo": "acme-corp/plugins", "path": "marketplace" }` y `{ "source": "github", "repo": "acme-corp/plugins" }`

#### Permitir solo el mercado oficial

Para permitir solo el mercado oficial de Anthropic, liste su repositorio:

```json managed-settings.json theme={null}
{
  "strictKnownMarketplaces": [
    { "source": "github", "repo": "anthropics/claude-plugins-official" }
  ]
}
```

Con esta entrada, Claude Code mantiene un mercado oficial ya registrado disponible y, en una máquina nueva, registra el mercado automáticamente la primera vez que inicia una sesión de terminal interactiva. El registro automático comúnmente falla:

* Entornos no interactivos que se ejecutan antes de la primera sesión de terminal interactiva de la máquina.
* Máquinas donde Claude Code solo se ha ejecutado a través de la extensión de VS Code.
* Máquinas donde Claude Code ya ejecutó una sesión de terminal interactiva bajo una política que bloqueó el mercado, como el bloqueo de matriz vacía. Claude Code registra el intento bloqueado y no reintenta después de que cambia la política.

En estas máquinas, agregue el mercado a [`extraKnownMarketplaces`](#extraknownmarketplaces) en el mismo `managed-settings.json` para que Claude Code lo registre automáticamente, o ejecute `claude plugin marketplace add anthropics/claude-plugins-official`.

#### Combinar con `extraKnownMarketplaces`

Las dos claves hacen trabajos diferentes. Esta tabla las compara:

| Aspect | `strictKnownMarketplaces` | `extraKnownMarketplaces` |
| - | - | - |
| Purpose | Aplicación de política organizacional | Conveniencia del equipo |
| Settings file | Solo configuración administrada | Cualquier archivo de configuración |
| Behavior | Bloquea adiciones no permitidas | Registra mercados faltantes |
| When enforced | Antes de operaciones de red y sistema de archivos | Inmediatamente desde configuración de usuario o administrada; después del diálogo de confianza del espacio de trabajo para archivos de un repositorio |
| Can be overridden | No, máxima precedencia | Sí, por configuración de mayor precedencia |
| Source format | Objeto de fuente directo | Mercado nombrado con un objeto `source` anidado |

Para restringir y preregistrar un mercado para todos los usuarios, establezca ambos en `managed-settings.json`:

```json managed-settings.json theme={null}
{
  "strictKnownMarketplaces": [
    { "source": "github", "repo": "acme-corp/plugins" }
  ],
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": { "source": "github", "repo": "acme-corp/plugins" }
    }
  }
}
```

Con solo `strictKnownMarketplaces` establecido, los usuarios aún pueden agregar un mercado permitido ellos mismos con `/plugin marketplace add`. El mercado oficial de Anthropic es el único que Claude Code registra automáticamente, y solo cuando la lista de permitidos lo permite. [Permitir solo el mercado oficial](#allow-only-the-official-marketplace) lista las máquinas que falla.

### `strictPluginOnlyCustomization`

Bloquee skills, agentes, hooks y servidores MCP de fuentes de usuario y proyecto, para que solo puedan provenir de plugins o configuración administrada. Combínelo con [`strictKnownMarketplaces`](#strictknownmarketplaces) para controlar la cadena de suministro de personalización completa: la lista de permitidos de mercado controla qué plugins pueden instalar los usuarios.

* **Scope**: [`Managed`](#scopes)
* **Type**: `true` para bloquear los cuatro tipos de personalización, o una matriz que nombre los tipos a bloquear, de `"skills"`, `"agents"`, `"hooks"` y `"mcp"`
* **Default**: sin establecer, por lo que nada está bloqueado

Este ejemplo bloquea skills y hooks y deja agentes y servidores MCP desbloqueados:

```json managed-settings.json theme={null}
{
  "strictPluginOnlyCustomization": ["skills", "hooks"]
}
```

Si bloqueas cualquier superficie, Claude Code también deja de cargar los [plugins del directorio de skills](https://code.claude.com/docs/es/plugins/loading.md#skills-directory-plugins-blocked-by-managed-settings), las carpetas de plugins que los usuarios guardan en `~/.claude/skills/` o `.claude/skills/`. Los usuarios colocan esas carpetas ellos mismos en lugar de instalarlas desde un marketplace, por lo que Claude Code las trata como personalización del usuario bajo este ajuste.

Las cuatro entradas de subclaves a continuación indican qué más bloquea cada superficie y qué se sigue cargando. Claude Code ignora los nombres de superficie que no reconoce en lugar de hacer fallar el archivo de configuración, por lo que puedes agregar nombres de superficie nuevos antes de que todos los clientes se hayan actualizado.

### `strictPluginOnlyCustomization.skills`

Bloquea la superficie `skills`. Claude Code deja de cargar skills desde `~/.claude/skills/` y `.claude/skills/`, comandos personalizados desde `~/.claude/commands/` y `.claude/commands/`, skills y comandos de directorios `--add-dir`, y skills sincronizados desde tu cuenta de claude.ai. Sigue cargando los skills incluidos, los skills del directorio de políticas administradas y los skills de plugins que no sean [plugins del directorio de skills](https://code.claude.com/docs/es/plugins/loading.md#skills-directory-plugins-blocked-by-managed-settings).

* **Scope**: [`Managed`](#scopes)
* **Type**: la cadena `"skills"` en la matriz [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)
* **Default**: no bloqueado

```json managed-settings.json theme={null}
{
  "strictPluginOnlyCustomization": ["skills"]
}
```

### `strictPluginOnlyCustomization.agents`

Bloquea la superficie `agents`. Claude Code deja de cargar agentes desde `~/.claude/agents/`, `.claude/agents/` y directorios `--add-dir`. Sigue cargando los agentes integrados, los agentes del directorio de políticas administradas y los agentes de plugins que no sean [plugins del directorio de skills](https://code.claude.com/docs/es/plugins/loading.md#skills-directory-plugins-blocked-by-managed-settings).

* **Scope**: [`Managed`](#scopes)
* **Type**: la cadena `"agents"` en la matriz [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)
* **Default**: no bloqueado

```json managed-settings.json theme={null}
{
  "strictPluginOnlyCustomization": ["agents"]
}
```

### `strictPluginOnlyCustomization.hooks`

Bloquea la superficie `hooks`:

* **Deja de ejecutar**:
  * Los hooks de los `settings.json` de usuario, de proyecto y locales
  * Los hooks del frontmatter en skills, comandos personalizados y agentes, de las fuentes que bloquearía un bloqueo de [`skills`](#strictpluginonlycustomization-skills) o de [`agents`](#strictpluginonlycustomization-agents)
* **Sigue ejecutando**: los hooks de la configuración administrada y los hooks de plugins que no sean [plugins del directorio de skills](https://code.claude.com/docs/es/plugins/loading.md#skills-directory-plugins-blocked-by-managed-settings)

Los skills, comandos personalizados y agentes cuyos hooks del frontmatter dejan de ejecutarse se siguen cargando mientras su propia superficie no esté bloqueada.

Un [skill](https://code.claude.com/docs/es/skills.md#where-skills-live) personal o de proyecto que declara `hooks` en su frontmatter también pierde su aprobación previa de [`allowed-tools`](https://code.claude.com/docs/es/skills#pre-approve-tools-for-a-skill), por lo que tus usuarios reciben solicitudes de permiso para las herramientas que lista ese campo. Cuando un skill así se ejecuta en un subagente mediante [`context: fork`](https://code.claude.com/docs/es/skills#run-skills-in-a-subagent), conserva la aprobación previa. Un skill que no declara `hooks` también conserva su aprobación previa.

* **Scope**: [`Managed`](#scopes)
* **Type**: la cadena `"hooks"` en la matriz [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)
* **Default**: no bloqueado

```json managed-settings.json theme={null}
{
  "strictPluginOnlyCustomization": ["hooks"]
}
```

### `strictPluginOnlyCustomization.mcp`

Bloquea la superficie `mcp`. Claude Code deja de cargar servidores MCP desde `~/.claude.json` y `.mcp.json`. Sigue cargando los servidores de [`managed-mcp.json`](https://code.claude.com/docs/es/managed-mcp), los servidores de [`managedMcpServers`](#managedmcpservers) y los servidores MCP de plugins que no sean [plugins del directorio de skills](https://code.claude.com/docs/es/plugins/loading.md#skills-directory-plugins-blocked-by-managed-settings).

* **Scope**: [`Managed`](#scopes)
* **Type**: la cadena `"mcp"` en la matriz [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)
* **Default**: no bloqueado

```json managed-settings.json theme={null}
{
  "strictPluginOnlyCustomization": ["mcp"]
}
```

### `enabledPlugins`

Active o desactive [plugins](https://code.claude.com/docs/es/plugins/overview.md) individuales, codificados por `plugin-name@marketplace-name`. Un plugin sin entrada en ningún scope vuelve a su valor [`defaultEnabled`](https://code.claude.com/docs/es/plugins/manifest-reference#fields). Cuando habilita o deshabilita un plugin con `/plugin` o `claude plugin enable`, Claude Code escribe esta clave para usted.

* **Scope**: [`Any file`](#scopes)
* **Type**: objeto que asigna `plugin-name@marketplace-name` a un Boolean
* **Default**: sin establecer, por lo que cada plugin sigue su valor `defaultEnabled`

Este ejemplo habilita dos plugins del mercado `team-tools` y deshabilita uno de `personal`:

```json settings.json theme={null}
{
  "enabledPlugins": {
    "code-formatter@team-tools": true,
    "deployment-tools@team-tools": true,
    "experimental-features@personal": false
  }
}
```

Cada scope sirve un propósito diferente:

* **Configuración de usuario**: sus preferencias personales de plugin
* **Configuración de proyecto**: plugins compartidos con todos en el repositorio
* **Configuración local**: anulaciones por máquina, gitignored cuando Claude Code guarda una configuración allí
* **Configuración administrada**: política de toda la organización. Un plugin establecido en `false` aquí está bloqueado de instalación en cada scope y oculto del mercado

La configuración de proyecto tiene precedencia sobre la configuración de usuario, por lo que establecer un plugin en `false` en `~/.claude/settings.json` no deshabilita un plugin que el `.claude/settings.json` del proyecto habilita. Para optar por no participar en un plugin habilitado por proyecto en su máquina, establézcalo en `false` en `.claude/settings.local.json` en su lugar. Los plugins forzados habilitados por configuración administrada no pueden deshabilitarse de esta manera, ya que la configuración administrada anula la configuración local.

Habilitar un plugin de una fuente externa como un repositorio de GitHub o paquete npm en el `.claude/settings.json` de un proyecto no lo instala para otras personas. En cada ruta que carga plugins, Claude Code reporta el plugin como no instalado hasta que cada usuario lo [instale ellos mismos](https://code.claude.com/docs/es/plugins/org.md#require-plugins-per-repository).

### `extraKnownMarketplaces`

Registre mercados de plugins adicionales por nombre, para que las personas que abran el repositorio, o todos los que alcance su configuración administrada, obtengan el mercado sin agregarlo ellos mismos. Claude Code registra cada mercado que aún no conoce. Si un plugin que [`enabledPlugins`](#enabledplugins) nombra desde él se instala depende de la fuente del plugin y qué archivo lo habilita; esa entrada tiene las reglas.

* **Scope**: [`Any file`](#scopes). Claude Code respeta entradas en el `.claude/settings.json` o `.claude/settings.local.json` de un repositorio solo después de que acepte el diálogo de confianza del espacio de trabajo para esa carpeta; en una carpeta que no ha confiado, incluida una ejecución `-p` allí, las ignora sin un mensaje.
* **Type**: objeto que asigna un nombre de mercado a un objeto con un objeto `source` y un Boolean `autoUpdate` opcional
* **Default**: sin establecer

Este ejemplo registra un mercado de GitHub y un mercado desde una URL de git autohospedada:

```json settings.json theme={null}
{
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": {
        "source": "github",
        "repo": "acme-corp/claude-plugins"
      }
    },
    "security-plugins": {
      "source": {
        "source": "git",
        "url": "https://git.example.com/security/plugins.git"
      }
    }
  }
}
```

[Lo que se ejecuta antes de confiar en una carpeta](https://code.claude.com/docs/es/permissions.md#what-runs-before-you-trust-a-folder) compara la puerta de confianza con el otro contenido que un repositorio puede suministrar. También puede escribir esta clave como `additionalMarketplaces`; consulte [Alias de clave de mercado](#marketplace-key-aliases).

Establezca `"autoUpdate": true` junto a `source` para hacer que Claude Code actualice ese mercado y actualice sus plugins instalados en segundo plano después del inicio. Cuando se omite, `claude-plugins-official` y la mayoría de otros mercados oficiales de Anthropic tienen como predeterminado `true`, y los mercados de terceros tienen como predeterminado `false`. Consulte [Configurar actualizaciones automáticas](https://code.claude.com/docs/es/plugins/install.md#keep-plugins-updated).

Cuando más de un archivo de configuración define una entrada de mercado bajo el mismo nombre, Claude Code usa la entrada del archivo de [mayor precedencia](https://code.claude.com/docs/es/settings.md#settings-precedence) completo. Esa entrada reemplaza la entrada de menor precedencia y no hereda ninguno de sus campos, por lo que una redefinición no puede combinar el `source.headers` de credencial de un archivo con una URL que otro archivo controla. Antes de v2.1.228, Claude Code fusionaba entradas del mismo nombre campo por campo, por lo que una entrada en un archivo de mayor precedencia podría heredar campos que no estableció, incluidos `headers` de otro archivo.

#### Tipos de fuente de mercado

El objeto `source` toma una de estas formas:

* **`github`**: un repositorio de GitHub, con `repo`
* **`git`**: cualquier URL de git, con `url`
* **`url`**: una URL directa a un archivo `marketplace.json`, con `url` y `headers` opcional y `headersHelper` para acceso autenticado. `headersHelper` nombra un comando que imprime encabezados cuyos valores son demasiado efímeros para listar en `headers`, y requiere Claude Code v2.1.238 o posterior
* **`file`**: una ruta local a un archivo `marketplace.json`, con `path`
* **`directory`**: una ruta del sistema de archivos local, con `path`. Úselo para desarrollo, o para un mercado que su organización [implementa en cada máquina](https://code.claude.com/docs/es/plugins/mods/admin.md#install-your-organizations-mods).
* **`settings`**: un mercado en línea declarado directamente en el archivo de configuración sin un repositorio alojado, con `name` y `plugins`

El tipo de fuente `git` funciona con cualquier servicio de alojamiento de git, incluido GitLab autohospedado y Bitbucket. Claude Code clona el repositorio con la misma autenticación que `git clone` usaría en esa máquina: ayudantes de credenciales configurados o claves SSH. Un token de proveedor como `GITHUB_TOKEN` entra en vigor a través de un ayudante de credenciales que lo lee. Consulte [Repositorios privados](https://code.claude.com/docs/es/plugins/host-marketplace.md#grant-access-to-a-private-marketplace) para detalles de configuración.

Para fuentes `github` y `git`, Claude Code nunca descarga contenido de [Git LFS](https://git-lfs.com) cuando clona el repositorio de mercado para agregarlo o actualizarlo. Los archivos rastreados por LFS se cierran como archivos de puntero, y la salida de agregar o actualizar reporta cuántos.

El campo `skipLfs` dentro del objeto `source` se acepta y no tiene efecto. Antes de v2.1.274, Claude Code descargaba contenido de LFS a menos que estableciera `"skipLfs": true`.

Para una fuente `url`, establezca `headersHelper` dentro del objeto `source` cuando la credencial en `headers` expire y un comando tenga que producir una nueva. Requiere Claude Code v2.1.238 o posterior. Para lo que el comando debe imprimir y dónde Claude Code lo ejecuta, consulte [Escribir el comando headersHelper](https://code.claude.com/docs/es/plugins/host-marketplace.md#write-the-headershelper-command), y para los casos donde Claude Code no lo ejecuta, consulte [Cuándo Claude Code omite un comando headersHelper](https://code.claude.com/docs/es/plugins/host-marketplace.md#when-claude-code-skips-a-headershelper-command-or-drops-its-output). Una vez que establezca `headersHelper` en una URL de mercado `https://`, Claude Code ejecuta el comando en dos puntos, reutilizando la salida de una ejecución durante hasta 60 segundos:

* Antes de cada obtención del `marketplace.json` de ese mercado, incluida una actualización posterior. Claude Code envía los encabezados impresos con esa obtención.
* Antes de cada descarga de archivo de plugin en el origen de la URL del mercado, lo que significa el mismo esquema, host y puerto. Claude Code envía la salida con esa descarga, y ninguna otra descarga obtiene los encabezados.

Claude Code ignora cualquier `headersHelper` establecido en el `.claude/settings.json` o `.claude/settings.local.json` de un directorio que agregue con [`--add-dir`](https://code.claude.com/docs/es/permissions#what-runs-before-you-trust-a-folder), en una fuente `url` y en una entrada de plugin en línea por igual, y envía solo los `headers` fijos establecidos en ese archivo. [Cómo los usuarios aceptan un comando headersHelper](https://code.claude.com/docs/es/plugins/host-marketplace.md#how-users-accept-a-headershelper-command) cubre los otros archivos de configuración.

Los plugins listados en una fuente `settings` deben hacer referencia a fuentes externas como GitHub o npm, y el `name` debe coincidir con la clave de mercado. Aún habilita cada plugin por separado en `enabledPlugins`. Este ejemplo declara un plugin en línea:

```json settings.json theme={null}
{
  "extraKnownMarketplaces": {
    "team-tools": {
      "source": {
        "source": "settings",
        "name": "team-tools",
        "plugins": [
          {
            "name": "code-formatter",
            "source": {
              "source": "github",
              "repo": "acme-corp/code-formatter"
            }
          }
        ]
      }
    }
  }
}
```

Una entrada de plugin bajo `source: 'settings'` cuya propia `source` es un [`archive`](https://code.claude.com/docs/es/plugins/marketplace-reference#archive-plugin-source) puede establecer `headers` para la descarga de archivo. Si el valor que pondría en `headers` es efímero, como un token que su registro acuña bajo demanda, establezca un comando `headersHelper` en su lugar. Una entrada puede establecer ambos. Ambos campos requieren Claude Code v2.1.238 o posterior.

Claude Code envía los `headers` de la entrada, y lo que el comando imprime, con la descarga de archivo de ese plugin y con ninguna otra descarga. Claude Code ejecuta el comando solo cuando un usuario [instala o actualiza ese plugin solo](https://code.claude.com/docs/es/plugins/host-marketplace.md#how-users-accept-a-headershelper-command). Tres reglas adicionales dependen de qué archivo contiene la entrada:

* **`strict`**: a diferencia de una entrada en el `marketplace.json` de un mercado, una entrada en configuración no necesita `"strict": false`, porque un archivo de configuración no lleva campos de manifiesto para en línea. Consulte [Modo estricto](https://code.claude.com/docs/es/plugins/marketplace-reference.md#strict-mode).
* **Confianza de carpeta**: para una entrada en el `.claude/settings.json` o `.claude/settings.local.json` de un proyecto, Claude Code ejecuta el comando solo después de que el usuario también haya [confiado en esa carpeta](https://code.claude.com/docs/es/permissions.md#what-runs-before-you-trust-a-folder).
* **Filtro de encabezado**: Claude Code elimina [nombres de encabezado de enrutamiento de solicitud e identidad del cliente](https://code.claude.com/docs/es/plugins/host-marketplace.md#when-claude-code-skips-a-headershelper-command-or-drops-its-output) de una entrada en el `.claude/settings.json` o `.claude/settings.local.json` de un proyecto, porque un repositorio puede suministrar esos archivos. Claude Code aplica el mismo filtro a una entrada de catálogo y a una entrada en un directorio `--add-dir`, y ningún filtro a una entrada en su configuración de usuario, un archivo `--settings` o configuración administrada.

#### Alias de clave de mercado

En Claude Code v2.1.232 o posterior, puede escribir `extraKnownMarketplaces` como `additionalMarketplaces` y `strictKnownMarketplaces` como `allowedMarketplaces`. Claude Code trata cada alias de la siguiente manera:

* Las versiones anteriores ignoran el alias, por lo que mantenga la ortografía canónica en un archivo que las versiones anteriores también lean, como un archivo de configuración administrada para una flota con versiones mixtas de Claude Code.
* En cualquier archivo de configuración que acepte la clave canónica, Claude Code lee el alias exactamente como lee la clave canónica.
* Claude Code puede reescribir `additionalMarketplaces` a `extraKnownMarketplaces` cuando actualiza el archivo.
* Si establece ambas ortografías en un archivo, Claude Code usa el valor canónico e ignora el alias.

### `pluginConfigs`

Almacene las respuestas no sensibles que proporciona al diálogo de configuración [`userConfig`](https://code.claude.com/docs/es/plugins/manifest-reference#user-configuration) de un plugin, codificadas por ID de plugin. Claude Code escribe esta clave en su configuración de usuario cuando completa el diálogo, por lo que no necesita editarla a mano. Claude Code almacena opciones sensibles en el Keychain de macOS en su lugar, retrocediendo a `~/.claude/.credentials.json` cuando el Keychain rechaza la escritura; en plataformas sin un keychain compatible, las almacena en `~/.claude/.credentials.json`.

* **Scope**: [`User or managed`](#scopes)
* **Type**: objeto que asigna un ID de plugin a un objeto con un campo `options`, asignando cada nombre de opción a una cadena, número, Boolean o matriz de cadenas, y un campo `mcpServers` opcional que contiene valores de configuración de usuario por servidor en la misma forma
* **Default**: sin establecer

Este ejemplo almacena la opción `api_endpoint` para el plugin `deployer` de `acme-tools`:

```json settings.json theme={null}
{
  "pluginConfigs": {
    "deployer@acme-tools": {
      "options": {
        "api_endpoint": "https://api.example.com"
      }
    }
  }
}
```

Los plugins integrados almacenan sus opciones en la misma clave con el sufijo `@builtin`. Por ejemplo, el ajuste [**Project instructions**](https://code.claude.com/docs/es/memory.md#choose-which-instruction-files-load) que controla si Claude Code lee los archivos `AGENTS.md` es `pluginConfigs["cc-plugin-agents-md@builtin"].options.instructionFiles`. Antes de v2.1.285, el ID del plugin era `agents-md@builtin`. Las versiones posteriores leen una entrada con cualquiera de los dos ID.

Claude Code ignora las entradas de proyecto y locales porque sustituye estos valores en las configuraciones de hooks, MCP y LSP de los plugins, y un repositorio clonado no debe poder aportarlos.

### `prependPlugins`

Liste los plugins administrados cuyos [mods](https://code.claude.com/docs/es/plugins/mods/overview.md) se ejecutan antes de cada mod que instala un usuario, en el orden listado. Cuando establece esta clave en configuración administrada, nombre `sec-default@builtin` en la lista para mantener la guardia integrada. En configuración administrada, Claude Code omite un id cuyo plugin no cuenta como el de su organización. Consulte [Instale los mods de su organización y establezca el orden](https://code.claude.com/docs/es/plugins/mods/admin.md#install-your-organizations-mods) para esas condiciones y cómo funcionan juntas las dos claves de ordenamiento.

* **Scope**: [`User or managed`](#scopes). Claude Code lee la clave desde la configuración administrada. La lee desde la configuración de usuario solo en una máquina sin configuración administrada, en una sesión cuya credencial no sea un `/login` de Team o Enterprise. Ignora la clave en la configuración de proyecto y local y en un archivo `--settings`.
* **Type**: matriz de cadenas `plugin-name@marketplace-name`
* **Default**: sin establecer

```json managed-settings.json theme={null}
{
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": { "source": "directory", "path": "/opt/acme/claude-plugins" }
    }
  },
  "enabledPlugins": { "acme-guard@acme-tools": true },
  "prependPlugins": ["acme-guard@acme-tools", "sec-default@builtin"]
}
```

### `appendPlugins`

Liste los plugins administrados cuyos [mods](https://code.claude.com/docs/es/plugins/mods/overview.md) se ejecutan después de cada mod que instala un usuario, en el orden listado. Un id listado en ambos `prependPlugins` y `appendPlugins` se antepone. En configuración administrada, Claude Code omite un id cuyo plugin no [cuenta como el de su organización](https://code.claude.com/docs/es/plugins/mods/admin.md#install-your-organizations-mods).

* **Scope**: [`User or managed`](#scopes). Claude Code lee la clave desde la configuración administrada. La lee desde la configuración de usuario solo en una máquina sin configuración administrada, en una sesión cuya credencial no sea un `/login` de Team o Enterprise. Ignora la clave en la configuración de proyecto y local y en un archivo `--settings`.
* **Type**: matriz de cadenas `plugin-name@marketplace-name`
* **Default**: sin establecer

```json managed-settings.json theme={null}
{
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": { "source": "directory", "path": "/opt/acme/claude-plugins" }
    }
  },
  "enabledPlugins": { "acme-audit@acme-tools": true },
  "appendPlugins": ["acme-audit@acme-tools"]
}
```

## MCP

Controle a qué servidores MCP se conecta Claude Code y cuáles permite una organización. Consulte [Conectarse a herramientas externas con MCP](https://code.claude.com/docs/es/mcp.md) y [Configuración de MCP administrada](https://code.claude.com/docs/es/managed-mcp.md).

### `allowAllClaudeAiMcps`

Cargue los [conectores de claude.ai](https://code.claude.com/docs/es/mcp.md#use-mcp-servers-from-claude-ai) que Claude Code obtiene por sí mismo junto con un `managed-mcp.json` implementado. Sin esta clave, `managed-mcp.json` toma control exclusivo de los servidores MCP y suprime esos conectores.

* **Scope**: [`Managed`](#scopes). Los usuarios no pueden volver a habilitar los conectores que el control exclusivo suprimió.
* **Type**: Boolean
  * `true`: Claude Code carga los conectores de claude.ai junto con un `managed-mcp.json` implementado
  * `false`: un `managed-mcp.json` implementado toma control exclusivo de los servidores MCP y suprime los conectores de claude.ai [que Claude Code obtiene por sí mismo](https://code.claude.com/docs/es/mcp.md#how-connectors-reach-claude-code)
* **Default**: `false`, por lo que un `managed-mcp.json` implementado suprime los conectores de claude.ai que Claude Code obtiene por sí mismo

```json managed-settings.json theme={null}
{
  "allowAllClaudeAiMcps": true
}
```

[`allowedMcpServers`](#allowedmcpservers) y [`deniedMcpServers`](#deniedmcpservers) aún se aplican a los conectores que esta clave carga. Los conectores entregados a una [sesión en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md) cuyo host lleva un `managed-mcp.json`, como un ejecutor autohospedado, permanecen suprimidos. Consulte [Permitir conectores de claude.ai junto con el conjunto administrado](https://code.claude.com/docs/es/managed-mcp.md#allow-claude-ai-connectors-alongside-the-managed-set).

### `allowClaudeInChromeWithManagedMcp`

Permita que el servidor integrado [Claude en Chrome](https://code.claude.com/docs/es/chrome.md) se ejecute junto con un `managed-mcp.json` implementado. Sin esta clave, un `managed-mcp.json` implementado bloquea Claude en Chrome en sesiones de terminal. Requiere Claude Code v2.1.282 o posterior.

* **Scope**: [`Managed`](#scopes), solo desde la configuración administrada del dispositivo: un plist implementado por MDM o una clave de registro HKLM, o un archivo `managed-settings.json` del sistema. Claude Code lo ignora en la configuración administrada del servidor, en el registro HKCU que se puede escribir por el usuario y en la configuración de usuario o proyecto.
* **Type**: Boolean
  * `true`: el servidor integrado Claude en Chrome puede ejecutarse junto con un `managed-mcp.json` implementado
  * `false`: un `managed-mcp.json` implementado bloquea Claude en Chrome en sesiones de terminal
* **Default**: `false`, por lo que un `managed-mcp.json` implementado bloquea Claude en Chrome en sesiones de terminal

```json managed-settings.json theme={null}
{
  "allowClaudeInChromeWithManagedMcp": true
}
```

Una entrada [`deniedMcpServers`](#deniedmcpservers) para `claude-in-chrome` aún bloquea el servidor con esta clave activada. Consulte [Permitir Claude en Chrome junto con el conjunto administrado](https://code.claude.com/docs/es/managed-mcp.md#allow-claude-in-chrome-alongside-the-managed-set).

### `allowedMcpServers`

Cree una lista de permitidos de los servidores MCP que las personas pueden agregar. Claude Code bloquea cualquier servidor que no coincida con una entrada dondequiera que esté definido, incluidos servidores de complementos, servidores pasados con `--mcp-config` y servidores de claude.ai.

Los servidores integrados como Claude en Chrome, el servidor `ide` al que Claude Code se conecta en un IDE [VS Code](https://code.claude.com/docs/es/vs-code.md#the-built-in-ide-mcp-server) o [JetBrains](https://code.claude.com/docs/es/jetbrains.md#the-built-in-ide-mcp-server) en ejecución, y los servidores que la CLI misma configura están exentos de la lista de permitidos, y la lista de denegados aún se aplica a ellos. En Claude Code v2.1.268 o posterior, las herramientas de Slack de una sesión [Claude Tag](https://code.claude.com/docs/es/claude-tag.md) también están exentas de la lista de permitidos, y la lista de denegados aún se aplica a ellas. Los servidores `type: "sdk"` en proceso están exentos de ambas listas; la [aplicación que inició la sesión](https://code.claude.com/docs/es/mcp.md#how-connectors-reach-claude-code) los registra.

Los servidores que tu organización entrega también están exentos de la lista de permitidos, y la lista de denegados aún se aplica a ellos. La exención cubre cada entrada [`managedMcpServers`](#managedmcpservers) y cualquier entrada [`managed-mcp.json`](https://code.claude.com/docs/es/managed-mcp#exclusive-control-with-managed-mcp-json) cuyos valores [no usen expansión `${VAR}` fuera de `env`](https://code.claude.com/docs/es/managed-mcp#how-allowlists-and-denylists-apply-to-the-managed-set). Consulta [Cómo se evalúa un servidor](https://code.claude.com/docs/es/managed-mcp.md#how-a-server-is-evaluated) para ver el orden de verificación completo. Antes de v2.1.259, los servidores de `managed-mcp.json` también tenían que coincidir.

* **Scope**: [`Any file`](#scopes). Las entradas de cada archivo se fusionan en una lista de permitidos a menos que [`allowManagedMcpServersOnly`](#allowmanagedmcpserversonly) esté configurado. Impleméntelo en la configuración administrada para aplicarlo.
* **Type**: matriz de objetos, cada uno con exactamente una clave. Usa `serverName`, una cadena limitada a letras, números, guiones y guiones bajos; `serverCommand`, una matriz del comando y sus argumentos que deben coincidir exactamente; o `serverUrl`, un patrón de URL con comodines `*`
* **Default**: sin establecer, por lo que se permite cada servidor; una matriz vacía bloquea cada servidor que los usuarios agregan

Este ejemplo permite solo el servidor stdio que inicia el comando `npx` listado:

```json settings.json theme={null}
{
  "allowedMcpServers": [
    { "serverCommand": ["npx", "-y", "@modelcontextprotocol/server-filesystem"] }
  ]
}
```

Una entrada [`deniedMcpServers`](#deniedmcpservers) tiene prioridad, por lo que un servidor en ambas listas se bloquea. Una vez que la lista contiene cualquier entrada `serverCommand`, un servidor stdio debe coincidir con una entrada `serverCommand`, y una vez que contiene cualquier entrada `serverUrl`, un servidor remoto debe coincidir con una entrada `serverUrl`: una coincidencia `serverName` ya no admite ese tipo de servidor. Consulte [Control basado en políticas con listas de permitidos y denegados](https://code.claude.com/docs/es/managed-mcp.md#policy-based-control-with-allowlists-and-denylists).

### `allowManagedMcpServersOnly`

Haga que la lista de permitidos administrada sea la única que se aplique. Claude Code luego lee [`allowedMcpServers`](#allowedmcpservers) solo de la configuración administrada e ignora las listas de permitidos en la configuración de usuario, proyecto y local; [`deniedMcpServers`](#deniedmcpservers) aún se fusiona desde cada ámbito de configuración, por lo que los usuarios aún pueden bloquear servidores para sí mismos. Los administradores lo configuran para que la configuración propia de un usuario no pueda ampliar lo que permite la lista de permitidos administrada.

* **Scope**: [`Managed`](#scopes)
* **Type**: Boolean
  * `true`: Claude Code lee `allowedMcpServers` solo de la configuración administrada e ignora las listas de permitidos en la configuración de usuario, proyecto y local
  * `false`: las listas de permitidos de cada ámbito de configuración se fusionan
* **Default**: `false`, por lo que las listas de permitidos de cada ámbito de configuración se fusionan

Este ejemplo bloquea la lista de permitidos en la configuración administrada y permite solo el servidor denominado `github`:

```json managed-settings.json theme={null}
{
  "allowManagedMcpServersOnly": true,
  "allowedMcpServers": [
    { "serverName": "github" }
  ]
}
```

Los usuarios aún pueden agregar servidores MCP propios; solo se cargan los servidores que coinciden con la lista de permitidos administrada. Consulte [Restringir la lista de permitidos solo a la configuración administrada](https://code.claude.com/docs/es/managed-mcp.md#restrict-the-allowlist-to-managed-settings-only).

### `deniedMcpServers`

Bloquee servidores MCP específicos. Claude Code se niega a cargar un servidor coincidente dondequiera que esté definido, incluidos servidores de complementos, servidores pasados con `--mcp-config`, servidores de `managed-mcp.json`, servidores de [`managedMcpServers`](#managedmcpservers) y los conectores de claude.ai [que obtiene por sí mismo](https://code.claude.com/docs/es/mcp.md#how-connectors-reach-claude-code). Los servidores `type: "sdk"` en proceso están exentos; la aplicación que inició la sesión los registra.

* **Scope**: [`Any file`](#scopes). Las entradas de cada archivo se fusionan en una lista de denegados, y [`allowManagedMcpServersOnly`](#allowmanagedmcpserversonly) no cambia eso. Impleméntelo en la configuración administrada para aplicarlo.
* **Type**: matriz de objetos, cada uno con exactamente una clave: `serverName`, una cadena, por lo que el nombre para mostrar de un conector de claude.ai como `"claude.ai Slack"` funciona; `serverCommand`, una matriz del comando y sus argumentos coincididos exactamente; o `serverUrl`, un patrón de URL con comodines `*`
* **Default**: sin establecer, por lo que ningún servidor se bloquea; una matriz vacía tampoco bloquea nada

```json settings.json theme={null}
{
  "deniedMcpServers": [
    { "serverName": "filesystem" }
  ]
}
```

La lista de denegados tiene prioridad sobre [`allowedMcpServers`](#allowedmcpservers), por lo que un servidor en ambas listas se bloquea. Consulte [Control basado en políticas con listas de permitidos y denegados](https://code.claude.com/docs/es/managed-mcp.md#policy-based-control-with-allowlists-and-denylists).

### `disableClaudeAiConnectors`

Apague los [conectores MCP de claude.ai](https://code.claude.com/docs/es/mcp.md#use-mcp-servers-from-claude-ai) [que Claude Code obtiene por sí mismo](https://code.claude.com/docs/es/mcp.md#how-connectors-reach-claude-code), por lo que ni los obtiene ni se conecta a ellos. Un `true` en cualquier archivo de configuración se aplica: un `.claude/settings.json` de proyecto registrado puede optar por un repositorio fuera de esos conectores, pero un `false` a nivel de proyecto no puede anular un `true` a nivel de usuario o administrado.

* **Scope**: [`Any file`](#scopes)
* **Type**: Boolean
  * `true`: Claude Code ni obtiene ni conecta esos conectores
  * `false`: lo mismo que sin establecer; Claude Code obtiene sus conectores a menos que otro archivo de configuración o `ENABLE_CLAUDEAI_MCP_SERVERS` los apague
* **Default**: `false`, por lo que Claude Code obtiene sus conectores
* **Per-session overrides**: [`ENABLE_CLAUDEAI_MCP_SERVERS`](https://code.claude.com/docs/es/env-vars) establecido en `false` apaga los conectores durante una sesión; cualquiera de los dos que los apague, el otro no puede volver a encenderlos

```json settings.json theme={null}
{
  "disableClaudeAiConnectors": true
}
```

Los servidores que pasa explícitamente con `--mcp-config` no se ven afectados. Para bloquear conectores individuales en lugar de todos ellos, use [`deniedMcpServers`](#deniedmcpservers). Consulte [Deshabilitar conectores de claude.ai](https://code.claude.com/docs/es/mcp.md#disable-claude-ai-connectors).

### `disabledMcpjsonServers`

Rechace servidores específicos definidos en el archivo `.mcp.json` de un proyecto para que Claude Code nunca se conecte a ellos ni le pida que los apruebe. Un rechazo en cualquier archivo de configuración se aplica, incluido un `.claude/settings.json` de proyecto registrado en el repositorio.

* **Scope**: [`Any file`](#scopes)
* **Type**: matriz de cadenas, los nombres de servidor tal como aparecen en `.mcp.json`
* **Default**: sin establecer

```json settings.json theme={null}
{
  "disabledMcpjsonServers": ["filesystem"]
}
```

Claude Code escribe esta clave en `.claude/settings.local.json` cuando rechaza un servidor en el diálogo de aprobación. `claude mcp get <name>` muestra un servidor rechazado como `✘ Rejected (see disabledMcpjsonServers in settings)`. El rechazo tiene prioridad sobre [`enabledMcpjsonServers`](#enabledmcpjsonservers) y [`enableAllProjectMcpServers`](#enableallprojectmcpservers).

### `enableAllProjectMcpServers`

Apruebe cada servidor MCP definido en archivos `.mcp.json` de proyecto sin un aviso. Claude Code escribe esta clave en `.claude/settings.local.json` cuando elige aprobar todos los servidores en el diálogo de aprobación.

* **Scope**: [`Any file`](#scopes). En una carpeta cuyo diálogo de confianza no ha aceptado, Claude Code lo honra desde la configuración de usuario, la configuración administrada y `--settings` e lo ignora en el archivo de proyecto compartido, tanto en la sesión como para `claude mcp list` y `claude mcp get`; [Aprobaciones de servidores de proyecto y confianza del espacio de trabajo](https://code.claude.com/docs/es/mcp.md#project-server-approvals-and-workspace-trust) dice cuándo cuenta también un `.claude/settings.local.json` sin seguimiento.
* **Type**: Boolean
  * `true`: Claude Code aprueba cada servidor MCP definido en archivos `.mcp.json` de proyecto sin un aviso
  * `false`: Claude Code le pide que apruebe cada servidor. En una carpeta de confianza, un `false` en un archivo de mayor precedencia anula un `true` en uno inferior; en una carpeta que no ha confiado, un `true` en cualquier archivo honrado es suficiente
* **Default**: sin establecer, por lo que Claude Code le pide que apruebe cada servidor

```json settings.json theme={null}
{
  "enableAllProjectMcpServers": true
}
```

Una entrada [`disabledMcpjsonServers`](#disabledmcpjsonservers) aún rechaza un servidor.

### `enabledMcpjsonServers`

Apruebe servidores específicos definidos en archivos `.mcp.json` de proyecto para que Claude Code se conecte a ellos sin preguntar. Claude Code escribe esta clave en `.claude/settings.local.json` cuando aprueba un servidor en el diálogo de aprobación.

* **Scope**: [`Any file`](#scopes). En una carpeta cuyo diálogo de confianza no ha aceptado, Claude Code lo honra desde la configuración de usuario, la configuración administrada y `--settings` e lo ignora en el archivo de proyecto compartido, tanto en la sesión como para `claude mcp list` y `claude mcp get`; [Aprobaciones de servidores de proyecto y confianza del espacio de trabajo](https://code.claude.com/docs/es/mcp.md#project-server-approvals-and-workspace-trust) dice cuándo cuenta también un `.claude/settings.local.json` sin seguimiento.
* **Type**: matriz de cadenas, los nombres de servidor tal como aparecen en `.mcp.json`
* **Default**: sin establecer

Este ejemplo aprueba los servidores `memory` y `github` del `.mcp.json` del proyecto:

```json settings.json theme={null}
{
  "enabledMcpjsonServers": ["memory", "github"]
}
```

Una entrada [`disabledMcpjsonServers`](#disabledmcpjsonservers) aún rechaza un servidor.

### `managedMcpServers`

Proporcione servidores MCP remotos a cada usuario desde la configuración administrada. Los usuarios mantienen los servidores que agregan por sí mismos y no pueden editar ni eliminar los que proporciona. Requiere Claude Code v2.1.259 o posterior.

* **Scope**: [`Managed`](#scopes). Claude Code descarta la clave con una advertencia en la configuración de usuario, proyecto y local, y no la lee en la pestaña Code de la aplicación Claude Desktop en una implementación de terceros o en las sesiones Cowork de la aplicación, donde Claude Desktop proporciona y bloquea los servidores MCP de esas sesiones.
* **Type**: objeto con clave de nombre de servidor. Cada entrada tiene la forma `.mcp.json` para un servidor `http` o `sse`: una `url` `https://` requerida y opcionalmente `headers`, `oauth` y las otras opciones HTTP y SSE. Claude Code descarta las entradas que fallan en la validación, y [Lo que una entrada puede contener](https://code.claude.com/docs/es/managed-mcp.md#what-an-entry-can-contain) enumera las condiciones
* **Default**: sin establecer, por lo que la configuración administrada no proporciona servidores

Este ejemplo proporciona un servidor HTTP denominado `search`:

```json managed-settings.json theme={null}
{
  "managedMcpServers": {
    "search": {
      "type": "http",
      "url": "https://search.example.com/mcp"
    }
  }
}
```

Para precedencia, cómo los servidores proporcionados se combinan con `managed-mcp.json` y las listas de permitidos y denegados, y lo que ven los usuarios, consulte [Proporcionar servidores a través de la configuración administrada](https://code.claude.com/docs/es/managed-mcp.md#provide-servers-through-managed-settings).

## Agentes, sesiones y worktrees

Establezca el agente predeterminado, controle a los compañeros de equipo y la mensajería entre sesiones, y configure worktrees. Consulte [Subagentes](https://code.claude.com/docs/es/sub-agents.md) y [Worktrees](https://code.claude.com/docs/es/worktrees.md).

### `agent`

Ejecute el hilo principal como un [subagente](https://code.claude.com/docs/es/sub-agents.md#invoke-subagents-explicitly) nombrado, de modo que Claude Code aplique el prompt del sistema, las restricciones de herramientas y el modelo de ese subagente a su sesión. La misma clave establece el agente predeterminado para las sesiones que distribuye desde `claude agents`.

* **Alcance**: [`Cualquier archivo`](#scopes)
* **Tipo**: cadena, el nombre de un agente integrado o personalizado
* **Predeterminado**: sin establecer, por lo que el hilo principal se ejecuta como el agente predeterminado de Claude Code
* **Anulaciones por sesión**: `--agent` tiene prioridad sobre esta clave para una sesión

```json settings.json theme={null}
{
  "agent": "code-reviewer"
}
```

El propio `settings.json` de un plugin también puede proporcionar esta clave; consulte [Envíe configuración predeterminada con su plugin](https://code.claude.com/docs/es/plugins/components.md#default-settings).

### `crossSessionInbound`

Elija qué hace esta sesión con [mensajes que llegan desde sus otras sesiones de Claude Code](https://code.claude.com/docs/es/cross-session-messaging.md#control-inbound-messages). Cuando no se aplica ningún valor, Claude Code decide por mensaje según las clases de modo de permisos de las dos sesiones. Requiere Claude Code v2.1.224 o posterior.

* **Alcance**: [`Cualquier archivo`](#scopes). Un valor de proyecto o local se aplica solo cuando es más estricto que el valor de configuración administrada, la bandera `--settings` o la configuración del usuario proporcionan.
* **Tipo**: cadena, una de:
  * `"accept"`: Claude Code entrega el mensaje a Claude
  * `"hold"`: Claude Code muestra un aviso para el mensaje sin entregarlo
  * `"refuse"`: Claude Code descarta el mensaje
* **Predeterminado**: sin establecer, por lo que Claude Code decide por mensaje

```json settings.json theme={null}
{
  "crossSessionInbound": "hold"
}
```

Claude Code lee primero la configuración administrada, luego la bandera `--settings`, luego la configuración del usuario, y aplica el primer valor encontrado. `refuse` es más estricto que `hold`, y `hold` es más estricto que `accept`. Cuando ninguna de las fuentes confiables establece un valor, un `hold` o `refuse` de proyecto o local aún se aplica, reemplazando el predeterminado por mensaje. En sesiones con mensajería entre sesiones, esta clave aparece en `/config` como **Mensajes de sus otras sesiones**, que la escribe en la configuración del usuario; la fila requiere Claude Code v2.1.232 o posterior, y Claude Code la oculta mientras la bandera `--settings` o la configuración administrada establezcan la clave.

Claude Code [advierte](https://code.claude.com/docs/es/errors.md#crosssessioninbound-must-be-one-of-accept-hold-refuse) cuando establece un valor que no reconoce. Mientras ese valor esté presente en un archivo de usuario, proyecto, local o `--settings`, Claude Code retiene los mensajes entrantes, incluso cuando una fuente que tiene prioridad establece `accept`. Un `refuse` que otra fuente establece aún se aplica. Corrija o elimine el valor para borrar la retención.

Cuando el valor no reconocido está en [configuración administrada](https://code.claude.com/docs/es/managed-settings.md), Claude Code en su lugar lo trata como `refuse` hasta que un administrador lo corrija. Antes de v2.1.248, Claude Code ignoraba un valor no reconocido sin advertencia.

### `disableAgentView`

Desactive [agentes de fondo y vista de agentes](https://code.claude.com/docs/es/agent-view.md): `claude agents`, `--bg`, `/background` y el supervisor bajo demanda. Establézcalo en [configuración administrada](https://code.claude.com/docs/es/managed-settings.md) para aplicarlo en una organización.

* **Alcance**: [`Cualquier archivo`](#scopes)
* **Tipo**: Booleano
  * `true`: Claude Code desactiva `claude agents`, `--bg`, `/background` y el supervisor bajo demanda
  * `false`: la vista de agentes está disponible
* **Predeterminado**: sin establecer, por lo que la vista de agentes está disponible
* **Anulaciones por sesión**: [`CLAUDE_CODE_DISABLE_AGENT_VIEW`](https://code.claude.com/docs/es/env-vars) desactiva la vista de agentes para una sesión; cualquiera de los dos que la desactive, el otro no puede volver a activarla

```json settings.json theme={null}
{
  "disableAgentView": true
}
```

### `isolatePeerMachines`

Requiera su aprobación explícita antes de que `SendMessage` de Claude llegue a una de sus sesiones más allá de esta máquina; consulte [Requiera aprobación para mensajes entre máquinas](https://code.claude.com/docs/es/cross-session-messaging.md#require-approval-for-cross-machine-messages). El aviso de aprobación aparece incluso en [modo `bypassPermissions`](https://code.claude.com/docs/es/permission-modes#skip-all-checks-with-bypasspermissions-mode).

* **Alcance**: [`Cualquier archivo`](#scopes). Un `true` de cualquier alcance se aplica, por lo que un archivo de proyecto registrado puede activar el requisito pero no desactivarlo.
* **Tipo**: Booleano
  * `true`: Claude Code solicita su aprobación antes de que `SendMessage` de Claude llegue a una de sus sesiones más allá de esta máquina
  * `false`: los mensajes entre máquinas no generan aviso
* **Predeterminado**: sin establecer, por lo que los mensajes entre máquinas no generan aviso

```json settings.json theme={null}
{
  "isolatePeerMachines": true
}
```

La aprobación de `SendMessage` entre máquinas requiere Claude Code v2.1.224 o posterior.

### `processWrapper`

En macOS y Linux, coloque un comando de iniciador corporativo delante de los [procesos de fondo que inicia Claude Code](https://code.claude.com/docs/es/corporate-launcher.md#what-the-launcher-covers). Claude Code ejecuta el iniciador con su propia línea de comandos anexada, por lo que el iniciador debe ejecutarse en Claude Code; consulte [Ejecute Claude Code detrás de un iniciador corporativo](https://code.claude.com/docs/es/corporate-launcher.md) para el contrato del iniciador. Requiere Claude Code v2.1.210 o posterior.

* **Alcance**: [`Usuario o administrado`](#scopes)
* **Tipo**: cadena, el comando del iniciador como prefijo argv, como una ruta absoluta con argumentos opcionales
* **Predeterminado**: sin establecer, por lo que los procesos de fondo se inician sin envolver
* **Anulaciones por sesión**: [`CLAUDE_CODE_PROCESS_WRAPPER`](https://code.claude.com/docs/es/env-vars) tiene prioridad sobre esta clave para una sesión

```json settings.json theme={null}
{
  "processWrapper": "/opt/corp/launcher --profile claude"
}
```

Claude Code ignora el iniciador en Windows e inicia cada proceso sin envolver. Requiere Claude Code v2.1.210 o posterior.

### `teammateMode`

Elija dónde Claude Code muestra los compañeros de equipo del [equipo de agentes](https://code.claude.com/docs/es/agent-teams.md): dentro de su panel de terminal principal, o en paneles divididos cuando su terminal los admita. Consulte [Elija un modo de visualización](https://code.claude.com/docs/es/agent-teams.md#choose-a-display-mode).

* **Alcance**: [`Cualquier archivo`](#scopes). Claude Code también lee un valor dejado en `~/.claude.json` por versiones anteriores.
* **Tipo**: cadena, una de:
  * `"in-process"`: los compañeros de equipo se ejecutan dentro de su panel de terminal principal
  * `"auto"`: paneles divididos cuando se ejecuta dentro de tmux, o dentro de iTerm2 con `it2` en su `PATH` o tmux instalado; en proceso de lo contrario
  * `"tmux"`: paneles divididos usando tmux o iTerm2, detectados desde su terminal
  * `"iterm2"`: paneles divididos nativos de iTerm2 a través de la CLI `it2`
* **Predeterminado**: `"in-process"`
* **Anulaciones por sesión**: `--teammate-mode` tiene prioridad sobre esta clave para una sesión

```json settings.json theme={null}
{
  "teammateMode": "auto"
}
```

### `worktree`

Configure cómo Claude Code crea y administra [git worktrees](https://code.claude.com/docs/es/worktrees.md) para `--worktree`, la herramienta `EnterWorktree` y subagentes aislados y sesiones de fondo.

* **Alcance**: [`Cualquier archivo`](#scopes)
* **Tipo**: objeto con `baseRef`, `symlinkDirectories`, `sparsePaths` y `bgIsolation`
* **Predeterminado**: sin establecer

Este ejemplo ramifica nuevos worktrees desde su `HEAD` actual y crea enlaces simbólicos de `node_modules` en cada uno:

```json settings.json theme={null}
{
  "worktree": {
    "baseRef": "head",
    "symlinkDirectories": ["node_modules"]
  }
}
```

Para copiar archivos ignorados por git como `.env` en nuevos worktrees, agregue un [archivo `.worktreeinclude`](https://code.claude.com/docs/es/worktrees#copy-gitignored-files-into-worktrees) a la raíz de su proyecto en lugar de una configuración.

### `worktree.baseRef`

Elija desde qué ref se ramifican los nuevos worktrees. `"fresh"` se ramifica desde `origin/<default-branch>` para un árbol limpio que coincida con el remoto; `"head"` se ramifica desde su `HEAD` local actual, por lo que los commits no enviados y el estado de la rama de características están presentes en el worktree.

* **Alcance**: [`Cualquier archivo`](#scopes)
* **Tipo**: cadena, una de:
  * `"fresh"`: los nuevos worktrees se ramifican desde `origin/<default-branch>`
  * `"head"`: los nuevos worktrees se ramifican desde su `HEAD` local actual, incluidos los commits no enviados
* **Predeterminado**: `"fresh"`

```json settings.json theme={null}
{
  "worktree": {
    "baseRef": "head"
  }
}
```

Dentro de un worktree vinculado, `"head"` se resuelve en el `HEAD` de ese worktree, no en el de la extracción principal.

### `worktree.symlinkDirectories`

Cree enlaces simbólicos de directorios desde el repositorio principal en cada worktree para que no duplique directorios grandes en el disco.

* **Alcance**: [`Cualquier archivo`](#scopes)
* **Tipo**: matriz de cadenas, rutas de directorio relativas a la raíz del repositorio
* **Predeterminado**: sin establecer, por lo que Claude Code no crea enlaces simbólicos de directorios

Este ejemplo crea enlaces simbólicos de `node_modules` y `.cache` desde el repositorio principal en cada nuevo worktree:

```json settings.json theme={null}
{
  "worktree": {
    "symlinkDirectories": ["node_modules", ".cache"]
  }
}
```

### `worktree.sparsePaths`

Extraiga solo los directorios listados en cada worktree a través de git sparse-checkout. Claude Code escribe solo esos directorios más archivos de nivel raíz en el disco, lo que es más rápido en monorepos grandes; consulte [Extraiga solo los directorios que necesita](https://code.claude.com/docs/es/large-codebases.md#check-out-only-the-directories-you-need).

* **Alcance**: [`Cualquier archivo`](#scopes)
* **Tipo**: matriz de cadenas, rutas de directorio relativas a la raíz del repositorio
* **Predeterminado**: sin establecer, por lo que cada worktree extrae el árbol completo

Este ejemplo extrae solo `packages/my-app` y `shared/utils`, más archivos de nivel raíz, en cada worktree:

```json settings.json theme={null}
{
  "worktree": {
    "sparsePaths": ["packages/my-app", "shared/utils"]
  }
}
```

Mientras existe un worktree disperso, git habilita `extensions.worktreeConfig` en el `.git/config` compartido del repositorio.

### `worktree.bgIsolation`

Elige cómo [las sesiones en segundo plano](https://code.claude.com/docs/es/agent-view.md#how-file-edits-are-isolated) aíslan sus ediciones de archivos. Si moviste una sesión a segundo plano con `←` o `/background`, esa sesión edita los archivos en su lugar sin importar lo que diga esta clave. Con `"worktree"`, Claude Code bloquea `Edit` y `Write` en la extracción principal hasta que la sesión llame a `EnterWorktree`; con `"none"`, los trabajos en segundo plano editan la copia de trabajo directamente. Establece `"none"` para un repositorio donde los git worktrees no son prácticos.

* **Alcance**: [`Cualquier archivo`](#scopes)
* **Tipo**: cadena, una de:
  * `"worktree"`: Claude Code bloquea `Edit` y `Write` en la extracción principal hasta que la sesión llame a `EnterWorktree`
  * `"none"`: los trabajos de fondo editan la copia de trabajo directamente
* **Predeterminado**: `"worktree"`

```json settings.json theme={null}
{
  "worktree": {
    "bgIsolation": "none"
  }
}
```

Fuera de un repositorio git, un [hook `WorktreeCreate`](https://code.claude.com/docs/es/worktrees#non-git-version-control) que falla libera el bloqueo para que la sesión pueda editar el directorio de trabajo en su lugar.

### `worktree.location`

Elige la carpeta de una máquina remota donde las [sesiones SSH de Desktop](https://code.claude.com/docs/es/desktop.md#choose-where-ssh-session-worktrees-go) crean sus worktrees, en lugar de `<project-root>/.claude/worktrees/`. Solo la aplicación de escritorio lee esta clave: `--worktree`, la herramienta `EnterWorktree`, los subagentes aislados y las sesiones de fondo la ignoran. Requiere Claude Desktop v1.44121.0 o posterior.

* **Alcance**: [`Usuario`](#scopes), en `~/.claude/settings.json` en la máquina remota
* **Tipo**: cadena, una ruta absoluta o una que comience con `~/`
* **Predeterminado**: sin establecer, por lo que los worktrees se crean dentro del proyecto

Este ejemplo establece la carpeta en `~/worktrees`:

```json settings.json theme={null}
{
  "worktree": {
    "location": "~/worktrees"
  }
}
```

Una **carpeta de worktree** establecida en la conexión SSH en Desktop tiene prioridad. Si tu organización restringe qué carpetas pueden usar las sesiones, Desktop mantiene los worktrees dentro del proyecto.

## Control remoto, escritorio y notificaciones

Configure el Control remoto, los entornos en la nube, la aplicación de escritorio y las notificaciones que Claude Code envía cuando lo necesita. Consulte [Control remoto](https://code.claude.com/docs/es/remote-control.md).

### `agentPushNotifEnabled`

Permite que Claude envíe una notificación push a tu teléfono cuando decida que vale la pena enviarla, por ejemplo cuando finaliza una tarea larga. Claude puede enviarla mientras [Remote Control](https://code.claude.com/docs/es/remote-control.md) está conectado. Aparece en `/config` como **Push when Claude decides**. Cuando lo cambias allí, Claude Code también guarda el valor en tu cuenta.

* **Scope**: [`Any file`](#scopes). Claude Code también lee un valor dejado en `~/.claude.json` por versiones anteriores.
* **Type**: Boolean
  * `true`: Claude puede enviar una notificación push a su teléfono cuando decida que vale la pena enviarla
  * `false`: Claude no envía esas notificaciones
* **Default**: `false`

```json settings.json theme={null}
{
  "agentPushNotifEnabled": true
}
```

Si ejecutas sesiones bajo un servidor de [`claude remote-control`](https://code.claude.com/docs/es/remote-control#start-a-remote-control-session), estas siguen el valor guardado en tu cuenta en lugar de esta clave. Para cambiar ese valor, ejecuta `/config` en una sesión de Claude Code en tu terminal y activa o desactiva **Push when Claude decides**. Si el conmutador ya muestra el valor que quieres, cámbialo y vuelve a cambiarlo para que Claude Code guarde ese valor en tu cuenta.

Consulte [Notificaciones push móviles](https://code.claude.com/docs/es/remote-control.md#mobile-push-notifications).

### `awaySummaryEnabled`

Muestre un resumen de sesión de una línea cuando regrese a la terminal después de estar ausente unos minutos. Establézcalo en `false`, o desactive **Resumen de sesión** en `/config`, para detener el resumen.

* **Scope**: [`Any file`](#scopes)
* **Type**: Boolean
  * `true`: ve un resumen de sesión de una línea cuando regresa después de estar ausente unos minutos
  * `false`: Claude Code no muestra ningún resumen
* **Default**: unset, por lo que el resumen está activado
* **Per-session overrides**: [`CLAUDE_CODE_ENABLE_AWAY_SUMMARY`](https://code.claude.com/docs/es/env-vars) tiene prioridad sobre esta clave para una sesión, en cualquier dirección

```json settings.json theme={null}
{
  "awaySummaryEnabled": false
}
```

Claude Code nunca muestra el resumen en modo no interactivo.

### `disableArtifact`

> [!WARNING]
>
> Deprecated, y reemplazado por [`enableArtifact`](#enableartifact). Claude Code aún honra `disableArtifact: true` como equivalente a `enableArtifact: false`, e ignora `disableArtifact: false`.

Use [`enableArtifact`](#enableartifact) en su lugar para desactivar la herramienta [Artifact](https://code.claude.com/docs/es/artifacts.md), que publica la salida de la sesión como una página web privada en claude.ai. Cuando desactiva la fila **Artifacts** en `/config`, Claude Code escribe `enableArtifact` en su configuración de usuario y borra esta clave.

* **Scope**: [`Any file`](#scopes)
* **Type**: Boolean
  * `true`: Claude Code desactiva la herramienta Artifact para cada sesión a la que se aplique el archivo, y ningún otro archivo la vuelve a activar
  * `false`: ignorado; para dejar la herramienta activada, elimine la clave
* **Default**: unset, por lo que la herramienta sigue la [disponibilidad](https://code.claude.com/docs/es/artifacts.md#availability) de su cuenta
* **Per-session overrides**: [`CLAUDE_CODE_DISABLE_ARTIFACT`](https://code.claude.com/docs/es/env-vars) establecido en `1` desactiva la herramienta para una sesión

```json settings.json theme={null}
{
  "disableArtifact": true
}
```

[Desactivar artefactos](https://code.claude.com/docs/es/artifacts.md#disable-artifacts) enumera todas las formas de desactivar la herramienta.

### `disableDeepLinkRegistration`

Impida que Claude Code registre el controlador del protocolo `claude-cli://` con el sistema operativo, que de otro modo hace después de enviar el primer prompt de una sesión interactiva. Los [enlaces profundos](https://code.claude.com/docs/es/deep-links.md) permiten que herramientas externas abran una sesión de Claude Code con un prompt rellenado previamente. Establézcalo en entornos donde el registro del controlador de protocolo está restringido o se gestiona por separado.

* **Scope**: [`Any file`](#scopes)
* **Type**: la cadena `"disable"`
* **Default**: unset, por lo que Claude Code registra el controlador

```json settings.json theme={null}
{
  "disableDeepLinkRegistration": "disable"
}
```

### `disableDesktopLocalSessions`

Desactiva las sesiones de Code que se ejecutan en el dispositivo en la [aplicación de escritorio](https://code.claude.com/docs/es/desktop.md#local-sessions-on-managed-devices), para despliegues donde los desarrolladores deben trabajar en máquinas remotas a través de SSH. Con la clave establecida en `true`, los usuarios ven esto en la pestaña Code:

* **Selector de entorno**: la entrada del equipo del usuario aparece atenuada y no se puede seleccionar, con la información sobre herramientas **Disabled by your organization**. En Windows, la entrada WSL aparece atenuada de la misma manera, aunque si las sesiones WSL se ejecutan o no en un dispositivo administrado se [rige por separado](https://code.claude.com/docs/es/admin-setup.md#wsl-sessions-in-claude-code-desktop).
* **Sesiones nuevas**: usan de forma predeterminada la primera [conexión SSH](https://code.claude.com/docs/es/desktop.md#ssh-sessions) si hay una configurada
* **Sesiones en el dispositivo**: la aplicación se niega a iniciar o reanudar una sesión en el dispositivo, incluida una conexión SSH de vuelta a la misma máquina
* **Sesiones SSH a otros hosts y sesiones en la nube**: no se ven afectadas

La aplicación de escritorio lee esta clave; la CLI de la terminal la ignora. Requiere Claude Desktop v1.37937.0 o posterior.

* **Scope**: [`Managed`](#scopes). De forma predeterminada, la aplicación de escritorio lee la clave desde [una fuente administrada](https://code.claude.com/docs/es/managed-settings.md#how-claude-code-combines-managed-sources).
* **Type**: Boolean; solo el Boolean JSON `true` tiene efecto
  * `true`: la aplicación de escritorio no ofrece sesiones de Code en el dispositivo; las sesiones locales existentes permanecen listadas pero no pueden continuar
  * `false`: las sesiones locales permanecen disponibles
* **Default**: unset, por lo que las sesiones locales están disponibles

```json managed-settings.json theme={null}
{
  "disableDesktopLocalSessions": true
}
```

La aplicación de escritorio ignora cualquier otro valor, y un valor que no sea un Boolean, como la cadena `"true"` o `1`, también registra una advertencia. Emparéjelo con [`sshConfigs`](#sshconfigs) para que los usuarios lleguen a una conexión que funcione, y con [`sshHostAllowlist`](#sshhostallowlist) para limitar a qué hosts pueden acceder. Consulte [Sesiones locales en dispositivos administrados](https://code.claude.com/docs/es/desktop.md#local-sessions-on-managed-devices).

Claude Desktop proporciona sesiones de Code con política derivada de su configuración de escritorio, por ejemplo la lista de permitidos de salida, el sandbox del sistema de archivos y las restricciones de MCP en implementaciones de terceros. Claude Code ignora esa configuración principal siempre que haya una [fuente de administrador](https://code.claude.com/docs/es/managed-settings.md#how-claude-code-combines-managed-sources): configuración administrada por servidor, una política de MDM o a nivel del SO, o un archivo de configuración administrada. Implementar esta clave a través de una de esas en un dispositivo que no tenía ninguna antes, como en implementaciones de terceros, por lo tanto detiene la aplicación de las políticas derivadas del escritorio. [Permitir que un host de inserción agregue política](https://code.claude.com/docs/es/managed-settings.md#let-an-embedding-host-add-policy) cubre cuándo la configuración principal aún puede fusionarse; esto se aplica a cualquier clave que implemente de esa manera, no solo a esta.

### `disableRemoteControl`

Desactive [Control remoto](https://code.claude.com/docs/es/remote-control.md): Claude Code entonces rechaza `claude remote-control`, la bandera `--remote-control`, el inicio automático y el conmutador en sesión, e informa que la política de su organización lo desactivó. Colóquelo en [configuración administrada](https://code.claude.com/docs/es/managed-settings.md) para la aplicación de políticas de MDM por dispositivo.

* **Scope**: [`Any file`](#scopes)
* **Type**: Boolean
  * `true`: Claude Code rechaza `claude remote-control`, la bandera `--remote-control`, el inicio automático y el conmutador en sesión
  * `false`: Control remoto permanece disponible
* **Default**: `false`

```json settings.json theme={null}
{
  "disableRemoteControl": true
}
```

### `enableArtifact`

Desactiva la herramienta [Artifact](https://code.claude.com/docs/es/artifacts.md), que publica la salida de la sesión como una página web privada en claude.ai. Cuando desactivas la fila **Artifacts** en `/config`, Claude Code escribe esta clave en tu configuración de usuario, por lo que normalmente no la editas a mano.

* **Scope**: [`Any file`](#scopes). Cada archivo puede desactivar la herramienta, y ninguno puede volver a activarla.
* **Type**: Boolean
  * `false`: Claude Code desactiva la herramienta Artifact para cada sesión a la que se aplique el archivo
  * `true`: lo mismo que dejar la clave sin establecer, porque nunca anula un `false` de otro archivo, de [`CLAUDE_CODE_DISABLE_ARTIFACT`](https://code.claude.com/docs/es/env-vars), o de la [configuración de administrador](https://code.claude.com/docs/es/artifacts.md#manage-artifacts-for-your-organization) de su organización
* **Default**: unset, por lo que la herramienta sigue la [disponibilidad](https://code.claude.com/docs/es/artifacts.md#availability) de su cuenta

```json settings.json theme={null}
{
  "enableArtifact": false
}
```

Mientras una fuente que no sea su propia configuración de usuario mantiene la herramienta desactivada, Claude Code oculta la fila **Artifacts** en `/config`, porque activarla allí no cambiaría nada. [Desactivar artefactos](https://code.claude.com/docs/es/artifacts.md#disable-artifacts) enumera todas las formas de desactivar la herramienta.

### `inputNeededNotifEnabled`

Obtenga una notificación push en su teléfono cuando un prompt de permiso o una pregunta esté esperando su entrada. Claude Code envía estas solo mientras [Control remoto](https://code.claude.com/docs/es/remote-control.md) está conectado. Aparece en `/config` como **Enviar notificación cuando se requieran acciones**.

* **Scope**: [`Any file`](#scopes). Claude Code también lee un valor dejado en `~/.claude.json` por versiones anteriores.
* **Type**: Boolean
  * `true`: obtiene una notificación push en su teléfono cuando un prompt de permiso o una pregunta está esperando, mientras Control remoto está conectado
  * `false`: Claude Code no envía tales notificaciones
* **Default**: `false`

```json settings.json theme={null}
{
  "inputNeededNotifEnabled": true
}
```

Consulte [Notificaciones push móviles](https://code.claude.com/docs/es/remote-control.md#mobile-push-notifications).

### `preferredNotifChannel`

Elige cómo te notifica Claude Code cuando una tarea se completa o una solicitud de permiso está esperando. Las [notificaciones de un mod](https://code.claude.com/docs/es/plugins/mods/api.md#show-something-without-starting-a-turn) usan el mismo ajuste. Aparece en `/config` como **Notificaciones locales**.

* **Scope**: [`Any file`](#scopes). Claude Code también lee un valor dejado en `~/.claude.json` por versiones anteriores.
* **Type**: cadena, una de:
  * `"auto"`: Claude Code envía una notificación de escritorio en iTerm2, Ghostty y Kitty, suena la campana en Terminal.app solo cuando su campana audible está desactivada, y no hace nada en otros lugares
  * `"terminal_bell"`: Claude Code suena el carácter de campana en cualquier terminal
  * `"iterm2"`: Claude Code envía una notificación de escritorio de iTerm2
  * `"iterm2_with_bell"`: Claude Code envía una notificación de escritorio de iTerm2 y suena la campana
  * `"kitty"`: Claude Code envía una notificación de escritorio de Kitty
  * `"ghostty"`: Claude Code envía una notificación de escritorio de Ghostty
  * `"notifications_disabled"`: Claude Code no envía notificación
* **Default**: `"auto"`

```json settings.json theme={null}
{
  "preferredNotifChannel": "terminal_bell"
}
```

Con `"auto"`, Claude Code envía una notificación de escritorio en iTerm2, Ghostty y Kitty. En Terminal.app suena el carácter de campana solo cuando ha desactivado la campana audible de Terminal, y en otros terminales no hace nada. Establezca `"terminal_bell"` para sonar el carácter de campana en cualquier terminal. Consulte [Obtener una campana de terminal o notificación](https://code.claude.com/docs/es/terminal-config.md#get-a-terminal-bell-or-notification).

### `remote.defaultEnvironmentId`

Elija el [entorno en la nube](https://code.claude.com/docs/es/cloud-environments.md) predeterminado para las sesiones en la nube que crea desde la CLI, como con `claude --cloud`. Claude Code escribe esta clave en su configuración de usuario cuando elige un entorno con [`/remote-env`](https://code.claude.com/docs/es/cloud-environments#select-an-environment-from-the-cli).

* **Scope**: [`Any file`](#scopes). Para un ID de entorno autohospedado, configuración de usuario o administrada, o la bandera `--settings` solo.
* **Type**: cadena, un ID de entorno como `env_...` o `ccpool_...`
* **Default**: unset, por lo que Claude Code usa el entorno alojado por Anthropic cuando su lista tiene uno, y de lo contrario el primer entorno en su lista que no sea un [entorno puente de Control remoto](https://code.claude.com/docs/es/cloud-environments.md#the-default-environment), o el primer entorno cuando todos son entornos puente
* **Per-session overrides**: `--environment` tiene prioridad sobre esta clave para la sesión en la nube que crea

```json settings.json theme={null}
{
  "remote": {
    "defaultEnvironmentId": "env_0123abcd"
  }
}
```

Un ID de entorno alojado por Anthropic, que comienza con `env_`, sigue la precedencia de configuración estándar, por lo que un valor en la configuración del proyecto de un repositorio anula su selección a nivel de usuario. Un ID de [entorno autohospedado](https://code.claude.com/docs/es/self-hosted-environments), que comienza con `ccpool_`, se honra solo desde la configuración de usuario, la configuración administrada y la bandera `--settings`; Claude Code ignora uno en la configuración de proyecto o local de un repositorio, y `/remote-env` muestra qué valor ignoró, por lo que un archivo registrado no puede dirigir sesiones a un entorno autohospedado que no eligió.

### `remoteControlAtStartup`

Conecte [Control remoto](https://code.claude.com/docs/es/remote-control.md) automáticamente cuando cada sesión interactiva comienza, en lugar de esperar `/remote-control`. Establézcalo en `true` para activar la conexión automática, `false` para desactivarla. Aparece en `/config` como **Habilitar Control remoto para todas las sesiones**.

* **Scope**: [`Any file`](#scopes). Claude Code también lee un valor dejado en `~/.claude.json` por versiones anteriores.
* **Type**: Boolean
  * `true`: Claude Code conecta Control remoto automáticamente cuando cada sesión interactiva comienza
  * `false`: Claude Code espera `/remote-control`
* **Default**: unset, por lo que se aplica el [valor predeterminado de conexión automática](https://code.claude.com/docs/es/remote-control.md#enable-remote-control-for-all-sessions)
* **Per-session overrides**: `--remote-control` activa Control remoto para una sesión incluso cuando esta clave es `false`, y ninguna bandera la desactiva para una sesión

```json settings.json theme={null}
{
  "remoteControlAtStartup": true
}
```

Claude Code ignora un `true` de la configuración de proyecto o local, por lo que un repositorio puede desactivar la conexión automática para su checkout pero no puede activarla. Para el comportamiento completo por scope, consulte [Habilitar Control remoto para todas las sesiones](https://code.claude.com/docs/es/remote-control.md#enable-remote-control-for-all-sessions) y las [claves de seguridad donde se aplica el valor más estricto](https://code.claude.com/docs/es/settings.md#security-keys-where-the-stricter-value-applies).

### `sshConfigs`

Agrega conexiones SSH al selector de entornos de [Desktop](https://code.claude.com/docs/es/desktop.md#pre-configure-ssh-connections-for-your-team). Los administradores usan `sshConfigs` para distribuir conexiones compartidas a un equipo. Los usuarios pueden seleccionar una conexión administrada y [establecer su propia **Worktree folder**](https://code.claude.com/docs/es/desktop.md#set-the-worktree-folder-on-an-existing-connection) para ella. No pueden editar sus otros campos ni eliminarla en la aplicación.

* **Scope**: [`User or managed`](#scopes). La aplicación de escritorio lee esta clave. De forma predeterminada, lee las conexiones administradas desde [una fuente administrada](https://code.claude.com/docs/es/managed-settings.md#how-claude-code-combines-managed-sources).
* **Type**: matriz de objetos, cada uno con `id`, `name` y `sshHost` requeridos y `sshPort` y `sshIdentityFile` opcionales
* **Default**: unset

Este ejemplo agrega una conexión llamada `Dev VM` que se conecta a `user@dev.example.com`:

```json settings.json theme={null}
{
  "sshConfigs": [
    {
      "id": "dev-vm",
      "name": "Dev VM",
      "sshHost": "user@dev.example.com"
    }
  ]
}
```

### `sshHostAllowlist`

Limite los hosts a los que una [sesión SSH de Desktop](https://code.claude.com/docs/es/desktop.md#restrict-which-ssh-hosts-users-can-connect-to) puede conectarse. Solo la aplicación de escritorio lee esta clave; la CLI no. Los patrones no distinguen mayúsculas de minúsculas: `*` coincide con cualquier host, `*.example.com` coincide con `example.com` y cada subdominio, y cualquier otra cosa es una coincidencia exacta contra el nombre de host después de la resolución de `~/.ssh/config`. Una matriz vacía desactiva las sesiones SSH.

Con Claude Desktop v3.1623.0 o posterior, los [jump hosts](https://code.claude.com/docs/es/desktop.md#allow-jump-hosts) de una sesión también tienen que coincidir con un patrón.

* **Scope**: [`Managed`](#scopes). De forma predeterminada, Desktop lee la clave desde [una fuente administrada](https://code.claude.com/docs/es/managed-settings.md#how-claude-code-combines-managed-sources).
* **Type**: matriz de patrones de nombre de host
* **Default**: unset, por lo que se permite cualquier host

Este ejemplo permite `devboxes.example.com` y sus subdominios, más el host exacto `bastion.example.com`:

```json managed-settings.json theme={null}
{
  "sshHostAllowlist": ["*.devboxes.example.com", "bastion.example.com"]
}
```

Un valor que Desktop no puede leer como una lista de hosts, como `true` o un objeto, cuenta como una matriz vacía hasta que lo corrijas, excepto `null`, que cuenta como sin establecer. Requiere Claude Desktop v2.26454.0 o posterior.

Si estableces [`managedSourcesBehavior`](#managedsourcesbehavior) en `"merge"` en tu fuente de mayor rango, Desktop combina las listas de todas las [fuentes de administración](https://code.claude.com/docs/es/managed-settings.md#how-claude-code-combines-managed-sources) y permite un host que coincida con cualquiera de ellas. Si estableces una matriz vacía en una fuente, las sesiones SSH siguen activas para los hosts que enumera otra fuente.

### `sshHostCommands`

Agrega al selector de entornos de [Desktop](https://code.claude.com/docs/es/desktop.md#create-an-ssh-connection-from-a-command) conexiones SSH cuyo host proviene de un comando. Cuando creas una conexión o reemplazas su host, Desktop ejecuta el comando de la entrada en tu computadora y se conecta al host que imprime el comando. Requiere Claude Desktop v3.6556.0 o posterior en macOS o Linux, con la sesión iniciada con una cuenta de Claude.

* **Scope**: [`User or managed`](#scopes). Solo la aplicación de escritorio lee esta clave. Lee las entradas administradas desde [un único archivo de configuración administrada o política de MDM](https://code.claude.com/docs/es/desktop.md#distribute-commands-to-your-team) en la computadora, e ignora la clave en la [configuración administrada por servidor](https://code.claude.com/docs/es/server-managed-settings.md).
* **Type**: matriz de objetos, cada uno con `id`, `name` y `command` requeridos y `sshIdentityFile` y `startDirectory` opcionales. Desktop inicia `command` sin un shell, así que [escríbelo como un programa y argumentos simples](https://code.claude.com/docs/es/desktop.md#write-the-command).
* **Default**: unset

Este ejemplo agrega una conexión llamada `Dev box`, donde `acme-dev create` representa tu propia herramienta:

```json settings.json theme={null}
{
  "sshHostCommands": [
    {
      "id": "devbox",
      "name": "Dev box",
      "command": "acme-dev create"
    }
  ]
}
```

Antes de Claude Code v2.1.307, la herramienta Edit rechazaba un cambio que agregaba esta clave a un archivo de configuración válido, con el error `Unrecognized field: sshHostCommands`. En esas versiones, agrega la clave en un editor de texto; Claude Code carga un archivo que contiene la clave. En Desktop, la versión que cuenta es la [versión de Claude Code de la pestaña Code](https://code.claude.com/docs/es/desktop.md#claude-code-version-in-the-code-tab), no la de tu terminal.

## Autenticación y proveedores

Proporciona credenciales a través de scripts auxiliares y, para organizaciones, fuerza un método de inicio de sesión u organización. Consulta [Autenticación](https://code.claude.com/docs/es/authentication.md).

### `allowedProviders`

Enumera los servicios a través de los cuales una máquina puede acceder a Claude, como la API de Anthropic, Amazon Bedrock o un gateway de LLM. Una sesión en un proveedor que no está en la lista se rechaza al inicio, al iniciar sesión y la próxima vez que contacta con la API, por lo que cambiar a un proveedor no listado a mitad de sesión también se rechaza. El [mensaje de rechazo](https://code.claude.com/docs/es/errors.md#managed-settings-dont-allow-this-api-provider) indica qué seleccionó el proveedor y los pasos para continuar. Requiere Claude Code v2.1.285 o posterior.

* **Scope**: [`Managed`](#scopes). Una lista que establecen las fuentes de administrador propias de la máquina, las políticas MDM y los archivos de configuración administrada, sigue aplicándose cuando la configuración administrada por servidor también entrega una: una sesión puede entonces usar solo los proveedores que figuran en ambas listas, por lo que una lista administrada por servidor puede reducir lo que la máquina permite pero nunca ampliarlo. Qué `allowedProviders` de las fuentes de la máquina cuenta sigue [cómo Claude Code combina las fuentes administradas](https://code.claude.com/docs/es/managed-settings.md#how-claude-code-combines-managed-sources). Una lista entregada solo a través de la configuración administrada por servidor llega únicamente a las sesiones que [obtienen la configuración administrada por servidor](https://code.claude.com/docs/es/server-managed-settings.md#platform-availability).
* **Type**: matriz de strings, cada uno de:
  * `"anthropic"`: la API de Anthropic en el host propio de Anthropic, a través de un inicio de sesión de claude.ai o Console o una clave de API. Combínalo con [`forceLoginMethod`](#forceloginmethod) o [`forceLoginOrgUUID`](#forceloginorguuid) para restringir también el inicio de sesión
  * `"bedrock"`: [Amazon Bedrock](https://code.claude.com/docs/es/amazon-bedrock.md)
  * `"vertex"`: [Agent Platform de Google Cloud](https://code.claude.com/docs/es/google-vertex-ai.md), anteriormente Vertex AI
  * `"foundry"`: [Microsoft Foundry](https://code.claude.com/docs/es/microsoft-foundry.md)
  * `"anthropicAws"`: [Claude Platform on AWS](https://code.claude.com/docs/es/claude-platform-on-aws.md)
  * `"mantle"`: el [endpoint Mantle](https://code.claude.com/docs/es/amazon-bedrock.md#use-the-mantle-endpoint) de Amazon Bedrock. Una sesión que [ejecuta Mantle junto con la API de Invoke](https://code.claude.com/docs/es/amazon-bedrock.md#run-mantle-alongside-the-invoke-api) usa ambos proveedores, así que incluye `"bedrock"` y `"mantle"` juntos para ella
  * `"customEndpoint"`: la API de Anthropic o la API de un proveedor en la nube enviada a otro host, como un [gateway de LLM](https://code.claude.com/docs/es/llm-gateway) indicado por `ANTHROPIC_BASE_URL` o por la variable de endpoint de un proveedor, como `ANTHROPIC_BEDROCK_BASE_URL`. Claude Code lo admite solo para el valor exacto que fija un bloque [`env`](#env) administrado
  * `"gateway"`: un inicio de sesión de [Cloud gateway](https://code.claude.com/docs/es/claude-apps-gateway)
* **Default**: sin establecer, por lo que se puede usar cualquier proveedor

```json managed-settings.json theme={null}
{
  "allowedProviders": ["anthropic", "bedrock"]
}
```

La entrada de cada proveedor en la nube significa el servicio propio de ese proveedor, incluidos sus endpoints regionales, FIPS y privados.

Una entrada que Claude Code no reconoce como nombre de proveedor se descarta y se informa, y el resto de la lista se sigue aplicando. Con una lista vacía, o una en la que ninguna entrada se reconoce, Claude Code rechaza todos los proveedores y no se inicia en la máquina.

#### Endpoints que necesitan un valor fijado en `env` administrado

Un valor fijado es el valor de una variable de endpoint establecido en un bloque [`env`](#env) administrado. Cuando una sesión envía el tráfico de un proveedor a algún lugar distinto del servicio propio de ese proveedor, Claude Code lo admite solo si el valor de la sesión coincide con el valor fijado. Estos endpoints necesitan uno:

* **Sesiones `"customEndpoint"`**: la variable que indica el host, como `ANTHROPIC_BASE_URL`
* **Amazon Bedrock**: las variables `AWS_ENDPOINT_URL`, `AWS_ENDPOINT_URL_BEDROCK` y `AWS_ENDPOINT_URL_BEDROCK_RUNTIME` del SDK de AWS cuando apuntan fuera del servicio propio de Bedrock. La sesión permanece bajo `"bedrock"` en lugar de `"customEndpoint"`
* **La URL de un inicio de sesión de gateway**: la sesión permanece bajo `"gateway"`, y [`forceLoginGatewayUrl`](#forcelogingatewayurl) también cuenta como valor fijado

Qué bloques `env` cuentan como valores fijados depende de dónde se establezca la lista:

* **Una fuente de administrador en la máquina establece una lista**: solo cuentan los bloques `env` de las fuentes de administrador propias de la máquina
* **Solo la configuración administrada por servidor establece una lista**: un valor de `env` en esa configuración administrada por servidor también cuenta

La lista no evalúa las variables de credenciales y tenencia de un proveedor en la nube ni la ruta de red, como `HTTPS_PROXY` y la configuración de certificados. Establécelas para toda la flota en el bloque `env` administrado.

### `apiKeyHelper`

Ejecuta tu propio comando para producir la credencial que Claude Code envía con las solicitudes al modelo. Claude Code ejecuta el comando a través del shell del sistema, `/bin/sh` en macOS y Linux y `cmd` en Windows, y envía su salida como encabezados `X-Api-Key` y `Authorization: Bearer`. Úsalo para credenciales dinámicas o rotativas, como tokens de corta duración obtenidos de un almacén.

* **Scope**: [`Any file`](#scopes)
* **Type**: string, una línea de comando del shell
* **Default**: sin establecer, por lo que Claude Code no ejecuta un auxiliar

```json settings.json theme={null}
{
  "apiKeyHelper": "/bin/generate_temp_api_key.sh"
}
```

Claude Code almacena en caché el valor y vuelve a ejecutar el comando en estos casos:

* Después de la duración de la caché, cinco minutos por defecto o el intervalo que establezcas con [`CLAUDE_CODE_API_KEY_HELPER_TTL_MS`](https://code.claude.com/docs/es/env-vars).
* Cuando una solicitud a la API de Anthropic, directamente o a través de un [gateway de LLM](https://code.claude.com/docs/es/llm-gateway), falla con `401` o `403`.
* Antes de enviar una solicitud a la API de Anthropic, directamente o a través de un gateway de LLM, cuando la salida almacenada en caché es un JWT que expiró después de que el auxiliar lo produjo. Requiere Claude Code v2.1.246 o posterior.

Los dos últimos casos se aplican solo cuando la salida del auxiliar es la credencial que Claude Code envía y `ANTHROPIC_AUTH_TOKEN` no está establecido.

En sesiones interactivas, cuando el comando proviene de la configuración del proyecto o local, Claude Code no lo ejecuta hasta que aceptes la solicitud de confianza del espacio de trabajo. Consulta [Gestión de credenciales](https://code.claude.com/docs/es/authentication.md#credential-management).

### `awsAuthRefresh`

Ejecuta tu propio comando, como `aws sso login`, para actualizar las credenciales de tu directorio `.aws` cuando las que Claude Code tiene para [Amazon Bedrock](https://code.claude.com/docs/es/amazon-bedrock.md) dejen de funcionar. Claude Code verifica primero las credenciales actuales contra STS y ejecuta el comando solo cuando esa verificación falla; luego lee el directorio `.aws` actualizado.

Cuando la verificación falla al mismo tiempo en varios procesos de Claude Code que usan el mismo comando y las mismas credenciales, como terminales o ventanas del IDE separadas, un proceso ejecuta el comando y los demás esperan a esa ejecución en lugar de iniciar la suya. Un proceso que ha esperado 60 segundos con una solicitud pendiente ejecuta el comando por sí mismo. Para desactivar esto, establece [`CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK`](https://code.claude.com/docs/es/env-vars) en `1`.

* **Scope**: [`Any file`](#scopes)
* **Type**: string, una línea de comando del shell
* **Default**: sin establecer, por lo que Claude Code no actualiza las credenciales de AWS por ti

```json settings.json theme={null}
{
  "awsAuthRefresh": "aws sso login --profile myprofile"
}
```

Usa esta clave cuando tu flujo de actualización escriba en `.aws`; usa [`awsCredentialExport`](#awscredentialexport) cuando, en cambio, imprima las credenciales. Consulta [configuración avanzada de credenciales](https://code.claude.com/docs/es/amazon-bedrock.md#advanced-credential-configuration).

### `awsCredentialExport`

Ejecuta tu propio comando que imprima credenciales de AWS como JSON, para que Claude Code pueda llamar a [Amazon Bedrock](https://code.claude.com/docs/es/amazon-bedrock.md) con credenciales que no están en tu directorio `.aws`. Claude Code acepta el formato de salida de `aws sts` y el formato plano de `aws configure export-credentials`, y limita las credenciales a su propio cliente de Bedrock, por lo que los comandos del shell que ejecuta Claude siguen viendo tus credenciales del entorno.

* **Scope**: [`Any file`](#scopes)
* **Type**: string, una línea de comando del shell
* **Default**: sin establecer, por lo que Claude Code usa la cadena de credenciales de AWS del entorno

```json settings.json theme={null}
{
  "awsCredentialExport": "/bin/generate_aws_grant.sh"
}
```

A diferencia de [`awsAuthRefresh`](#awsauthrefresh), Claude Code siempre ejecuta este comando cuando está establecido, sin verificar primero las credenciales del entorno. Consulta [configuración avanzada de credenciales](https://code.claude.com/docs/es/amazon-bedrock.md#advanced-credential-configuration).

### `forceLoginMethod`

Restringe el tipo de cuenta con el que las personas pueden iniciar sesión. Establece `"claudeai"` para permitir solo cuentas de claude.ai, `"console"` para permitir solo cuentas de Claude Console, o `"gateway"` para enviar a las personas a un [cloud gateway](https://code.claude.com/docs/es/claude-apps-gateway) en lugar de un inicio de sesión propio de Anthropic. Los administradores lo establecen en la configuración administrada y lo combinan con [`forceLoginOrgUUID`](#forceloginorguuid) para mantener los inicios de sesión de claude.ai de los desarrolladores dentro de una organización. Si lo estableces en `"claudeai"` o `"console"` en cualquier archivo de configuración, Claude Code también deja de ofrecer el [inicio de sesión en Console sin clave](https://code.claude.com/docs/es/authentication.md#sign-in-without-an-api-key) en las sesiones a las que se aplica ese archivo.

* **Scope**: [`Any file`](#scopes). Claude Code respeta `"gateway"` desde las mismas fuentes que [`forceLoginGatewayUrl`](#forcelogingatewayurl) y lo trata como sin establecer en cualquier otro lugar.
* **Type**: string, uno de:
  * `"claudeai"`: solo las cuentas de claude.ai pueden iniciar sesión
  * `"console"`: solo las cuentas de Claude Console pueden iniciar sesión
  * `"gateway"`: Claude Code envía a las personas a un cloud gateway en lugar de un inicio de sesión propio de Anthropic
* **Default**: sin establecer, por lo que las personas eligen un método de inicio de sesión

```json settings.json theme={null}
{
  "forceLoginMethod": "claudeai"
}
```

Todas las vías de inicio de sesión propias de Anthropic aplican la restricción, incluidas la [extensión de VS Code](https://code.claude.com/docs/es/vs-code.md), el Agent SDK, `claude setup-token` e `/install-github-app`, excepto la pantalla de inicio de sesión interactiva de la terminal, a la que se llega con `/login` o con la configuración inicial de la primera ejecución, que preselecciona el método sin imponerlo. Antes de v2.1.212, solo los inicios de sesión de la terminal lo aplicaban. Consulta [Restringir el inicio de sesión a tu organización](https://code.claude.com/docs/es/authentication.md#restrict-login-to-your-organization) para ver cómo se manejan cada vía de inicio de sesión, las credenciales del entorno y los proveedores de terceros.

Cuando una fuente administrada en la máquina establece `"gateway"`, Claude Code no usa un inicio de sesión previo que haya quedado, una clave de API ni una credencial de `apiKeyHelper`. Consulta [La política del administrador requiere un inicio de sesión en Cloud gateway](https://code.claude.com/docs/es/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in) para ver el mensaje que produce cada uno. Si seleccionas un proveedor en la nube mediante `CLAUDE_CODE_USE_BEDROCK` o una variable de entorno similar, la sesión no necesita el inicio de sesión en el gateway. Antes de v2.1.261, Claude Code usaba un inicio de sesión previo que hubiera quedado en estas máquinas.

### `forceLoginGatewayUrl`

Establece la URL del gateway a la que se conecta la pantalla Cloud gateway de `/login`, para que las personas lleguen a tu [cloud gateway](https://code.claude.com/docs/es/claude-apps-gateway) sin escribir su dirección. La pantalla no tiene un campo de URL: con esta clave establecida, muestra la URL de tu gateway y se conecta cuando la persona presiona Intro; sin ella, le indica que se comunique con su administrador de TI.

En la configuración administrada, esta clave o `forceLoginMethod: "gateway"` hace que la máquina sea solo de gateway, excepto para las sesiones que seleccionen un proveedor en la nube con `CLAUDE_CODE_USE_*`. `/login` entonces se abre en la pantalla Cloud gateway sin selector de método de inicio de sesión. Consulta [La política del administrador requiere un inicio de sesión en Cloud gateway](https://code.claude.com/docs/es/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in) para ver qué sucede con un inicio de sesión propio de Anthropic que haya quedado o con una clave de API. Establece ambas claves para que la pantalla se conecte en lugar de mostrar un error.

* **Scope**: [`User or managed`](#scopes). Se lee desde una fuente administrada en la máquina: `managed-settings.json`, el plist de macOS o el registro HKLM de Windows, o un auxiliar de políticas. En una máquina sin ninguna de ellas, Claude Code v2.1.295 o posterior también lo lee desde la [configuración de usuario](https://code.claude.com/docs/es/claude-apps-gateway#set-the-gateway-url-in-user-settings). Claude Code lo ignora en la configuración HKCU y en la administrada por servidor.
* **Type**: string, una URL completa que incluya el esquema
* **Default**: sin establecer, por lo que la pantalla Cloud gateway muestra un error que indica a las personas que se comuniquen con su administrador de TI

```json managed-settings.json theme={null}
{
  "forceLoginGatewayUrl": "https://claude-gateway.example.com"
}
```

Si el valor no es una URL válida, la pantalla de inicio de sesión lo informa, y el resto del archivo de configuración administrada sigue aplicándose. Consulta [Establecer la URL del gateway](https://code.claude.com/docs/es/claude-apps-gateway#set-the-gateway-url).

### `forceLoginOrgUUID`

Desde una fuente administrada, exige que los inicios de sesión con cuentas de claude.ai pertenezcan a una organización de Anthropic, indicada como un único UUID, o a cualquiera de varias organizaciones, indicadas como una matriz. Desde cualquier archivo de configuración, Claude Code también usa un único UUID para preseleccionar esa organización durante un inicio de sesión en claude.ai o Claude Console, y no preselecciona nada si es una matriz. Si estableces la clave en cualquier archivo de configuración, Claude Code también deja de ofrecer el [inicio de sesión en Console sin clave](https://code.claude.com/docs/es/authentication.md#sign-in-without-an-api-key) en las sesiones a las que se aplica ese archivo y, en su lugar, crea una clave de API.

* **Scope**: [`Any file`](#scopes). Solo una fuente administrada impone la restricción; un único UUID en cualquier otro archivo de configuración preselecciona la organización durante el inicio de sesión sin restringirla.
* **Type**: string, un UUID, o matriz de strings, varios UUID
* **Default**: sin establecer, por lo que cualquier organización puede iniciar sesión

Este ejemplo acepta inicios de sesión de cualquiera de dos organizaciones sin preseleccionar ninguna:

```json managed-settings.json theme={null}
{
  "forceLoginOrgUUID": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"]
}
```

Si una fuente administrada establece una matriz vacía, o un valor que no es un string ni una matriz de strings, los usuarios que inician sesión con una cuenta de Anthropic no pueden iniciar Claude Code ni completar un inicio de sesión. Ven un mensaje que menciona `forceLoginOrgUUID` y les indica que se comuniquen con su administrador. En cambio, un [`policyHelper`](#policyhelper) que emite un valor del tipo incorrecto [hace fallar su ejecución](#helper-failures).

Consulta [Restringir el inicio de sesión a tu organización](https://code.claude.com/docs/es/authentication.md#restrict-login-to-your-organization) para ver cómo trata Claude Code los inicios de sesión de Claude Console, las demás vías de inicio de sesión y las credenciales del entorno.

### `gatewayInternalNetworks`

Declara los bloques IPv4 públicos a partir de los cuales tu organización numera su red interna, para que `/login` acepte un [cloud gateway](https://code.claude.com/docs/es/claude-apps-gateway) en ellos. Requiere Claude Code v2.1.268 o posterior.

Sin esta clave, `/login` se conecta a cualquier gateway en una dirección privada y a nada más. Con ella, `/login` también acepta un gateway dentro de un bloque de la lista, solo a través de una conexión directa. La dirección propia de la máquina en esa conexión también debe estar dentro del mismo bloque.

* **Scope**: [`Managed`](#scopes). Se lee solo desde una fuente en la máquina: `managed-settings.json`, el plist de macOS o el registro HKLM de Windows, o un auxiliar de políticas. Claude Code lo ignora en la configuración HKCU y en la administrada por servidor.
* **Type**: matriz de strings, como máximo cuatro bloques CIDR IPv4, cada uno de `/8` a `/32`, sin superponerse entre sí y sin que ninguno se superponga con el espacio privado.
* **Default**: sin establecer, por lo que `/login` acepta solo gateways en direcciones privadas

```json managed-settings.json theme={null}
{
  "gatewayInternalNetworks": ["203.0.113.0/24"]
}
```

Reemplaza el rango de documentación del ejemplo por tu propio bloque. Claude Code rechaza los rangos de documentación, los rangos que los clientes de VPN y NAT64 usan localmente y el espacio reservado a partir del cual no se numera ninguna red, como el de multidifusión.

Si una entrada no es válida, o el valor no es una lista de strings, `/login` indica el problema y rechaza todo nuevo inicio de sesión en un gateway en la máquina hasta que corrijas el valor. Los inicios de sesión existentes siguen funcionando. Consulta [Permitir un gateway en espacio de direcciones públicas de tu propiedad](https://code.claude.com/docs/es/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) para ver las reglas completas y lo que ven los desarrolladores.

### `gcpAuthRefresh`

Ejecuta tu propio comando para actualizar las Application Default Credentials de Google Cloud cuando Claude Code detecte que han expirado o no se pueden cargar, para que las solicitudes a [Agent Platform de Google Cloud](https://code.claude.com/docs/es/google-vertex-ai.md) sigan funcionando sin que tengas que volver a autenticarte manualmente.

Cuando varios procesos de Claude Code que usan el mismo comando y las mismas credenciales, como terminales o ventanas del IDE separadas, detectan al mismo tiempo que han expirado, un proceso ejecuta el comando y los demás esperan a esa ejecución en lugar de iniciar la suya. Un proceso que ha esperado 60 segundos con una solicitud pendiente ejecuta el comando por sí mismo. Para desactivar esto, establece [`CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK`](https://code.claude.com/docs/es/env-vars) en `1`.

* **Scope**: [`Any file`](#scopes)
* **Type**: string, una línea de comando del shell
* **Default**: sin establecer, por lo que el error de credenciales de Claude Code te indica que ejecutes `gcloud auth application-default login` tú mismo

```json settings.json theme={null}
{
  "gcpAuthRefresh": "gcloud auth application-default login"
}
```

Consulta [configuración avanzada de credenciales](https://code.claude.com/docs/es/google-vertex-ai.md#advanced-credential-configuration).

### `otelHeadersHelper`

Ejecuta tu propio comando para generar los encabezados que Claude Code envía con las exportaciones de OpenTelemetry, para backends cuyos tokens rotan. Claude Code lo ejecuta al inicio y periódicamente después, y espera un objeto JSON de valores de encabezado de tipo string en stdout.

* **Scope**: [`Any file`](#scopes)
* **Type**: string, una ruta de ejecutable o una línea de comando del shell
* **Default**: sin establecer, por lo que Claude Code no agrega encabezados generados por un auxiliar

```json settings.json theme={null}
{
  "otelHeadersHelper": "/bin/generate_otel_headers.sh"
}
```

Establece el intervalo de actualización con [`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](https://code.claude.com/docs/es/env-vars). Consulta [Encabezados dinámicos](https://code.claude.com/docs/es/monitoring-usage.md#dynamic-headers) para ver los requisitos del script y qué sucede cuando el auxiliar falla.

## Actualizaciones y versiones

Elija un canal de actualización y, para las organizaciones, fije las versiones que las personas pueden ejecutar. Consulte [Actualizar Claude Code](https://code.claude.com/docs/es/setup.md#update-claude-code).

### `autoUpdatesChannel`

Elija qué [canal de lanzamiento](https://code.claude.com/docs/es/setup.md#configure-release-channel) siguen las actualizaciones automáticas en segundo plano y `claude update`. Establezca `"stable"` para una versión que típicamente tiene aproximadamente una semana de antigüedad y omite lanzamientos con regresiones importantes, o `"latest"` para el lanzamiento más reciente.

* **Alcance**: [`Any file`](#scopes). Establézcalo en configuración administrada para aplicar un canal en toda su organización.
* **Tipo**: cadena, uno de:
  * `"latest"`: las actualizaciones siguen el lanzamiento más reciente
  * `"stable"`: las actualizaciones siguen una versión que típicamente tiene aproximadamente una semana de antigüedad y omite lanzamientos con regresiones importantes
* **Predeterminado**: sin establecer, por lo que Claude Code sigue `"latest"`

```json settings.json theme={null}
{
  "autoUpdatesChannel": "stable"
}
```

Claude Code escribe `"stable"` en su configuración de usuario cuando lo elige en **Auto-update channel** en `/config`, y elimina la clave cuando vuelve a cambiar a latest allí. `claude install stable` y `claude install latest` también guardan el canal que nombre. Cambiar de `"latest"` a `"stable"` en `/config` pregunta si permitir una degradación o permanecer en su versión actual; permanecer establece [`minimumVersion`](#minimumversion). Las instalaciones de Homebrew ignoran esta clave: el cask `claude-code` rastrea stable y `claude-code@latest` rastrea latest, y `claude update` se remite a `brew upgrade`. Para desactivar las actualizaciones automáticas por completo, establezca [`DISABLE_AUTOUPDATER`](https://code.claude.com/docs/es/setup#disable-auto-updates) en `env`.

### `minimumVersion`

Evite que las actualizaciones automáticas en segundo plano y `claude update` instalen cualquier versión inferior a esta, de modo que cambiar al canal `"stable"` no lo degrada desde una compilación `"latest"` más reciente. Claude Code escribe esta clave para usted cuando elige permanecer en su versión actual mientras cambia de canal en `/config`, y la borra cuando vuelve a cambiar a `"latest"`.

* **Alcance**: [`Any file`](#scopes). Establézcalo en configuración administrada para fijar un mínimo en toda la organización que la configuración de usuario y proyecto no pueda reducir.
* **Tipo**: cadena, un número de versión como `"2.1.100"`; un valor que no sea una versión válida se ignora
* **Predeterminado**: sin establecer, por lo que las actualizaciones pueden instalar cualquier versión que el canal ofrezca

Este ejemplo sigue el canal stable y se niega a instalar cualquier versión inferior a 2.1.100:

```json settings.json theme={null}
{
  "autoUpdatesChannel": "stable",
  "minimumVersion": "2.1.100"
}
```

Esta clave solo restringe las actualizaciones. Para hacer que Claude Code se niegue a iniciarse por debajo de una versión, use [`requiredMinimumVersion`](#requiredminimumversion) en su lugar. Consulte [Fijar una versión mínima](https://code.claude.com/docs/es/setup.md#pin-a-minimum-version).

### `requiredMaximumVersion`

Establezca la versión más reciente de Claude Code que su organización permite iniciar. Cuando la versión en ejecución es más reciente, Claude Code se cierra al iniciarse y le dice al usuario que instale una versión aprobada a través del método aprobado de su organización; `claude install <version>` también puede funcionar. Requiere Claude Code v2.1.163 o posterior.

* **Alcance**: [`Managed`](#scopes). Claude Code no da advertencia cuando ignora la clave en otro lugar.
* **Tipo**: cadena, un número de versión como `"2.1.150"`; un valor que no sea una versión válida se ignora
* **Predeterminado**: sin establecer, por lo que no se aplica límite superior

```json managed-settings.json theme={null}
{
  "requiredMaximumVersion": "2.1.150"
}
```

Las actualizaciones automáticas en segundo plano y `claude update` omiten versiones por encima del límite, por lo que una instalación dentro del rango permanece dentro de él. `claude update`, `claude install` y `claude doctor` continúan funcionando por encima del límite para que los usuarios puedan recuperarse. Emparéjelo con [`requiredMinimumVersion`](#requiredminimumversion) para aplicar un rango.

### `requiredMinimumVersion`

Establezca la versión más antigua de Claude Code que su organización permite iniciar. Cuando la versión en ejecución es más antigua, Claude Code se cierra al iniciarse y le dice al usuario que actualice a través del método aprobado de su organización. La verificación se ejecuta solo al iniciarse, por lo que una sesión que ya se está ejecutando continúa. Requiere Claude Code v2.1.163 o posterior.

* **Alcance**: [`Managed`](#scopes). Claude Code no da advertencia cuando ignora la clave en otro lugar.
* **Tipo**: cadena, un número de versión como `"2.1.150"`; un valor que no sea una versión válida se ignora
* **Predeterminado**: sin establecer, por lo que no se aplica límite inferior

```json managed-settings.json theme={null}
{
  "requiredMinimumVersion": "2.1.150"
}
```

`claude update`, `claude install` y `claude doctor` continúan funcionando por debajo del límite para que los usuarios puedan recuperarse. A diferencia de [`minimumVersion`](#minimumversion), que solo previene degradaciones, esta clave bloquea el inicio. Emparéjelo con [`requiredMaximumVersion`](#requiredmaximumversion) para aplicar un rango.

## Herramientas

Desactive herramientas específicas en la [aplicación de escritorio Claude Code](https://code.claude.com/docs/es/desktop.md). La CLI de terminal ignora estas claves. Para las herramientas en sí, consulte [Herramientas disponibles para Claude](https://code.claude.com/docs/es/tools-reference.md).

### `browserExternalPageTools`

Impida que Claude use sus herramientas para leer o actuar en páginas externas en el [panel Navegador](https://code.claude.com/docs/es/desktop.md#browse-external-sites) de la aplicación de escritorio. Las personas en su organización aún pueden abrir sitios externos por sí mismas, y las vistas previas del servidor de desarrollo local siguen funcionando con las herramientas de Claude. La aplicación de escritorio lee esta clave; la CLI de terminal la ignora.

* **Alcance**: [`Managed`](#scopes)
* **Tipo**: cadena, `"disabled"`; la aplicación de escritorio también acepta `"disable"`, en cualquier caso
* **Predeterminado**: sin establecer, por lo que las herramientas de Claude funcionan en páginas externas

```json managed-settings.json theme={null}
{
  "browserExternalPageTools": "disabled"
}
```

Cualquier otro valor deja las herramientas de Claude activadas, y una cadena no vacía que no sea uno de los dos valores aceptados registra una advertencia. Para bloquear sitios externos tanto para personas como para Claude, establezca [`disableBrowserExternalNavigation`](#disablebrowserexternalnavigation) en su lugar. Consulte [Restringir la navegación externa para su organización](https://code.claude.com/docs/es/desktop.md#restrict-external-browsing-for-your-organization).

### `disableBrowserExternalNavigation`

Desactive la navegación externa en el [panel Navegador](https://code.claude.com/docs/es/desktop.md#browse-external-sites) de la aplicación de escritorio tanto para personas como para Claude. Las vistas previas del servidor de desarrollo localhost siguen funcionando. La aplicación de escritorio lee esta clave; la CLI de terminal la ignora.

* **Alcance**: [`Managed`](#scopes)
* **Tipo**: Booleano; solo el Booleano JSON `true` tiene efecto
  * `true`: la aplicación de escritorio desactiva la navegación externa en el panel Navegador tanto para personas como para Claude; las vistas previas de localhost siguen funcionando
  * `false`: la navegación externa permanece activada
* **Predeterminado**: sin establecer, por lo que la navegación externa está activada

```json managed-settings.json theme={null}
{
  "disableBrowserExternalNavigation": true
}
```

La aplicación de escritorio ignora cualquier otro valor, y un valor que no sea un Booleano, como la cadena `"true"` o `1`, también registra una advertencia. Para dejar la navegación externa activada pero mantener las herramientas de Claude desactivadas en páginas externas, establezca [`browserExternalPageTools`](#browserexternalpagetools) en su lugar. Consulte [Restringir la navegación externa para su organización](https://code.claude.com/docs/es/desktop.md#restrict-external-browsing-for-your-organization).

### `disableMobileSimulatorTools`

Bloquee las herramientas de Claude para el [panel Simulador de iOS](https://code.claude.com/docs/es/desktop-ios-simulator.md#turn-off-simulator-access) de la aplicación de escritorio. Las personas mantienen el uso manual del panel; solo se elimina el acceso de Claude, y nadie puede reactivarlo desde dentro de la aplicación. La aplicación de escritorio lee esta clave; la CLI de terminal la ignora.

* **Alcance**: [`Managed`](#scopes)
* **Tipo**: Booleano; solo el Booleano JSON `true` tiene efecto
  * `true`: la aplicación de escritorio bloquea las herramientas de Claude para el panel Simulador de iOS
  * `false`: las herramientas del simulador de Claude siguen la configuración de alternancia de cada persona en la aplicación de escritorio
* **Predeterminado**: sin establecer, por lo que las herramientas del simulador de Claude siguen la configuración de alternancia de cada persona en la aplicación de escritorio

```json managed-settings.json theme={null}
{
  "disableMobileSimulatorTools": true
}
```

La aplicación de escritorio ignora cualquier otro valor, y un valor que no sea un Booleano, como la cadena `"true"` o `1`, también registra una advertencia.

## Privacidad y telemetría

Controle cuánto tiempo Claude Code mantiene los datos de la sesión y qué envía. Los interruptores que desactivan las métricas de uso y los informes de errores son variables de entorno, no claves de configuración: establezca `DISABLE_TELEMETRY`, `DISABLE_ERROR_REPORTING` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` en la clave [`env`](#env) o en el shell. [Telemetry services](https://code.claude.com/docs/es/data-usage.md#telemetry-services) dice qué desactiva cada uno. Dos excepciones se desactivan desde un archivo de configuración: [`feedbackDrafts`](#feedbackdrafts) a continuación para comentarios redactados por Claude, y [`feedbackSurveyRate`](#feedbacksurveyrate) a continuación para la encuesta de sesión.

### `cleanupPeriodDays`

Establezca cuántos días Claude Code mantiene [transcripciones de sesión y otros datos de aplicación](https://code.claude.com/docs/es/claude-directory.md#cleaned-up-automatically) antes de eliminarlos. Claude Code ejecuta la eliminación como un barrido de fondo después de que comienza una sesión, siempre que pueda determinar de forma segura el período de retención. El barrido elimina transcripciones sin mostrar un mensaje, por lo que una sesión que no ha utilizado durante más tiempo que el período de retención ya no aparece en el selector [`/resume`](https://code.claude.com/docs/es/sessions#resume-a-session).

* **Scope**: [`Any file`](#scopes)
* **Type**: número de días, un número entero, mínimo `1`
* **Default**: `30`

```json settings.json theme={null}
{
  "cleanupPeriodDays": 20
}
```

Establecer `0` falla en la validación, así que elija un valor grande como `3650` para una retención prolongada. Para evitar que Claude Code escriba transcripciones en absoluto, consulte [Plaintext storage](https://code.claude.com/docs/es/claude-directory.md#plaintext-storage).

### `desktopSessionCleanupPeriodDays`

Establece un límite de antigüedad en días para las transcripciones de sesiones que iniciaste o continuaste más recientemente en Claude Desktop o Cowork. Sin esta clave, Claude Code [mantiene esas transcripciones a cualquier edad](https://code.claude.com/docs/es/claude-directory.md#cleaned-up-automatically). Claude Code elimina cada una una vez que es más antigua que tanto este límite como [`cleanupPeriodDays`](#cleanupperioddays), así que con `cleanupPeriodDays` en su valor predeterminado de 30, un valor de `7` aún las mantiene 30 días. [Cleaned up automatically](https://code.claude.com/docs/es/claude-directory.md#cleaned-up-automatically) enumera los casos en los que se aplica `cleanupPeriodDays` en su lugar y Claude Code ignora esta clave. Requiere Claude Code v2.1.248 o posterior.

* **Scope**: [`User or managed`](#scopes). Claude Code también lee la clave de un archivo que pasa con `--settings`, e la ignora en la configuración de proyecto y local.
* **Type**: número de días, un número entero, mínimo `0`
* **Default**: `0`, que no establece límite de antigüedad

```json settings.json theme={null}
{
  "desktopSessionCleanupPeriodDays": 90
}
```

### `feedbackDrafts`

Controle [comentarios redactados por Claude](https://code.claude.com/docs/es/tools-reference.md#sendfeedback-tool-behavior): si Claude puede poner en cola borradores de comentarios para que usted revise, y si Claude Code muestra una tarjeta cuando Claude pone en cola uno.

* **Scope**: [`User or managed`](#scopes)
* **Type**: cadena, una de `"notify"`, `"quiet"` o `"off"`
  * `"notify"`: Claude Code muestra una tarjeta encima del mensaje cuando Claude pone en cola un borrador, hasta [tres tarjetas en una sesión](https://code.claude.com/docs/es/tools-reference.md#what-you-see-when-claude-drafts) de forma predeterminada
  * `"quiet"`: Claude redacta sin una tarjeta. Usted ve el recuento de borradores en cola en el pie de página del mensaje y los revisa en `/feedback`
  * `"off"`: Claude Code elimina la herramienta SendFeedback, por lo que Claude no puede poner en cola borradores
* **Default**: `"notify"`
* **Per-session overrides**: [`CLAUDE_CODE_SEND_FEEDBACK`](https://code.claude.com/docs/es/env-vars) establecido en `0` desactiva la función para una sesión

```json settings.json theme={null}
{
  "feedbackDrafts": "quiet"
}
```

Aparece en `/config` como **Claude-drafted feedback**, que escribe esta clave en su configuración de usuario. Usted ve la fila `/config` solo en sesiones [donde Claude puede redactar comentarios](https://code.claude.com/docs/es/tools-reference.md#sessions-without-claude-drafted-feedback); establecer `"off"` no la oculta, así que puede activar la función nuevamente desde la misma fila. Un valor en la configuración administrada tiene prioridad sobre su configuración de usuario, así que cuando un administrador establece esta clave, la fila muestra el valor administrado y cambiarla no tiene efecto. Claude Code ignora esta clave en la configuración de proyecto y local.

### `feedbackSurveyRate`

Establezca la probabilidad de que la [encuesta de calidad de sesión](https://code.claude.com/docs/es/data-usage.md#session-quality-surveys) aparezca cuando una sesión sea elegible para ella. Establezca `0` para evitar que aparezca la encuesta.

* **Scope**: [`Any file`](#scopes)
* **Type**: número entre `0` y `1`
* **Default**: sin establecer, por lo que Claude Code utiliza la tasa que Anthropic establece de forma remota, o su tasa integrada de `0.005` en Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, que no reciben configuración remota
* **Per-session overrides**: [`CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY`](https://code.claude.com/docs/es/env-vars) establecido en `1` desactiva la encuesta para una sesión cualquiera que sea la tasa que esta clave establece

```json settings.json theme={null}
{
  "feedbackSurveyRate": 0.05
}
```

La misma tasa se aplica a la encuesta en la extensión de VS Code.

### `skipWebFetchPreflight`

Omita la [verificación de seguridad del dominio WebFetch](https://code.claude.com/docs/es/data-usage.md#webfetch-domain-safety-check), que envía cada nombre de host solicitado a `api.anthropic.com` antes de obtener. Establezca `true` en entornos que bloquean el tráfico a Anthropic, como Amazon Bedrock, Google Cloud's Agent Platform o implementaciones de Microsoft Foundry con salida restrictiva.

* **Scope**: [`Any file`](#scopes)
* **Type**: Booleano
  * `true`: Claude Code omite la verificación de seguridad del dominio WebFetch
  * `false`: la verificación se ejecuta antes de la primera obtención de cada nombre de host en una sesión, y nuevamente para un nombre de host cuya verificación anterior fue bloqueada o falló
* **Default**: sin establecer, por lo que la verificación se ejecuta antes de la primera obtención de cada nombre de host en una sesión

```json settings.json theme={null}
{
  "skipWebFetchPreflight": true
}
```

Con la verificación omitida, WebFetch intenta cualquier URL sin consultar la lista de bloqueos, así que emparéjela con [reglas de permiso `WebFetch`](https://code.claude.com/docs/es/permissions#webfetch) si necesita restringir qué dominios puede alcanzar Claude.

## Configuración empresarial y administrada

Claves que una organización utiliza para calcular, actualizar y combinar configuraciones administradas. Consulte [Configurar configuraciones administradas](https://code.claude.com/docs/es/admin-setup.md).

### `disableSideloadFlags`

Rechaza las banderas CLI `--plugin-dir`, `--plugin-url`, `--agents` y `--mcp-config` al iniciar, que los usuarios podrían pasar de otra manera para eludir [`strictKnownMarketplaces`](#strictknownmarketplaces) en una única ejecución. Claude Code sale con un error que nombra las banderas rechazadas. En [sesiones en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md), Claude Code inicia la sesión y descarta todas las entradas `--mcp-config` entregadas por el servidor excepto las entradas `type: "sdk"` en proceso y las herramientas de Slack de una sesión [Claude Tag](https://code.claude.com/docs/es/claude-tag.md). Requiere Claude Code v2.1.193 o posterior.

* **Alcance**: [`Managed`](#scopes)
* **Tipo**: Booleano
  * `true`: Claude Code rechaza `--plugin-dir`, `--plugin-url`, `--agents` y `--mcp-config` al iniciar y sale con un error que los nombra. En sesiones en la nube, inicia la sesión y descarta todas las entradas `--mcp-config` entregadas por el servidor excepto las entradas `type: "sdk"` en proceso y las herramientas de Slack de una sesión Claude Tag
  * `false`: Claude Code acepta esas banderas
* **Predeterminado**: `false`

```json managed-settings.json theme={null}
{
  "disableSideloadFlags": true
}
```

Claude Code aún acepta un `--mcp-config` cuyos servidores son todas entradas `type: "sdk"` en proceso, por lo que el Agent SDK y la extensión de VS Code siguen funcionando. Los usuarios aún pueden agregar servidores con `claude mcp add` o un archivo `.mcp.json`; para control por servidor, establezca también [`allowedMcpServers`](https://code.claude.com/docs/es/managed-mcp). Requiere Claude Code v2.1.193 o posterior.

La misma verificación cubre carpetas de plugins nombradas en la variable de entorno [`CLAUDE_CODE_PLUGIN_DIRS`](https://code.claude.com/docs/es/env-vars#variables), que requiere Claude Code v2.1.280 o posterior. Cuando la variable nombra una carpeta, Claude Code sale con el mismo error, y el error dice desactivar la variable.

En sesiones en la nube, Claude Code también ignora las actualizaciones MCP entregadas por el servidor a mitad de sesión, la ruta detrás de la configuración de sesión en la nube y las llamadas `setMcpServers()` del SDK que llegan a esas sesiones. Las entradas `type: "sdk"` en proceso y las herramientas de Slack de una sesión Claude Tag permanecen exentas allí también. Antes de v2.1.268, tanto este descarte como el descarte de inicio también eliminaban las herramientas de Slack de una sesión Claude Tag. Antes de v2.1.239, un `--mcp-config` entregado por el servidor bloqueaba el inicio de una sesión en la nube.

La aplicación de escritorio administra algunos plugins por sí misma, incluidos los plugins sincronizados desde claude.ai y los plugins que su organización implementa a través de la aplicación. Si implementa esta clave en un dispositivo a través de MDM, política a nivel del SO o un archivo de configuraciones administradas, la aplicación de escritorio no pasa esos plugins a las siguientes sesiones en ese dispositivo:

* **[Sesiones de código en la máquina del usuario](https://code.claude.com/docs/es/desktop.md#environment-configuration)**: también comienzan sin las habilidades habilitadas para la cuenta claude.ai del usuario. Los plugins que Claude Code instala desde mercados en sus configuraciones administradas aún se cargan. En [Claude Desktop en 3P](https://claude.com/docs/third-party/claude-desktop/overview), los servidores MCP de los plugins que implementa en el directorio `org-plugins` del dispositivo permanecen disponibles también, porque la aplicación de escritorio se conecta a ellos misma. Antes de Claude Desktop v1.37937.0, estas sesiones fallaban al iniciar en su lugar.
* **[Sesiones de Cowork en la máquina del usuario](https://code.claude.com/docs/es/managed-settings.md#where-and-when-a-policy-applies)**: las habilidades dentro de esos plugins y las habilidades habilitadas para la cuenta claude.ai del usuario permanecen disponibles. En [Claude Desktop en 3P](https://claude.com/docs/third-party/claude-desktop/overview), los servidores MCP de los plugins que implementa en el directorio `org-plugins` del dispositivo permanecen disponibles también, porque la aplicación de escritorio se conecta a ellos misma. Antes de Claude Desktop v1.44121.0, estas sesiones fallaban al iniciar en su lugar.

### `forceRemoteSettingsRefresh`

Bloquea el inicio de la CLI hasta que Claude Code haya obtenido recientemente [configuraciones administradas por el servidor](https://code.claude.com/docs/es/server-managed-settings.md). Si la obtención falla, Claude Code sale en lugar de continuar con configuraciones en caché o sin configuraciones. Establézcalo cuando su entorno no pueda aceptar ni siquiera una breve ventana en la que una sesión se ejecute sin su política administrada.

Cuando la clave no está establecida, Claude Code no bloquea el inicio en la obtención, aunque cuando el desarrollador inicia sesión al iniciar espera hasta cinco segundos para la obtención. Una sesión de puerta de enlace en la nube siempre espera y sale si no se puede alcanzar la puerta de enlace.

* **Alcance**: [`Managed`](#scopes). Claude Code honra un `true` de cualquier fuente administrada controlada por administrador, incluso una que no sea la fuente de mayor prioridad.
* **Tipo**: Booleano
  * `true`: Claude Code bloquea el inicio hasta que haya obtenido recientemente configuraciones administradas por el servidor y sale si la obtención falla
  * `false`: Claude Code no bloquea el inicio en la obtención, aunque en un inicio de inicio de sesión espera hasta cinco segundos para la obtención
* **Predeterminado**: `false`

```json managed-settings.json theme={null}
{
  "forceRemoteSettingsRefresh": true
}
```

Establézcalo en un perfil MDM o el archivo de configuraciones administradas para aplicar el inicio cerrado por error antes de que llegue la primera carga útil del servidor. Claude Code aplica la verificación solo en sesiones que obtienen configuraciones administradas por el servidor, por lo que una sesión que [no las obtiene](https://code.claude.com/docs/es/server-managed-settings.md#platform-availability) se inicia sin esperar. Los subcomandos `claude auth` están exentos, por lo que los usuarios pueden volver a autenticarse cuando las credenciales caducadas son la razón por la que falla la obtención. Consulte [Aplicar inicio cerrado por error](https://code.claude.com/docs/es/server-managed-settings.md#enforce-fail-closed-startup).

### `managedSourcesBehavior`

Elija si Claude Code aplica solo la [fuente administrada](https://code.claude.com/docs/es/managed-settings.md#how-claude-code-combines-managed-sources) de mayor prioridad que su organización entrega, o combina todas las fuentes de administrador que entrega. De forma predeterminada, Claude Code toma la fuente de mayor prioridad que lleva una [clave de política](https://code.claude.com/docs/es/managed-settings.md#how-claude-code-combines-managed-sources) e ignora el resto. Una clave de política es cualquier clave de configuraciones que no sea esta y `wslInheritsWindowsSettings`. Bajo ese predeterminado, una vez que las configuraciones administradas por el servidor o una política MDM entregan una clave de política, un archivo `managed-settings.json` contribuye solo con las [claves que Claude Code lee de todas las fuentes de administrador](https://code.claude.com/docs/es/managed-settings.md#keys-read-from-every-admin-source). Con `"merge"`, todas las fuentes de administrador que entrega contribuyen sus claves a una política combinada. Requiere Claude Code v2.1.242 o posterior.

Establezca `"merge"` solo donde todas las fuentes [clasificadas](https://code.claude.com/docs/es/managed-settings.md#how-claude-code-combines-managed-sources) por debajo de la más alta estén bajo el control de un administrador, porque Claude Code luego agrega entradas de una fuente inferior, como reglas `permissions.allow`, a la política.

* **Alcance**: [`Managed`](#scopes). Claude Code lee esta clave de la fuente de mayor prioridad que lleva esta clave o una clave de política, e ignora esta clave en todas las fuentes clasificadas más bajas, por lo que una fuente inferior no puede optar por combinarse con la fuente anterior. Ni el registro HKCU de Windows ni [configuraciones principales de un host de incrustación](https://code.claude.com/docs/es/managed-settings.md#let-an-embedding-host-add-policy) participan en la combinación.
* **Tipo**: cadena, una de:
  * `"first-wins"`: la fuente de mayor prioridad que lleva una clave de política suministra la política, y las fuentes inferiores contribuyen solo con las [claves que Claude Code lee de todas las fuentes de administrador](https://code.claude.com/docs/es/managed-settings.md#keys-read-from-every-admin-source)
  * `"merge"`: todas las fuentes de administrador que entrega contribuyen sus claves, combinadas por las reglas a continuación
* **Predeterminado**: `"first-wins"`

Entregue la clave en la fuente de mayor prioridad que implemente. Una máquina que nunca recibe configuraciones administradas por el servidor necesita la clave en su perfil MDM también, porque Claude Code lee la clave de la fuente de mayor prioridad que la lleva o una clave de política. Un archivo `managed-settings.json` es la fuente de administrador de menor rango, por lo que `"merge"` establecido allí no tiene una fuente inferior con la que combinar. En configuraciones administradas por el servidor, la clave se ve así:

```json theme={null}
{
  "managedSourcesBehavior": "merge"
}
```

Bajo `"merge"`, Claude Code combina cada clave por su tipo. Esta tabla proporciona la regla para cada tipo. Las filas de lista de restricciones, valores tomados completos y solo fuente más alta nombran todas las claves que cubren, y las otras filas dan ejemplos:

| Tipo de clave | Cómo Claude Code la combina | Claves |
| :- | :- | :- |
| Listas | Combina entradas de todas las fuentes | [`permissions.allow`](#permissions-allow), [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) y otras claves de lista |
| Bloqueos | Aplica el valor más estricto que establece cualquier fuente. Cuando ninguna fuente establece un valor estricto, aplica un valor más flexible solo de la fuente más alta | [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly), [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) y otros bloqueos booleanos o de enumeración |
| Listas de restricciones | Toma la lista completa de la fuente más alta que la establece, sin agregar entradas de fuentes inferiores. Cuando la fuente más alta no establece una, la toma completa de la siguiente fuente hacia abajo | [`availableModels`](#availablemodels), [`allowedMcpServers`](#allowedmcpservers), [`allowedProviders`](#allowedproviders), [`strictKnownMarketplaces`](#strictknownmarketplaces), [`allowedChannelPlugins`](#allowedchannelplugins) y la cadena [`fallbackModel`](#fallbackmodel) |
| Valores tomados completos | Toma el valor completo de la fuente más alta que lo establece, sin combinar entradas o campos de fuentes inferiores. Cuando la fuente más alta no lo establece, lo toma completo de la siguiente fuente hacia abajo | [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs), [`sandbox.ripgrep`](#sandbox-ripgrep) |
| Servidores MCP proporcionados | Combina los nombres de servidor de todas las fuentes. Cuando dos fuentes establecen el mismo nombre, aplica la entrada completa de la fuente más alta | [`managedMcpServers`](#managedmcpservers) |
| Leer solo de la fuente de mayor prioridad | Lee la clave solo de la fuente de mayor prioridad que lleva una clave de política, por lo que el valor de una fuente inferior se ignora incluso cuando la fuente más alta no establece ninguno | [`apiKeyHelper`](#apikeyhelper), [`awsAuthRefresh`](#awsauthrefresh), [`awsCredentialExport`](#awscredentialexport), [`gcpAuthRefresh`](#gcpauthrefresh), [`otelHeadersHelper`](#otelheadershelper), `proxyAuthHelper`, [`forceLoginOrgUUID`](#forceloginorguuid), los valores `"claudeai"` y `"console"` de [`forceLoginMethod`](#forceloginmethod), [`parentSettingsBehavior`](#parentsettingsbehavior), [`modelPicker`](#modelpicker), [`policyHelper`](#policyhelper), [`permissions.defaultMode`](#permissions-defaultmode) |
| `env` | [Combina por variable en todas las fuentes de administrador](https://code.claude.com/docs/es/managed-settings.md#keys-read-from-every-admin-source), bajo `"first-wins"` y `"merge"` | [`env`](#env) |
| Todas las otras claves | Toma el valor de la fuente más alta que lo establece | [`cleanupPeriodDays`](#cleanupperioddays), [`model`](#model) |

Tomar `sandbox.credentials.awsPairs` y `sandbox.ripgrep` completos requiere Claude Code v2.1.257 o posterior.

Algunas claves agregan una condición que la tabla no muestra:

* **[`policyHelper`](#policyhelper)**: Claude Code la honra solo cuando la fuente más alta que lleva una clave de política es una política MDM o un archivo de configuraciones administradas, por lo que bajo configuraciones administradas por el servidor no se aplica.
* **[`modelOverrides`](#modeloverrides)**: se empareja con `availableModels`. Claude Code toma `modelOverrides` de la fuente más alta que lo establece, a menos que una fuente más alta establezca `availableModels` sin `modelOverrides`. En ese caso ignora `modelOverrides` de todas las fuentes.
* **[`forceLoginGatewayUrl`](#forcelogingatewayurl), [`gatewayInternalNetworks`](#gatewayinternalnetworks) y el valor `"gateway"` de [`forceLoginMethod`](#forceloginmethod)**: Claude Code nunca los lee de configuraciones administradas por el servidor, por lo que un valor allí ni se aplica ni oculta uno establecido en una política MDM o archivo de configuraciones administradas. Entre las fuentes de administrador en la máquina, solo la de mayor rango que lleva una clave de política los suministra, independientemente de si las configuraciones administradas por el servidor también están presentes.
* **[`allowedProviders`](#allowedproviders)**: después de la regla de la tabla, la lista propia de la máquina aún limita el resultado, como su nota de Alcance de entrada indica.

Para confirmar qué fuentes se combinaron en una máquina, ejecute `/status` y [lea la línea `Setting sources`](https://code.claude.com/docs/es/managed-settings#read-the-source-in-/status).

### `parentSettingsBehavior`

Elija si Claude Code aplica configuraciones administradas suministradas por un proceso host de incrustación, como el Agent SDK o una extensión IDE, cuando también está presente un nivel administrado implementado por administrador. Con `"first-wins"`, Claude Code descarta las configuraciones suministradas por el host; con `"merge"`, las aplica bajo el nivel de administrador a través de un filtro restrictivo. Establezca `"merge"` cuando un host necesita pasar sus propias restricciones a las sesiones que inicia, por ejemplo Claude Desktop entregando una lista de permisos de salida de una puerta de enlace.

* **Alcance**: [`Managed`](#scopes). Claude Code la lee de la fuente administrada controlada por administrador de mayor prioridad.
* **Tipo**: cadena, una de:
  * `"first-wins"`: Claude Code descarta las configuraciones suministradas por el host cuando está presente un nivel administrado implementado por administrador
  * `"merge"`: Claude Code aplica las configuraciones suministradas por el host bajo el nivel de administrador a través de un filtro restrictivo
* **Predeterminado**: `"first-wins"`

```json managed-settings.json theme={null}
{
  "parentSettingsBehavior": "merge"
}
```

Esta clave no tiene efecto cuando no existe un nivel administrado implementado por administrador: las configuraciones del host se aplican entonces como el único nivel administrado, aún filtradas a valores restrictivos. Para los límites del filtro y cómo interactúan las fuentes administradas, consulte [Configuraciones principales de hosts de incrustación](https://code.claude.com/docs/es/managed-settings.md#parent-settings-from-embedding-hosts) y [Restringir configuraciones principales](https://code.claude.com/docs/es/claude-apps-gateway#restrict-parent-settings).

### `policyHelper`

Ejecute un ejecutable que implemente que calcula configuraciones administradas al iniciar, para que pueda derivar política de postura de dispositivo, identidad o un servicio remoto en lugar de un archivo estático. Claude Code ejecuta el asistente antes de aceptar el primer mensaje y trata las configuraciones que emite como las configuraciones administradas para la sesión.

* **Alcance**: [`Managed`](#scopes). Leer desde la plist de macOS, el registro HKLM de Windows o el archivo de configuraciones administradas. Claude Code lee la clave de la fuente administrada de mayor prioridad que lleva una [clave de política](https://code.claude.com/docs/es/managed-settings.md#how-claude-code-combines-managed-sources) y ejecuta el asistente solo cuando esa fuente es una de esas tres; ignora la clave en configuraciones administradas por el servidor, el registro HKCU y configuraciones principales suministradas por el host.
* **Tipo**: objeto con `path`, `timeoutMs` y `refreshIntervalMs`
* **Predeterminado**: no establecido, por lo que no se ejecuta ningún asistente

Cuando las configuraciones administradas por el servidor entregan la política al iniciar, tienen prioridad sobre la fuente del asistente y el asistente no se ejecuta.

Si una obtención de configuraciones posterior informa que las configuraciones administradas por el servidor se eliminaron, Claude Code ejecuta el asistente en ese punto en lugar de esperar al siguiente inicio. Su salida rige el resto de la sesión, y una ejecución que falla termina la sesión con el mismo mensaje que una [ejecución de inicio fallida](#helper-failures).

Este ejemplo ejecuta el asistente con un tiempo de espera de 5 segundos y lo vuelve a ejecutar cada cinco minutos:

```json managed-settings.json theme={null}
{
  "policyHelper": {
    "path": "/usr/local/bin/claude-policy",
    "timeoutMs": 5000,
    "refreshIntervalMs": 300000
  }
}
```

#### Escribir la salida del asistente

Claude Code ejecuta el asistente sin argumentos, establece `CLAUDE_CODE_VERSION` en su entorno y lee un envoltorio JSON desde stdout, limitado a 1 MiB.

Ponga las configuraciones bajo una clave `managedSettings`. Un objeto de configuraciones desnudo sin clave `managedSettings` se analiza con `managedSettings` indefinido y no aplica nada, y Claude Code no informa ningún error:

```json theme={null}
{
  "managedSettings": {
    "permissions": { "deny": ["Read(//etc/secrets/**)"] }
  }
}
```

Cuando el asistente emite `managedSettings`, ese objeto se convierte en la única fuente de configuraciones administradas para la ejecución: Claude Code ignora las fuentes MDM, archivo y HKCU, lee las [claves entre fuentes](https://code.claude.com/docs/es/managed-settings.md#keys-read-from-every-admin-source) solo de la salida del asistente y nunca combina [configuraciones principales](https://code.claude.com/docs/es/managed-settings.md#parent-settings-from-embedding-hosts).

La verificación de inicio `forceRemoteSettingsRefresh` se ejecuta antes del asistente y lee cualquier fuente de administrador. Un asistente que sale con `0` con un envoltorio que omite `managedSettings` no contribuye configuraciones administradas, y las otras fuentes se aplican como de costumbre.

#### Fallos del asistente

Una ejecución del asistente falla cuando:

* `path` rompe las reglas en [`policyHelper.path`](#policyhelper-path).
* No hay un archivo regular en `path`. Claude Code verifica el archivo antes de iniciar el asistente, dentro del mismo presupuesto `timeoutMs`, por lo que un montaje de red sin respuesta puede causar que la ejecución falle.
* El asistente sale con un código distinto de cero, aún se está ejecutando cuando `timeoutMs` transcurre, o no se inicia en absoluto, por ejemplo porque no es ejecutable.
* El asistente escribe más de 1 MiB en stdout o stderr.
* stdout no es un único objeto JSON, o su `managedSettings` tiene una [violación de esquema que Claude Code no puede reparar](https://code.claude.com/docs/es/managed-settings.md#find-entries-claude-code-dropped).

Cuando la ejecución de inicio falla, Claude Code imprime la razón y se niega a iniciar. Después de una salida distinta de cero, la razón incluye stderr del asistente, o su stdout cuando stderr está vacío. Después de un tiempo de espera, la razón nombra el límite `timeoutMs` e incluye ninguna de la salida del asistente. La negativa cubre sesiones interactivas, `claude -p`, sesiones de Agent SDK, [sesiones en segundo plano](https://code.claude.com/docs/es/agent-view.md) y la mayoría de subcomandos.

La negativa es deliberada, por lo que un asistente que necesita resiliencia de interrupción debe servir desde su propio caché y salir con `0`.

Cuando una actualización en segundo plano falla, Claude Code mantiene la última política exitosa en vigor, y `/status` muestra la actualización fallida con su razón hasta que una actualización tenga éxito. Cada actualización se ejecuta bajo el mismo `timeoutMs` y reglas de fallo que la ejecución de inicio.

Con `--debug`, Claude Code escribe stderr del asistente de cada ejecución en el [registro de depuración](https://code.claude.com/docs/es/debug-your-config.md).

Claude Code informa un valor `policyHelper` inválido como una [entrada descartada](https://code.claude.com/docs/es/managed-settings.md#find-entries-claude-code-dropped) e inicia la sesión en las configuraciones administradas restantes sin ejecutar un asistente. Los valores inválidos incluyen una cadena de ruta desnuda y un `timeoutMs` por debajo de [su mínimo](#policyhelper-timeoutms).

Para desactivar un asistente, elimine la clave de la fuente que la establece.

### `policyHelper.path`

Nombre el ejecutable del asistente que Claude Code ejecuta. Para lo que sucede cuando la ruta rompe las reglas a continuación, consulte [Fallos del asistente](#helper-failures).

* **Alcance**: [`Managed`](#scopes). Leer desde la plist de macOS, el registro HKLM de Windows o el archivo de configuraciones administradas, donde se lee [`policyHelper`](#policyhelper).
* **Tipo**: cadena, una ruta absoluta en forma normalizada, sin segmentos `.` o `..`; en Windows, una ruta de letra de unidad o UNC que termina en `.exe`
* **Predeterminado**: ninguno; requerido cuando `policyHelper` está establecido

```json managed-settings.json theme={null}
{
  "policyHelper": {
    "path": "/usr/local/bin/claude-policy"
  }
}
```

### `policyHelper.timeoutMs`

Establezca cuánto tiempo Claude Code espera al asistente antes de tratar la ejecución como fallida. Una ejecución con tiempo de espera agotado falla de la misma manera que una salida distinta de cero, por lo que al iniciar Claude Code se niega a iniciar.

* **Alcance**: [`Managed`](#scopes). Leer desde la plist de macOS, el registro HKLM de Windows o el archivo de configuraciones administradas, donde se lee [`policyHelper`](#policyhelper).
* **Tipo**: entero, milisegundos, mínimo `1000`
* **Predeterminado**: `10000`

```json managed-settings.json theme={null}
{
  "policyHelper": {
    "path": "/usr/local/bin/claude-policy",
    "timeoutMs": 5000
  }
}
```

### `policyHelper.refreshIntervalMs`

Haga que Claude Code vuelva a ejecutar el asistente en segundo plano en un intervalo para que los cambios de política lleguen a una sesión en ejecución. Cuando una actualización tiene éxito, su salida reemplaza las configuraciones administradas anteriores sin un reinicio; cuando una actualización falla, Claude Code mantiene la política que ya tiene.

* **Alcance**: [`Managed`](#scopes). Leer desde la plist de macOS, el registro HKLM de Windows o el archivo de configuraciones administradas, donde se lee [`policyHelper`](#policyhelper).
* **Tipo**: entero, milisegundos: `0` para desactivar la actualización, de lo contrario al menos `60000`
* **Predeterminado**: no establecido, por lo que Claude Code ejecuta el asistente una vez al iniciar

Este ejemplo vuelve a ejecutar el asistente cada cinco minutos:

```json managed-settings.json theme={null}
{
  "policyHelper": {
    "path": "/usr/local/bin/claude-policy",
    "refreshIntervalMs": 300000
  }
}
```

### `wslInheritsWindowsSettings`

Haga que Claude Code en WSL lea configuraciones administradas de la cadena de política de Windows, con HKLM y el archivo de configuraciones administradas de Windows teniendo prioridad sobre `/etc/claude-code` y HKCU debajo. Mientras la cadena está activada, Claude Code lee `/etc/claude-code` solo cuando [ningún documento de administrador de Windows está presente](https://code.claude.com/docs/es/managed-settings.md#present-admin-documents) en el valor del registro HKLM o la carpeta `C:\Program Files\ClaudeCode\`. Establézcalo para extender la política que ya implementa en Windows a sesiones de WSL en la misma máquina, para que sigan las mismas reglas que las sesiones del host. Claude Code la honra solo cuando está establecida en la clave del registro HKLM o en un archivo de configuraciones administradas o descarga bajo `C:\Program Files\ClaudeCode\`, ambos requieren administrador de Windows para escribir.

* **Alcance**: [`Managed`](#scopes). En una fuente de Windows controlada por administrador.
* **Tipo**: Booleano
  * `true`: Claude Code en WSL lee configuraciones administradas de la cadena de política de Windows y lee `/etc/claude-code` solo cuando ningún documento de administrador de Windows está presente
  * `false`: WSL lee solo `/etc/claude-code`
* **Predeterminado**: `false`, por lo que WSL lee solo `/etc/claude-code`

```json managed-settings.json theme={null}
{
  "wslInheritsWindowsSettings": true
}
```

Una vez que una fuente de administrador activa la cadena, la política HKCU se une a ella en WSL solo cuando HKCU también establece la clave en `true`. Esa copia no activa la cadena por sí sola. Una fuente de Windows que contiene solo esta clave, establecida en `true` o `false`, no cuenta como una fuente de política, por lo que una fuente de menor prioridad aún suministra la política. Esta clave no tiene efecto en Windows nativo.

Claude Code lee `true` y `false` con o sin comillas y lee `null` como eliminación de la clave. Una fuente de Windows controlada por administrador que contiene cualquier otro valor cuenta como un [documento de administrador presente](https://code.claude.com/docs/es/managed-settings.md#present-admin-documents) con la cadena activada: ni `/etc/claude-code` ni HKCU se aplican, y una advertencia de inicio nombra la clave. Un valor HKLM o archivo de carpeta de Windows que existe pero no se puede leer también evita que `/etc/claude-code` se aplique independientemente de si la cadena está activada. Requiere Claude Code v2.1.282 o posterior.

## Configuración global

Guarde estas claves en `~/.claude.json`, no en un archivo de configuración. Claude Code las ignora en cualquier otro lugar. Claude Code y `/config` escriben la mayoría de ellas automáticamente, y también puede editarlas manualmente.

### `autoConnectIde`

Conecte a un IDE en ejecución automáticamente cuando inicie Claude Code desde una terminal externa. Aparece en `/config` como **Auto-conectar a IDE (terminal externa)** cuando ejecuta Claude Code fuera de una terminal de VS Code o JetBrains.

* **Alcance**: [`Configuración global`](#scopes)
* **Tipo**: Booleano
  * `true`: Claude Code se conecta a un IDE en ejecución automáticamente cuando lo inicia desde una terminal externa
  * `false`: Claude Code no se conecta automáticamente desde una terminal externa; dentro de una terminal de VS Code o JetBrains, o con `--ide`, sigue conectándose
* **Predeterminado**: `false`
* **Anulaciones por sesión**: [`CLAUDE_CODE_AUTO_CONNECT_IDE`](https://code.claude.com/docs/es/env-vars) tiene prioridad sobre esta clave para una sesión, en cualquier dirección

```json ~/.claude.json theme={null}
{
  "autoConnectIde": true
}
```

Claude Code ignora esta clave en `settings.json`.

### `autoInstallIdeExtension`

Instale la extensión de IDE de Claude Code automáticamente cuando ejecute Claude Code desde una terminal de VS Code. Aparece en `/config` como **Auto-instalar extensión de IDE** cuando ejecuta Claude Code dentro de una terminal de VS Code o JetBrains.

* **Alcance**: [`Configuración global`](#scopes)
* **Tipo**: Booleano
  * `true`: Claude Code instala la extensión de IDE automáticamente cuando lo ejecuta desde una terminal de VS Code
  * `false`: Claude Code no instala la extensión automáticamente
* **Predeterminado**: `true`
* **Anulaciones por sesión**: [`CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL`](https://code.claude.com/docs/es/env-vars) establecido en `1` omite la instalación para una sesión incluso cuando esta clave es `true`

```json ~/.claude.json theme={null}
{
  "autoInstallIdeExtension": false
}
```

Claude Code ignora esta clave en `settings.json`.

### `claudeInChromeDefaultEnabled`

Inicia cada sesión interactiva de CLI con [integración de Chrome](https://code.claude.com/docs/es/chrome.md) activada, sin pasar `--chrome` cada vez. Si ejecutas [`claude remote-control`](https://code.claude.com/docs/es/remote-control), una sesión que inicia para uno de tus hilos de [proyecto](https://code.claude.com/docs/es/claude-projects.md) sigue esta clave también, excepto en modo `bypassPermissions`. Con Claude Code v2.1.287 o posterior, esta clave también se aplica a las sesiones en la [extensión de VS Code](https://code.claude.com/docs/es/vs-code.md#automate-browser-tasks-with-chrome): consulta [Habilitar Chrome por defecto](https://code.claude.com/docs/es/chrome.md#enable-chrome-by-default).

Ejecutar `/chrome` y seleccionar **Habilitado por defecto** establece esta clave automáticamente. Aparece en `/config` como **Claude en Chrome habilitado por defecto**.

* **Alcance**: [`Configuración global`](#scopes)
* **Tipo**: Booleano
  * `true`: Claude Code activa la integración de Chrome cuando comienza una sesión interactiva de CLI, como lo hace cuando pasas `--chrome`. En la extensión de VS Code, las sesiones se conectan al navegador al iniciarse
  * `false`: las sesiones interactivas de CLI comienzan con la integración de Chrome desactivada, y Claude Code deja de [ofrecer configurarla](https://code.claude.com/docs/es/chrome.md#install-the-extension-when-claude-asks). Pasa `--chrome` para activarla para una sesión interactiva. En la extensión de VS Code, una sesión se conecta cuando escribes `@browser`, como cuando la clave no está establecida
* **Predeterminado**: sin establecer, por lo que la integración de Chrome está desactivada y Claude Code aún puede ofrecer configurarla
* **Anulaciones por sesión**: `--chrome` y [`--no-chrome`](https://code.claude.com/docs/es/cli-reference) tienen prioridad sobre esta clave para una sesión interactiva

```json ~/.claude.json theme={null}
{
  "claudeInChromeDefaultEnabled": true
}
```

Claude Code ignora esta clave en `settings.json`.

### `copyFullResponse`

Haz que [`/copy`](https://code.claude.com/docs/es/commands) copie la respuesta completa cada vez, sin mostrar el selector. Seleccionar **Siempre copiar respuesta completa** en ese selector establece esta clave en `true`. Aparece en `/config` como **Omitir el selector /copy**.

* **Alcance**: [`Configuración global`](#scopes)
* **Tipo**: Booleano
  * `true`: `/copy` copia la respuesta completa sin mostrar el selector
  * `false`: cuando la respuesta contiene bloques de código o citas en bloque, `/copy` muestra un selector donde eliges un bloque o la respuesta completa
* **Predeterminado**: `false`

```json ~/.claude.json theme={null}
{
  "copyFullResponse": true
}
```

Claude Code ignora esta clave en `settings.json`.

### `copyOnSelect`

Copie texto al portapapeles automáticamente cuando termine de seleccionarlo con el ratón en [renderizado a pantalla completa](https://code.claude.com/docs/es/fullscreen.md#use-the-mouse) o [vista de agente](https://code.claude.com/docs/es/agent-view.md). Aparece en `/config` como **Copiar al seleccionar** mientras el renderizado a pantalla completa está activado.

* **Alcance**: [`Configuración global`](#scopes)
* **Tipo**: Booleano
  * `true`: Claude Code copia el texto al portapapeles cuando termina de seleccionarlo
  * `false`: seleccionar texto deja el portapapeles sin cambios, y [copia la selección con un atajo de teclado](https://code.claude.com/docs/es/fullscreen.md#use-the-mouse) en su lugar
* **Predeterminado**: `true`

```json ~/.claude.json theme={null}
{
  "copyOnSelect": false
}
```

Claude Code ignora esta clave en `settings.json`.

### `defaultToAgentsView`

Abra [vista de agente](https://code.claude.com/docs/es/agent-view.md) en lugar de una nueva conversación cuando ejecute `claude` sin argumentos. Aparece en `/config` como **Abrir vista de agentes por defecto** a menos que la vista de agente esté [desactivada](#disableagentview).

* **Alcance**: [`Configuración global`](#scopes)
* **Tipo**: Booleano
  * `true`: `claude` sin argumentos abre la vista de agente, a menos que la vista de agente esté [desactivada](#disableagentview)
  * `false`: `claude` sin argumentos inicia una nueva conversación
* **Predeterminado**: `false`

```json ~/.claude.json theme={null}
{
  "defaultToAgentsView": true
}
```

Claude Code ignora esta clave en `settings.json`.

### `diffTool`

Elija dónde Claude Code muestra la diferencia de un cambio `Edit` o `Write` que propone cuando un IDE [VS Code](https://code.claude.com/docs/es/vs-code.md) o [JetBrains](https://code.claude.com/docs/es/jetbrains.md#features) está conectado: `"auto"` lo abre en el visor de diferencias del IDE, `"terminal"` lo mantiene en la terminal. Aparece en `/config` como **Herramienta de diferencias** solo mientras Claude Code está conectado a un IDE de VS Code o JetBrains.

* **Alcance**: [`Configuración global`](#scopes)
* **Tipo**: cadena, una de:
  * `"auto"`: Claude Code abre la diferencia en el visor de diferencias del IDE cuando un IDE de VS Code o JetBrains está conectado
  * `"terminal"`: Claude Code mantiene la diferencia en la terminal
* **Predeterminado**: `"auto"`

```json ~/.claude.json theme={null}
{
  "diffTool": "terminal"
}
```

Claude Code ignora esta clave en `settings.json`.

### `externalEditorContext`

Cuando presiona `Ctrl+G`, Claude Code abre el mensaje que está escribiendo en su [editor externo](https://code.claude.com/docs/es/interactive-mode.md#general-controls). Con esta clave activada, el búfer del editor comienza con la respuesta anterior de Claude como líneas de comentario `#`, para que pueda leerla mientras escribe, y Claude Code elimina esas líneas cuando guarda. Aparece en `/config` como **Mostrar última respuesta en editor externo**.

* **Alcance**: [`Configuración global`](#scopes)
* **Tipo**: Booleano
  * `true`: el búfer del editor comienza con la respuesta anterior de Claude como líneas de comentario `#`, que Claude Code elimina cuando guarda
  * `false`: el búfer del editor se abre solo con su mensaje
* **Predeterminado**: `false`

```json ~/.claude.json theme={null}
{
  "externalEditorContext": true
}
```

Con esta opción activada, el búfer que Claude Code abre se ve así, y solo el texto debajo de la línea del marcador se envía como su mensaje:

```text theme={null}
# ─── Claude's last response (for reference; removed on save) ───
# I added the retry loop to fetchUser in src/api.ts and a test
# for the timeout case. Want me to wire the same retry into
# fetchOrders?
# ─── Write your reply below this line ──────────────────────────

Yes, and cap it at three attempts.
```

Claude Code mantiene las últimas 50 líneas de la respuesta y marca el corte con `# … (earlier output truncated)`.

Claude Code ignora esta clave en `settings.json`.

### `leftArrowOpensAgents`

Presione `←` en un mensaje vacío para [poner la sesión en segundo plano y abrir la vista de agente](https://code.claude.com/docs/es/agent-view.md#switch-sessions-without-leaving-the-terminal). Establezca esta clave en `false` para desactivar el atajo. Aparece en `/config` como **← abre agentes** cuando la vista de agente está disponible.

* **Alcance**: [`Configuración global`](#scopes)
* **Tipo**: Booleano
  * `true`: presionar `←` en un mensaje vacío en una sesión que inició en la terminal la pone en segundo plano y abre la vista de agente
  * `false`: Claude Code desactiva el atajo; en una sesión que [adjuntó desde la vista de agente](https://code.claude.com/docs/es/agent-view.md#attach-to-a-session), `←` en un mensaje vacío aún se desconecta
* **Predeterminado**: `true`

```json ~/.claude.json theme={null}
{
  "leftArrowOpensAgents": false
}
```

Claude Code ignora esta clave en `settings.json`.

### `permissionExplainerEnabled`

> [!WARNING]
>
> Eliminado en v2.1.257, junto con la explicación del comando `Ctrl+E` en mensajes de permisos de Bash y PowerShell. Establecer esta opción no tiene efecto en las versiones actuales.

Hasta v2.1.256, podía presionar `Ctrl+E` en un mensaje de permisos de Bash o PowerShell para ver una explicación generada por el modelo del comando, y establecer esta clave en `false` para desactivar ese atajo.

* **Alcance**: [`Configuración global`](#scopes). En v2.1.256 y anteriores.
* **Tipo**: Booleano
* **Predeterminado**: `true`

### `prStatusFooterEnabled`

Muestre un distintivo en el pie de página del mensaje para la solicitud de extracción o solicitud de fusión abierta de la rama actual, con un subrayado de color que muestra su [estado](https://code.claude.com/docs/es/interactive-mode.md#pr-review-status). Aparece en `/config` como **Mostrar pie de página de estado de PR**.

* **Alcance**: [`Configuración global`](#scopes)
* **Tipo**: Booleano
  * `true`: el pie de página muestra el distintivo bajo las condiciones en [Estado de revisión de PR](https://code.claude.com/docs/es/interactive-mode.md#pr-review-status)
  * `false`: Claude Code omite la verificación de solicitud de extracción y solicitud de fusión del pie de página y no muestra ese distintivo. Una sesión que [adjuntó desde la vista de agente](https://code.claude.com/docs/es/agent-view.md#attach-to-a-session) aún puede mostrar un enlace simple a una solicitud de extracción [vinculada a ella](https://code.claude.com/docs/es/agent-view.md#pull-request-status)
* **Predeterminado**: `true`

```json ~/.claude.json theme={null}
{
  "prStatusFooterEnabled": false
}
```

Claude Code ignora esta clave en `settings.json`.

### `teammateDefaultModel`

> [!WARNING]
>
> Eliminado en v2.1.234, junto con su fila `/config` **Modelo de compañero predeterminado**. Establecer esta opción no tiene efecto en las versiones actuales.

Hasta v2.1.233, establecía esta clave en el modelo para los compañeros del [equipo de agentes](https://code.claude.com/docs/es/agent-teams.md#specify-teammates-and-models) que su mensaje no nombró un modelo: un alias como `"sonnet"`, o `null` para seguir el modelo del líder. Para el modelo que Claude Code elige ahora para tales compañeros, consulte [especificar compañeros y modelos](https://code.claude.com/docs/es/agent-teams.md#specify-teammates-and-models).

* **Alcance**: [`Configuración global`](#scopes). En v2.1.233 y anteriores.
* **Tipo**: cadena, un alias de modelo o ID de modelo completo, o `null`
* **Predeterminado**: sin establecer

## Véase también

* [Configurar permisos](https://code.claude.com/docs/es/permissions.md): sintaxis de reglas, modos de permisos y confianza del espacio de trabajo
* [Variables de entorno](https://code.claude.com/docs/es/env-vars.md): cada variable `CLAUDE_*`, `ANTHROPIC_*` y de proveedor que Claude Code lee
* [Herramientas disponibles para Claude](https://code.claude.com/docs/es/tools-reference.md): las herramientas integradas y cuáles necesitan aprobación
* [Archivos de configuración de ejemplo](https://code.claude.com/docs/es/settings-example.md): un archivo personal, un archivo de equipo y un archivo administrado de una organización
* [Configurar ajustes administrados](https://code.claude.com/docs/es/admin-setup.md): cómo las organizaciones deciden qué aplicar
* [Implementar ajustes administrados](https://code.claude.com/docs/es/managed-settings.md): mecanismos de entrega, precedencia dentro del nivel administrado y entradas no válidas en ajustes administrados
* [Depurar su configuración](https://code.claude.com/docs/es/debug-your-config.md): `claude doctor` y el diálogo de Error de configuración
