SpyBara
Go Premium

Documentation 2026-09-09 22:58 UTC to 2026-09-10 23:00 UTC

11 files changed +81 −53. View all changes and history on the product overview
2026
Fri 25 23:58 Thu 24 22:57 Wed 23 23:57 Tue 22 23:59 Mon 21 22:59 Sun 20 23:59 Sat 19 23:57 Fri 18 23:58 Tue 15 23:58 Mon 14 22:58 Sun 13 21:00 Sat 12 03:02 Thu 10 23:00 Wed 9 22:58 Tue 8 20:00 Tue 1 21:02
Details

199 ...process.env,199 ...process.env,

200 // ... exporter configuration from the Enable telemetry export example ...200 // ... exporter configuration from the Enable telemetry export example ...

201 OTEL_SERVICE_NAME: "support-triage-agent",201 OTEL_SERVICE_NAME: "support-triage-agent",

202 OTEL_RESOURCE_ATTRIBUTES":202 OTEL_RESOURCE_ATTRIBUTES:

203 "service.version=1.4.0,deployment.environment=production",203 "service.version=1.4.0,deployment.environment=production",

204 },204 },

205 };205 };

Details

3166<Note>3166<Note>

3167 En Python Agent SDK 0.2.139 y posterior, se aplica la siguiente restricción.3167 En Python Agent SDK 0.2.139 y posterior, se aplica la siguiente restricción.

3168 3168 

3169 The following tools aren't available on Opus 4.8, Sonnet 5, Fable 5, Mythos 5, or later versions of those families unless you opt in:3169 The following tools are available by default only on Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5. On every other model, including model IDs Claude Code doesn't recognize, they aren't available unless you opt in:

3170 3170 

3171 * `TodoWrite`3171 * `TodoWrite`

3172 * `TaskCreate`3172 * `TaskCreate`


3174 * `TaskUpdate`3174 * `TaskUpdate`

3175 * `TaskList`3175 * `TaskList`

3176 3176 

3177 On other models, Claude Code provides the Task tools by default and `TodoWrite` only when you set `CLAUDE_CODE_ENABLE_TASKS=0`.3177 Wherever the tools are available, Claude Code provides the four Task tools, or `TodoWrite` instead when you set `CLAUDE_CODE_ENABLE_TASKS=0`.

3178 

3179 This default set applies in Claude Code v2.1.268 and later, which the TypeScript Agent SDK bundles from v0.3.268.

3178 3180 

