91| `bypassPermissions` | Omite avisos de permisos, excepto para las [acciones que ningún modo auto-aprueba](/docs/es/permission-modes#actions-no-mode-auto-approves) |91| `bypassPermissions` | Omite avisos de permisos, excepto para las [acciones que ningún modo auto-aprueba](/docs/es/permission-modes#actions-no-mode-auto-approves) |
92 92
93<Warning>93<Warning>
94 El modo `bypassPermissions` omite avisos de permisos, incluyendo escrituras en [rutas protegidas](/docs/es/permission-modes#protected-paths) como `.git` y `.claude`. Las [salvaguardas de mensajería entre sesiones](/docs/es/permission-modes#skip-all-checks-with-bypasspermissions-mode) aún se aplican. Use este modo solo en entornos aislados como contenedores o máquinas virtuales donde Claude Code no pueda causar daño.94 En modo `bypassPermissions`, Claude Code omite avisos de permisos, incluyendo escrituras en [rutas protegidas](/docs/es/permission-modes#protected-paths) como `.git` y `.claude`. Las [salvaguardas de mensajería entre sesiones](/docs/es/permission-modes#skip-all-checks-with-bypasspermissions-mode) aún se aplican. Use este modo solo en entornos aislados como contenedores o máquinas virtuales donde Claude Code no pueda causar daño.
95</Warning>95</Warning>
96 96
97Para evitar que se use el modo `bypassPermissions` o `auto`, establezca `permissions.disableBypassPermissionsMode` o `permissions.disableAutoMode` en `"disable"` en cualquier [archivo de configuración](/docs/es/settings#where-settings-live). Estos son más útiles en [configuración administrada](#managed-settings) donde no pueden ser anulados.97Para evitar que se use el modo `bypassPermissions` o `auto`, establezca `permissions.disableBypassPermissionsMode` o `permissions.disableAutoMode` en `"disable"` en cualquier [archivo de configuración](/docs/es/settings#where-settings-live). Estos son más útiles en [configuración administrada](#managed-settings) donde no pueden ser anulados.
165 Ponga el `*` después del subcomando. En `git log --oneline main`, `git` es el programa y `log` es el subcomando, la palabra que determina qué hace el programa. Claude Code coincide con todo lo anterior al primer `*` tal como está escrito, por lo que esas palabras son lo que limita la regla: `Bash(git log *)` permite solo comandos `git log`, y `Bash(git *)` permite todos los comandos git. Claude Code [advierte al inicio](/docs/es/errors#has-a-wildcard-before-the-rest-of-the-command) sobre una regla de permiso con un `*` antes del subcomando, como `Bash(git * main)`.165 Ponga el `*` después del subcomando. En `git log --oneline main`, `git` es el programa y `log` es el subcomando, la palabra que determina qué hace el programa. Claude Code coincide con todo lo anterior al primer `*` tal como está escrito, por lo que esas palabras son lo que limita la regla: `Bash(git log *)` permite solo comandos `git log`, y `Bash(git *)` permite todos los comandos git. Claude Code [advierte al inicio](/docs/es/errors#has-a-wildcard-before-the-rest-of-the-command) sobre una regla de permiso con un `*` antes del subcomando, como `Bash(git * main)`.
166</Warning>166</Warning>
167 167
168Escriba el comando que desea que Claude ejecute sin preguntar, y reemplace las partes que varían con `*`. Con esta configuración, Claude Code ejecuta scripts npm y confirmaciones git sin preguntar y rechaza git push:168Escriba el comando que desea que Claude ejecute sin preguntar, y reemplace las partes que varían con `*`. Con esta configuración, Claude Code ejecuta scripts npm y confirmaciones git sin preguntar y rechaza comandos que comienzan con `git push`. Un push escrito de otra manera, como `git -C . push`, no coincide; vea [lo que una regla de Bash no coincide](#bash-rule-limits).
169 169
170```json theme={null}170```json theme={null}
171{171{
224 224
225Una regla de denegación o solicitud cuyo nombre de herramienta no coincide con ninguna herramienta conocida produce una advertencia de inicio para detectar errores tipográficos. Los nombres de herramientas que contienen `_` o `*` están exentos de la verificación.225Una regla de denegación o solicitud cuyo nombre de herramienta no coincide con ninguna herramienta conocida produce una advertencia de inicio para detectar errores tipográficos. Los nombres de herramientas que contienen `_` o `*` están exentos de la verificación.
226 226
227La etiqueta mostrada para una herramienta en la transcripción y el diálogo de permisos puede diferir de su nombre canónico. Por ejemplo, la herramienta etiquetada como `Stop Task` en la transcripción tiene el nombre canónico `TaskStop`. Las reglas de permisos y los [coincidentes de hooks](/docs/es/hooks) coinciden solo con el nombre canónico, por lo que una regla escrita como `Stop Task` no coincide. Para reglas de denegación y solicitud, la advertencia de inicio anterior detecta la discrepancia. Use los nombres canónicos enumerados en la [referencia de herramientas](/docs/es/tools-reference).227La etiqueta mostrada para una herramienta en la transcripción y el diálogo de permisos puede diferir de su nombre canónico. Por ejemplo, la herramienta etiquetada como `Stop Task` en la transcripción tiene el nombre canónico `TaskStop`. Las reglas de permisos y los [coincidentes de hooks](/docs/es/hooks) no coinciden con la etiqueta, por lo que una regla escrita como `Stop Task` no coincide. Para reglas de denegación y solicitud, la advertencia de inicio anterior detecta la discrepancia. Use los nombres canónicos enumerados en la [referencia de herramientas](/docs/es/tools-reference).
228 228
229<h2 id="tool-specific-permission-rules">229<h2 id="tool-specific-permission-rules">
230 Reglas de permisos específicas de herramientas230 Reglas de permisos específicas de herramientas
234 Bash234 Bash
235</h3>235</h3>
236 236
237Las reglas de Bash coinciden con el texto completo del comando, con `*` representando cualquier texto. [Patrones de comodín](#wildcard-patterns) muestra qué comandos coincide cada forma de regla y dónde colocar el `*`. El resto de esta sección cubre cómo Claude Code coincide con comandos compuestos, envoltorios, comandos de solo lectura y redirecciones.237Las reglas de Bash coinciden con el texto completo del comando, con `*` representando cualquier texto. [Patrones de comodín](#wildcard-patterns) muestra qué comandos coincide cada forma de regla y dónde colocar el `*`. El resto de esta sección cubre cómo Claude Code coincide con comandos compuestos y envoltorios, qué no coincide una regla, comandos de solo lectura y redirecciones.
238 238
239<h4 id="compound-commands">239<h4 id="compound-commands">
240 Comandos compuestos240 Comandos compuestos
264 264
265Los envoltorios exec como `watch`, `setsid`, `ionice` y `flock` no pueden ser auto-aprobados por una regla de prefijo como `Bash(watch *)`, por lo que en modo Manual siempre solicitan. Lo mismo se aplica a `find` con `-exec` o `-delete`: una regla `Bash(find *)` no cubre estas formas. Para aprobar una invocación específica, escriba una regla de coincidencia exacta para la cadena de comando completa.265Los envoltorios exec como `watch`, `setsid`, `ionice` y `flock` no pueden ser auto-aprobados por una regla de prefijo como `Bash(watch *)`, por lo que en modo Manual siempre solicitan. Lo mismo se aplica a `find` con `-exec` o `-delete`: una regla `Bash(find *)` no cubre estas formas. Para aprobar una invocación específica, escriba una regla de coincidencia exacta para la cadena de comando completa.
266 266
267<h4 id="bash-rule-limits">
268 Lo que una regla de Bash no coincide
269</h4>
270
271Una regla de Bash coincide con el texto del comando que Claude escribe, después de que Claude Code divide [comandos compuestos](#compound-commands) y elimina [envoltorios](#process-wrappers). No coincide con el mismo programa invocado en una forma diferente, por lo que una regla de negación o solicitud cubre la invocación que Claude generalmente produce y no es un límite de seguridad alrededor del programa. Estas reglas en `deny` o `ask` detienen la primera forma y no las otras:
272
273| Regla | Detiene | No detiene |
274| :----------------- | :------------------------- | :---------------------------------------------------------------------------------------------------- |
275| `Bash(curl *)` | `curl https://example.com` | `/usr/bin/curl https://example.com`, `sh -c 'curl https://example.com'` |
276| `Bash(rm *)` | `rm -rf build/` | `/bin/rm -rf build/`, `bash -c 'rm -rf build/'` |
277| `Bash(git push *)` | `git push origin main` | `git -C . push origin main`, `git -c push.default=current push origin main`, `git 'push' origin main` |
278
279Sus otras reglas y el modo de permisos deciden los comandos en la última columna.
280
281Para aplicación de sistema de archivos y red que no dependa del texto del comando, use [sandboxing](/docs/es/sandboxing). Para inspeccionar el texto completo del comando con su propia lógica antes de que se ejecute, use un hook [PreToolUse](#extend-permissions-with-hooks).
282
267<h4 id="read-only-commands">283<h4 id="read-only-commands">
268 Comandos de solo lectura284 Comandos de solo lectura
269</h4>285</h4>
294 * Protocolo diferente: `curl https://github.com/...`310 * Protocolo diferente: `curl https://github.com/...`
295 * Redirecciones: `curl -L http://short.example.com/xyz`, que redirige a GitHub311 * Redirecciones: `curl -L http://short.example.com/xyz`, que redirige a GitHub
296 * Variables: `URL=http://github.com && curl $URL`312 * Variables: `URL=http://github.com && curl $URL`
297 * Espacios adicionales: `curl http://github.com`
298 313
299 Para un filtrado de URL más confiable, considere:314 Para un filtrado de URL más confiable, considere:
300 315
301 * **Restringir herramientas de red de Bash**: use reglas de negación para bloquear `curl`, `wget` y comandos similares, luego use la herramienta WebFetch con permiso `WebFetch(domain:github.com)` para dominios permitidos316 * **Restringir herramientas de red de Bash**: use reglas de negación para bloquear `curl`, `wget` y comandos similares, luego use la herramienta WebFetch con permiso `WebFetch(domain:github.com)` para dominios permitidos. Una regla de negación no coincide con el mismo programa por ruta o dentro de `sh -c`, así que emparéjela con la [lista de permitidos de red del sandbox](/docs/es/sandboxing#network-isolation) cuando la restricción debe mantenerse; vea [lo que una regla de Bash no coincide](#bash-rule-limits)
302 * **Usar hooks PreToolUse**: implemente un hook que valide URLs en comandos Bash y bloquee dominios no permitidos317 * **Usar hooks PreToolUse**: implemente un hook que valide URLs en comandos Bash y bloquee dominios no permitidos
303 * **Agregar orientación CLAUDE.md**: describa sus patrones curl permitidos en `CLAUDE.md`. Esto forma lo que Claude intenta pero no aplica un límite, así que emparéjelo con una de las opciones anteriores318 * **Agregar orientación CLAUDE.md**: describa sus patrones curl permitidos en `CLAUDE.md`. Esto forma lo que Claude intenta pero no aplica un límite, así que emparéjelo con una de las opciones anteriores
304 319
353Claude Code verifica permisos de archivo solo contra reglas `Edit(path)` y `Read(path)`. Si escribe una regla de ruta para `Write`, `NotebookEdit`, `Glob` o la herramienta heredada `MultiEdit` en su lugar, Claude Code acepta la regla pero nunca la consulta, y [advierte al inicio](/docs/es/errors#is-not-matched-by-file-permission-checks), excepto para una regla `Glob` pasada en `--allowedTools`. Use `Edit(docs/**)` en lugar de `Write(docs/**)`, `NotebookEdit(docs/**)` o `MultiEdit(docs/**)`, y `Read(docs/**)` en lugar de `Glob(docs/**)`. Claude Code no advierte sobre una regla de nombre de herramienta sin ruta, como una regla de negación para `Write`; coincide esa regla a nivel de herramienta en todas partes. Requiere Claude Code v2.1.210 o posterior.368Claude Code verifica permisos de archivo solo contra reglas `Edit(path)` y `Read(path)`. Si escribe una regla de ruta para `Write`, `NotebookEdit`, `Glob` o la herramienta heredada `MultiEdit` en su lugar, Claude Code acepta la regla pero nunca la consulta, y [advierte al inicio](/docs/es/errors#is-not-matched-by-file-permission-checks), excepto para una regla `Glob` pasada en `--allowedTools`. Use `Edit(docs/**)` en lugar de `Write(docs/**)`, `NotebookEdit(docs/**)` o `MultiEdit(docs/**)`, y `Read(docs/**)` en lugar de `Glob(docs/**)`. Claude Code no advierte sobre una regla de nombre de herramienta sin ruta, como una regla de negación para `Write`; coincide esa regla a nivel de herramienta en todas partes. Requiere Claude Code v2.1.210 o posterior.
354 369
355<Warning>370<Warning>
356 Las reglas de negación Read y Edit se aplican a las herramientas de archivo integradas de Claude, a comandos de archivo que Claude Code reconoce en Bash, como `cat`, `head`, `tail` y `sed`, y a los objetivos de [redirecciones](#redirections) de Bash como `> file` y `< file`. No se aplican a subprocesos arbitrarios que leen o escriben archivos indirectamente, como un script de Python o Node que abre archivos por sí mismo. Para aplicación a nivel del SO que bloquea todos los procesos de acceder a una ruta, [habilite el sandbox](/docs/es/sandboxing).371 Las reglas de negación Read y Edit se aplican a las herramientas de archivo integradas de Claude, a comandos de archivo que Claude Code reconoce en Bash, como `cat`, `head`, `tail` y `sed`, y a los objetivos de [redirecciones](#redirections) de Bash como `> file` y `< file`. No se aplican a un comando que lee archivos sin nombrarlos, como `grep -r pattern .` ejecutado desde el directorio que contiene el archivo, o a subprocesos arbitrarios que leen o escriben archivos indirectamente, como un script de Python o Node que abre archivos por sí mismo. Para aplicación a nivel del SO que bloquea todos los procesos de acceder a una ruta, [habilite el sandbox](/docs/es/sandboxing).
357</Warning>372</Warning>
358 373
359Las reglas Read y Edit ambas usan sintaxis de patrón [gitignore](https://git-scm.com/docs/gitignore) con cuatro tipos de patrones distintos; para patrones de directorio de un solo segmento, la profundidad de coincidencia también depende del tipo de regla, descrito más adelante en esta sección:374Las reglas Read y Edit ambas usan sintaxis de patrón [gitignore](https://git-scm.com/docs/gitignore) con cuatro tipos de patrones distintos; para patrones de directorio de un solo segmento, la profundidad de coincidencia también depende del tipo de regla, descrito más adelante en esta sección:
534Los patrones de ruta comparten los anclajes `//`, `~/` y `/` de [reglas Read y Edit](#read-and-edit), pero la coincidencia está anclada a la ruta del directorio completo en lugar de estilo gitignore. `*` coincide exactamente con un segmento de ruta y `**` coincide en segmentos. Un `/**` final también coincide con su raíz nombrada.549Los patrones de ruta comparten los anclajes `//`, `~/` y `/` de [reglas Read y Edit](#read-and-edit), pero la coincidencia está anclada a la ruta del directorio completo en lugar de estilo gitignore. `*` coincide exactamente con un segmento de ruta y `**` coincide en segmentos. Un `/**` final también coincide con su raíz nombrada.
535 550
536| Regla | Coincide | No coincide |551| Regla | Coincide | No coincide |
537| --------------------- | ----------------------------------------------------------- | ----------------------------- |552| --------------------- | ------------------------------------------------------------------------------------- | ----------------------------- |
538| `Cd(~/code/*)` | `~/code/app` | `~/code/app/src`, `~/code` |553| `Cd(~/code/*)` | `~/code/app` | `~/code/app/src`, `~/code` |
539| `Cd(~/code/**)` | `~/code` y cualquier directorio bajo él | directorios fuera de `~/code` |554| `Cd(~/code/**)` | `~/code` y cualquier directorio bajo él | directorios fuera de `~/code` |
540| `Cd(**/node_modules)` | cualquier directorio `node_modules` a cualquier profundidad | `node_modules/pkg` |555| `Cd(**/node_modules)` | cualquier directorio `node_modules` a cualquier profundidad bajo el directorio actual | `node_modules/pkg` |
541 556
542<h2 id="extend-permissions-with-hooks">557<h2 id="extend-permissions-with-hooks">
543 Extender permisos con hooks558 Extender permisos con hooks
567 582
568Establezca [`permissions.blockReadsOutsideWorkingDirectories`](/docs/es/settings-reference#permissions-blockreadsoutsideworkingdirectories) para hacer que las herramientas de archivo rechacen las rutas que delimita en cada modo de permisos. En modo automático, Claude Code ofrece activarlo la primera vez que Claude [lee fuera de los directorios de trabajo](/docs/es/permission-modes#first-read-outside-the-working-directories).583Establezca [`permissions.blockReadsOutsideWorkingDirectories`](/docs/es/settings-reference#permissions-blockreadsoutsideworkingdirectories) para hacer que las herramientas de archivo rechacen las rutas que delimita en cada modo de permisos. En modo automático, Claude Code ofrece activarlo la primera vez que Claude [lee fuera de los directorios de trabajo](/docs/es/permission-modes#first-read-outside-the-working-directories).
569 584
570En sesiones en segundo plano en macOS, el host de la sesión solicita acceso a carpetas protegidas como `~/Desktop`, `~/Documents` y `~/Downloads` por separado de su terminal cuando Claude necesita leer o escribir archivos allí; si las lecturas allí fallan con `Operation not permitted`, consulte [cómo otorgar acceso a carpetas a sesiones en segundo plano](/docs/es/agent-view#background-sessions-can't-read-desktop-documents-or-downloads-on-macos).585En sesiones en segundo plano en macOS, el host de la sesión solicita acceso a carpetas protegidas como `~/Desktop`, `~/Documents` y `~/Downloads` por separado de su terminal cuando Claude necesita leer o escribir archivos allí; si las lecturas allí fallan con `Operation not permitted`, consulte [cómo otorgar acceso a carpetas a sesiones en segundo plano](/docs/es/agent-view#background-sessions-can%E2%80%99t-read-desktop-documents-or-downloads-on-macos).
571 586
572<h3 id="move-the-session-to-another-directory">587<h3 id="move-the-session-to-another-directory">
573 Mover la sesión a otro directorio588 Mover la sesión a otro directorio
627* **Permisos** controlan qué herramientas puede usar Claude Code y qué archivos o dominios puede acceder. Se aplican a Bash, Read, Edit, WebFetch, MCP y todas las demás herramientas, excepto que una regla de negación o ask no puede bloquear [`EndConversation`](/docs/es/tools-reference#endconversation-tool-behavior) mientras cualquier otra herramienta permanezca.642* **Permisos** controlan qué herramientas puede usar Claude Code y qué archivos o dominios puede acceder. Se aplican a Bash, Read, Edit, WebFetch, MCP y todas las demás herramientas, excepto que una regla de negación o ask no puede bloquear [`EndConversation`](/docs/es/tools-reference#endconversation-tool-behavior) mientras cualquier otra herramienta permanezca.
628* **Sandboxing** proporciona aplicación a nivel del SO que restringe el acceso del sistema de archivos y red de la herramienta Bash. Se aplica solo a comandos Bash y sus procesos secundarios.643* **Sandboxing** proporciona aplicación a nivel del SO que restringe el acceso del sistema de archivos y red de la herramienta Bash. Se aplica solo a comandos Bash y sus procesos secundarios.
629 644
630Use ambos para defensa en profundidad:645Use ambos para defensa en profundidad, ya que las restricciones de sandbox aún se aplican incluso si una inyección de solicitud omite la toma de decisiones de Claude. Las rutas y dominios de la configuración de sandbox y las reglas de permisos se [fusionan en la configuración final del sandbox](/docs/es/sandboxing#permission-rules).
631
632* Las reglas de negación de permisos bloquean que Claude intente acceder a recursos restringidos
633* Las restricciones de sandbox previenen que comandos Bash alcancen recursos fuera de límites definidos, incluso si una inyección de solicitud omite la toma de decisiones de Claude
634* Las restricciones del sistema de archivos en el sandbox combinan la configuración [`sandbox.filesystem`](/docs/es/sandboxing) con reglas de negación Read y Edit; ambas se fusionan en el límite final del sandbox
635* Las restricciones de red combinan reglas de permisos `WebFetch(domain:...)` con las listas `allowedDomains` y `deniedDomains` del sandbox
636 646
637Cuando el sandboxing está habilitado y deja `autoAllowBashIfSandboxed` en su valor predeterminado de `true`, los comandos Bash en sandbox se ejecutan sin solicitar incluso si sus permisos incluyen una regla ask `Bash` simple, o la [forma equivalente `Bash(*)`](#match-all-uses-of-a-tool): el límite del sandbox sustituye ese aviso de herramienta completa.647Cuando el sandboxing está habilitado y deja `autoAllowBashIfSandboxed` en su valor predeterminado de `true`, los comandos Bash en sandbox se ejecutan sin solicitar incluso si sus permisos incluyen una regla ask `Bash` simple, o la [forma equivalente `Bash(*)`](#match-all-uses-of-a-tool): el límite del sandbox sustituye ese aviso de herramienta completa.
638 648
688 Cuándo su archivo de configuración local necesita confianza698 Cuándo su archivo de configuración local necesita confianza
689</h3>699</h3>
690 700
691`.claude/settings.local.json` es normalmente su propio archivo, por lo que Claude Code aplica sus reglas de permiso y directorios adicionales sin el paso de confianza. Cuando el archivo se rastrea en git, o `.claude` es un enlace simbólico, Claude Code lo trata como proporcionado por el repositorio en su lugar y mantiene sus reglas hasta que confíe en la carpeta.701`.claude/settings.local.json` es normalmente su propio archivo, por lo que Claude Code aplica sus reglas de permiso y directorios adicionales sin el paso de confianza. Cuando el archivo se rastrea en git, o `.claude` es un enlace simbólico, Claude Code lo trata como proporcionado por el repositorio en su lugar y retiene sus reglas sin aplicarlas hasta que confíe en la carpeta.
692 702
693Claude Code ejecuta git para distinguir los dos, y ejecuta git solo después de que haya confiado en la carpeta: aceptó el diálogo de confianza para ella o para un directorio principal cuya confianza se extiende a ella, o está en una sesión `-p` o SDK, que cuenta como aceptada. Hasta entonces, dónde inició Claude Code decide qué sucede con las reglas del archivo:703Claude Code ejecuta git para distinguir los dos, y ejecuta git solo después de que haya confiado en la carpeta: aceptó el diálogo de confianza para ella o para un directorio principal cuya confianza se extiende a ella, o está en una sesión `-p` o SDK, que cuenta como aceptada. Hasta entonces, dónde inició Claude Code decide qué sucede con las reglas del archivo:
694 704
695* **En su directorio de configuración personal:** Claude Code aplica el `.claude/settings.local.json` de esa carpeta de inmediato sin ejecutar git. Su directorio de configuración personal es su directorio de inicio, o un directorio cuyo subdirectorio `.claude` ha establecido como [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars#variables). Si ese directorio `CLAUDE_CONFIG_DIR` se encuentra dentro de un repositorio de git y Claude Code [mantiene su configuración local en la raíz del repositorio](/docs/es/settings#where-claude-code-looks-for-each-file) en su lugar, mantiene las reglas como en cualquier otro lugar.705* **En su directorio de configuración personal:** Claude Code aplica el `.claude/settings.local.json` de esa carpeta de inmediato sin ejecutar git. Su directorio de configuración personal es su directorio de inicio, o un directorio cuyo subdirectorio `.claude` ha establecido como [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars#variables). Si ese directorio `CLAUDE_CONFIG_DIR` se encuentra dentro de un repositorio de git y Claude Code [mantiene su configuración local en la raíz del repositorio](/docs/es/settings#where-claude-code-looks-for-each-file) en su lugar, retiene las reglas sin aplicarlas, como en cualquier otro lugar.
696* **En cualquier otro lugar:** Claude Code mantiene las reglas del archivo como configuración del proyecto. Una vez que la verificación ha ejecutado, Claude Code aplica las reglas de un archivo sin rastrear, o de un archivo en un directorio fuera de cualquier repositorio de git, aunque no haya confiado en esa carpeta exacta.706* **En cualquier otro lugar:** Claude Code retiene las reglas del archivo sin aplicarlas, como las de la configuración del proyecto. Una vez que la verificación ha ejecutado, Claude Code aplica las reglas de un archivo sin rastrear, o de un archivo en un directorio fuera de cualquier repositorio de git, aunque no haya confiado en esa carpeta exacta.
697 707
698<Note>708<Note>
699 La excepción del directorio de configuración omite solo el paso de confianza. `~/.claude/settings.local.json` sigue siendo [alcance local](/docs/es/settings#compare-the-scope-of-each-settings-file), por lo que Claude Code lo lee solo en sesiones que inicia en su directorio de inicio mismo, no en cada proyecto. Para aplicar reglas de permiso en todos sus proyectos, agréguelas a su configuración de usuario en su lugar: `~/.claude/settings.json`, o `$CLAUDE_CONFIG_DIR/settings.json` cuando `CLAUDE_CONFIG_DIR` está establecido.709 La excepción del directorio de configuración omite solo el paso de confianza. `~/.claude/settings.local.json` sigue siendo [alcance local](/docs/es/settings#compare-the-scope-of-each-settings-file), por lo que Claude Code lo lee solo en sesiones que inicia en su directorio de inicio mismo, no en cada proyecto. Para aplicar reglas de permiso en todos sus proyectos, agréguelas a su configuración de usuario en su lugar: `~/.claude/settings.json`, o `$CLAUDE_CONFIG_DIR/settings.json` cuando `CLAUDE_CONFIG_DIR` está establecido.