3179 Ver [Disponibilidad de modelos](/docs/es/agent-sdk/todo-tracking#model-availability) para optar por participar.3181 Ver [Disponibilidad de modelos](/docs/es/agent-sdk/todo-tracking#model-availability) para optar por participar.

3180</Note>3182</Note>

Details

17<Note>17<Note>

18 En TypeScript Agent SDK 0.3.233 y posterior, o Python Agent SDK 0.2.139 y posterior, se aplica la siguiente restricción.18 En TypeScript Agent SDK 0.3.233 y posterior, o Python Agent SDK 0.2.139 y posterior, se aplica la siguiente restricción.

19 19 

20 The following tools aren't available on Opus 4.8, Sonnet 5, Fable 5, Mythos 5, or later versions of those families unless you opt in:20 The following tools are available by default only on Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5. On every other model, including model IDs Claude Code doesn't recognize, they aren't available unless you opt in:

21 21 

22 * `TodoWrite`22 * `TodoWrite`

23 * `TaskCreate`23 * `TaskCreate`


25 * `TaskUpdate`25 * `TaskUpdate`

26 * `TaskList`26 * `TaskList`

27 27 

28 On other models, Claude Code provides the Task tools by default and `TodoWrite` only when you set `CLAUDE_CODE_ENABLE_TASKS=0`.28 Wherever the tools are available, Claude Code provides the four Task tools, or `TodoWrite` instead when you set `CLAUDE_CODE_ENABLE_TASKS=0`.

29 

30 This default set applies in Claude Code v2.1.268 and later, which the TypeScript Agent SDK bundles from v0.3.268.

29</Note>31</Note>

30 32 

31En los modelos enumerados, a menos que opte por una sesión, no verá bloques `tool_use` para las herramientas en la secuencia de mensajes. El SDK del Agente aplica estos valores predeterminados a través del binario de Claude Code que incluye. Si apunta `pathToClaudeCodeExecutable` (TypeScript) o `cli_path` (Python) a su propia instalación de Claude Code, obtiene las herramientas que esa instalación proporciona, bajo sus propios valores predeterminados. Para ver el conjunto exacto en una sesión en ejecución, [verifique qué herramientas están disponibles](/docs/es/tools-reference#check-which-tools-are-available). Para optar por una sesión, haga uno de lo siguiente:33En los modelos enumerados, a menos que opte por una sesión, no verá bloques `tool_use` para las herramientas en la secuencia de mensajes. El SDK del Agente aplica estos valores predeterminados a través del binario de Claude Code que incluye. Si apunta `pathToClaudeCodeExecutable` (TypeScript) o `cli_path` (Python) a su propia instalación de Claude Code, obtiene las herramientas que esa instalación proporciona, bajo sus propios valores predeterminados. Para ver el conjunto exacto en una sesión en ejecución, [verifique qué herramientas están disponibles](/docs/es/tools-reference#check-which-tools-are-available). Para optar por una sesión, haga uno de lo siguiente:

Details

3079<Note>3079<Note>

3080 En TypeScript Agent SDK 0.3.233 y posterior, se aplica la siguiente restricción.3080 En TypeScript Agent SDK 0.3.233 y posterior, se aplica la siguiente restricción.

3081 3081 

3082 The following tools aren't available on Opus 4.8, Sonnet 5, Fable 5, Mythos 5, or later versions of those families unless you opt in:3082 The following tools are available by default only on Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5. On every other model, including model IDs Claude Code doesn't recognize, they aren't available unless you opt in:

3083 3083 

3084 * `TodoWrite`3084 * `TodoWrite`

3085 * `TaskCreate`3085 * `TaskCreate`


3087 * `TaskUpdate`3087 * `TaskUpdate`

3088 * `TaskList`3088 * `TaskList`

3089 3089 

3090 On other models, Claude Code provides the Task tools by default and `TodoWrite` only when you set `CLAUDE_CODE_ENABLE_TASKS=0`.3090 Wherever the tools are available, Claude Code provides the four Task tools, or `TodoWrite` instead when you set `CLAUDE_CODE_ENABLE_TASKS=0`.

3091 

3092 This default set applies in Claude Code v2.1.268 and later, which the TypeScript Agent SDK bundles from v0.3.268.

3091 3093 

3092 Vea [Disponibilidad de modelo](/docs/es/agent-sdk/todo-tracking#model-availability) para optar por participar.3094 Vea [Disponibilidad de modelo](/docs/es/agent-sdk/todo-tracking#model-availability) para optar por participar.

3093</Note>3095</Note>


4117<Note>4119<Note>

4118 En TypeScript Agent SDK 0.3.233 y posterior, se aplica la siguiente restricción.4120 En TypeScript Agent SDK 0.3.233 y posterior, se aplica la siguiente restricción.

4119 4121 

4120 The following tools aren't available on Opus 4.8, Sonnet 5, Fable 5, Mythos 5, or later versions of those families unless you opt in:4122 The following tools are available by default only on Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5. On every other model, including model IDs Claude Code doesn't recognize, they aren't available unless you opt in:

4121 4123 

4122 * `TodoWrite`4124 * `TodoWrite`

4123 * `TaskCreate`4125 * `TaskCreate`


4125 * `TaskUpdate`4127 * `TaskUpdate`

4126 * `TaskList`4128 * `TaskList`

4127 4129 

4128 On other models, Claude Code provides the Task tools by default and `TodoWrite` only when you set `CLAUDE_CODE_ENABLE_TASKS=0`.4130 Wherever the tools are available, Claude Code provides the four Task tools, or `TodoWrite` instead when you set `CLAUDE_CODE_ENABLE_TASKS=0`.

4131 

4132 This default set applies in Claude Code v2.1.268 and later, which the TypeScript Agent SDK bundles from v0.3.268.

4129 4133 

4130 Consulte [Disponibilidad de modelo](/docs/es/agent-sdk/todo-tracking#model-availability) para optar por participar.4134 Consulte [Disponibilidad de modelo](/docs/es/agent-sdk/todo-tracking#model-availability) para optar por participar.

4131</Note>4135</Note>

channels.md +2 −2

Details

322 Habilitar channels para su organización322 Habilitar channels para su organización

323</h3>323</h3>

324 324 

325Habilite channels para su organización desde [**claude.ai → Configuración de administrador → Claude Code → Channels**](https://claude.ai/admin-settings/claude-code), que requiere el rol de administrador, o estableciendo `channelsEnabled` en `true` en la configuración administrada.325Habilite channels para su organización desde [**claude.ai → Configuración de administrador → Claude Code → Channels**](https://claude.ai/admin-settings/claude-code), que requiere el rol de Propietario, o estableciendo `channelsEnabled` en `true` en la configuración administrada.

326 326 

327Una vez habilitado, los usuarios de su organización pueden usar `--channels` para optar por servidores de channel en sesiones individuales. Si la configuración está deshabilitada o no está establecida, el servidor MCP aún se conecta y sus herramientas funcionan, pero los mensajes de channel no llegarán. Un mensaje de advertencia de inicio le dice al usuario que un administrador habilite la configuración.327Una vez habilitado, los usuarios de su organización pueden usar `--channels` para optar por servidores de channel en sesiones individuales. Si la configuración está deshabilitada o no está establecida, el servidor MCP aún se conecta y sus herramientas funcionan, pero los mensajes de channel no llegarán. Un mensaje de advertencia de inicio le dice al usuario que un administrador habilite la configuración.

328 328 


343}343}

344```344```

345 345 

346Si establece una matriz vacía, bloquea todos los plugins de channel de la lista de permitidos, pero `--dangerously-load-development-channels` aún puede omitirlo para pruebas locales. Para bloquear channels completamente incluida la bandera de desarrollo, déjelo sin establecer en su lugar.346Si establece una matriz vacía, bloquea todos los plugins de channel de la lista de permitidos, pero `--dangerously-load-development-channels` aún puede omitirlo para pruebas locales. Para bloquear channels completamente incluida la bandera de desarrollo, deje `channelsEnabled` sin establecer en su lugar.

347 347 

348Esta configuración requiere `channelsEnabled: true`. Si un usuario pasa un plugin a `--channels` que no está en su lista, Claude Code se inicia normalmente pero el channel no se registra, y el aviso de inicio explica que el plugin no está en la lista aprobada de la organización. Si establece `MCP_PROTOCOL_NEGOTIATION` en `auto` en el runtime del cliente MCP v2, un channel también puede no registrarse porque Claude Code [no registra un servidor de channel que negocia la revisión de protocolo 2026-07-28](/docs/es/mcp#push-messages-with-channels).348Esta configuración requiere `channelsEnabled: true`. Si un usuario pasa un plugin a `--channels` que no está en su lista, Claude Code se inicia normalmente pero el channel no se registra, y el aviso de inicio explica que el plugin no está en la lista aprobada de la organización. Si establece `MCP_PROTOCOL_NEGOTIATION` en `auto` en el runtime del cliente MCP v2, un channel también puede no registrarse porque Claude Code [no registra un servidor de channel que negocia la revisión de protocolo 2026-07-28](/docs/es/mcp#push-messages-with-channels).

349 349 

Details

17Claude Code offers three ways to schedule recurring or one-off work:17Claude Code offers three ways to schedule recurring or one-off work:

18 18 

19| | [Cloud](/docs/en/routines) | [Desktop](/docs/en/desktop-scheduled-tasks) | [`/loop`](/docs/en/scheduled-tasks) |19| | [Cloud](/docs/en/routines) | [Desktop](/docs/en/desktop-scheduled-tasks) | [`/loop`](/docs/en/scheduled-tasks) |

20| :------------------------- | :---------------------------------- | :------------------------------------- | :---------------------------------- |20| :------------------------- | :---------------------------------- | :------------------------------------- | :------------------------------------------------------------------------- |

21| Runs on | Cloud, Anthropic-managed by default | Your machine | Your machine |21| Runs on | Cloud, Anthropic-managed by default | Your machine | Your machine |

22| Requires machine on | No | Yes | Yes |22| Requires machine on | No | Yes | Yes |

23| Requires open session | No | No | Yes |23| Requires open session | No | No | Yes |

24| Persistent across restarts | Yes | Yes | Restored on `--resume` if unexpired |24| Persistent across restarts | Yes | Yes | Restored on `--resume`, with [exceptions](/docs/en/scheduled-tasks#limitations) |

25| Access to local files | No (fresh clone) | Yes | Yes |25| Access to local files | No (fresh clone) | Yes | Yes |

26| MCP servers | Connectors configured per task | [Config files](/docs/en/mcp) and connectors | Inherits from session |26| MCP servers | Connectors configured per task | [Config files](/docs/en/mcp) and connectors | Inherits from session |

27| Permission prompts | No (runs autonomously) | Configurable per task | Inherits from session |27| Permission prompts | No (runs autonomously) | Configurable per task | Inherits from session |

fullscreen.md +2 −1

Details

61| Estableció [`CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1`](/docs/es/env-vars) o `CLAUDE_CODE_NO_FLICKER=0` | Clásico |61| Estableció [`CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1`](/docs/es/env-vars) o `CLAUDE_CODE_NO_FLICKER=0` | Clásico |

62| Estableció `CLAUDE_CODE_NO_FLICKER=1` | Pantalla completa |62| Estableció `CLAUDE_CODE_NO_FLICKER=1` | Pantalla completa |

63| Claude Code [desactivó pantalla completa después de un inicio de pantalla completa fallido](#fullscreen-renderer-didnt-finish-starting) en esta máquina | Clásico |63| Claude Code [desactivó pantalla completa después de un inicio de pantalla completa fallido](#fullscreen-renderer-didnt-finish-starting) en esta máquina | Clásico |

64| Está en el modo de integración [`tmux -CC`](/docs/es/tmux) de iTerm2, o está conectado por SSH a Claude Code ejecutándose en Windows | Clásico |64| Está en el [modo de integración `tmux -CC`](#use-with-tmux) de iTerm2, o está conectado por SSH a Claude Code ejecutándose en Windows | Clásico |

65| Guardó una [configuración `tui`](/docs/es/settings-reference#tui) | El renderizador que nombra la configuración |65| Guardó una [configuración `tui`](/docs/es/settings-reference#tui) | El renderizador que nombra la configuración |

66| Su sesión no [obtiene banderas de características de Anthropic](/docs/es/env-vars#features-that-need-feature-flag-fetching), y Claude Code ha dejado de ofrecer el diálogo de inicio en esta máquina | Clásico |66| Su sesión no [obtiene banderas de características de Anthropic](/docs/es/env-vars#features-that-need-feature-flag-fetching), y Claude Code ha dejado de ofrecer el diálogo de inicio en esta máquina | Clásico |

67| Su sesión no obtiene banderas de características de Anthropic, y el primer lanzamiento de Claude Code en esta máquina ejecutó v2.1.239 o posterior | Pantalla completa |67| Su sesión no obtiene banderas de características de Anthropic, y el primer lanzamiento de Claude Code en esta máquina ejecutó v2.1.239 o posterior | Pantalla completa |


103* **Haga clic en una opción en un menú de selección** para elegirla. Esto cubre solicitudes de permisos, `/model`, `/config` y otros diálogos que muestran una lista de opciones. Pasar el ratón muestra un puntero en la fila bajo su cursor. Requiere Claude Code v2.1.187 o posterior.103* **Haga clic en una opción en un menú de selección** para elegirla. Esto cubre solicitudes de permisos, `/model`, `/config` y otros diálogos que muestran una lista de opciones. Pasar el ratón muestra un puntero en la fila bajo su cursor. Requiere Claude Code v2.1.187 o posterior.

104* **Haga clic en una opción en un menú de selección múltiple** para alternarla, y haga clic en el botón de envío para confirmar sus opciones. Hacer clic en una fila de texto libre, como la fila `Other` en una pregunta de opción múltiple, enfoca su campo de entrada para que pueda escribir una respuesta. Requiere Claude Code v2.1.208 o posterior.104* **Haga clic en una opción en un menú de selección múltiple** para alternarla, y haga clic en el botón de envío para confirmar sus opciones. Hacer clic en una fila de texto libre, como la fila `Other` en una pregunta de opción múltiple, enfoca su campo de entrada para que pueda escribir una respuesta. Requiere Claude Code v2.1.208 o posterior.

105* **Haga clic en un resultado de herramienta contraído** para expandirlo y ver la salida completa. Haga clic de nuevo para contraerlo. La llamada de herramienta y su resultado se expanden juntos. Solo los mensajes que tienen más para mostrar son clicables.105* **Haga clic en un resultado de herramienta contraído** para expandirlo y ver la salida completa. Haga clic de nuevo para contraerlo. La llamada de herramienta y su resultado se expanden juntos. Solo los mensajes que tienen más para mostrar son clicables.

106 * Hacer clic también expande la salida de un comando shell `!`, ya sea un resultado truncado anterior o la fila de progreso en vivo mientras se ejecuta el comando. Requiere Claude Code v2.1.257 o posterior.

106* **Mantenga presionado `Cmd` en macOS, o `Ctrl` en Linux y Windows, y haga clic en una URL o ruta de archivo** para abrirla. Las URLs simples `http://` y `https://` se abren en su navegador, y las rutas de archivo en la salida de herramientas, como las que se imprimen después de un Edit o Write, se abren en su aplicación predeterminada. Un clic simple sin el modificador no abre enlaces, coincidiendo con el comportamiento de terminal nativo.107* **Mantenga presionado `Cmd` en macOS, o `Ctrl` en Linux y Windows, y haga clic en una URL o ruta de archivo** para abrirla. Las URLs simples `http://` y `https://` se abren en su navegador, y las rutas de archivo en la salida de herramientas, como las que se imprimen después de un Edit o Write, se abren en su aplicación predeterminada. Un clic simple sin el modificador no abre enlaces, coincidiendo con el comportamiento de terminal nativo.

107 * Claude Code renderiza una ruta de red (UNC), como `\\server\share\file.ts`, como texto sin formato sin enlace, porque abrir una ruta de red puede enviar sus credenciales de Windows al host que nombra.108 * Claude Code renderiza una ruta de red (UNC), como `\\server\share\file.ts`, como texto sin formato sin enlace, porque abrir una ruta de red puede enviar sus credenciales de Windows al host que nombra.

108 * Algunos terminales de macOS reenvían `Cmd`+clic a la aplicación en ejecución en lugar de abrir el enlace ellos mismos, y el protocolo del ratón del terminal no tiene forma de codificar la tecla `Cmd`, por lo que Claude Code recibe un clic simple. En Ghostty, y en Warp en macOS, Claude Code detecta esto y permite que un clic simple en un enlace lo abra, y mantener presionado `Cmd` sigue funcionando.109 * Algunos terminales de macOS reenvían `Cmd`+clic a la aplicación en ejecución en lugar de abrir el enlace ellos mismos, y el protocolo del ratón del terminal no tiene forma de codificar la tecla `Cmd`, por lo que Claude Code recibe un clic simple. En Ghostty, y en Warp en macOS, Claude Code detecta esto y permite que un clic simple en un enlace lo abra, y mantener presionado `Cmd` sigue funcionando.

output-styles.md +18 −14

Details

6 6 

7> Adapte Claude Code para usos más allá de la ingeniería de software7> Adapte Claude Code para usos más allá de la ingeniería de software

8 8 

9Los estilos de salida cambian cómo responde Claude, no lo que Claude sabe. Modifican el mensaje del sistema para establecer el rol, el tono y el formato de salida. Use uno cuando siga re-solicitando la misma voz o formato en cada turno, o cuando desee que Claude actúe como algo diferente a un ingeniero de software.9Los estilos de salida cambian cómo responde Claude, no lo que Claude sabe. Establecen el rol, el tono y el formato de salida de Claude para cada respuesta. Use uno cuando siga re-solicitando la misma voz o formato en cada turno, o cuando desee que Claude actúe como algo diferente a un ingeniero de software.

10 10 

11Un estilo de salida personalizado agrega sus instrucciones al mensaje del sistema y le permite elegir si desea mantener las instrucciones integradas de ingeniería de software de Claude Code. Manténgalas cuando esté cambiando cómo Claude se comunica pero sigue codificando, como siempre respondiendo con un diagrama. Déjelas fuera cuando Claude no esté haciendo ingeniería de software en absoluto, como un asistente de escritura o analista de datos.11Un estilo de salida personalizado le proporciona a Claude sus propias instrucciones y le permite elegir si desea mantener las instrucciones integradas de ingeniería de software de Claude Code. Manténgalas cuando esté cambiando cómo Claude se comunica pero sigue codificando, como siempre respondiendo con un diagrama. Déjelas fuera cuando Claude no esté haciendo ingeniería de software en absoluto, como un asistente de escritura o analista de datos.

12 12 

13Para instrucciones sobre su proyecto, convenciones o base de código, use [CLAUDE.md](/docs/es/memory) en su lugar.13Para instrucciones sobre su proyecto, convenciones o base de código, use [CLAUDE.md](/docs/es/memory) en su lugar.

14 14 


16 Estilos de salida integrados16 Estilos de salida integrados

17</h2>17</h2>

18 18 

19El estilo de salida **Default** de Claude Code es el mensaje del sistema existente, diseñado para ayudarle a completar tareas de ingeniería de software de manera eficiente.19El estilo de salida **Default** de Claude Code es su conjunto estándar de instrucciones, diseñado para ayudarle a completar tareas de ingeniería de software de manera eficiente.

20 20 

21Hay cuatro estilos de salida integrados adicionales:21Hay cuatro estilos de salida integrados adicionales:

22 22 


36 36 

37* **Terminal**: ejecute `/config` y seleccione **Output style** para elegir un estilo de un menú. Claude Code guarda su selección en `.claude/settings.local.json` en el [nivel de proyecto local](/docs/es/settings).37* **Terminal**: ejecute `/config` y seleccione **Output style** para elegir un estilo de un menú. Claude Code guarda su selección en `.claude/settings.local.json` en el [nivel de proyecto local](/docs/es/settings).

38* **Extensión de VS Code**: abra el [menú de comandos](/docs/es/vs-code#use-the-prompt-box) con `/` y seleccione **Output styles** para elegir un estilo, incluidos sus estilos personalizados. Claude Code guarda su selección en `.claude/settings.local.json`, el mismo archivo que escribe el menú de terminal. Requiere Claude Code v2.1.257 o posterior.38* **Extensión de VS Code**: abra el [menú de comandos](/docs/es/vs-code#use-the-prompt-box) con `/` y seleccione **Output styles** para elegir un estilo, incluidos sus estilos personalizados. Claude Code guarda su selección en `.claude/settings.local.json`, el mismo archivo que escribe el menú de terminal. Requiere Claude Code v2.1.257 o posterior.

39* **Aplicación de escritorio**: establezca el campo `outputStyle` en un archivo de configuración, por ejemplo `.claude/settings.local.json`, el archivo que escribe el menú de terminal. Cuando ejecute `/config` allí, Claude Code [abre **Settings > Claude Code**](/docs/es/desktop#what's-not-available-in-desktop) en lugar de un menú.39* **Aplicación de escritorio**: establezca el campo `outputStyle` en un archivo de configuración, por ejemplo `.claude/settings.local.json`, el archivo que escribe el menú de terminal. Cuando ejecute `/config` allí, Claude Code [abre **Settings > Claude Code**](/docs/es/desktop#what%E2%80%99s-not-available-in-desktop) en lugar de un menú.

40 40 

41<Note>El comando independiente `/output-style` quedó obsoleto en v2.1.73 y se eliminó en v2.1.91. Utilice `/config` o edite la configuración `outputStyle` directamente.</Note>41<Note>El comando independiente `/output-style` quedó obsoleto en v2.1.73 y se eliminó en v2.1.91. Utilice `/config` o edite la configuración `outputStyle` directamente.</Note>

42 42 


48}48}

49```49```

50 50 

51Cuando cambia de estilos a mitad de sesión, Claude utiliza el nuevo estilo a partir de su siguiente mensaje. El estilo es parte del mensaje del sistema, por lo que ese primer mensaje reconstruye el [almacenamiento en caché de prompts](/docs/es/prompt-caching#changing-output-style) una vez. Antes de v2.1.251, el nuevo estilo se aplicaba solo después de ejecutar `/clear` o iniciar una nueva sesión.51Cuando cambia de estilos a mitad de sesión, Claude utiliza el nuevo estilo a partir de su siguiente mensaje. Para lo que cuesta ese primer mensaje en almacenamiento en caché de prompts, consulte [Cambiar el estilo de salida](/docs/es/prompt-caching#changing-output-style). Antes de v2.1.251, el nuevo estilo se aplicaba solo después de ejecutar `/clear` o iniciar una nueva sesión.

52 52 

53<h2 id="create-a-custom-output-style">53<h2 id="create-a-custom-output-style">

54 Crear un estilo de salida personalizado54 Crear un estilo de salida personalizado

55</h2>55</h2>

56 56 

57Un estilo de salida personalizado es un archivo Markdown: frontmatter para metadatos, luego las instrucciones a agregar al mensaje del sistema.57Un estilo de salida personalizado es un archivo Markdown: frontmatter para metadatos, luego las instrucciones para Claude.

58 

59En la extensión de VS Code, también puede crear el archivo desde el [menú **Output styles**](/docs/es/vs-code#use-the-prompt-box) en lugar de escribirlo manualmente. Esto requiere Claude Code v2.1.261 o posterior.

58 60 

59<Steps>61<Steps>

60 <Step title="Crear un archivo Markdown">62 <Step title="Crear un archivo Markdown">


111 Cómo funcionan los estilos de salida113 Cómo funcionan los estilos de salida

112</h2>114</h2>

113 115 

114Los estilos de salida modifican directamente el mensaje del sistema de Claude Code.116Un estilo de salida cambia las instrucciones que Claude Code le da a Claude.

115 117 

116* Claude Code agrega las instrucciones personalizadas del estilo de salida al mensaje del sistema.118* Claude Code envía las instrucciones del estilo activo con cada solicitud.

117* Cuando [selecciona un estilo diferente al predeterminado](#change-your-output-style), Claude Code también le recuerda a Claude el estilo durante la conversación.119* Cuando [selecciona un estilo diferente al predeterminado](#change-your-output-style), Claude Code también le recuerda a Claude el estilo durante la conversación.

118* Los estilos de salida personalizados dejan fuera las instrucciones integradas de ingeniería de software de Claude Code, como cómo delimitar cambios, escribir comentarios y verificar el trabajo, a menos que `keep-coding-instructions` esté establecido en `true`.120* Los estilos de salida personalizados dejan fuera las instrucciones integradas de ingeniería de software de Claude Code, como cómo delimitar cambios, escribir comentarios y verificar el trabajo, a menos que `keep-coding-instructions` esté establecido en `true`.

119 121 

120Los estilos de salida se aplican solo a la conversación principal: un [subagente ejecuta su propio mensaje del sistema](/docs/es/sub-agents#what-loads-at-startup), por lo que los estilos no cambian cómo responden los subagentes. Un [fork](/docs/es/sub-agents#fork-the-current-conversation) es la excepción, porque hereda el mensaje del sistema completo del padre.122Los estilos de salida se aplican a la conversación principal y a un [fork](/docs/es/sub-agents#fork-the-current-conversation), que hereda la conversación completa y el mensaje del sistema del padre. Otros [subagentes ejecutan su propio mensaje del sistema](/docs/es/sub-agents#what-loads-at-startup), por lo que los estilos no cambian cómo responden.

123 

124El uso de tokens depende del estilo. Las instrucciones de un estilo agregan tokens de entrada, aunque el almacenamiento en caché de prompts reduce este costo después de la primera solicitud en una sesión.

121 125 

122El uso de tokens depende del estilo. Agregar instrucciones al mensaje del sistema aumenta los tokens de entrada, aunque el almacenamiento en caché de prompts reduce este costo después de la primera solicitud en una sesión. Los estilos integrados Explanatory y Learning producen respuestas más largas que Default por diseño, lo que aumenta los tokens de salida, y el estilo Concise hace lo opuesto al instruir a Claude que mantenga las respuestas cortas por defecto. Para estilos personalizados, el uso de tokens de salida depende de lo que sus instrucciones le digan a Claude que produzca.126Los estilos integrados Explanatory y Learning producen respuestas más largas que Default por diseño, lo que aumenta los tokens de salida. El estilo Concise hace lo opuesto al instruir a Claude que mantenga las respuestas cortas por defecto. Para estilos personalizados, el uso de tokens de salida depende de lo que sus instrucciones le digan a Claude que produzca.

123 127 

124<h2 id="comparisons-to-related-features">128<h2 id="comparisons-to-related-features">

125 Comparaciones con características relacionadas129 Comparaciones con características relacionadas

126</h2>130</h2>

127 131 

128Varias características personalizan cómo se comporta Claude Code. Los estilos de salida modifican el mensaje del sistema directamente y se aplican a cada respuesta. Los otros agregan instrucciones sin cambiar el mensaje del sistema predeterminado, o los limitan a una tarea específica.132Varias características personalizan cómo se comporta Claude Code. Los estilos de salida cambian las instrucciones predeterminadas de Claude Code y se aplican a cada respuesta. Los otros agregan instrucciones sin cambiar los valores predeterminados, o los limitan a una tarea específica.

129 133 

130| Característica | Cómo funciona | Úselo cuando |134| Característica | Cómo funciona | Úselo cuando |

131| :----------------------- | :---------------------------------------------------------------------------- | :------------------------------------------------------------------------------------ |135| :----------------------- | :---------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------ |

132| Estilos de salida | Modifica el mensaje del sistema | Desea un rol, tono o formato de respuesta predeterminado diferente en cada turno |136| Estilos de salida | Cambia las instrucciones predeterminadas de Claude Code | Desea un rol, tono o formato de respuesta predeterminado diferente en cada turno |

133| [CLAUDE.md](/docs/es/memory) | Agrega un mensaje de usuario después del mensaje del sistema | Claude siempre debe conocer sus convenciones de proyecto y contexto de base de código |137| [CLAUDE.md](/docs/es/memory) | Agrega un mensaje de usuario después del mensaje del sistema | Claude siempre debe conocer sus convenciones de proyecto y contexto de base de código |

134| `--append-system-prompt` | Se agrega al mensaje del sistema sin eliminar nada | Desea una adición única para una única invocación |138| `--append-system-prompt` | Se agrega al mensaje del sistema sin eliminar nada | Desea una adición única pasada como una [bandera CLI](/docs/es/cli-reference#system-prompt-flags) al iniciar |

135| [Agents](/docs/es/sub-agents) | Ejecuta un subagente con su propio mensaje del sistema, modelo y herramientas | Desea un ayudante con alcance separado para una tarea enfocada |139| [Agents](/docs/es/sub-agents) | Ejecuta un subagente con su propio mensaje del sistema, modelo y herramientas | Desea un ayudante con alcance separado para una tarea enfocada |

136| [Skills](/docs/es/skills) | Carga instrucciones específicas de tareas cuando se invoca o es relevante | Tiene un flujo de trabajo reutilizable |140| [Skills](/docs/es/skills) | Carga instrucciones específicas de tareas cuando se invoca o es relevante | Tiene un flujo de trabajo reutilizable |

137 141 

permissions.md +29 −19

Details

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.

Details

17Claude Code offers three ways to schedule recurring or one-off work:17Claude Code offers three ways to schedule recurring or one-off work:

18 18 

19| | [Cloud](/docs/en/routines) | [Desktop](/docs/en/desktop-scheduled-tasks) | [`/loop`](/docs/en/scheduled-tasks) |19| | [Cloud](/docs/en/routines) | [Desktop](/docs/en/desktop-scheduled-tasks) | [`/loop`](/docs/en/scheduled-tasks) |

20| :------------------------- | :---------------------------------- | :------------------------------------- | :---------------------------------- |20| :------------------------- | :---------------------------------- | :------------------------------------- | :------------------------------------------------------------------------- |

21| Runs on | Cloud, Anthropic-managed by default | Your machine | Your machine |21| Runs on | Cloud, Anthropic-managed by default | Your machine | Your machine |

22| Requires machine on | No | Yes | Yes |22| Requires machine on | No | Yes | Yes |

23| Requires open session | No | No | Yes |23| Requires open session | No | No | Yes |

24| Persistent across restarts | Yes | Yes | Restored on `--resume` if unexpired |24| Persistent across restarts | Yes | Yes | Restored on `--resume`, with [exceptions](/docs/en/scheduled-tasks#limitations) |

25| Access to local files | No (fresh clone) | Yes | Yes |25| Access to local files | No (fresh clone) | Yes | Yes |

26| MCP servers | Connectors configured per task | [Config files](/docs/en/mcp) and connectors | Inherits from session |26| MCP servers | Connectors configured per task | [Config files](/docs/en/mcp) and connectors | Inherits from session |

27| Permission prompts | No (runs autonomously) | Configurable per task | Inherits from session |27| Permission prompts | No (runs autonomously) | Configurable per task | Inherits from session |


48 48 

49* Comandos integrados como `/permissions`, `/model`, o `/clear`49* Comandos integrados como `/permissions`, `/model`, o `/clear`

50* Skills marcados [`disable-model-invocation: true`](/docs/es/skills#frontmatter-reference), incluido el bundled skill `/verify`50* Skills marcados [`disable-model-invocation: true`](/docs/es/skills#frontmatter-reference), incluido el bundled skill `/verify`

51* Skills retenidos de Claude por una configuración [`skillOverrides`](/docs/es/skills#override-skill-visibility-from-settings) o una regla de [denegación](/docs/es/skills#restrict-claude's-skill-access) de `Skill`51* Skills retenidos de Claude por una configuración [`skillOverrides`](/docs/es/skills#override-skill-visibility-from-settings) o una regla de [denegación](/docs/es/skills#restrict-claude%E2%80%99s-skill-access) de `Skill`

52* [Prompts MCP](/docs/es/mcp#use-mcp-prompts-as-commands) como `/mcp__github__list_prs`52* [Prompts MCP](/docs/es/mcp#use-mcp-prompts-as-commands) como `/mcp__github__list_prs`

53 53 

54<h3 id="run-on-a-fixed-interval">54<h3 id="run-on-a-fixed-interval">

Details

80Todos estos aceptan el mismo formato de regla, `ToolName(specifier)`. El especificador depende de la herramienta, y varias herramientas comparten un formato:80Todos estos aceptan el mismo formato de regla, `ToolName(specifier)`. El especificador depende de la herramienta, y varias herramientas comparten un formato:

81 81 

82| Formato de regla | Se aplica a | Detalles |82| Formato de regla | Se aplica a | Detalles |

83| :----------------------------- | :------------------------ | :--------------------------------------------------------------------------- |83| :----------------------------- | :------------------------ | :----------------------------------------------------------------------------------- |

84| `Bash(npm run *)` | Bash, Monitor | [Coincidencia de patrón de comando](/docs/es/permissions#bash) |84| `Bash(npm run *)` | Bash, Monitor | [Coincidencia de patrón de comando](/docs/es/permissions#bash) |

85| `PowerShell(Get-ChildItem *)` | PowerShell | [Coincidencia de patrón de comando](/docs/es/permissions#powershell) |85| `PowerShell(Get-ChildItem *)` | PowerShell | [Coincidencia de patrón de comando](/docs/es/permissions#powershell) |

86| `Read(~/secrets/**)` | Read, Grep, Glob, LSP | [Coincidencia de patrón de ruta](/docs/es/permissions#read-and-edit) |86| `Read(~/secrets/**)` | Read, Grep, Glob, LSP | [Coincidencia de patrón de ruta](/docs/es/permissions#read-and-edit) |

87| `Edit(/src/**)` | Edit, Write, NotebookEdit | [Coincidencia de patrón de ruta](/docs/es/permissions#read-and-edit) |87| `Edit(/src/**)` | Edit, Write, NotebookEdit | [Coincidencia de patrón de ruta](/docs/es/permissions#read-and-edit) |

88| `Skill(deploy *)` | Skill | [Coincidencia de nombre de skill](/docs/es/skills#restrict-claude's-skill-access) |88| `Skill(deploy *)` | Skill | [Coincidencia de nombre de skill](/docs/es/skills#restrict-claude%E2%80%99s-skill-access) |

89| `Agent(Explore)` | Agent | [Coincidencia de tipo de subagente](/docs/es/permissions#agent-subagents) |89| `Agent(Explore)` | Agent | [Coincidencia de tipo de subagente](/docs/es/permissions#agent-subagents) |

90| `WebFetch(domain:example.com)` | WebFetch | [Coincidencia de dominio](/docs/es/permissions#webfetch) |90| `WebFetch(domain:example.com)` | WebFetch | [Coincidencia de dominio](/docs/es/permissions#webfetch) |

91| `WebSearch` | WebSearch | Sin especificador; permitir o denegar la herramienta en su totalidad |91| `WebSearch` | WebSearch | Sin especificador; permitir o denegar la herramienta en su totalidad |


154 Qué persiste entre comandos154 Qué persiste entre comandos

155</h3>155</h3>

156 156 

157* Cuando Claude ejecuta `cd` en la sesión principal, el nuevo directorio de trabajo se mantiene en comandos Bash posteriores siempre que permanezca dentro del directorio del proyecto o un [directorio de trabajo adicional](/docs/es/permissions#working-directories) que agregó con `--add-dir`, `/add-dir`, o `additionalDirectories` en la configuración. Las sesiones de subagentes nunca mantienen cambios de directorio de trabajo.157* Cuando Claude ejecuta `cd` en la sesión principal, el nuevo directorio de trabajo se mantiene en comandos Bash posteriores siempre que permanezca dentro del directorio del proyecto o un [directorio de trabajo adicional](/docs/es/permissions#working-directories) que agregó con `--add-dir`, `/add-dir`, o `additionalDirectories` en la configuración. Esto incluye comandos que Claude ejecuta en respuesta a sus mensajes posteriores.

158 * Las sesiones de subagentes nunca mantienen cambios de directorio de trabajo.

158 * Si `cd` sale de esos directorios, Claude Code se reinicia al directorio del proyecto y añade `Shell cwd was reset to <dir>` al resultado de la herramienta.159 * Si `cd` sale de esos directorios, Claude Code se reinicia al directorio del proyecto y añade `Shell cwd was reset to <dir>` al resultado de la herramienta.

159 * Para desactivar este mantenimiento de modo que cada comando Bash comience en el directorio del proyecto, establezca `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1`.160 * Para desactivar este mantenimiento de modo que cada comando Bash comience en el directorio del proyecto, establezca `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1`.

160* Las variables de entorno no persisten. Un `export` en un comando no estará disponible en el siguiente.161* Las variables de entorno no persisten. Un `export` en un comando no estará disponible en el siguiente.


301 302 

302Glob no respeta `.gitignore` por defecto, por lo que encuentra archivos ignorados por git junto con los rastreados. Esto difiere de [Grep](#grep-tool-behavior), que omite archivos ignorados por git. Para hacer que Glob respete `.gitignore`, establezca `CLAUDE_CODE_GLOB_NO_IGNORE=false` antes de lanzar Claude Code.303Glob no respeta `.gitignore` por defecto, por lo que encuentra archivos ignorados por git junto con los rastreados. Esto difiere de [Grep](#grep-tool-behavior), que omite archivos ignorados por git. Para hacer que Glob respete `.gitignore`, establezca `CLAUDE_CODE_GLOB_NO_IGNORE=false` antes de lanzar Claude Code.

303 304 

305Claude Code decide el permiso para una llamada Glob antes de verificar si el directorio de búsqueda existe. Aún ejecuta la verificación de permiso de lectura para una `path` faltante fuera de los [directorios de trabajo](/docs/es/permissions#working-directories), por lo que una solicitud de permiso para una ruta no significa que la ruta exista.

306 

304Un valor de `pattern` o `path` que contenga un byte nulo devuelve un error pidiendo a Claude que lo elimine.&#x20;307Un valor de `pattern` o `path` que contenga un byte nulo devuelve un error pidiendo a Claude que lo elimine.&#x20;

305 308 

306<h2 id="grep-tool-behavior">309<h2 id="grep-tool-behavior">


323 326 

324Grep respeta `.gitignore`, por lo que los archivos ignorados por git se omiten. Para buscar un archivo ignorado por git, Claude pasa su ruta directamente.327Grep respeta `.gitignore`, por lo que los archivos ignorados por git se omiten. Para buscar un archivo ignorado por git, Claude pasa su ruta directamente.

325 328 

329Claude Code decide el permiso para una llamada Grep antes de verificar si la `path` de búsqueda existe. Aún ejecuta la verificación de permiso de lectura para una `path` faltante fuera de los [directorios de trabajo](/docs/es/permissions#working-directories), por lo que un aviso de permiso para una ruta no significa que la ruta exista.

330 

326<h2 id="lsp-tool-behavior">331<h2 id="lsp-tool-behavior">

327 Comportamiento de la herramienta LSP332 Comportamiento de la herramienta LSP

328</h2>333</h2>