SpyBara
Go Premium

Documentation 2026-10-20 23:00 UTC to 2026-10-21 23:02 UTC

85 files changed +1,368 −439. View all changes and history on the product overview
2026
Fri 30 23:01 Thu 29 23:57 Wed 28 23:57 Tue 27 22:59 Mon 26 22:57 Sun 25 23:58 Sat 24 22:59 Fri 23 22:59 Thu 22 22:58 Wed 21 23:02 Tue 20 23:00 Mon 19 23:58 Sat 17 23:57 Fri 16 22:59 Thu 15 23:58 Wed 14 22:58 Tue 13 23:57 Sun 11 23:57 Sat 10 23:01 Fri 9 23:02 Thu 8 22:58 Wed 7 23:59 Tue 6 23:59 Mon 5 23:58 Sun 4 23:58 Sat 3 23:57 Fri 2 22:59 Thu 1 23:59

admin-setup.md +1 −1

Details

91| [Permission lockdown](/docs/es/permissions#managed-only-settings) | Hacer que la configuración administrada sea la [única fuente de configuración de reglas de permisos](/docs/es/settings-reference#allowmanagedpermissionrulesonly). Deshabilitar `--dangerously-skip-permissions` | `allowManagedPermissionRulesOnly`, `permissions.disableBypassPermissionsMode` |91| [Permission lockdown](/docs/es/permissions#managed-only-settings) | Hacer que la configuración administrada sea la [única fuente de configuración de reglas de permisos](/docs/es/settings-reference#allowmanagedpermissionrulesonly). Deshabilitar `--dangerously-skip-permissions` | `allowManagedPermissionRulesOnly`, `permissions.disableBypassPermissionsMode` |

92| [Starting permission mode](/docs/es/permission-modes#which-mode-a-session-starts-in) | Elegir el modo de permisos en el que comienzan las sesiones de terminal de los desarrolladores en lugar del modo de permisos inicial integrado, o eliminar el modo automático. [Switch permission modes](/docs/es/permission-modes#switch-permission-modes) enumera cuándo la extensión de VS Code lee un `defaultMode` que establece | `permissions.defaultMode`, `permissions.disableAutoMode` |92| [Starting permission mode](/docs/es/permission-modes#which-mode-a-session-starts-in) | Elegir el modo de permisos en el que comienzan las sesiones de terminal de los desarrolladores en lugar del modo de permisos inicial integrado, o eliminar el modo automático. [Switch permission modes](/docs/es/permission-modes#switch-permission-modes) enumera cuándo la extensión de VS Code lee un `defaultMode` que establece | `permissions.defaultMode`, `permissions.disableAutoMode` |

93| [Sandboxing](/docs/es/sandboxing) | Aislamiento de sistema de archivos y red a nivel del SO con listas de permitidos de dominio | `sandbox.enabled`, `sandbox.network.allowedDomains` |93| [Sandboxing](/docs/es/sandboxing) | Aislamiento de sistema de archivos y red a nivel del SO con listas de permitidos de dominio | `sandbox.enabled`, `sandbox.network.allowedDomains` |

94| [Managed policy CLAUDE.md](/docs/es/memory#deploy-organization-wide-claude-md) | Instrucciones de toda la organización cargadas en cada sesión, no se pueden excluir | Archivo en la ruta de política administrada |94| [Managed policy CLAUDE.md](/docs/es/memory#deploy-organization-wide-claude-md) | Orientación de comportamiento para Claude en toda la organización, en lugar de una regla aplicada por el cliente | Archivo en la ruta de política administrada |

95| [MCP server control](/docs/es/managed-mcp) | Restringir qué servidores MCP pueden agregar o conectar los usuarios, implementar un conjunto fijo, o proporcionar servidores remotos a cada usuario junto con los suyos propios | `allowedMcpServers`, `deniedMcpServers`, `allowManagedMcpServersOnly`, `managedMcpServers`, o un archivo `managed-mcp.json` implementado |95| [MCP server control](/docs/es/managed-mcp) | Restringir qué servidores MCP pueden agregar o conectar los usuarios, implementar un conjunto fijo, o proporcionar servidores remotos a cada usuario junto con los suyos propios | `allowedMcpServers`, `deniedMcpServers`, `allowManagedMcpServersOnly`, `managedMcpServers`, o un archivo `managed-mcp.json` implementado |

96| [Plugin marketplace control](/docs/es/plugins/org#restrict-what-users-can-install) | Restringir qué fuentes de marketplace pueden agregar e instalar los usuarios, rechazar las banderas CLI que cargan plugins, agents y servidores MCP para una única ejecución, bloquear [fuentes de plugin `command`](/docs/es/plugins/marketplace-reference#command-plugin-source), y crear una lista de permitidos de qué plugins de marketplaces pueden ser sugeridos | `strictKnownMarketplaces`, `blockedMarketplaces`, `disableSideloadFlags`, `disableCommandPluginSources`, `pluginSuggestionMarketplaces` |96| [Plugin marketplace control](/docs/es/plugins/org#restrict-what-users-can-install) | Restringir qué fuentes de marketplace pueden agregar e instalar los usuarios, rechazar las banderas CLI que cargan plugins, agents y servidores MCP para una única ejecución, bloquear [fuentes de plugin `command`](/docs/es/plugins/marketplace-reference#command-plugin-source), y crear una lista de permitidos de qué plugins de marketplaces pueden ser sugeridos | `strictKnownMarketplaces`, `blockedMarketplaces`, `disableSideloadFlags`, `disableCommandPluginSources`, `pluginSuggestionMarketplaces` |

97| [Customization lockdown](/docs/es/settings-reference#strictpluginonlycustomization) | Bloquear skills, agents, hooks y servidores MCP de fuentes de usuario y proyecto, para que solo provengan de plugins o configuración administrada. Bloquear skills también detiene los [skills que los desarrolladores habilitan en claude.ai](/docs/es/skills#where-synced-skills-load) de sincronizarse | `strictPluginOnlyCustomization` |97| [Customization lockdown](/docs/es/settings-reference#strictpluginonlycustomization) | Bloquear skills, agents, hooks y servidores MCP de fuentes de usuario y proyecto, para que solo provengan de plugins o configuración administrada. Bloquear skills también detiene los [skills que los desarrolladores habilitan en claude.ai](/docs/es/skills#where-synced-skills-load) de sincronizarse | `strictPluginOnlyCustomization` |

advisor.md +1 −1

Details

83 83 

84Si inicias una [sesión en segundo plano](/docs/es/agent-view) con `--advisor` y se aplica uno de estos casos, Claude Code inicia la sesión sin el advisor en lugar de salir.84Si inicias una [sesión en segundo plano](/docs/es/agent-view) con `--advisor` y se aplica uno de estos casos, Claude Code inicia la sesión sin el advisor en lugar de salir.

85 85 

86Si el modelo solicitado puede actuar como advisor pero [tiene un rango inferior](#choose-an-advisor-model) al del modelo principal de la sesión, Claude Code inicia la sesión de todos modos. Fuera de las sesiones en segundo plano, también advierte al iniciar que el modelo `cannot advise` al modelo principal.86Si el modelo que pasas puede actuar como advisor pero [tiene un rango inferior al de tu modelo principal](#choose-an-advisor-model), la sesión se inicia sea o no una sesión en segundo plano. En ese caso, tu modelo principal se ejecuta sin el advisor.

87 87 

88## Elegir un modelo advisor88## Elegir un modelo advisor

89 89 

Details

372 372 

373### Configurar herramientas permitidas373### Configurar herramientas permitidas

374 374 

375La opción `tools` y las listas permitidas/no permitidas afectan dos capas: disponibilidad, que controla si una herramienta aparece en el contexto de Claude, y permiso, que controla si una llamada se aprueba una vez que Claude intenta realizarla. `tools` y las entradas de `disallowedTools` con nombre simple cambian la disponibilidad. `allowedTools` y las reglas de `disallowedTools` con alcance cambian el permiso. Si nombra una de las [herramientas de seguimiento de tareas](/docs/es/agent-sdk/todo-tracking#model-availability) en `allowedTools`, Claude Code también opta por la sesión.375La opción `tools` y las listas permitidas/no permitidas afectan dos capas: disponibilidad, que controla si una herramienta aparece en el contexto de Claude, y permiso, que controla si una llamada se aprueba una vez que Claude intenta realizarla. `tools` y las entradas de `disallowedTools` con nombre simple cambian la disponibilidad. `allowedTools` y las reglas de `disallowedTools` con alcance cambian el permiso. Si nombra una de las [herramientas de seguimiento de tareas](/docs/es/agent-sdk/todo-tracking#model-availability) en `allowedTools`, Claude Code también habilita esas herramientas en la sesión.

376 376 

377| Opción | Capa | Efecto |377| Opción | Capa | Efecto |

378| :- | :- | :- |378| :- | :- | :- |

Details

20 20 

21Las aplicaciones en [`claude-agent-sdk-demos`](https://github.com/anthropics/claude-agent-sdk-demos) son demostraciones para desarrollo local, desde un cliente de correo electrónico hasta un sistema de investigación multiagente. Clona la demostración cuya estructura coincida con lo que estás construyendo.21Las aplicaciones en [`claude-agent-sdk-demos`](https://github.com/anthropics/claude-agent-sdk-demos) son demostraciones para desarrollo local, desde un cliente de correo electrónico hasta un sistema de investigación multiagente. Clona la demostración cuya estructura coincida con lo que estás construyendo.

22 22 

23## Haz un fork de un proyecto completo

24 

25Para crear un agente de compras o un agente de comerciante con el Python SDK, comienza desde la [implementación de referencia de Claude for commerce](https://platform.claude.com/docs/en/about-claude/use-case-guides/commerce-agents).

26 

23## Trabaja a través de una receta de Python27## Trabaja a través de una receta de Python

24 28 

25La serie Agent SDK del Claude Cookbook es una secuencia de recetas, cada una un cuaderno de Python, que progresa desde un agente de investigación simple hasta sistemas multiagente sofisticados. Cada cuaderno se basa en el anterior, introduciendo nuevos conceptos y capacidades. Comienza con [el agente de investigación de una línea](https://platform.claude.com/cookbook/claude-agent-sdk-00-the-one-liner-research-agent) y avanza.29La serie Agent SDK del Claude Cookbook es una secuencia de recetas, cada una un cuaderno de Python, que progresa desde un agente de investigación simple hasta sistemas multiagente sofisticados. Cada cuaderno se basa en el anterior, introduciendo nuevos conceptos y capacidades. Comienza con [el agente de investigación de una línea](https://platform.claude.com/cookbook/claude-agent-sdk-00-the-one-liner-research-agent) y avanza.

Details

638 638 

639* [`permission_prompt`](/docs/es/hooks#notification) una vez que una solicitud de permiso ha esperado aproximadamente seis segundos en su devolución de llamada [`canUseTool`](/docs/es/agent-sdk/user-input). Requiere TypeScript Agent SDK v0.3.233 o posterior, o Python Agent SDK v0.2.139 o posterior639* [`permission_prompt`](/docs/es/hooks#notification) una vez que una solicitud de permiso ha esperado aproximadamente seis segundos en su devolución de llamada [`canUseTool`](/docs/es/agent-sdk/user-input). Requiere TypeScript Agent SDK v0.3.233 o posterior, o Python Agent SDK v0.2.139 o posterior

640* `elicitation_complete` y `elicitation_response` para flujos de elicitación de solicitud del usuario640* `elicitation_complete` y `elicitation_response` para flujos de elicitación de solicitud del usuario

641* `plugin_notification` cuando un [mod](/docs/es/plugins/mods/api#show-something-without-starting-a-turn) llama a `$.ui.notify`

641 642 

642Claude Code emite los otros tipos, como `idle_prompt`, `auth_success` y `elicitation_dialog`, desde la interfaz de usuario interactiva que las sesiones del SDK no ejecutan.643Claude Code emite los otros tipos, como `idle_prompt`, `auth_success` y `elicitation_dialog`, desde la interfaz de usuario interactiva que las sesiones del SDK no ejecutan.

643 644 

agent-sdk/mcp.md +29 −11

Details

142 142 

143## Temporización de la conexión143## Temporización de la conexión

144 144 

145Claude Code registra los servidores que usted pasa en `options.mcpServers` al inicio y emite el [mensaje init](#error-handling) una vez que se resuelve la espera de primer turno, si la hay. Si cada servidor de `options.mcpServers` retrasa el primer turno, y cuándo se conecta, depende de su tipo:145Claude Code empieza a conectar tus servidores MCP cuando se inicia la sesión, y envía el [mensaje init](#error-handling) una vez que termina la espera del primer turno, si la hay. Cuánto espera el primer turno a un servidor depende de dónde lo configuraste. Si estableces `permissionPromptToolName`, el primer turno siempre espera al servidor de esa herramienta, hasta `MCP_TIMEOUT`, dondequiera que lo hayas configurado.

146 

147Para un servidor en `options.mcpServers`, busca su tipo en la primera columna para ver cuánto lo espera el primer turno.

146 148 

147| Tipo de servidor | ¿Retrasa el primer turno? | Tiempo de espera del primer turno |149| Tipo de servidor | ¿Retrasa el primer turno? | Tiempo de espera del primer turno |

148| :- | :- | :- |150| :- | :- | :- |


150| Servidor remoto con una lista de herramientas en caché, guardada por Claude Code desde una conexión anterior | No; las herramientas en caché están disponibles desde el primer turno | Ninguno; se conecta en su primera llamada de herramienta, y esa conexión diferida tiene su propio tiempo de espera |152| Servidor remoto con una lista de herramientas en caché, guardada por Claude Code desde una conexión anterior | No; las herramientas en caché están disponibles desde el primer turno | Ninguno; se conecta en su primera llamada de herramienta, y esa conexión diferida tiene su propio tiempo de espera |

151| Servidor [SDK](#sdk-mcp-servers) en proceso | Sí, hasta que se conecte y enumere sus herramientas | [`MCP_TIMEOUT`](/docs/es/env-vars), 30 segundos por defecto, por intento de conexión; la conexión falla en ese plazo |153| Servidor [SDK](#sdk-mcp-servers) en proceso | Sí, hasta que se conecte y enumere sus herramientas | [`MCP_TIMEOUT`](/docs/es/env-vars), 30 segundos por defecto, por intento de conexión; la conexión falla en ese plazo |

152 154 

153Los servidores cargados desde [archivos de configuración](#from-a-config-file) como `.mcp.json` o desde plugins comúnmente muestran `pending` en el mensaje init. Cuando `options.mcpServers` contiene un servidor stdio, HTTP o SSE, el primer turno espera a que se conecten estos servidores pendientes también, hasta `MCP_TIMEOUT`. Cuando `options.mcpServers` está vacío o contiene solo servidores SDK, el primer turno espera hasta 2 segundos en su lugar:155Un servidor tiene una lista de herramientas en caché solo cuando la [caché de descubrimiento de MCP](/docs/es/mcp#server-status-detail) está activada.

156 

157Los servidores de [archivos de configuración](#from-a-config-file) como `.mcp.json`, o de plugins, a menudo todavía muestran `pending` en el mensaje init. Cuánto los espera el primer turno depende de `options.mcpServers` y de la búsqueda de herramientas:

158 

159* **`options.mcpServers` incluye un servidor stdio, HTTP o SSE**: el primer turno también espera a los servidores pendientes de archivos de configuración y de plugins, hasta `MCP_TIMEOUT`.

160* **En caso contrario, cuando `ANTHROPIC_BASE_URL` apunta a un [gateway](/docs/es/mcp#tool-search-through-a-gateway) y [`ENABLE_TOOL_SEARCH`](/docs/es/mcp#configure-tool-search) no está definido**: el primer turno espera hasta 2 segundos a cada servidor pendiente de archivos de configuración y de plugins.

161* **En caso contrario, con la [búsqueda de herramientas](/docs/es/agent-sdk/tool-search) activada, que es el valor predeterminado**: el primer turno espera hasta 2 segundos, y solo a los servidores pendientes que establecen [`alwaysLoad: true`](/docs/es/mcp#exempt-a-server-from-deferral) o que [nombraste](#named-servers). Los demás siguen conectándose en segundo plano, y Claude [accede a sus herramientas](/docs/es/mcp#tool-availability) una vez que se conectan.

162* **En caso contrario, con la búsqueda de herramientas desactivada**: el primer turno espera hasta 2 segundos a cada servidor pendiente de archivos de configuración y de plugins. La búsqueda de herramientas está desactivada cuando tu [valor de `ENABLE_TOOL_SEARCH` o tu modelo](/docs/es/agent-sdk/tool-search#configure-tool-search) la desactiva, o cuando excluyes la herramienta `ToolSearch`, por ejemplo a través de `disallowedTools`.

163 

164### Servidores nombrados

165 

166Nombras un servidor al incluir cualquiera de sus herramientas, como `mcp__github__list_issues` o `mcp__github__*`, en [`allowedTools`](#allow-mcp-tools) o en una regla `permissions.allow` en la opción `settings`. Un [hook `mcp_tool`](/docs/es/hooks#mcp-tool-hook-fields) también nombra el servidor al que llama cuando lo configuras en un evento de envío de prompt, uso de herramienta, permiso, subagente, tarea, elicitación o worktree. Antes de v2.1.284, nombrar un servidor no tenía efecto en la espera del primer turno.

167 

168### Establece tú mismo la espera del primer turno

169 

170Para elegir tú mismo la espera del primer turno, establece `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` en la [opción `env`](/docs/es/agent-sdk/configuration#set-environment-variables), por ejemplo `CLAUDE_CODE_MCP_STARTUP_WAIT_MS: "5000"`. El primer turno entonces espera hasta esa cantidad de milisegundos a los servidores pendientes de archivos de configuración y de plugins, esté o no activada la búsqueda de herramientas. El mismo límite reemplaza la espera `MCP_TIMEOUT` para los servidores stdio, HTTP y SSE en `options.mcpServers`.

154 171 

155* **Con [búsqueda de herramientas](/docs/es/agent-sdk/tool-search), el valor predeterminado**: la espera cubre servidores aún pendientes configurados con [`alwaysLoad: true`](/docs/es/mcp#exempt-a-server-from-deferral) y no el resto. El resto sigue conectándose en segundo plano. [Disponibilidad de herramientas](/docs/es/mcp#tool-availability) describe cómo Claude accede a sus herramientas una vez que se conectan.172Tres esperas se aplican sea cual sea el valor que establezcas, incluido `0`:

156* **Sin búsqueda de herramientas**: la espera cubre cada servidor pendiente. [Configurar búsqueda de herramientas](/docs/es/agent-sdk/tool-search#configure-tool-search) cubre qué desactiva la búsqueda de herramientas. Si usted excluye la herramienta `ToolSearch` de la sesión, por ejemplo a través de `disallowedTools`, la sesión también se ejecuta sin búsqueda de herramientas.

157 173 

158Si usted establece `permissionPromptToolName`, el primer turno también espera al servidor de esa herramienta en todos los casos, hasta `MCP_TIMEOUT`.174* **Un servidor `permissionPromptToolName`**: hasta `MCP_TIMEOUT`.

175* **Un [servidor SDK](#sdk-mcp-servers) en proceso**: hasta `MCP_TIMEOUT` por intento de conexión.

176* **Un [servidor nombrado](#named-servers) que aún se está conectando**: al menos hasta 2 segundos, por lo que un valor inferior a `2000` no acorta su espera.

159 177 

160Para establecer la espera del primer turno usted mismo, agregue `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` a la [opción `env`](/docs/es/agent-sdk/configuration#set-environment-variables), por ejemplo `CLAUDE_CODE_MCP_STARTUP_WAIT_MS: "5000"`. El primer turno entonces espera hasta esa cantidad de milisegundos para cada servidor pendiente, independientemente de si la búsqueda de herramientas está disponible. Este plazo también reemplaza la espera del primer turno `MCP_TIMEOUT` para servidores stdio, HTTP y SSE en `options.mcpServers`. `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` requiere Claude Code v2.1.274 o posterior.178Establece la variable en `0` para omitir la espera para todos los demás servidores. Los servidores aún pendientes cuando termina la espera siguen conectándose en segundo plano. `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` requiere Claude Code v2.1.274 o posterior.

161 179 

162Los servidores aún pendientes cuando termina la espera siguen conectándose en segundo plano. Establezca la variable en `0` para omitir la espera. Un servidor `permissionPromptToolName` mantiene su propia espera `MCP_TIMEOUT` independientemente del valor.180### Haz que el inicio espere a los servidores

163 181 

164Para bloquear el inicio mismo en una fase separada y anterior a la espera del primer turno, antes de que se envíe el mensaje init:182Dos ajustes hacen que el propio inicio espere, antes de que Claude Code envíe el mensaje init:

165 183 

166* Establezca [`MCP_CONNECTION_NONBLOCKING`](/docs/es/env-vars) en `0` para bloquear todo el lote de conexiones. Claude Code limita esa espera a 5 segundos por defecto. Ajuste el límite con la variable de entorno [`MCP_CONNECT_TIMEOUT_MS`](/docs/es/env-vars), en milisegundos. Los servidores aún pendientes en ese plazo siguen conectándose en segundo plano.184* **[`MCP_CONNECTION_NONBLOCKING`](/docs/es/env-vars) establecido en `0`**: el inicio espera a todo el lote de conexiones, hasta 5 segundos por defecto. Establece [`MCP_CONNECT_TIMEOUT_MS`](/docs/es/env-vars), en milisegundos, para cambiar ese límite. Los servidores aún pendientes al alcanzar el límite siguen conectándose en segundo plano.

167* Establezca `alwaysLoad: true` en la configuración de un servidor para que sus herramientas estén disponibles en sus esquemas completos en el primer turno, [exentas de aplazamiento de búsqueda de herramientas](/docs/es/mcp#exempt-a-server-from-deferral). Claude Code espera al inicio a que se conecten las herramientas de ese servidor, limitado al mismo plazo, mientras que otros servidores siguen conectándose en segundo plano; un servidor remoto con una lista de herramientas en caché las proporciona sin conectarse, según la tabla anterior.185* **`alwaysLoad: true` en la configuración de un servidor**: el inicio espera hasta el mismo límite a las herramientas de ese servidor, para que el primer turno las tenga con su esquema completo, [exentas del aplazamiento de la búsqueda de herramientas](/docs/es/mcp#exempt-a-server-from-deferral). Un servidor remoto con una lista de herramientas en caché las proporciona sin conectarse ni retener el inicio.

168 186 

169El mensaje `system` con subtipo `init` reporta el estado de cada servidor en el momento en que se emite; consulte [Manejo de errores](#error-handling) para leer esos estados.187El mensaje init reporta el estado de cada servidor en el momento en que Claude Code lo envía.

170 188 

171## Permitir herramientas MCP189## Permitir herramientas MCP

172 190 

Details

78| `disallowed_tools=["Bash(rm *)"]` | `Bash` sigue disponible. Las llamadas que coincidan con `rm *` [tal como está escrito](/docs/es/permissions#bash-rule-limits) se deniegan en todos los modos de permisos, incluido `bypassPermissions`. Otras llamadas a `Bash`, incluido `/bin/rm`, caen en el modo de permisos. |78| `disallowed_tools=["Bash(rm *)"]` | `Bash` sigue disponible. Las llamadas que coincidan con `rm *` [tal como está escrito](/docs/es/permissions#bash-rule-limits) se deniegan en todos los modos de permisos, incluido `bypassPermissions`. Otras llamadas a `Bash`, incluido `/bin/rm`, caen en el modo de permisos. |

79| `disallowed_tools=["*"]` | Cada definición de herramienta se elimina de la solicitud. Los patrones globales de nombres de herramientas se admiten en reglas de denegación: `"*"` coincide con cada herramienta y `"mcp__*"` coincide con cada herramienta MCP en todos los servidores. |79| `disallowed_tools=["*"]` | Cada definición de herramienta se elimina de la solicitud. Los patrones globales de nombres de herramientas se admiten en reglas de denegación: `"*"` coincide con cada herramienta y `"mcp__*"` coincide con cada herramienta MCP en todos los servidores. |

80 80 

81Las reglas de permitir aceptan patrones globales de nombres de herramientas solo después de un prefijo literal `mcp__<server>__`. El segmento del servidor debe estar libre de patrones globales para que la regla nombre un servidor específico que haya configurado: `mcp__puppeteer__*` coincide con cada herramienta del servidor `puppeteer`, y `mcp__github__get_*` coincide con sus herramientas `get_`. Una entrada sin ancla como `allowed_tools=["*"]` o `allowed_tools=["mcp__*"]` se ignora con una advertencia de inicio y no aprueba automáticamente nada.81Las reglas de permitir aceptan patrones globales de nombres de herramientas solo después de un prefijo literal `mcp__<server>__`. El segmento del servidor debe estar libre de patrones globales para que la regla nombre un servidor específico que hayas configurado: `mcp__puppeteer__*` coincide con cada herramienta del servidor `puppeteer`, y `mcp__github__get_*` coincide con sus herramientas `get_`. Una entrada sin ancla como `allowed_tools=["*"]` o `allowed_tools=["mcp__*"]` se ignora y no aprueba automáticamente nada.

82 82 

83Las reglas delimitadas para `Read` y `Edit` toman un patrón de ruta. Las reglas `Edit(path)` rigen todas las herramientas integradas que escriben archivos, incluidas `Write` y `NotebookEdit`; una regla `Write(path)` nunca es coincidida por las comprobaciones de permisos de archivo.83Las reglas delimitadas para `Read` y `Edit` toman un patrón de ruta. Las reglas `Edit(path)` rigen todas las herramientas integradas que escriben archivos, incluidas `Write` y `NotebookEdit`; una regla `Write(path)` nunca es coincidida por las comprobaciones de permisos de archivo.

84 84 

Details

535| `set_model(model)` | Cambiar el modelo para la sesión actual. Pasa `None` para restablecer al [modelo predeterminado de Claude Code](/docs/es/model-config). Una sesión en modo `auto` [cambia al modo `default`](/docs/es/agent-sdk/permissions#auto-mode-auto) si el nuevo modelo no admite el modo automático |535| `set_model(model)` | Cambiar el modelo para la sesión actual. Pasa `None` para restablecer al [modelo predeterminado de Claude Code](/docs/es/model-config). Una sesión en modo `auto` [cambia al modo `default`](/docs/es/agent-sdk/permissions#auto-mode-auto) si el nuevo modelo no admite el modo automático |

536| `rewind_files(user_message_id)` | Restaurar archivos a su estado en el mensaje de usuario especificado. Requiere `enable_file_checkpointing=True`. Ver [File checkpointing](/docs/es/agent-sdk/file-checkpointing) |536| `rewind_files(user_message_id)` | Restaurar archivos a su estado en el mensaje de usuario especificado. Requiere `enable_file_checkpointing=True`. Ver [File checkpointing](/docs/es/agent-sdk/file-checkpointing) |

537| `get_mcp_status()` | Obtener el estado de todos los servidores MCP configurados. Devuelve [`McpStatusResponse`](#mcpstatusresponse) |537| `get_mcp_status()` | Obtener el estado de todos los servidores MCP configurados. Devuelve [`McpStatusResponse`](#mcpstatusresponse) |

538| `get_context_usage()` | Obtener un desglose del uso de la ventana de contexto por categoría, skill y herramienta. Los mismos datos que `/context` muestra en una sesión interactiva. Devuelve [`ContextUsageResponse`](#contextusageresponse). Para calcular el desglose, Claude Code realiza varias solicitudes de API de conteo de tokens que no aparecen en el flujo de mensajes; ver [cómo se manejan estas solicitudes](#contextusageresponse) |538| `get_context_usage()` | Obtener un desglose del uso de la ventana de contexto por categoría, skill y herramienta. Incluye los datos que `/context` muestra en una sesión interactiva. Devuelve [`ContextUsageResponse`](#contextusageresponse). Para calcular el desglose, Claude Code realiza varias solicitudes de API de conteo de tokens que no aparecen en el flujo de mensajes; ver [cómo se manejan estas solicitudes](#contextusageresponse) |

539| `reconnect_mcp_server(server_name)` | Reintentar conectar a un servidor MCP que falló o fue desconectado |539| `reconnect_mcp_server(server_name)` | Reintentar conectar a un servidor MCP que falló o fue desconectado |

540| `toggle_mcp_server(server_name, enabled)` | Habilitar o deshabilitar un servidor MCP a mitad de sesión. Deshabilitar elimina sus herramientas |540| `toggle_mcp_server(server_name, enabled)` | Habilitar o deshabilitar un servidor MCP a mitad de sesión. Deshabilitar elimina sus herramientas |

541| `stop_task(task_id)` | Detener una tarea de fondo en ejecución. Un [`TaskNotificationMessage`](#tasknotificationmessage) con estado `"stopped"` sigue en el flujo de mensajes |541| `stop_task(task_id)` | Detener una tarea de fondo en ejecución. Un [`TaskNotificationMessage`](#tasknotificationmessage) con estado `"stopped"` sigue en el flujo de mensajes |


1524 1524 

1525### `ContextUsageResponse`1525### `ContextUsageResponse`

1526 1526 

1527Respuesta de [`ClaudeSDKClient.get_context_usage()`](#methods). Es el mismo payload que Claude Code renderiza para el comando `/context` en una sesión interactiva, por lo que, junto con los recuentos de tokens, incluye campos de visualización como `color` y `gridRows` que Claude Code usa para dibujar la cuadrícula de uso de `/context`.1527Respuesta de [`ClaudeSDKClient.get_context_usage()`](#methods). La respuesta incluye el payload que Claude Code renderiza para el comando `/context` en una sesión interactiva. Junto con los recuentos de tokens, ese payload incluye campos de visualización como `color` y `gridRows` que Claude Code usa para dibujar la cuadrícula de uso de `/context`.

1528 1528 

1529Claude Code construye este payload enviando varias solicitudes a la API de [conteo de tokens](https://platform.claude.com/docs/en/build-with-claude/token-counting). Estas solicitudes no aparecen en el stream de mensajes, por lo que el seguimiento de costos que lee el stream no las verá. En la API de Anthropic, el conteo de tokens no se factura.1529Claude Code construye este payload enviando varias solicitudes a la API de [conteo de tokens](https://platform.claude.com/docs/en/build-with-claude/token-counting). Estas solicitudes no aparecen en el stream de mensajes, por lo que el seguimiento de costos que lee el stream no las verá. En la API de Anthropic, el conteo de tokens no se factura.

1530 1530 


1715 1715 

1716Varios campos llevan detalle de diagnóstico sobre cómo terminó la conversación:1716Varios campos llevan detalle de diagnóstico sobre cómo terminó la conversación:

1717 1717 

1718* `is_error`: `True` cuando la conversación terminó en un estado de error. Siempre `True` en los subtipos `error_*`. En `subtype="success"` es `True` cuando la solicitud del modelo final falló, lo que significa que el bucle del agente se completó pero la última llamada a la API devolvió un error.1718* `is_error`: `True` cuando la conversación terminó en un estado de error. Siempre `True` en los subtipos `error_*`. En `subtype="success"` es `True` en tres casos. Consulta `stop_reason` para distinguirlos:

1719 * `"refusal"`: el modelo se negó a responder. Lee el texto del rechazo en `result`, o en el `AssistantMessage` anterior cuando `result` está vacío.

1720 * `"tool_deferred_unavailable"`: la [herramienta diferida](/docs/es/hooks#defer-a-tool-call-for-later) ya no estaba disponible cuando reanudaste la sesión, por ejemplo porque su servidor MCP no estaba conectado. En los dos casos siguientes, un prompt que envías después de reanudar cuenta igual que uno pasado con la reanudación:

1721 * Sin prompt: la llamada sigue pendiente. Haz que la herramienta esté disponible y reanuda de nuevo sin un prompt, y la llamada se ejecuta primero.

1722 * Con un prompt: Claude Code lo responde sin el resultado de la herramienta, y la llamada diferida desaparece. Envía un nuevo prompt si todavía necesitas que se llame a la herramienta.

1723 * Cualquier otro valor: el turno terminó en un error que Claude Code informó en lugar de una respuesta del modelo, como un error de API. Lee `terminal_reason` para conocer la causa, `result` para el mensaje y `api_error_status` para el estado HTTP cuando la API devolvió uno.

1719* `api_error_status`: el código de estado HTTP del error de API de terminación. `None` cuando el turno terminó sin uno. Se rellena solo en `subtype="success"`.1724* `api_error_status`: el código de estado HTTP del error de API de terminación. `None` cuando el turno terminó sin uno. Se rellena solo en `subtype="success"`.

1720* `result`: texto del mensaje del asistente final en `subtype="success"`, o `None` en los subtipos `error_*`. Cuando `subtype="success"` e `is_error=True`, esto contiene la cadena de error de API si una está disponible pero puede estar vacía, así que verifica `api_error_status` y el contenido anterior de `AssistantMessage` para obtener detalles.1725* `result`: texto del mensaje del asistente final en `subtype="success"`, o `None` en los subtipos `error_*`. Cuando `subtype="success"` e `is_error=True`, esto contiene la cadena de error de API si una está disponible pero puede estar vacía, así que verifica `api_error_status` y el contenido anterior de `AssistantMessage` para obtener detalles.

1721* `errors`: cadenas de error a nivel de bucle como el mensaje de máx-turnos. Se rellena solo en los subtipos `error_*`.1726* `errors`: cadenas de error a nivel de bucle como el mensaje de máx-turnos. Se rellena solo en los subtipos `error_*`.


2062 errors: list[str] # an empty list when the result message reported none2067 errors: list[str] # an empty list when the result message reported none

2063 result: str | None2068 result: str | None

2064 api_error_status: int | None2069 api_error_status: int | None

2065 terminal_reason: str | None # "max_turns", "api_error", ...; check this before subtype2070 terminal_reason: str | None # "max_turns", "api_error", ...; check after data["stop_reason"], before subtype

2066 session_id: str | None2071 session_id: str | None

2067 data: dict[str, Any] # the raw result message payload2072 data: dict[str, Any] # the raw result message payload

2068```2073```

2069 2074 

2070Para distinguir los fallos, comprueba `terminal_reason` antes de `subtype`. Cuando la solicitud final falla, como en un error de API, Claude Code informa `subtype` `"success"` con la causa en `terminal_reason`, por ejemplo `"api_error"`; cuando un límite que estableces termina la ejecución, como `max_turns` o `max_budget_usd`, informa un subtipo `error_*`.2075Para distinguir los fallos, comprueba primero `data["stop_reason"]`, luego `terminal_reason` y después `subtype`. Una respuesta rechazada tiene `stop_reason` `"refusal"`, normalmente con `subtype` `"success"`; su `terminal_reason` no la distingue y puede indicar `"completed"` o `"api_error"`. Una solicitud final fallida tiene `subtype` `"success"` y su causa en `terminal_reason`, como `"api_error"` para un error de API. Cuando la ejecución alcanza un límite que estableces, como `max_turns` o `max_budget_usd`, obtienes un subtipo `error_*`.

2071 2076 

2072### `CLIJSONDecodeError`2077### `CLIJSONDecodeError`

2073 2078 


2574 "subagent_type": str | None, # The type of specialized agent to use2579 "subagent_type": str | None, # The type of specialized agent to use

2575 "model": "sonnet" | "opus" | "haiku" | "fable" | None, # Model override for this agent2580 "model": "sonnet" | "opus" | "haiku" | "fable" | None, # Model override for this agent

2576 "effort": "low" | "medium" | "high" | "xhigh" | "max" | None, # Reasoning effort for this agent2581 "effort": "low" | "medium" | "high" | "xhigh" | "max" | None, # Reasoning effort for this agent

2577 "run_in_background": bool | None, # Agents run in the background by default; set to False to run synchronously2582 "run_in_background": bool | None, # Default when omitted: your main agent's call runs the new agent in the background, and a subagent's call waits for it

2578 "name": str | None, # Name for the spawned agent2583 "name": str | None, # Name for the spawned agent

2579 "team_name": str | None, # Deprecated; ignored2584 "team_name": str | None, # Deprecated; ignored

2580 "mode": "acceptEdits" | "auto" | "bypassPermissions" | "default" | "dontAsk" | "plan" | None, # Deprecated; ignored. The subagent inheritance rules decide a subagent's permission mode2585 "mode": "acceptEdits" | "auto" | "bypassPermissions" | "default" | "dontAsk" | "plan" | None, # Deprecated; ignored. The subagent inheritance rules decide a subagent's permission mode


2584 2589 

2585Lanza un nuevo agente para manejar tareas complejas y multietapa de forma autónoma.2590Lanza un nuevo agente para manejar tareas complejas y multietapa de forma autónoma.

2586 2591 

2592Cuando Claude omite `run_in_background` en una llamada a `Agent`, de forma predeterminada tu agente principal no espera al nuevo agente y un subagente sí lo espera:

2593 

2594* **Desde tu agente principal**: el nuevo agente se ejecuta en segundo plano y el resultado tiene `status: "async_launched"`. Para que tu agente principal espere al nuevo agente, consulta [Elegir si Claude espera a los subagentes](/docs/es/agent-sdk/subagents#choose-whether-claude-waits-for-subagents).

2595* **Desde uno de tus subagentes**: el subagente que hace la llamada [espera al nuevo agente](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents). El nuevo agente se ejecuta en segundo plano cuando su definición establece [`background`](#agentdefinition) en `True`, o cuando [desactivas el modo fork](/docs/es/sub-agents#turn-fork-mode-on-or-off) estableciendo `CLAUDE_CODE_FORK_SUBAGENT` en `0`.

2596 

2597Antes de Python SDK v0.2.169, los agentes que iniciaban tus subagentes también se ejecutaban en segundo plano de forma predeterminada. Esa versión es la primera que incluye Claude Code v2.1.302 o posterior.

2598 

2587**Salida (estado: `"completed"`):**2599**Salida (estado: `"completed"`):**

2588 2600 

2589```python theme={null}2601```python theme={null}


3519 "Claude Code CLI not found. Try reinstalling: pip install --force-reinstall claude-agent-sdk"3531 "Claude Code CLI not found. Try reinstalling: pip install --force-reinstall claude-agent-sdk"

3520 )3532 )

3521 # Catch ResultError before ProcessError, which it subclasses. Its message3533 # Catch ResultError before ProcessError, which it subclasses. Its message

3522 # carries the error text. A failed final request, such as an API error,3534 # carries the error text. A refusal and a failed final request both usually

3523 # arrives with subtype "success", so branch on terminal_reason first.3535 # arrive with subtype "success", so check stop_reason, then terminal_reason.

3524 except ResultError as e:3536 except ResultError as e:

3525 if e.terminal_reason == "api_error":3537 if e.data.get("stop_reason") == "refusal":

3538 print(f"Model declined to respond: {e}")

3539 elif e.terminal_reason == "api_error":

3526 print(f"API request failed: {e}")3540 print(f"API request failed: {e}")

3527 else:3541 else:

3528 print(f"Query ended with an error result ({e.terminal_reason or e.subtype}): {e}")3542 print(f"Query ended with an error result ({e.terminal_reason or e.subtype}): {e}")

Details

318 318 

319## Limitaciones conocidas319## Limitaciones conocidas

320 320 

321* **Structured output**: con mensajes parciales habilitados, el JSON se transmite como chunks `input_json_delta` no validados de una llamada de herramienta, y solo el resultado validado llega al `ResultMessage.structured_output` final. Consulte [structured outputs](/docs/es/agent-sdk/structured-outputs) para obtener detalles.321* **Structured output**: con mensajes parciales habilitados, el JSON se transmite como chunks `input_json_delta` no validados de una llamada a herramienta, y solo el resultado validado llega al `ResultMessage.structured_output` final. [Reconocer la llamada a herramienta StructuredOutput](/docs/es/agent-sdk/structured-outputs#recognize-the-structuredoutput-tool-call) explica cómo aparece esa llamada en tu stream.

322 322 

323## Próximos pasos323## Próximos pasos

324 324 

Details

368asyncio.run(main())368asyncio.run(main())

369```369```

370 370 

371## Reconocer la llamada a herramienta StructuredOutput

372 

373Cuando configuras `outputFormat` en TypeScript o `output_format` en Python, tu flujo de mensajes incluye una llamada a herramienta llamada `StructuredOutput` que nunca definiste. Claude Code agrega esta herramienta a la sesión, y el agente la llama para devolver su respuesta. El [mensaje de inicialización del sistema](/docs/es/agent-sdk/typescript#sdksystemmessage) la incluye en el array `tools`, y cada llamada llega como dos bloques:

374 

375* Un bloque `tool_use` llamado `StructuredOutput`, cuya entrada es el objeto que el agente produjo para tu esquema

376* Un bloque `tool_result` que dice `Structured output provided successfully`

377 

378Cuando ese objeto no coincide con tu esquema, el `tool_result` incluye `is_error: true` en su lugar y el agente vuelve a llamar a `StructuredOutput`, por lo que tu flujo puede contener varias llamadas para una sola consulta. Lee los datos validados desde `structured_output` en el mensaje de resultado en lugar de hacerlo desde un bloque `tool_use`, y consulta [Manejo de errores](#error-handling) para ver el resultado que obtienes cuando ningún intento tiene éxito.

379 

380Si tu aplicación muestra o registra llamadas a herramientas, omite las que se llaman `StructuredOutput` para que el mecanismo no aparezca como un paso que el agente eligió. Un bloque `tool_result` no incluye ningún nombre de herramienta, solo el `tool_use_id` de la llamada a la que responde, así que compáralo con el `id` de cada llamada que omitiste.

381 

371## Manejo de errores382## Manejo de errores

372 383 

373La generación de salida estructurada puede fallar cuando el agente no puede producir JSON válido que coincida con tu esquema. Esto típicamente sucede cuando el esquema es demasiado complejo para la tarea, la tarea en sí es ambigua, o el agente alcanza su límite de reintentos intentando corregir errores de validación. También puede suceder sin ninguna falla de validación: una [alternativa de modelo](/docs/es/model-config#automatic-model-fallback) puede retraer una salida ya completada a mitad de la transmisión, y si ningún reintento la reemplaza, la ejecución termina con el mismo error. Revisa la lista `errors` en el mensaje de resultado de error para distinguir las dos causas antes de depurar tu esquema.384La generación de salida estructurada puede fallar cuando el agente no puede producir JSON válido que coincida con tu esquema. Esto típicamente sucede cuando el esquema es demasiado complejo para la tarea, la tarea en sí es ambigua, o el agente alcanza su límite de reintentos intentando corregir errores de validación. También puede suceder sin ninguna falla de validación: una [alternativa de modelo](/docs/es/model-config#automatic-model-fallback) puede retraer una salida ya completada a mitad de la transmisión, y si ningún reintento la reemplaza, la ejecución termina con el mismo error. Revisa la lista `errors` en el mensaje de resultado de error para distinguir las dos causas antes de depurar tu esquema.

Details

147| `tools` | `string[]` | No | Matriz de nombres de herramientas permitidas. Si se omite, hereda todas las [herramientas disponibles para subagentes](/docs/es/sub-agents#available-tools) |147| `tools` | `string[]` | No | Matriz de nombres de herramientas permitidas. Si se omite, hereda todas las [herramientas disponibles para subagentes](/docs/es/sub-agents#available-tools) |

148| `disallowedTools` | `string[]` | No | Matriz de nombres de herramientas a eliminar del conjunto de herramientas del agente. También se aceptan patrones a nivel de servidor MCP: `mcp__server` o `mcp__server__*` elimina todas las herramientas de ese servidor, y `mcp__*` elimina todas las herramientas MCP de cualquier servidor |148| `disallowedTools` | `string[]` | No | Matriz de nombres de herramientas a eliminar del conjunto de herramientas del agente. También se aceptan patrones a nivel de servidor MCP: `mcp__server` o `mcp__server__*` elimina todas las herramientas de ese servidor, y `mcp__*` elimina todas las herramientas MCP de cualquier servidor |

149| `model` | `string` | No | Anulación de modelo para este agente. Acepta un alias como `'fable'`, `'opus'`, `'sonnet'`, `'haiku'`, `'inherit'`, o un ID de modelo completo. `'inherit'` utiliza el modelo principal. Cuando lo omite, Claude Code elige el modelo en el [orden de modelo de subagente](/docs/es/sub-agents#choose-a-model) |149| `model` | `string` | No | Anulación de modelo para este agente. Acepta un alias como `'fable'`, `'opus'`, `'sonnet'`, `'haiku'`, `'inherit'`, o un ID de modelo completo. `'inherit'` utiliza el modelo principal. Cuando lo omite, Claude Code elige el modelo en el [orden de modelo de subagente](/docs/es/sub-agents#choose-a-model) |

150| `skills` | `string[]` | No | Lista de nombres de skills a precargar en el contexto del agente al inicio. Los skills no listados siguen siendo invocables a través de la herramienta Skill |150| `skills` | `string[]` | No | Lista de nombres de skills a precargar en el contexto del agente al inicio. Como máximo se precargan los [primeros 32 nombres distintos](/docs/es/sub-agents#preload-skills-into-subagents) de la lista. Los skills no listados siguen siendo invocables a través de la herramienta Skill |

151| `memory` | `'user' \| 'project' \| 'local'` | No | Fuente de memoria para este agente |151| `memory` | `'user' \| 'project' \| 'local'` | No | Fuente de memoria para este agente |

152| `mcpServers` | `(string \| object)[]` | No | Servidores MCP disponibles para este agente, por nombre o configuración en línea |152| `mcpServers` | `(string \| object)[]` | No | Servidores MCP disponibles para este agente, por nombre o configuración en línea |

153| `initialPrompt` | `string` | No | Se envía automáticamente como el primer turno del usuario cuando este agente se ejecuta como el agente del hilo principal. Se ignora cuando el agente se invoca como subagente |153| `initialPrompt` | `string` | No | Se envía automáticamente como el primer turno del usuario cuando este agente se ejecuta como el agente del hilo principal. Se ignora cuando el agente se invoca como subagente |


323 323 

324Claude invoca subagentes a través de la herramienta Agent. Para detectar cuándo se invoca un subagente, busca bloques `tool_use` donde `name` sea `"Agent"`.324Claude invoca subagentes a través de la herramienta Agent. Para detectar cuándo se invoca un subagente, busca bloques `tool_use` donde `name` sea `"Agent"`.

325 325 

326Los mensajes desde dentro del contexto de un subagente incluyen un campo `parent_tool_use_id`. En TypeScript, cada mensaje de asistente y de usuario que produce un subagente también incluye [`agent_id`](/docs/es/agent-sdk/typescript#sdkassistantmessage): el `task_id` de los [eventos de tarea](/docs/es/agent-sdk/typescript#sdktaskstartedmessage) de ese subagente. `agent_id` requiere TypeScript Agent SDK v0.3.292 o posterior.326Los mensajes desde dentro del contexto de un subagente incluyen un campo `parent_tool_use_id`. En TypeScript, cada mensaje de asistente y de usuario que produce un subagente también incluye [`agent_id`](/docs/es/agent-sdk/typescript#sdkassistantmessage): el `task_id` de los [eventos de tarea](/docs/es/agent-sdk/typescript#sdktaskstartedmessage) de ese subagente. `agent_id` se mantiene igual cuando [reanudas el subagente](#resume-subagents). `agent_id` requiere TypeScript Agent SDK v0.3.292 o posterior.

327 327 

328> [!NOTE]328> [!NOTE]

329>329>

Details

8 8 

9Claude Code proporciona las [herramientas de seguimiento de tareas](/docs/es/tools-reference#task-tool-availability) de forma predeterminada solo en los modelos enumerados en [Disponibilidad de modelos](#model-availability). Los modelos más nuevos rastrean trabajo de múltiples pasos sin una lista de tareas escrita, por lo que en esos no necesita nada en esta página para que Claude trabaje en tareas de múltiples pasos.9Claude Code proporciona las [herramientas de seguimiento de tareas](/docs/es/tools-reference#task-tool-availability) de forma predeterminada solo en los modelos enumerados en [Disponibilidad de modelos](#model-availability). Los modelos más nuevos rastrean trabajo de múltiples pasos sin una lista de tareas escrita, por lo que en esos no necesita nada en esta página para que Claude trabaje en tareas de múltiples pasos.

10 10 

11En una sesión que tiene las herramientas de seguimiento de tareas, Claude mantiene una lista de tareas escrita, actualizando el estado de cada elemento mientras trabaja. Verá cada cambio en la secuencia de mensajes como una llamada de herramienta estructurada. Opte por una sesión solo cuando su aplicación lea esas llamadas de herramientas, ya sea para registrar la actividad de tareas o para renderizar su propia pantalla de progreso.11En una sesión que tiene las herramientas de seguimiento de tareas, Claude mantiene una lista de tareas escrita, actualizando el estado de cada elemento mientras trabaja. Verá cada cambio en la secuencia de mensajes como una llamada de herramienta estructurada. Habilite las herramientas en una sesión solo cuando su aplicación lea esas llamadas de herramientas, ya sea para registrar la actividad de tareas o para renderizar su propia pantalla de progreso.

12 12 

13## Disponibilidad de modelos13## Disponibilidad de modelos

14 14 


26>26>

27> Este conjunto predeterminado se aplica en Claude Code v2.1.268 y posterior, que el TypeScript Agent SDK agrupa desde v0.3.268.27> Este conjunto predeterminado se aplica en Claude Code v2.1.268 y posterior, que el TypeScript Agent SDK agrupa desde v0.3.268.

28 28 

29En un modelo que no tiene las herramientas de forma predeterminada, a menos que opte por una sesión, no verá bloques `tool_use` para ellas 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:29En un modelo que no tiene las herramientas de forma predeterminada, a menos que las habilite en la sesión, no verá bloques `tool_use` para ellas 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 habilitar las herramientas de seguimiento de tareas en una sesión, realice una de las siguientes acciones:

30 30 

31* Nombre una de las herramientas en la opción [`allowedTools`](/docs/es/agent-sdk/permissions#allow-and-deny-rules) (TypeScript) o `allowed_tools` (Python)31* Nombre una de las herramientas en la opción [`allowedTools`](/docs/es/agent-sdk/permissions#allow-and-deny-rules) (TypeScript) o `allowed_tools` (Python)

32* Liste las herramientas en la opción `tools`, que restringe las herramientas integradas de la sesión a las que nombra. Incluya las herramientas que desea junto con las otras herramientas integradas que utiliza32* Liste las herramientas en la opción `tools`, que restringe las herramientas integradas de la sesión a las que nombra. Incluya las herramientas que desea junto con las otras herramientas integradas que utiliza

Details

660| `supportedModels()` | Devuelve los modelos disponibles con su información de visualización |660| `supportedModels()` | Devuelve los modelos disponibles con su información de visualización |

661| `supportedAgents()` | Devuelve los subagentes disponibles como [`AgentInfo`](#agentinfo)`[]` |661| `supportedAgents()` | Devuelve los subagentes disponibles como [`AgentInfo`](#agentinfo)`[]` |

662| `mcpServerStatus()` | Devuelve el estado de los servidores MCP conectados como [`McpServerStatus`](#mcpserverstatus)`[]` |662| `mcpServerStatus()` | Devuelve el estado de los servidores MCP conectados como [`McpServerStatus`](#mcpserverstatus)`[]` |

663| `getContextUsage(opts?)` | Devuelve un [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) que desglosa el uso de la ventana de contexto de la sesión por categoría, skill y herramienta. Con el `detail` predeterminado, son los mismos datos que `/context` muestra en una sesión interactiva, calculados con solicitudes a la API de conteo de tokens que no aparecen en el stream de mensajes; consulta [cómo se manejan estas solicitudes](#sdkcontrolgetcontextusageresponse). La [opción `detail`](#sdkcontrolgetcontextusageresponse) requiere Agent SDK v0.3.257 o posterior |663| `getContextUsage(opts?)` | Devuelve un [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) que desglosa el uso de la ventana de contexto de la sesión por categoría, skill y herramienta. Con el `detail` predeterminado, incluye los datos que muestra `/context` en una sesión interactiva, calculados con solicitudes a la API de conteo de tokens que no aparecen en el flujo de mensajes; consulta [cómo se gestionan estas solicitudes](#sdkcontrolgetcontextusageresponse). La [opción `detail`](#sdkcontrolgetcontextusageresponse) requiere Agent SDK v0.3.257 o posterior |

664| `readFile(path, options?)` | Lee un archivo del sistema de archivos de la sesión. Claude Code resuelve la ruta respecto a `cwd`; [Qué puede leer `readFile()`](#what-readfile-can-read) enumera los archivos que sirve. Pasa `{ maxBytes }` para cambiar el límite de lectura (1 MB de forma predeterminada, máximo 10 MB) y `{ encoding: 'base64' }` para archivos binarios como imágenes. Se resuelve con un [`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse), o con `null` ante una denegación de permiso, un archivo inexistente o un error de transporte. Requiere TypeScript SDK v0.2.121 o posterior |664| `readFile(path, options?)` | Lee un archivo del sistema de archivos de la sesión. Claude Code resuelve la ruta respecto a `cwd`; [Qué puede leer `readFile()`](#what-readfile-can-read) enumera los archivos que sirve. Pasa `{ maxBytes }` para cambiar el límite de lectura (1 MB de forma predeterminada, máximo 10 MB) y `{ encoding: 'base64' }` para archivos binarios como imágenes. Se resuelve con un [`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse), o con `null` ante una denegación de permiso, un archivo inexistente o un error de transporte. Requiere TypeScript SDK v0.2.121 o posterior |

665| `reloadPlugins(options?)` | Recarga los plugins desde el disco, para que los plugins que instales o edites durante la sesión lleguen a la sesión en ejecución. Se resuelve con un [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse) que enumera los comandos, subagentes y plugins de la sesión, y el estado de los servidores MCP. Requiere Agent SDK v0.2.85 o posterior. La [opción `holdOnCacheImpact`](#sdkcontrolreloadpluginsresponse) requiere Agent SDK v0.3.268 o posterior |665| `reloadPlugins(options?)` | Recarga los plugins desde el disco, para que los plugins que instales o edites durante la sesión lleguen a la sesión en ejecución. Se resuelve con un [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse) que enumera los comandos, subagentes y plugins de la sesión, y el estado de los servidores MCP. Requiere Agent SDK v0.2.85 o posterior. La [opción `holdOnCacheImpact`](#sdkcontrolreloadpluginsresponse) requiere Agent SDK v0.3.268 o posterior |

666| `reloadSkills()` | Recarga los skills desde el disco, para que los skills que agregues o edites durante la sesión estén disponibles en la sesión en ejecución. Se resuelve con un [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse) que enumera los skills disponibles después de la recarga. Requiere Agent SDK v0.3.163 o posterior |666| `reloadSkills()` | Recarga los skills desde el disco, para que los skills que agregues o edites durante la sesión estén disponibles en la sesión en ejecución. Se resuelve con un [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse) que enumera los skills disponibles después de la recarga. Requiere Agent SDK v0.3.163 o posterior |


863 863 

864### `SDKControlGetContextUsageResponse`864### `SDKControlGetContextUsageResponse`

865 865 

866Tipo de retorno de [`getContextUsage()`](#query-object). Con el `detail` predeterminado, es el mismo payload que Claude Code renderiza para el comando `/context` en una sesión interactiva, por lo que, junto con los conteos de tokens, lleva campos de visualización como `color` y `gridRows` que Claude Code usa para dibujar la cuadrícula de uso de `/context`.866Tipo de retorno de [`getContextUsage()`](#query-object). Con el `detail` predeterminado, la respuesta incluye el payload que Claude Code renderiza para el comando `/context` en una sesión interactiva. Junto a los conteos de tokens, ese payload incluye campos de visualización como `color` y `gridRows` que Claude Code usa para dibujar la cuadrícula de uso de `/context`.

867 867 

868El argumento opcional `detail` del método elige cómo cuenta Claude Code cada categoría. El argumento `detail` requiere Agent SDK v0.3.257 o posterior.868El argumento opcional `detail` del método elige cómo cuenta Claude Code cada categoría. El argumento `detail` requiere Agent SDK v0.3.257 o posterior.

869 869 


872 872 

873Cuando envías `/context` como prompt en lugar de llamar al método, Claude Code adjunta un payload [`SDKContextUsage`](#sdkcontextusage) al campo `context_usage` del mensaje de assistant que entrega el resultado. Ese campo requiere Agent SDK v0.3.232 o posterior.873Cuando envías `/context` como prompt en lugar de llamar al método, Claude Code adjunta un payload [`SDKContextUsage`](#sdkcontextusage) al campo `context_usage` del mensaje de assistant que entrega el resultado. Ese campo requiere Agent SDK v0.3.232 o posterior.

874 874 

875En `SDKControlGetContextUsageResponse`, `categories[].id`, `mcpInstructions` y los campos `pluginId` y `path` de las entradas de `agents` y `skills.skillFrontmatter` requieren Agent SDK v0.3.304 o posterior.

876 

875```typescript theme={null}877```typescript theme={null}

876type SDKControlGetContextUsageResponse = {878type SDKControlGetContextUsageResponse = {

877 categories: {879 categories: {

880 id?:

881 | "system_prompt"

882 | "system_tools"

883 | "mcp_tools"

884 | "mcp_instructions"

885 | "mcp_tools_deferred"

886 | "system_tools_deferred"

887 | "custom_agents"

888 | "memory_files"

889 | "skills"

890 | "messages"

891 | "autocompact_buffer"

892 | "compact_buffer"

893 | "free_space";

878 name: string;894 name: string;

879 tokens: number;895 tokens: number;

880 color: string;896 color: string;


905 tokens: number;921 tokens: number;

906 isLoaded?: boolean;922 isLoaded?: boolean;

907 }[];923 }[];

924 mcpInstructions?: {

925 serverName: string;

926 tokens: number;

927 }[];

908 deferredBuiltinTools?: {928 deferredBuiltinTools?: {

909 name: string;929 name: string;

910 tokens: number;930 tokens: number;


921 agents: {941 agents: {

922 agentType: string;942 agentType: string;

923 source: string;943 source: string;

944 pluginId?: string;

945 path?: string;

924 tokens: number;946 tokens: number;

925 }[];947 }[];

926 slashCommands?: {948 slashCommands?: {


935 skillFrontmatter: {957 skillFrontmatter: {

936 name: string;958 name: string;

937 source: string;959 source: string;

960 pluginName?: string;

961 pluginId?: string;

962 path?: string;

938 tokens: number;963 tokens: number;

939 }[];964 }[];

940 };965 };


978 1003 

979Claude Code deja sin establecer los diagnósticos opcionales `deferredBuiltinTools`, `systemTools` y `systemPromptSections`, así que espera que estén ausentes aunque el tipo los declare.1004Claude Code deja sin establecer los diagnósticos opcionales `deferredBuiltinTools`, `systemTools` y `systemPromptSections`, así que espera que estén ausentes aunque el tipo los declare.

980 1005 

1006#### Encontrar una fila por ID, los tokens de instrucciones de un servidor o el plugin y el archivo de una entrada

1007 

1008Las instrucciones de servidores MCP son las notas de uso que proporcionan los servidores conectados y que Claude Code añade al contexto, y la fila `mcp_instructions` de `categories` cuenta sus tokens. Usa estos campos de [`getContextUsage()`](#query-object) para seleccionar una fila de `categories` por `id`, dividir los tokens de `mcp_instructions` por servidor o encontrar el plugin y el archivo detrás de una entrada de agente o skill:

1009 

1010| Campo | Dónde se encuentra | Qué contiene |

1011| :- | :- | :- |

1012| `id` | Cada fila de `categories` | El identificador de la fila, uno de los valores que enumera el [tipo de respuesta](#sdkcontrolgetcontextusageresponse), como `mcp_instructions`. Compara con `id` para seleccionar una fila, o con `kind` para agrupar filas. Una versión posterior de Claude Code puede enviar un valor que tus tipos instalados no enumeran, así que trata un `id` que no reconozcas como ausente |

1013| `mcpInstructions` | La respuesta | Una entrada `{ serverName, tokens }` por cada servidor MCP conectado que proporciona instrucciones, o un array vacío cuando ninguno lo hace. Los valores de `tokens` son estimaciones que suman el `tokens` de la fila `mcp_instructions`. `serverName` es el `name` que [`mcpServerStatus()`](#query-object) informa para ese servidor |

1014| `pluginId` | Entradas de `agents` y `skills.skillFrontmatter` | Nombra el plugin del que proviene la entrada, como un ID con el formato `name@marketplace`, y está ausente en una entrada que no proviene de un plugin. Cuando el plugin no proviene de un marketplace, la parte posterior a `@` nombra [su origen](/docs/es/plugins/loading#find-where-a-plugin-came-from), como `inline` para uno que cargaste mediante la opción [`plugins`](#options) |

1015| `path` | Entradas de `agents` y `skills.skillFrontmatter` | Ruta absoluta del archivo que define el agente o el skill, en la máquina donde se ejecuta Claude Code. El campo está ausente cuando ningún archivo define la entrada, por ejemplo, un agente de la opción [`agents`](#options) o un skill integrado en Claude Code |

1016 

1017Como ejemplo de comparación con `id`, este fragmento encuentra la fila `mcp_instructions`:

1018 

1019```typescript theme={null}

1020// q is the Query object that query() returned

1021const usage = await q.getContextUsage();

1022// undefined if no connected server supplies instructions

1023const row = usage.categories.find((c) => c.id === "mcp_instructions");

1024```

1025 

981### `SDKControlReadFileResponse`1026### `SDKControlReadFileResponse`

982 1027 

983Tipo de retorno de [`readFile()`](#query-object).1028Tipo de retorno de [`readFile()`](#query-object).


2988 3033 

2989Documentación de esquemas de entrada para las herramientas integradas de Claude Code. Estos tipos se exportan desde `@anthropic-ai/claude-agent-sdk/sdk-tools` y se pueden usar para interacciones de herramientas seguras de tipos.3034Documentación de esquemas de entrada para las herramientas integradas de Claude Code. Estos tipos se exportan desde `@anthropic-ai/claude-agent-sdk/sdk-tools` y se pueden usar para interacciones de herramientas seguras de tipos.

2990 3035 

3036La herramienta `StructuredOutput` no tiene un tipo aquí: Claude Code construye su esquema de entrada a partir del esquema que pasas a `outputFormat`, por lo que no hay nada fijo que exportar. Consulta [Reconocer la llamada a herramienta StructuredOutput](/docs/es/agent-sdk/structured-outputs#recognize-the-structuredoutput-tool-call) para ver cómo se ve esa llamada en tu flujo de mensajes.

3037 

2991### `ToolInputSchemas`3038### `ToolInputSchemas`

2992 3039 

2993Unión de tipos de entrada de herramienta exportados desde `@anthropic-ai/claude-agent-sdk/sdk-tools`; los miembros incluyen:3040Unión de tipos de entrada de herramienta exportados desde `@anthropic-ai/claude-agent-sdk/sdk-tools`; los miembros incluyen:


5203* **Servidores que la llamada no nombra**: fuera de una [sesión en la nube](/docs/es/claude-code-on-the-web), Claude Code desconecta los servidores que agregó una llamada anterior a `setMcpServers()` y los servidores SDK en proceso, y los enumera en `removed`. Los demás servidores siguen en ejecución y no se enumeran en `removed`, entre ellos los servidores stdio, HTTP y SSE de la opción [`mcpServers`](#options), los servidores de los archivos de configuración y los servidores proporcionados por plugins.5250* **Servidores que la llamada no nombra**: fuera de una [sesión en la nube](/docs/es/claude-code-on-the-web), Claude Code desconecta los servidores que agregó una llamada anterior a `setMcpServers()` y los servidores SDK en proceso, y los enumera en `removed`. Los demás servidores siguen en ejecución y no se enumeran en `removed`, entre ellos los servidores stdio, HTTP y SSE de la opción [`mcpServers`](#options), los servidores de los archivos de configuración y los servidores proporcionados por plugins.

5204* **Servidores que la llamada nombra**: Claude Code reemplaza un servidor stdio, HTTP o SSE que agregó una llamada anterior a `setMcpServers()` solo cuando su configuración difiere de la que pasaste. Un servidor SDK en proceso ya registrado con ese nombre se queda como está, así que para cambiarlo, déjalo fuera de una llamada y agrégalo en la siguiente.5251* **Servidores que la llamada nombra**: Claude Code reemplaza un servidor stdio, HTTP o SSE que agregó una llamada anterior a `setMcpServers()` solo cuando su configuración difiere de la que pasaste. Un servidor SDK en proceso ya registrado con ese nombre se queda como está, así que para cambiarlo, déjalo fuera de una llamada y agrégalo en la siguiente.

5205* **Servidores integrados que la CLI inició al arrancar**: si la llamada nombra uno, Claude Code descarta esa entrada y la reporta en `errors`.5252* **Servidores integrados que la CLI inició al arrancar**: si la llamada nombra uno, Claude Code descarta esa entrada y la reporta en `errors`.

5253* **Servidores stdio, HTTP o SSE que comparten nombre con uno de un alcance de instalación de MCP como `.mcp.json`**: con ese nombre, la sesión usa las herramientas de tu servidor en lugar de las del [servidor del alcance de instalación](/docs/es/mcp#mcp-installation-scopes). Antes de Claude Code v2.1.305, Claude Code podía desconectar tu servidor y conectar el servidor del alcance de instalación cuando tu aplicación [recargaba plugins](#query-object).

5206 5254 

5207La promesa se resuelve después de que los servidores stdio, HTTP y SSE recién agregados se conecten o fallen, por lo que las herramientas de los servidores que se conectaron están disponibles en el siguiente turno.5255La promesa se resuelve después de que los servidores stdio, HTTP y SSE recién agregados se conecten o fallen, por lo que las herramientas de los servidores que se conectaron están disponibles en el siguiente turno.

5208 5256 

agent-teams.md +5 −3

Details

34| | Subagents | Equipos de agentes |34| | Subagents | Equipos de agentes |

35| :- | :- | :- |35| :- | :- | :- |

36| **Contexto** | Ventana de contexto propia; los resultados regresan al llamador | Ventana de contexto propia; completamente independiente |36| **Contexto** | Ventana de contexto propia; los resultados regresan al llamador | Ventana de contexto propia; completamente independiente |

37| **Comunicación** | Devuelven un resultado al llamador. Los subagents que Claude nombró cuando los generó también pueden [enviarse mensajes entre sí](/docs/es/sub-agents#what-loads-at-startup) | Los compañeros de equipo se envían mensajes directamente |37| **Comunicación** | Devuelven un resultado al llamador. Los subagentes que Claude [nombró](/docs/es/sub-agents#subagent-names) cuando los generó también pueden [enviarse mensajes entre sí](/docs/es/sub-agents#what-loads-at-startup) | Los compañeros de equipo se envían mensajes directamente |

38| **Coordinación** | El agente principal gestiona todo el trabajo | Auto-coordinación a través de mensajes, más una lista de tareas compartida para [agentes que tienen las herramientas Task](/docs/es/tools-reference#task-tool-availability) |38| **Coordinación** | El agente principal gestiona todo el trabajo | Auto-coordinación a través de mensajes, más una lista de tareas compartida para [agentes que tienen las herramientas Task](/docs/es/tools-reference#task-tool-availability) |

39| **Mejor para** | Tareas enfocadas donde solo importa el resultado | Trabajo complejo que requiere discusión y colaboración |39| **Mejor para** | Tareas enfocadas donde solo importa el resultado | Trabajo complejo que requiere discusión y colaboración |

40| **Costo de tokens** | Menor: resultados resumidos de vuelta al contexto principal | Mayor: cada compañero de equipo es una instancia Claude separada |40| **Costo de tokens** | Menor: resultados resumidos de vuelta al contexto principal | Mayor: cada compañero de equipo es una instancia Claude separada |


167Spawn an architect teammate to refactor the authentication module.167Spawn an architect teammate to refactor the authentication module.

168```168```

169 169 

170Cuando un compañero de equipo termina de planificar, envía una solicitud de aprobación de plan al líder. Claude Code aprueba el plan en la sesión del líder tan pronto como llega la solicitud, sin que el líder lo revise. Los edits y comandos del compañero de equipo aún pasan por los indicadores de permiso descritos en [Permisos](#permissions). Una vez aprobado, el compañero de equipo sale del modo de plan y comienza la implementación.170Cuando ese compañero de equipo termina de planificar, envía una solicitud de aprobación de plan al líder. Si no has cambiado el modo de permisos de ese compañero de equipo desde que se generó, Claude Code aprueba el plan tan pronto como llega la solicitud, sin que el líder lo revise. Las ediciones y comandos del compañero de equipo aún pasan por las solicitudes de permiso descritas en [Permisos](#permissions). Una vez aprobado, el compañero de equipo sale del modo plan y comienza la implementación.

171 

172Si pones en modo plan a un compañero de equipo en proceso que está en ejecución presionando [`Shift+Tab`](/docs/es/permission-modes#switch-permission-modes) mientras ves su sesión, el líder revisa el plan de esa ejecución en lugar de que Claude Code lo apruebe. No se te pide que lo apruebes; el líder lo aprueba o lo devuelve para su revisión.

171 173 

172### Hable directamente con los compañeros de equipo174### Hable directamente con los compañeros de equipo

173 175 


287 289 

288Los compañeros de equipo comienzan con el modo de permiso del líder, excepto el [modo `dontAsk`](/docs/es/permission-modes#allow-only-pre-approved-tools-with-dontask-mode), que no heredan. Si el líder se ejecuta con `--dangerously-skip-permissions`, todos los compañeros de equipo también lo hacen. Después de generar, puede cambiar el modo de permiso de un compañero de equipo individual, pero no puede establecer modos de permiso por compañero de equipo en el momento de la generación.290Los compañeros de equipo comienzan con el modo de permiso del líder, excepto el [modo `dontAsk`](/docs/es/permission-modes#allow-only-pre-approved-tools-with-dontask-mode), que no heredan. Si el líder se ejecuta con `--dangerously-skip-permissions`, todos los compañeros de equipo también lo hacen. Después de generar, puede cambiar el modo de permiso de un compañero de equipo individual, pero no puede establecer modos de permiso por compañero de equipo en el momento de la generación.

289 291 

290Los avisos de permiso de compañero de equipo aparecen en la sesión del líder, así que apruébelos allí usted mismo. [Aprobación de plan](#have-teammates-plan-before-implementing) es la excepción diseñada: la sesión del líder otorga aprobaciones de plan de compañero de equipo sin un aviso separado para usted.292Las solicitudes de permiso de los compañeros de equipo aparecen en la sesión del líder, así que apruébalas allí tú mismo. No necesitas aprobar [el plan de un compañero de equipo](#have-teammates-plan-before-implementing).

291 293 

292#### Mensajes entre agentes294#### Mensajes entre agentes

293 295 

agent-view.md +93 −35

Details

276 276 

277Después de unos diez segundos, Claude Code pasa la sesión a segundo plano sin esperar más, excepto en casos como estos:277Después de unos diez segundos, Claude Code pasa la sesión a segundo plano sin esperar más, excepto en casos como estos:

278 278 

279* **Los subagentes en primer plano siguen ejecutándose**: Claude Code sigue esperando para que el trabajo de los [subagentes en primer plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background) que Claude inició se traslade, y muestra `Still backgrounding after the current tool`. Presiona `←` de nuevo para pasar a segundo plano sin esperar, lo que reinicia esos subagentes desde el principio.279* **Los subagentes en primer plano siguen en ejecución**: Claude Code sigue esperando para que el trabajo de los [subagentes en primer plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background) que Claude inició se conserve, y muestra `Still backgrounding after the current tool`. Presiona `←` de nuevo para pasar a segundo plano sin esperar, lo que reinicia esos subagentes desde el principio.

280* **Una solicitud de permiso o una pregunta espera tu respuesta**: mientras espera una solicitud de permiso o una pregunta que hizo Claude, Claude Code sigue esperando y muestra `Still backgrounding after the current tool — a question is waiting for your answer.` Si tu respuesta permite que el turno continúe, como **Yes** en una solicitud de permiso, Claude Code pasa la sesión a segundo plano cuando termina la herramienta actual.280* **Una solicitud de permiso o una pregunta espera tu respuesta**: mientras espera una solicitud de permiso o una pregunta que hizo Claude, Claude Code sigue esperando y muestra `Still backgrounding after the current tool — a question is waiting for your answer.` Si tu respuesta permite que el turno continúe, como **Yes** en una solicitud de permiso, Claude Code pasa la sesión a segundo plano cuando termina la herramienta actual.

281* **Escribes en la entrada del prompt**: Claude Code cancela el cambio, porque el texto sin enviar permanece en el cuadro de entrada de tu terminal y no se trasladaría a la sesión en segundo plano. Muestra `Backgrounding cancelled — you have unsent text in the input. Send it or clear it, then press ← again.`281* **Escribes en la entrada del prompt**: Claude Code cancela el cambio, porque el texto sin enviar permanece en el cuadro de entrada de tu terminal y no se trasladaría a la sesión en segundo plano. Muestra `Backgrounding cancelled — you have unsent text in the input. Send it or clear it, then press ← again.` Claude sigue trabajando en primer plano.

282* **Detienes el turno**: Claude Code cancela el cambio y muestra `Backgrounding cancelled — the turn was stopped.` Por ejemplo, el turno se detiene cuando [interrumpes a Claude con `Esc`](/docs/es/interactive-mode#general-controls) o seleccionas **No** [sin un comentario](/docs/es/permissions#add-a-comment-when-you-answer-a-permission-prompt) en una solicitud de permiso de la conversación principal, o presionas `Esc` en una pregunta que Claude hace allí. Presiona `←` de nuevo para pasar la sesión a segundo plano.282* **Detienes el turno**: Claude Code cancela el cambio y muestra `Backgrounding cancelled — the turn was stopped.` Por ejemplo, el turno se detiene cuando [interrumpes a Claude con `Esc`](/docs/es/interactive-mode#general-controls) o seleccionas **No** [sin un comentario](/docs/es/permissions#add-a-comment-when-you-answer-a-permission-prompt) en una solicitud de permiso de la conversación principal, o presionas `Esc` en una pregunta que Claude hace allí. Presiona `←` de nuevo para pasar la sesión a segundo plano.

283* **Un mensaje en cola no puede trasladarse**: los mensajes que [pusiste en cola mientras Claude trabajaba](/docs/es/interactive-mode#queue-messages-while-claude-works) se trasladan a la sesión en segundo plano junto con la conversación. Cuando alguno de ellos no puede trasladarse, la sesión permanece en primer plano y Claude Code muestra un aviso como `Cannot open agents — 1 queued message can't move to the background. Press ← again once Claude has read it.`283* **Un mensaje en cola no puede trasladarse**: los mensajes que [pusiste en cola mientras Claude trabajaba](/docs/es/interactive-mode#queue-messages-while-claude-works) se trasladan a la sesión en segundo plano junto con la conversación. Cuando alguno de ellos no puede trasladarse, la sesión permanece en primer plano y Claude Code muestra un aviso como `Cannot open agents — 1 queued message can't move to the background. Press ← again once Claude has read it.`

284 284 


288 288 

289Puedes desactivar este atajo para las sesiones en primer plano con el ajuste [`leftArrowOpensAgents`](/docs/es/settings-reference#leftarrowopensagents) en `/config`.289Puedes desactivar este atajo para las sesiones en primer plano con el ajuste [`leftArrowOpensAgents`](/docs/es/settings-reference#leftarrowopensagents) en `/config`.

290 290 

291##### Prompts enviados mientras la sesión pasa a segundo plano

292 

293Si introduces un prompt o un comando de shell `!` en el momento en que la sesión pasa a segundo plano, se detiene o queda sin enviar:

294 

295* **Enviado mientras se cierra la conversación**: la respuesta o el comando se detiene cuando la conversación se cierra y se abre la vista de agentes

296* **Todavía esperando a los [hooks](/docs/es/hooks) en ese momento**: el prompt no se envía, y nada en la pantalla lo indica. Esto incluye un prompt que escribiste mientras los [hooks `SessionStart`](/docs/es/hooks#sessionstart) todavía se estaban ejecutando

297 

298En ambos casos, el texto que escribiste se conserva en el [historial de prompts](/docs/es/interactive-mode#command-history). Para volver a enviarlo, abre la sesión pasada a segundo plano y presiona `↑` en su prompt para recuperar el texto.

299 

291### Organizar la lista300### Organizar la lista

292 301 

293La vista de agentes agrupa las sesiones para que las que necesitan entrada estén en la parte superior, con `Ready for review` y `Needs input` encima de `Working` y `Completed`. Estos nombres de grupo no se corresponden uno a uno con los [estados](#read-session-state) anteriores: una sesión pasa a `Ready for review` cuando tiene un pull request abierto que necesita revisión o tiene verificaciones fallidas, y `Completed` reúne las sesiones terminadas, fallidas y detenidas.302La vista de agentes agrupa las sesiones para que las que necesitan entrada estén en la parte superior, con `Ready for review` y `Needs input` encima de `Working` y `Completed`. Estos nombres de grupo no se corresponden uno a uno con los [estados](#read-session-state) anteriores: una sesión pasa a `Ready for review` cuando tiene un pull request abierto que necesita revisión o tiene verificaciones fallidas, y `Completed` reúne las sesiones terminadas, fallidas y detenidas.


300* Presiona `Shift+↑` o `Shift+↓` para reordenar las sesiones309* Presiona `Shift+↑` o `Shift+↓` para reordenar las sesiones

301* Presiona `Ctrl+R` para cambiar el nombre de una sesión310* Presiona `Ctrl+R` para cambiar el nombre de una sesión

302* Presiona `Enter` en un encabezado de grupo para contraerlo, excepto mientras hay un [filtro](#filter-sessions) activo, cuando todos los grupos permanecen expandidos311* Presiona `Enter` en un encabezado de grupo para contraerlo, excepto mientras hay un [filtro](#filter-sessions) activo, cuando todos los grupos permanecen expandidos

312* Presiona `Ctrl+X` para detener una sesión y `Ctrl+X` de nuevo en menos de dos segundos para eliminarla de la lista, o `Esc` para descartar la confirmación sin eliminar. La segunda pulsación elimina la sesión incluso cuando el intento de detenerla falla, por ejemplo porque el [servicio en segundo plano no responde](#agent-view-says-the-background-service-did-not-respond). En ese caso, la confirmación permanece activa otros dos segundos, y la eliminación termina por sí misma el proceso de la sesión

303 313 

304Para quitar una sesión de la lista, presiona `Ctrl+X` para detenerla y `Ctrl+X` de nuevo en menos de dos segundos para eliminarla. Presionar `Ctrl+X` en un encabezado de grupo elimina todas las sesiones de ese grupo después de una confirmación.314Presionar `Ctrl+X` en un encabezado de grupo elimina todas las sesiones de ese grupo después de una confirmación. Salvo en los casos de conservación descritos en [Qué elimina borrar una sesión](#what-deleting-a-session-removes), eliminar quita la sesión de la lista. Un worktree que Claude creó para ella se elimina, se conserva o se deja en su lugar según cómo la elimines y lo que contenga el worktree. La transcripción de la conversación permanece en tu máquina local, disponible mediante `claude --resume`.

305 315 

306La segunda pulsación elimina la sesión incluso cuando el intento de detenerla falla, por ejemplo porque el [servicio en segundo plano no responde](#agent-view-says-the-background-service-did-not-respond): la confirmación permanece activa otros dos segundos, y la eliminación termina por sí misma el proceso de la sesión. Presiona `Esc` para descartar la confirmación sin eliminar.316Las sesiones completadas que no caben en la pantalla se pliegan en una fila `… N more`. El grupo `Completed` ocupa el espacio vertical que queda después de los grupos activos. En una terminal corta, el encabezado se compacta en una sola línea de resumen para que las sesiones que están trabajando o necesitan entrada sigan visibles.

307 317 

308Salvo en los casos de conservación descritos en [Qué elimina borrar una sesión](#what-deleting-a-session-removes), eliminar quita la sesión de la lista, y un worktree que Claude creó para ella se elimina, se conserva o se deja en su lugar según cómo la elimines y lo que contenga el worktree. La transcripción de la conversación permanece en tu máquina local, disponible mediante `claude --resume`.318#### Recuperar una sesión anterior

309 319 

310Para recuperar una sesión en Claude Code v2.1.212 o posterior, escribe `/resume` en la entrada de despacho. Se abre un selector con las sesiones anteriores del repositorio desde el que abriste la vista de agentes, de la más reciente a la más antigua, incluidas las sesiones que eliminaste de la lista; las sesiones que ya tienen una fila no se enumeran. `↑`/`↓` mueven la selección, `Enter` reanuda la sesión seleccionada como sesión en segundo plano para que vuelva a la lista como una fila, y `Esc` cierra el selector.320Para recuperar una sesión en Claude Code v2.1.212 o posterior, escribe `/resume` en la [entrada de despacho](#dispatch-an-agent-from-agent-view). Se abre un selector con las sesiones anteriores del repositorio desde el que abriste la vista de agentes, de la más reciente a la más antigua, incluidas las sesiones que eliminaste de la lista. Las sesiones que ya tienen una fila no se enumeran. Presiona `Enter` para reanudar la sesión seleccionada como sesión en segundo plano, para que vuelva a la lista como una fila.

311 321 

312El selector se abre solo con un `/resume` sin argumentos. Una reanudación dirigida, acotada o restringida no puede resolverse con el selector, por lo que la vista de agentes muestra en su lugar la sugerencia `attach to a session to run it` cuando:322`/resume` falla con `isn't available in agent view` cuando:

313 323 

314* `/resume` nombra un id o un término de búsqueda324* `/resume` nombra un id o un término de búsqueda

315* la vista está acotada con `--cwd`325* la vista está acotada con `--cwd`

316* la vista se inició con [`--safe-mode`](/docs/es/cli-reference#cli-flags)326* la vista se inició con [`--safe-mode`](/docs/es/cli-reference#cli-flags)

317* la vista se abrió con un flag como `--permission-mode` o `--settings`327* la vista se abrió con un flag como `--permission-mode` o `--settings`

318 328 

319Las sesiones completadas que no caben en la pantalla se pliegan en una fila `… N more`. El grupo `Completed` ocupa el espacio vertical que queda después de los grupos activos, y en una terminal corta el encabezado se compacta en una sola línea de resumen para que las sesiones que están trabajando o necesitan entrada sigan visibles.329Si escribiste algo después de `/resume`, vuelve a escribirlo sin eso. Si usaste uno de esos flags, ejecuta `claude agents` en tu shell sin él y luego escribe `/resume` solo.

320 330 

321### Filtrar sesiones331### Filtrar sesiones

322 332 


361| `Ctrl+X` | Detener la sesión; presiona de nuevo en menos de dos segundos para eliminarla |371| `Ctrl+X` | Detener la sesión; presiona de nuevo en menos de dos segundos para eliminarla |

362| `Shift+↑` / `Shift+↓` | Reordenar la sesión seleccionada |372| `Shift+↑` / `Shift+↓` | Reordenar la sesión seleccionada |

363| `Esc` | Cerrar el panel de vista previa, borrar la entrada o salir. Cuando abriste la vista de agentes pasando tu sesión a segundo plano con `←`, el `Esc` final vuelve a esa conversación en lugar de salir. Con el [modo de editor vim](/docs/es/interactive-mode#vim-editor-mode) activado, presionar `Esc` en la entrada cambia del modo INSERT al modo NORMAL y conserva tu texto, como en el prompt principal |373| `Esc` | Cerrar el panel de vista previa, borrar la entrada o salir. Cuando abriste la vista de agentes pasando tu sesión a segundo plano con `←`, el `Esc` final vuelve a esa conversación en lugar de salir. Con el [modo de editor vim](/docs/es/interactive-mode#vim-editor-mode) activado, presionar `Esc` en la entrada cambia del modo INSERT al modo NORMAL y conserva tu texto, como en el prompt principal |

364| `Ctrl+C` | Borrar la entrada; presiona dos veces para salir |374| `Ctrl+C` | Borrar la entrada; presiona dos veces para salir. Mientras hay texto seleccionado en la pantalla, la pulsación borra la selección en su lugar, copiándola primero a menos que [seleccionarla ya la haya copiado](/docs/es/settings-reference#copyonselect) |

365| `?` | Mostrar atajos |375| `?` | Mostrar atajos |

366 376 

367Los atajos que tienen una acción en el [contexto `Agents`](/docs/es/keybindings#agents-actions) siguen tu [`keybindings.json`](/docs/es/keybindings). También lo hace `Ctrl+G`, a través del atajo `chat:externalEditor` del contexto `Chat`.377Los atajos que tienen una acción en el [contexto `Agents`](/docs/es/keybindings#agents-actions) siguen tu [`keybindings.json`](/docs/es/keybindings). También lo hace `Ctrl+G`, a través del atajo `chat:externalEditor` del contexto `Chat`.


395 405 

396* `/exit` y `/quit` cierran la vista de agentes406* `/exit` y `/quit` cierran la vista de agentes

397* `/logout` cierra tu sesión407* `/logout` cierra tu sesión

398* `/model` establece el [modelo de envío](#set-the-model)408* `/model`, `/effort` y `/fast` establecen [con qué comienzan las sesiones que envíes a continuación](#set-the-model-effort-and-fast-mode). `/effort` y `/fast` requieren Claude Code v2.1.299 o posterior.

399* `/login` abre el diálogo de inicio de sesión para que puedas iniciar sesión de nuevo sin adjuntarte a una sesión409* `/login` abre el diálogo de inicio de sesión para que puedas iniciar sesión de nuevo sin adjuntarte a una sesión

400* Un `/resume` sin argumentos, o su alias `/continue`, abre un selector de sesiones anteriores del repositorio para [recuperar una](#organize-the-list) como sesión en segundo plano. Requiere Claude Code v2.1.212 o posterior410* Un `/resume` sin argumentos, o su alias `/continue`, abre un selector de sesiones anteriores del repositorio para [recuperar una](#bring-back-a-past-session) como sesión en segundo plano. Requiere Claude Code v2.1.212 o posterior

401 411 

402Los skills, tus propios comandos y los comandos integrados que expanden prompts, como `/init`, se envían a una nueva sesión en segundo plano como su primer prompt. Otros comandos integrados muestran en su lugar la sugerencia `attach to a session to run it`. Todo lo que escribiste permanece en la entrada junto a la sugerencia para que puedas editarlo.412Los skills, tus propios comandos y los comandos integrados que expanden prompts, como `/init`, se envían a una nueva sesión en segundo plano como su primer prompt. La sugerencia `isn't available in agent view` significa que el comando integrado que ingresaste no se ejecutó. Para ejecutarlo, [adjúntate a una sesión](#attach-to-a-session) e ingrésalo allí. Todo lo que escribiste permanece en la entrada junto a la sugerencia para que puedas editarlo.

403 413 

404Empaquetar una tarea recurrente como un [skill](/docs/es/skills) te permite iniciar el mismo flujo de trabajo desde la vista de agentes repetidamente sin volver a escribir el prompt.414Empaquetar una tarea recurrente como un [skill](/docs/es/skills) te permite iniciar el mismo flujo de trabajo desde la vista de agentes repetidamente sin volver a escribir el prompt.

405 415 


458 468 

459#### Qué se conserva al enviar al segundo plano469#### Qué se conserva al enviar al segundo plano

460 470 

461Enviar al segundo plano inicia un proceso nuevo que se reanuda desde la conversación guardada, y el trabajo en segundo plano en curso pasa a él: los comandos de shell en segundo plano en ejecución, los subagentes en segundo plano, los flujos de trabajo dinámicos, las tareas programadas que creaste con [`/loop`](/docs/es/scheduled-tasks) y las [respuestas automáticas de Claude a comentarios de artefactos](/docs/es/artifacts#let-claude-reply-to-comments-on-its-own) se conservan y siguen ejecutándose allí. Un subagente se mueve junto con todo lo que inició, por lo que solo se conserva cuando todo ese trabajo también puede moverse. Para detener el trabajo en segundo plano en curso en lugar de conservarlo, establece la variable de entorno [`CLAUDE_DISABLE_ADOPT=1`](/docs/es/env-vars#variables); Claude Code entonces te pide que confirmes antes de enviar al segundo plano.471Enviar al segundo plano inicia un proceso nuevo que se reanuda desde la conversación guardada, y el trabajo en segundo plano en curso pasa a él. Los comandos de shell en segundo plano en ejecución, los subagentes en segundo plano, los flujos de trabajo dinámicos, las tareas programadas que creaste con [`/loop`](/docs/es/scheduled-tasks) y las [respuestas automáticas de Claude a comentarios de artefactos](/docs/es/artifacts#let-claude-reply-to-comments-on-its-own) se conservan y siguen ejecutándose allí. Un subagente se mueve junto con todo lo que inició, por lo que solo se conserva cuando todo ese trabajo también puede moverse.

462 472 

463Cuando un [flujo de trabajo dinámico](/docs/es/workflows) aún tiene subagentes en ejecución, Claude Code pregunta antes de enviar al segundo plano con el diálogo `Background this session?`, que indica cuántos subagentes se reiniciarían. Elige `Stay` para dejar que terminen primero. Si confirmas, Claude Code reproduce la ejecución en la sesión en segundo plano: los subagentes que aún se estaban ejecutando comienzan de nuevo desde el principio, por lo que los tokens que usaron hasta ese momento se gastan otra vez. Consulta [Reanudar después de una pausa](/docs/es/workflows#resume-after-a-pause) para ver qué subagentes completados devuelven sus resultados guardados y cuáles se ejecutan de nuevo.473Cuando un [flujo de trabajo dinámico](/docs/es/workflows) aún tiene subagentes en ejecución, Claude Code pregunta antes de enviar al segundo plano con el diálogo `Background this session?`, que indica cuántos subagentes se reiniciarían. Elige `Stay` para dejar que terminen primero. Si confirmas, Claude Code reproduce la ejecución en la sesión en segundo plano: los subagentes que aún se estaban ejecutando comienzan de nuevo desde el principio, por lo que los tokens que usaron hasta ese momento se gastan otra vez. Consulta [Reanudar después de una pausa](/docs/es/workflows#resume-after-a-pause) para ver qué subagentes completados devuelven sus resultados guardados y cuáles se ejecutan de nuevo.

464 474 


526 claude stop 7c5dcf5d stop this session536 claude stop 7c5dcf5d stop this session

527```537```

528 538 

539#### Prompts que contienen `--bg`

540 

541Un prompt que menciona `--bg` o `--background` se entrega tal como lo escribiste, y lo mismo ocurre con una respuesta `--bg` que envíes a una sesión en segundo plano. Por ejemplo, este comando inicia una sola sesión en segundo plano, y el segundo `--bg` forma parte de su prompt:

542 

543```bash theme={null}

544claude --bg "find out why --bg sessions are slow to start on this machine"

545```

546 

547Claude Code interpreta un argumento completo como el flag solo donde puede ir un flag: antes de cualquier separador `--` aislado y no donde otro flag espera su valor. Coloca el flag primero, como en `claude --bg "<prompt>"`.

548 

549Donde la posición es ambigua, como después de una serie de flags cortos combinados, Claude Code no inicia nada. En su lugar, sale con [`Couldn't tell whether --bg is a flag or text here`](/docs/es/errors#couldnt-tell-whether-bg-is-a-flag-or-text).

550 

529#### Ejecutar un comando de shell551#### Ejecutar un comando de shell

530 552 

531Para ejecutar un comando de shell como un trabajo en segundo plano en lugar de una sesión de Claude, pasa `--exec`. El siguiente ejemplo ejecuta `pytest -x` como un trabajo en segundo plano:553Para ejecutar un comando de shell como un trabajo en segundo plano en lugar de una sesión de Claude, pasa `--exec`. El siguiente ejemplo ejecuta `pytest -x` como un trabajo en segundo plano:


626 648 

627Cualquiera de las dos vías conserva un directorio que mencionan los registros de otra sesión terminada.649Cualquiera de las dos vías conserva un directorio que mencionan los registros de otra sesión terminada.

628 650 

629### Establecer el modelo651### Establecer el modelo, el esfuerzo y el modo rápido

630 652 

631El nombre del modelo que se muestra en el encabezado de la vista de agentes es el predeterminado de envío. Las nuevas sesiones que inicias desde la entrada usan este modelo, que proviene del [ajuste `model`](/docs/es/settings-reference#model) de tu configuración de usuario. Establécelo seleccionando un modelo en el [selector `/model`](/docs/es/model-config), o edita el ajuste directamente.653En la vista de agentes, escribe `/model`, `/effort` o `/fast` en la [entrada de envío](#dispatch-an-agent-from-agent-view) y presiona `Enter`, y las sesiones que envíes después comienzan con lo que estableciste. Tu elección se mantiene en esa ventana de la vista de agentes y no se guarda en un archivo de configuración. `/effort` y `/fast` requieren Claude Code v2.1.299 o posterior, al igual que `/model` escrito sin nada después.

632 654 

633Para sobrescribir el predeterminado de envío durante toda la sesión de la vista de agentes, pasa `--model` al abrir la vista de agentes. Consulta [Modo de permisos, modelo y esfuerzo](#permission-mode-model-and-effort).655Indica el valor después del comando, o escribe el comando solo para elegir uno de una lista:

634 656 

635Para cambiar el predeterminado de envío desde dentro de la vista de agentes, escribe `/model` seguido del nombre de un modelo en la entrada de envío y presiona `Enter`. El encabezado se actualiza para mostrar ese modelo con un marcador `(session)`, y las sesiones que envíes después lo usan. Escribe `/model default` para borrar la sobrescritura y volver al predeterminado de envío. Esta sobrescritura dura el resto de la ejecución actual de `claude agents` y no escribe en tu archivo de configuración. El siguiente ejemplo envía una sesión con Opus y la siguiente con Sonnet:657* **Modelo**: `/model <name>`, por ejemplo `/model opus`

658* **[Nivel de esfuerzo](/docs/es/model-config#adjust-effort-level)**: `/effort` con `low`, `medium`, `high`, `xhigh` o `max`, por ejemplo `/effort high`. Para iniciar sesiones en [ultracode](/docs/es/workflows#let-claude-decide-with-ultracode), abre en su lugar la vista de agentes desde tu shell con [`claude agents --effort ultracode`](#dispatch-defaults); la entrada de envío no acepta `/effort ultracode`

659* **Modo rápido**: `/fast on` o `/fast off`. La sesión comienza en modo rápido solo si el modo rápido está [disponible para ti](/docs/es/fast-mode#requirements) y su modelo admite el modo rápido. Con un modelo que no lo admite, la sesión comienza con el modo rápido desactivado, así que primero usa `/model` para elegir uno de los [modelos que admiten el modo rápido](/docs/es/fast-mode). La sugerencia debajo de la entrada, no el encabezado, confirma si las nuevas sesiones obtienen el modo rápido.

660 

661Para deshacer una elección, indica `default` como valor, por ejemplo `/effort default`.

662 

663El siguiente ejemplo envía una sesión con Opus y la siguiente con Sonnet:

636 664 

637```text theme={null}665```text theme={null}

638/model opus666/model opus


644Cada sesión en segundo plano puede ejecutarse con un modelo diferente. Para sobrescribirlo en una sesión:672Cada sesión en segundo plano puede ejecutarse con un modelo diferente. Para sobrescribirlo en una sesión:

645 673 

646* Desde el shell, pasa `--model` con `claude --bg`.674* Desde el shell, pasa `--model` con `claude --bg`.

647* Adjúntate a una sesión en ejecución y ejecuta `/model` para cambiarlo: una selección en el selector, o un `/model <name>` escrito, se guarda como tu predeterminado para nuevas sesiones, a menos que presiones `s` en el selector para un cambio solo de la sesión. Un cambio solo de la sesión se mantiene si la sesión se vuelve a generar.675* Adjúntate a una sesión en ejecución y ejecuta `/model` para cambiarlo. Una selección en el selector, o un `/model <name>` escrito, se guarda como tu predeterminado para nuevas sesiones, a menos que presiones `s` en el selector para un cambio solo de la sesión. Un cambio solo de la sesión se mantiene si la sesión se vuelve a generar.

648* Envía un [subagente](/docs/es/sub-agents) cuyo frontmatter establezca un campo `model`.676* Envía un [subagente](/docs/es/sub-agents) que establezca `model` en su frontmatter, comenzando el prompt con su nombre o mencionando `@name`. Mientras se aplique una elección de `/model` en la entrada de envío, el `model` del subagente no se usa, así que ingresa `/model default` allí. Si iniciaste con [`claude agents --model`](#dispatch-defaults), tampoco se usa el del subagente, así que ejecuta `claude agents` en tu shell sin `--model`.

649 677 

650### Modo de permisos, modelo y esfuerzo678### Modo de permisos, modelo y esfuerzo

651 679 


666* Envías tu propia sesión al segundo plano con `←` o `/background`694* Envías tu propia sesión al segundo plano con `←` o `/background`

667* Envías una sesión al directorio en el que estás695* Envías una sesión al directorio en el que estás

668* Reactivas una sesión detenida en el directorio en el que estás adjuntándote a ella o respondiéndole696* Reactivas una sesión detenida en el directorio en el que estás adjuntándote a ella o respondiéndole

697* Reinicias una sesión en el directorio en el que estás con [`claude respawn`](#manage-sessions-from-the-shell)

669 698 

670Claude Code reenvía un gateway situado delante de un proveedor de nube. Si el shell desde el que haces el envío selecciona el proveedor y exporta su endpoint de gateway con su flag para omitir la autenticación, Claude Code reenvía el par de endpoint y flag a la sesión en las condiciones que se aplican a `ANTHROPIC_BASE_URL`, junto con `ANTHROPIC_CUSTOM_HEADERS`. Por ejemplo, exporta `CLAUDE_CODE_USE_VERTEX=1` con `ANTHROPIC_VERTEX_BASE_URL` y `CLAUDE_CODE_SKIP_VERTEX_AUTH=1`, y Claude Code reenvía ese endpoint y ese flag.699Claude Code reenvía un gateway situado delante de un proveedor de nube. Si el shell desde el que haces el envío selecciona el proveedor y exporta su endpoint de gateway con su flag para omitir la autenticación, Claude Code reenvía el par de endpoint y flag a la sesión en las condiciones que se aplican a `ANTHROPIC_BASE_URL`, junto con `ANTHROPIC_CUSTOM_HEADERS`. Por ejemplo, exporta `CLAUDE_CODE_USE_VERTEX=1` con `ANTHROPIC_VERTEX_BASE_URL` y `CLAUDE_CODE_SKIP_VERTEX_AUTH=1`, y Claude Code reenvía ese endpoint y ese flag.

671 700 


673 702 

674#### Modo de permisos703#### Modo de permisos

675 704 

676El [modo de permisos](/docs/es/permissions) depende de cómo iniciaste la sesión:705* **Enviada al segundo plano con `/bg` o `←`**: Claude Code conserva el [modo de permisos](/docs/es/permissions) en el que estaba la sesión, por lo que una que cambiaste a `acceptEdits` o `auto` se mantiene así después de desasociarte

677 

678* **Enviada al segundo plano con `/bg` o `←`**: Claude Code conserva el modo de permisos en el que estaba la sesión, por lo que una que cambiaste a `acceptEdits` o `auto` se mantiene así después de desasociarte

679* **Enviada desde una vista de agentes que abriste con `←`**: Claude Code toma el modo de permisos de la nueva sesión primero de la configuración del directorio de destino y luego de la sesión de la que viniste

680* **Enviada desde `claude agents` iniciado en un shell, o con `claude --bg`**: la nueva sesión comienza como lo haría una nueva sesión de `claude` en ese directorio, a menos que la hayas enviado desde una vista de agentes que abriste con [predeterminados de envío](#dispatch-defaults). [En qué modo de permisos comienza una sesión](/docs/es/permission-modes#which-mode-a-session-starts-in) enumera el orden706* **Enviada desde `claude agents` iniciado en un shell, o con `claude --bg`**: la nueva sesión comienza como lo haría una nueva sesión de `claude` en ese directorio, a menos que la hayas enviado desde una vista de agentes que abriste con [predeterminados de envío](#dispatch-defaults). [En qué modo de permisos comienza una sesión](/docs/es/permission-modes#which-mode-a-session-starts-in) enumera el orden

681 707 

682Para una sesión que envías desde una vista de agentes abierta con `←`, Claude Code toma el modo de permisos de la primera de estas fuentes que se aplique:708Para una sesión que envías desde una vista de agentes abierta con `←`, Claude Code toma el modo de permisos de la primera de estas fuentes que se aplique:

683 709 

6841. El [`permissions.defaultMode`](/docs/es/settings-reference#permissions-defaultmode) del directorio de destino. Se aplican dos reglas sobre la fuente:7101. El [`permissions.defaultMode`](/docs/es/settings-reference#permissions-defaultmode) del directorio de destino. `auto` y `bypassPermissions` [solo surten efecto desde la configuración administrada, un archivo `--settings` o `~/.claude/settings.json`](/docs/es/settings-reference#permissions-defaultmode). Claude Code rechaza un `defaultMode` del `.claude/settings.json` o `.claude/settings.local.json` del proyecto que seleccione un modo más permisivo que el modo en el que estaba la sesión de la que viniste.

685 * `auto` y `bypassPermissions` [solo surten efecto desde la configuración administrada, un archivo `--settings` o `~/.claude/settings.json`](/docs/es/settings-reference#permissions-defaultmode).7112. El modo de permisos de la sesión de la que viniste.

686 * Claude Code rechaza un `defaultMode` del `.claude/settings.json` o `.claude/settings.local.json` del proyecto que seleccione un modo más permisivo que el modo en el que estaba la sesión de la que viniste.712 

6872. El modo de permisos de la sesión de la que viniste. Si esa sesión estaba en modo `bypassPermissions`, la nueva sesión puede comenzar en su lugar en modo Manual, con el aviso `Bypass permissions was requested at launch and ignored`. Eso sucede cuando tu aceptación del descargo de responsabilidad de omisión consta solo en `.claude/settings.local.json` o en un archivo `--settings`. Continúa en modo Manual, o [agrega esa aceptación a `~/.claude/settings.json`](/docs/es/permission-modes#bypass-permissions-acceptance).713 Si esa sesión estaba en modo `bypassPermissions`, la nueva sesión puede comenzar en su lugar en modo Manual, con el aviso `Bypass permissions was requested at launch and ignored`. Eso sucede cuando tu aceptación del descargo de responsabilidad de omisión consta solo en `.claude/settings.local.json` o en un archivo `--settings`. Continúa en modo Manual, o [agrega esa aceptación a `~/.claude/settings.json`](/docs/es/permission-modes#bypass-permissions-ignored-in-a-background-session).

688 714 

689Cuando Claude Code rechaza el modo de una fuente por ser demasiado permisivo, decide la siguiente fuente de la lista. Por ejemplo, si haces el envío desde una sesión en modo plan a un directorio cuya configuración registrada en el repositorio pide `acceptEdits`, la nueva sesión comienza en modo plan. Si mueves ese `defaultMode` a `~/.claude/settings.json`, se aplica sin importar el modo de permisos de la sesión de la que viniste.715Cuando Claude Code rechaza el modo de una fuente por ser demasiado permisivo, decide la siguiente fuente de la lista. Por ejemplo, si haces el envío desde una sesión en modo plan a un directorio cuya configuración registrada en el repositorio pide `acceptEdits`, la nueva sesión comienza en modo plan. Si mueves ese `defaultMode` a `~/.claude/settings.json`, se aplica sin importar el modo de permisos de la sesión de la que viniste.

690 716 


816* **Finalizado o esperando tu próximo mensaje, y sin conectar durante aproximadamente una hora**: el supervisor detiene el proceso para liberar recursos. Una sesión que terminó su turno haciéndote una pregunta cuenta como esperando tu próximo mensaje. La conversación permanece en el disco, y la próxima vez que te conectes o respondas, la sesión se reanuda donde se quedó. Fija una sesión con `Ctrl+T` para mantener su proceso ejecutándose.842* **Finalizado o esperando tu próximo mensaje, y sin conectar durante aproximadamente una hora**: el supervisor detiene el proceso para liberar recursos. Una sesión que terminó su turno haciéndote una pregunta cuenta como esperando tu próximo mensaje. La conversación permanece en el disco, y la próxima vez que te conectes o respondas, la sesión se reanuda donde se quedó. Fija una sesión con `Ctrl+T` para mantener su proceso ejecutándose.

817* **Salió inesperadamente mientras el supervisor está ejecutándose**: el supervisor reinicia el proceso. Finalizar una sesión que enviaste al segundo plano tú mismo con `←` o `/background`, por ejemplo con `kill`, la marca como detenida en lugar de reiniciarla. Para sesiones que finalizaron con un apagado, consulta [Las sesiones se muestran como fallidas o detenidas después del apagado](#sessions-show-as-failed-after-shutdown).843* **Salió inesperadamente mientras el supervisor está ejecutándose**: el supervisor reinicia el proceso. Finalizar una sesión que enviaste al segundo plano tú mismo con `←` o `/background`, por ejemplo con `kill`, la marca como detenida en lugar de reiniciarla. Para sesiones que finalizaron con un apagado, consulta [Las sesiones se muestran como fallidas o detenidas después del apagado](#sessions-show-as-failed-after-shutdown).

818* **Después de una actualización automática**: el supervisor se reinicia en la nueva versión y mueve las sesiones inactivas en segundo plano. Las sesiones que están funcionando, esperando tu respuesta o conectadas no se interrumpen.844* **Después de una actualización automática**: el supervisor se reinicia en la nueva versión y mueve las sesiones inactivas en segundo plano. Las sesiones que están funcionando, esperando tu respuesta o conectadas no se interrumpen.

819* **El propio supervisor se detiene**, por ejemplo porque su proceso se finalizó desde fuera de Claude Code: en macOS y Linux, el proceso de cada sesión espera aproximadamente un minuto a que un nuevo supervisor se reconecte a él, y se detiene si ninguno lo hace. Ejecuta `claude agents` en tu shell dentro de ese minuto para iniciar un nuevo supervisor y mantener tus sesiones en ejecución. Si el minuto pasa primero, las sesiones se detienen, pero sus conversaciones guardadas permanecen en el disco: conéctate o responde a una sesión y se reiniciará desde su conversación guardada, como se describe en [Las sesiones se muestran como fallidas o detenidas después del apagado](#sessions-show-as-failed-after-shutdown).845* **El propio supervisor se detiene**, por ejemplo porque su proceso se finalizó desde fuera de Claude Code: en macOS y Linux, tus sesiones se detienen a menos que un nuevo supervisor se conecte en aproximadamente un minuto. Para iniciar uno, ejecuta `claude agents` en tu shell. Pasado ese minuto, consulta [Mantener las sesiones en ejecución después de que el supervisor se detiene](#keep-sessions-running-after-the-supervisor-stops).

820 846 

821Cuando el proceso de una sesión se detiene o se reinicia, los comandos de shell en segundo plano, los flujos de trabajo dinámicos y los subagentes en segundo plano que Claude inició en ella se transfieren al siguiente proceso; los monitores en ejecución y los comandos de shell que un subagente inició se detienen con el proceso. Eliminar la sesión detiene todo lo que se transfirió. Para detener todo con el proceso en lugar de transferirlo, establece [`CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF`](/docs/es/env-vars#variables) en `1`.847Cuando el proceso de una sesión se detiene o se reinicia, los comandos de shell en segundo plano, los flujos de trabajo dinámicos y los subagentes en segundo plano que Claude inició en ella se transfieren al siguiente proceso; los monitores en ejecución y los comandos de shell que un subagente inició se detienen con el proceso. Eliminar la sesión detiene todo lo que se transfirió. Para detener todo con el proceso en lugar de transferirlo, establece [`CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF`](/docs/es/env-vars#variables) en `1`.

822 848 

823El supervisor y sus sesiones se autentican con las mismas credenciales almacenadas que tus sesiones interactivas. Para saber qué ajustes y variables de shell llegan a una sesión, incluido `PATH`, consulta [Configuración y proveedor](#settings-and-provider). Para endpoints de gateway, consulta [Gateway LLM](#llm-gateway).849El supervisor y sus sesiones se autentican con las mismas credenciales almacenadas que tus sesiones interactivas. Para saber qué ajustes y variables de shell llegan a una sesión, incluido `PATH`, consulta [Configuración y proveedor](#settings-and-provider). Para endpoints de gateway, consulta [Gateway LLM](#llm-gateway).

824 850 

851#### Mantener las sesiones en ejecución después de que el supervisor se detiene

852 

853Si la vista de agentes muestra este aviso al salir, no hay ningún [supervisor](#the-supervisor-process) en ejecución:

854 

855```text theme={null}

856Background sessions still running will stop in about a minute. Run 'claude agents' to keep them.

857```

858 

859Ejecuta `claude agents` en tu shell dentro de ese minuto para iniciar un nuevo supervisor y mantener tus sesiones en ejecución.

860 

861Si el minuto pasa primero, las sesiones se detienen, pero sus conversaciones guardadas permanecen en el disco. Para reiniciar una sesión desde su conversación guardada, [conéctate](#attach-to-a-session) o [responde](#peek-and-reply) a ella, como se describe en [Las sesiones se muestran como fallidas o detenidas después del apagado](#sessions-show-as-failed-after-shutdown).

862 

825### Dónde se almacena el estado863### Dónde se almacena el estado

826 864 

827El estado de la sesión se almacena en tu directorio de configuración de Claude Code. Si estableces [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars), el supervisor usa ese directorio en lugar de `~/.claude` y se ejecuta como una instancia separada con sus propias sesiones.865El estado de la sesión se almacena en tu directorio de configuración de Claude Code. Si estableces [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars), el supervisor usa ese directorio en lugar de `~/.claude` y se ejecuta como una instancia separada con sus propias sesiones.


930claude daemon stop --any --keep-workers968claude daemon stop --any --keep-workers

931```969```

932 970 

933Luego ejecuta `claude agents` en tu shell para iniciar el nuevo supervisor. Si lo haces dentro de [aproximadamente un minuto](#the-supervisor-process) después de la detención, se reconecta a las sesiones que siguen en ejecución y su trabajo continúa sin interrupciones. Si tardas más, en macOS y Linux las sesiones ya se habrán detenido por sí solas, y conectarte o responder a una la reinicia desde su conversación guardada. Sin `--keep-workers`, el comando también termina las sesiones en segundo plano. El flag `--any` hace que el comando detenga un supervisor que Claude Code inició bajo demanda.971A continuación, ejecuta `claude agents` en tu shell para iniciar un nuevo supervisor. En macOS y Linux, hazlo dentro de aproximadamente un minuto después de que termine el anterior, o las sesiones [se detendrán sin un supervisor](#the-supervisor-process). Si viste `stopped` pero el mismo error vuelve a aparecer, y estás en macOS o Linux con una versión de Claude Code anterior a v2.1.300, ejecuta `claude update` y luego ambos comandos nuevamente.

934 

935Un supervisor que se inicia pero no puede aceptar conexiones sale y libera su bloqueo por sí solo, por lo que el siguiente `claude agents` inicia uno nuevo sin esta detención manual. Los pasos anteriores se aplican cuando un supervisor en ejecución se bloquea.

936 972 

937Si en cambio el comando sale diciendo que el proceso registrado no pudo verificarse como el supervisor, revisa el ID de proceso reportado: si es un supervisor tuyo, detenlo tú mismo y luego elimina `~/.claude/daemon.lock` para que el siguiente `claude agents` inicie desde cero.973Si en cambio el comando de detención imprimió uno de estos cuatro mensajes, el proceso anterior no se detuvo. Haz lo que indica la fila correspondiente en tu shell y luego ejecuta `claude agents`:

938 974 

939En Windows, si el supervisor no responde a la solicitud de detención, el comando imprime su ID de proceso. Termina ese proceso con `taskkill /PID <pid>` para completar la recuperación. Las sesiones en segundo plano se siguen conservando si pasaste `--keep-workers`.975| El mensaje contiene | Plataforma | Acción |

976| :- | :- | :- |

977| `could not be verified as the daemon, so it was not signalled` | Todas | Averigua qué programa tiene ese ID de proceso. Si es tu propio supervisor, detenlo; no toques ningún otro programa. Luego elimina `~/.claude/daemon.lock`. |

978| `is still running after SIGKILL` | macOS, Linux | Espera a que el proceso salga. Si nunca lo hace, reinicia tu computadora. |

979| `was not sent SIGKILL` | macOS, Linux | Ejecuta el comando de detención nuevamente. Si el proceso permanece, revísalo con `ps -ww -o args= -p <pid>`: Claude Code iniciado con `daemon` es un supervisor, así que ejecuta `kill -9 <pid>`. No toques nada más; si después `claude agents` no puede iniciar un supervisor, elimina `~/.claude/daemon.lock`. |

980| `supervisor (pid=<pid>) is still running` | Windows | Termina el proceso con `taskkill /PID <pid>` |

940 981 

941### La distribución falla con `Could not resolve authentication method`982### La distribución falla con `Could not resolve authentication method`

942 983 


950 991 

951Consulta la [referencia de errores](/docs/es/errors#could-not-resolve-authentication-method) para ver la lista completa de causas y soluciones.992Consulta la [referencia de errores](/docs/es/errors#could-not-resolve-authentication-method) para ver la lista completa de causas y soluciones.

952 993 

994### Una sesión en segundo plano muestra `No LLM gateway`

995 

996Si una sesión en segundo plano muestra [`No LLM gateway`](/docs/es/errors#no-llm-gateway-opened-from-another-folder), no recibió el `ANTHROPIC_BASE_URL` de tu gateway, por lo que sus solicitudes fallan. Claude Code lo retuvo porque distribuiste, reactivaste o reiniciaste la sesión desde un directorio distinto de la carpeta que nombra el mensaje.

997 

998Ves el mensaje, por ejemplo, después de distribuir a un repositorio con [`@<repo>`](#dispatch-to-a-specific-directory) o de reactivar una sesión detenida ejecutando `claude attach` desde otro directorio. Para darle tu gateway a la sesión, elige la solución que corresponda a dónde tienes configurado tu gateway:

999 

1000* **Exportaste el gateway en tu terminal**: en una terminal donde hayas exportado las variables del gateway, haz `cd` a la carpeta que nombra el mensaje y ejecuta el comando [`claude respawn <id>`](#manage-sessions-from-the-shell) del mensaje.

1001 * El gateway llega a la sesión solo cuando el propio [supervisor](#the-supervisor-process) se inició desde un shell que exportó el mismo gateway. Si el supervisor no se inició así, reinícialo desde la terminal donde ejecutaste el comando respawn, como se describe en [La distribución falla con `Could not resolve authentication method`](#dispatch-fails-with-could-not-resolve-authentication-method), y luego ejecuta ese comando nuevamente.

1002* **Usaste la vista de agentes en un proyecto cuya configuración define el gateway**: coloca `ANTHROPIC_BASE_URL` y su credencial en [el bloque `env` de un archivo de configuración](/docs/es/llm-gateway-connect#set-in-a-settings-file). Usa `~/.claude/settings.json`, o `.claude/settings.local.json` en el propio proyecto de la sesión, ya que una sesión reiniciada con respawn lee ambos. Luego ejecuta [`claude respawn <id>`](#manage-sessions-from-the-shell) en tu shell desde cualquier directorio para reiniciar esta sesión con el gateway.

1003 

953### Las sesiones en segundo plano no pueden leer Desktop, Documents o Downloads en macOS1004### Las sesiones en segundo plano no pueden leer Desktop, Documents o Downloads en macOS

954 1005 

955En macOS, el host de sesiones en segundo plano se ejecuta como su propio proceso y solicita acceso a las carpetas protegidas por separado de tu terminal. Si una sesión en segundo plano reporta `Operation not permitted` al leer `~/Desktop`, `~/Documents`, `~/Downloads` u otra ubicación protegida, otorga acceso en Configuración del Sistema, en Privacidad y Seguridad > Archivos y Carpetas, o habilita Acceso Total al Disco para la entrada.1006En macOS, el host de sesiones en segundo plano se ejecuta como su propio proceso y solicita acceso a las carpetas protegidas por separado de tu terminal. Si una sesión en segundo plano reporta `Operation not permitted` al leer `~/Desktop`, `~/Documents`, `~/Downloads` u otra ubicación protegida, otorga acceso en Configuración del Sistema, en Privacidad y Seguridad > Archivos y Carpetas, o habilita Acceso Total al Disco para la entrada.


996 1047 

997| Versión | Cambio |1048| Versión | Cambio |

998| - | - |1049| - | - |

1050| v2.1.299 | [`/effort` y `/fast` en la entrada de distribución](#set-the-model-effort-and-fast-mode) establecen el nivel de esfuerzo y el modo rápido para las sesiones que distribuyas a continuación. `/model`, `/effort` o `/fast` escritos sin valor abren un selector. |

1051| v2.1.299 | Claude Code [interpreta `--bg` y `--background` como el flag](#from-your-shell) solo antes de cualquier separador `--` sin argumentos y fuera del valor de otro flag, y rechaza una posición ambigua en lugar de adivinar. Antes de esta versión, un prompt o una respuesta de `--bg` o `--background` a una sesión en segundo plano podía tomarse como el flag. Eso podía iniciar nuevas sesiones en segundo plano una y otra vez en lugar de entregar el texto. |

1052| v2.1.296 | Un prompt o un comando de shell `!` que introduces [mientras la sesión se mueve al segundo plano](#switch-sessions-without-leaving-the-terminal) se detiene o queda sin enviar, y su texto se conserva en el historial de prompts. Antes de esta versión, la respuesta o el comando seguía ejecutándose donde ya no podías verlo, y un prompt enviado justo después de `←` podía ejecutarse una segunda vez sin que lo vieras. Un prompt escrito mientras los hooks `SessionStart` aún se estaban ejecutando se perdía: no se enviaba ni quedaba en el historial de prompts. |

1053| v2.1.295 | `Ctrl+C` en el prompt inactivo de una [sesión en segundo plano adjunta](#attach-to-a-session) no toca el despertar pendiente de un [`/loop` de ritmo propio](/docs/es/scheduled-tasks#let-claude-choose-the-interval), por lo que presionarlo dos veces se desadjunta y el bucle sigue ejecutándose. `Esc` en ese prompt [detiene el bucle de ritmo propio](/docs/es/scheduled-tasks#stop-a-loop) y muestra un aviso `Pending wakeup cancelled`. Antes de esta versión, el primer `Ctrl+C` podía terminar un bucle de ritmo propio sin indicarlo, y `Esc` no detenía uno que se había movido al segundo plano junto con la sesión. |

1054| v2.1.295 | En macOS y Linux, cuando `claude agents` sale mientras no hay ningún [supervisor](#keep-sessions-running-after-the-supervisor-stops) en ejecución, no inicia uno nuevo por su cuenta. Las sesiones en ejecución se detienen entonces aproximadamente un minuto después a menos que vuelvas a ejecutar `claude agents`, y la vista de agentes puede imprimir un aviso que lo indica al salir. Antes de esta versión, el `claude agents` que salía iniciaba un nuevo supervisor. |

1055| v2.1.295 | En macOS con el instalador nativo, las sesiones en segundo plano que se reinician juntas después de una actualización se ejecutan bajo la misma entrada de Claude Code que tiene el [acceso a carpetas protegidas](#background-sessions-can’t-read-desktop-documents-or-downloads-on-macos) que concediste. Antes de esta versión, esas sesiones podían ejecutarse bajo la propia ruta del binario. macOS lista esa ruta como una entrada separada, por lo que las solicitudes de acceso a carpetas podían volver a aparecer después de una actualización. |

999| v2.1.290 | [`claude attach` y `claude logs`](#manage-sessions-from-the-shell) pueden recibir parte del nombre de una sesión en lugar del ID. |1056| v2.1.290 | [`claude attach` y `claude logs`](#manage-sessions-from-the-shell) pueden recibir parte del nombre de una sesión en lugar del ID. |

1000| v2.1.290 | `/model`, `/effort`, `/rename` y `/usage` enviados como [respuesta desde el panel de vista previa](#peek-and-reply) a una sesión que está trabajando se ejecutan de inmediato. |1057| v2.1.290 | `/model`, `/effort`, `/rename` y `/usage` enviados como [respuesta desde el panel de vista previa](#peek-and-reply) a una sesión que está trabajando se ejecutan de inmediato. |

1001| v2.1.290 | Una [respuesta desde el panel de vista previa](#peek-and-reply) que no se puede entregar ya no se guarda para el siguiente reinicio cuando empieza con `/`, o cuando responde a una pregunta con opciones predefinidas mientras el proceso de la sesión se está ejecutando. |1058| v2.1.290 | Una [respuesta desde el panel de vista previa](#peek-and-reply) que no se puede entregar ya no se guarda para el siguiente reinicio cuando empieza con `/`, o cuando responde a una pregunta con opciones predefinidas mientras el proceso de la sesión se está ejecutando. |


1048| v2.1.216 | `/fork`: la [confirmación](#from-inside-a-session) es una línea, que muestra el estado de la copia, el nombre de su fila en la vista de agentes y su ID de sesión para `claude attach`, y termina con `runs in the origin tree` o `edits this checkout` solo cuando la copia se ejecuta en el árbol de trabajo principal o edita el checkout que tienes abierto. Hacer clic en el nombre envía esta sesión al segundo plano y abre la vista de agentes en la sesión de la copia. La confirmación ya no repite el modo de permisos heredado de la copia; las versiones anteriores imprimían una confirmación de varias líneas sin nombre en el que se pudiera hacer clic. Necesita entrada: `/install-github-app` y la lista de configuración de `/mcp`, ejecutados mientras nadie está adjunto, muestran la sesión bajo `Needs input` con una fila que nombra el comando, y adjuntarse y volver a ejecutar el comando continúa; de v2.1.208 a v2.1.215 se rechazaban directamente en ese estado. Restauración de `--agent`: reanudar o reiniciar una [sesión `--agent` enviada al segundo plano](#from-your-shell) restaura el prompt del sistema del agente y las restricciones de herramientas, buscando primero el agente en el propio directorio de la sesión, cuando su espacio de trabajo es de confianza; una sesión cuyo agente ya no existe continúa con las herramientas y el prompt del sistema predeterminados y se abre con una advertencia visible, en lugar de revertir silenciosamente al agente predeterminado. `Ctrl+X`: presionarlo dos veces elimina una sesión incluso cuando el intento de detención falla, en lugar de que una detención fallida cancele la eliminación pendiente, y una sesión eliminada cuyo proceso worker había muerto ya no reaparece en la siguiente actualización. Eliminación de worktree: una sesión cuyo directorio de worktree no pertenece a ningún repositorio de git se puede eliminar; antes de esta versión se rechazaba cada intento de eliminar tal sesión. Un directorio que ya no existe se borra inmediatamente. La doble pulsación de la vista de agentes elimina un directorio que aún tiene archivos, ejecutando tu hook `WorktreeRemove` para un directorio creado por un hook, a menos que los registros de otra sesión también lo nombren. `claude rm` mantiene tal directorio siempre que queden archivos. |1105| v2.1.216 | `/fork`: la [confirmación](#from-inside-a-session) es una línea, que muestra el estado de la copia, el nombre de su fila en la vista de agentes y su ID de sesión para `claude attach`, y termina con `runs in the origin tree` o `edits this checkout` solo cuando la copia se ejecuta en el árbol de trabajo principal o edita el checkout que tienes abierto. Hacer clic en el nombre envía esta sesión al segundo plano y abre la vista de agentes en la sesión de la copia. La confirmación ya no repite el modo de permisos heredado de la copia; las versiones anteriores imprimían una confirmación de varias líneas sin nombre en el que se pudiera hacer clic. Necesita entrada: `/install-github-app` y la lista de configuración de `/mcp`, ejecutados mientras nadie está adjunto, muestran la sesión bajo `Needs input` con una fila que nombra el comando, y adjuntarse y volver a ejecutar el comando continúa; de v2.1.208 a v2.1.215 se rechazaban directamente en ese estado. Restauración de `--agent`: reanudar o reiniciar una [sesión `--agent` enviada al segundo plano](#from-your-shell) restaura el prompt del sistema del agente y las restricciones de herramientas, buscando primero el agente en el propio directorio de la sesión, cuando su espacio de trabajo es de confianza; una sesión cuyo agente ya no existe continúa con las herramientas y el prompt del sistema predeterminados y se abre con una advertencia visible, en lugar de revertir silenciosamente al agente predeterminado. `Ctrl+X`: presionarlo dos veces elimina una sesión incluso cuando el intento de detención falla, en lugar de que una detención fallida cancele la eliminación pendiente, y una sesión eliminada cuyo proceso worker había muerto ya no reaparece en la siguiente actualización. Eliminación de worktree: una sesión cuyo directorio de worktree no pertenece a ningún repositorio de git se puede eliminar; antes de esta versión se rechazaba cada intento de eliminar tal sesión. Un directorio que ya no existe se borra inmediatamente. La doble pulsación de la vista de agentes elimina un directorio que aún tiene archivos, ejecutando tu hook `WorktreeRemove` para un directorio creado por un hook, a menos que los registros de otra sesión también lo nombren. `claude rm` mantiene tal directorio siempre que queden archivos. |

1049| v2.1.214 | Una sesión enviada al segundo plano con `←` o `/background` y dejada inactiva sin nada en ejecución tiene su proceso detenido como cualquier otra sesión inactiva, en lugar de mantener su proceso y el servicio en segundo plano en ejecución indefinidamente. Una sesión completada se puede eliminar con `claude rm` o desde la vista de agentes después de que el servicio en segundo plano haya quedado inactivo, y una sesión que entró en un worktree después de ser distribuida desde un directorio que no es un repositorio de git, como una carpeta de espacio de trabajo con varios repositorios, se puede eliminar desde la vista de agentes cuando el propio worktree pertenece a un repositorio de git, porque la limpieza se resuelve desde el worktree en lugar del directorio desde el que se distribuyó la sesión; antes, ambas eliminaciones se rechazaban en cada intento. Reabrir una sesión detenida restaura su conversación guardada incluso cuando no se puede leer una carpeta del almacén de transcripciones. |1106| v2.1.214 | Una sesión enviada al segundo plano con `←` o `/background` y dejada inactiva sin nada en ejecución tiene su proceso detenido como cualquier otra sesión inactiva, en lugar de mantener su proceso y el servicio en segundo plano en ejecución indefinidamente. Una sesión completada se puede eliminar con `claude rm` o desde la vista de agentes después de que el servicio en segundo plano haya quedado inactivo, y una sesión que entró en un worktree después de ser distribuida desde un directorio que no es un repositorio de git, como una carpeta de espacio de trabajo con varios repositorios, se puede eliminar desde la vista de agentes cuando el propio worktree pertenece a un repositorio de git, porque la limpieza se resuelve desde el worktree en lugar del directorio desde el que se distribuyó la sesión; antes, ambas eliminaciones se rechazaban en cada intento. Reabrir una sesión detenida restaura su conversación guardada incluso cuando no se puede leer una carpeta del almacén de transcripciones. |

1050| v2.1.213 | `/install-github-app`, la lista de configuración de [`/mcp`](/docs/es/mcp) y las acciones de autenticación de MCP funcionan en una sesión en segundo plano mientras hay una terminal adjunta, y se rechazan solo cuando nadie está adjunto, con un mensaje que te indica que te adjuntes y ejecutes el comando nuevamente; de v2.1.208 a v2.1.212 se rechazaban incluso con una terminal adjunta. |1107| v2.1.213 | `/install-github-app`, la lista de configuración de [`/mcp`](/docs/es/mcp) y las acciones de autenticación de MCP funcionan en una sesión en segundo plano mientras hay una terminal adjunta, y se rechazan solo cuando nadie está adjunto, con un mensaje que te indica que te adjuntes y ejecutes el comando nuevamente; de v2.1.208 a v2.1.212 se rechazaban incluso con una terminal adjunta. |

1051| v2.1.212 | [`/fork` en una sesión interactiva](#from-inside-a-session) copia la conversación en una nueva sesión en segundo plano que aparece como su propia fila, nombrada a partir de la sesión de la que provino o, para un fork con prompt de una sesión sin nombre, a partir del prompt del fork, mientras la original continúa ejecutándose; el comportamiento anterior de subagente bifurcado de `/fork` se movió a `/subtask`. Con la [vista de agentes desactivada](#turn-off-agent-view), `/fork` mantiene el comportamiento de subagente bifurcado. Una fila enfocada que está esperando su primer prompt muestra `space to send it a prompt`. `Ctrl+J` inserta una nueva línea en la entrada de distribución en terminales con reporte extendido de teclas, donde antes la pulsación se ignoraba, y la superposición `?` enumera el atajo. La sugerencia `←` del pie de página en una sesión interactiva muestra brevemente `N done` cuando una sesión en segundo plano termina mientras ninguna necesita tu entrada. Escribir un `/resume` sin argumentos en la vista de agentes abre un selector de sesiones pasadas del repositorio desde el que abriste la vista de agentes, incluidas las sesiones eliminadas de la lista, y elegir una la reanuda como una sesión en segundo plano; antes de esta versión `/resume` no estaba disponible en la vista de agentes y las sesiones eliminadas solo eran accesibles con `claude --resume` o `/resume` desde una sesión interactiva. Las formas dirigidas, con alcance y restringidas mantienen la sugerencia `attach to a session to run it` que las versiones anteriores mostraban para cada forma. Las sesiones que esperan una solicitud de host de red del sandbox, una solicitud de entrada de MCP o una solicitud de configuración administrada se muestran como `Needs input` en lugar de `Working`, en la vista de agentes y en `claude agents --json`, y una pregunta de Claude informa `waitingFor: input needed` en lugar de `permission prompt`. Adjuntarse a una sesión cuyo proceso se ha detenido muestra su transcripción con el formato en que la muestra la sesión activa, en lugar de como texto sin procesar. Una sesión detenida cuya transcripción está en un lugar inesperado se reanuda desde ella mediante un escaneo de último recurso de tus transcripciones guardadas, y abrir una fila que no tiene transcripción guardada muestra `Press enter again to restart this session fresh`, y la reinicia desde cero con la segunda pulsación; v2.1.211 mostraba el rechazo sin forma de reiniciar desde la vista de agentes. |1108| v2.1.212 | [`/fork` en una sesión interactiva](#from-inside-a-session) copia la conversación en una nueva sesión en segundo plano mientras la original continúa ejecutándose; el comportamiento anterior de subagente bifurcado de `/fork` se movió a `/subtask`. Con la [vista de agentes desactivada](#turn-off-agent-view), `/fork` mantiene el comportamiento de subagente bifurcado. |

1109| v2.1.212 | [Escribir un `/resume` sin argumentos en la vista de agentes](#bring-back-a-past-session) abre un selector de sesiones pasadas del repositorio desde el que abriste la vista de agentes. |

1052| v2.1.211 | Despertar una sesión detenida adjuntándote o respondiendo desde el directorio en el que se ejecuta vuelve a reenviar el `ANTHROPIC_BASE_URL` de gateway de tu shell, bajo las mismas condiciones que una distribución nueva, por lo que una sesión autenticada a través de un `ANTHROPIC_AUTH_TOKEN` de gateway se reanuda en el gateway en lugar de informar `Not logged in`. Adjuntarse a una sesión detenida que fue enviada al segundo plano desde otra conversación antes de que terminara su primera respuesta se rechaza con `This session has no saved transcript` en lugar de iniciar silenciosamente una conversación en blanco bajo el mismo ID de sesión; abrir la misma fila desde la vista de agentes mostraba el rechazo en el pie de página. Terminar el proceso de una sesión de `←` o `/background` desde fuera de Claude Code la marca como detenida en lugar de que el supervisor la reinicie, una detención ya registrada en disco se respeta a menos que una respuesta que enviaste aún esté esperando ser entregada, a una sesión reiniciada después de un fallo se le informa que fue reiniciada, y una sesión de `←` o `/background` reiniciada no reanuda una respuesta interrumpida de hace más de aproximadamente una hora. Una respuesta de nombrado de sesión que responde o rechaza el prompt en lugar de etiquetarlo, como en el caso de un prompt que es principalmente un enlace, se descarta y la fila mantiene un nombre tomado del texto del prompt. Eliminar una sesión cuyo worktree git ya no reconoce tiene éxito, dejando el directorio del worktree en disco y nombrando su ruta, en lugar de que se rechace cada intento. Una eliminación rechazada muestra la razón en la fila de la sesión, incluido el error de git subyacente cuando no se pudo eliminar el worktree, en lugar de que la fila reaparezca silenciosamente. |1110| v2.1.211 | Despertar una sesión detenida adjuntándote o respondiendo desde el directorio en el que se ejecuta vuelve a reenviar el `ANTHROPIC_BASE_URL` de gateway de tu shell, bajo las mismas condiciones que una distribución nueva, por lo que una sesión autenticada a través de un `ANTHROPIC_AUTH_TOKEN` de gateway se reanuda en el gateway en lugar de informar `Not logged in`. Adjuntarse a una sesión detenida que fue enviada al segundo plano desde otra conversación antes de que terminara su primera respuesta se rechaza con `This session has no saved transcript` en lugar de iniciar silenciosamente una conversación en blanco bajo el mismo ID de sesión; abrir la misma fila desde la vista de agentes mostraba el rechazo en el pie de página. Terminar el proceso de una sesión de `←` o `/background` desde fuera de Claude Code la marca como detenida en lugar de que el supervisor la reinicie, una detención ya registrada en disco se respeta a menos que una respuesta que enviaste aún esté esperando ser entregada, a una sesión reiniciada después de un fallo se le informa que fue reiniciada, y una sesión de `←` o `/background` reiniciada no reanuda una respuesta interrumpida de hace más de aproximadamente una hora. Una respuesta de nombrado de sesión que responde o rechaza el prompt en lugar de etiquetarlo, como en el caso de un prompt que es principalmente un enlace, se descarta y la fila mantiene un nombre tomado del texto del prompt. Eliminar una sesión cuyo worktree git ya no reconoce tiene éxito, dejando el directorio del worktree en disco y nombrando su ruta, en lugar de que se rechace cada intento. Una eliminación rechazada muestra la razón en la fila de la sesión, incluido el error de git subyacente cuando no se pudo eliminar el worktree, en lugar de que la fila reaparezca silenciosamente. |

1053| v2.1.210 | `claude attach` espera mientras el servicio en segundo plano se está iniciando o reconectando en lugar de fallar con un error `job not found` o `still starting`, informa como finalizada una sesión que terminó durante la conexión, y aplica un cambio de tamaño de la terminal hecho durante una conexión lenta cuando esta se completa. El recuento de sesiones que necesitan entrada en la sugerencia `←` del pie de página del prompt aparece con todos los proveedores, incluidos los proveedores de terceros que antes mostraban la forma simple `← for agents`. Enviar al segundo plano una sesión con `←` lleva la lista de tareas de Claude a la sesión en segundo plano en lugar de descartarla. La fila desde la que presionaste `←` mantiene un nombre en negrita y sin atenuar después de que la selección se mueve. `claude agents --effort` acepta `ultracode` en lugar de descartarlo silenciosamente. |1111| v2.1.210 | `claude attach` espera mientras el servicio en segundo plano se está iniciando o reconectando en lugar de fallar con un error `job not found` o `still starting`, informa como finalizada una sesión que terminó durante la conexión, y aplica un cambio de tamaño de la terminal hecho durante una conexión lenta cuando esta se completa. El recuento de sesiones que necesitan entrada en la sugerencia `←` del pie de página del prompt aparece con todos los proveedores, incluidos los proveedores de terceros que antes mostraban la forma simple `← for agents`. Enviar al segundo plano una sesión con `←` lleva la lista de tareas de Claude a la sesión en segundo plano en lugar de descartarla. La fila desde la que presionaste `←` mantiene un nombre en negrita y sin atenuar después de que la selección se mueve. `claude agents --effort` acepta `ultracode` en lugar de descartarlo silenciosamente. |

1054| v2.1.208 | Adjuntarse a una sesión cuyo proceso se ha detenido muestra la última pantalla de su transcripción mientras el proceso se inicia, en lugar de solo una nota `Session is starting`. Una respuesta que no se puede entregar porque el servicio en segundo plano es inaccesible o el envío falla se guarda y se envía como el siguiente prompt de la sesión cuando su proceso se inicia nuevamente; antes de esta versión, una respuesta perdida mientras el servicio en segundo plano era inaccesible se descartaba. Un proceso cuyo propio binario fue reemplazado por una actualización aún puede iniciar el supervisor, desde el lanzador `claude` instalado o la versión más nueva en disco, en lugar de fallar hasta que se reiniciara Claude Code. Un supervisor que ejecuta una versión anterior nunca reinicia una sesión inactiva iniciada por una versión más nueva en su propio binario más antiguo. Eliminar una sesión elimina su worktree incluso después de que la sesión movió el worktree a una rama diferente, y mantiene el worktree junto con la fila de la sesión cuando el worktree tiene commits que no se han enviado a ningún lugar u otra sesión lo reclama, en lugar de destruir los commits o dejar huérfano el worktree. `/install-github-app` y la lista de configuración de `/mcp` y sus acciones de autenticación se rechazan en una sesión en segundo plano con un mensaje que nombra la alternativa; solo en v2.1.208, el selector de `/model` se rechazaba de la misma manera y un `/model <name>` escrito cambiaba solo esa sesión en lugar de guardar también tu modelo predeterminado. |1112| v2.1.208 | Adjuntarse a una sesión cuyo proceso se ha detenido muestra la última pantalla de su transcripción mientras el proceso se inicia, en lugar de solo una nota `Session is starting`. Una respuesta que no se puede entregar porque el servicio en segundo plano es inaccesible o el envío falla se guarda y se envía como el siguiente prompt de la sesión cuando su proceso se inicia nuevamente; antes de esta versión, una respuesta perdida mientras el servicio en segundo plano era inaccesible se descartaba. Un proceso cuyo propio binario fue reemplazado por una actualización aún puede iniciar el supervisor, desde el lanzador `claude` instalado o la versión más nueva en disco, en lugar de fallar hasta que se reiniciara Claude Code. Un supervisor que ejecuta una versión anterior nunca reinicia una sesión inactiva iniciada por una versión más nueva en su propio binario más antiguo. Eliminar una sesión elimina su worktree incluso después de que la sesión movió el worktree a una rama diferente, y mantiene el worktree junto con la fila de la sesión cuando el worktree tiene commits que no se han enviado a ningún lugar u otra sesión lo reclama, en lugar de destruir los commits o dejar huérfano el worktree. `/install-github-app` y la lista de configuración de `/mcp` y sus acciones de autenticación se rechazan en una sesión en segundo plano con un mensaje que nombra la alternativa; solo en v2.1.208, el selector de `/model` se rechazaba de la misma manera y un `/model <name>` escrito cambiaba solo esa sesión en lugar de guardar también tu modelo predeterminado. |


1061| v2.1.199 | Una sesión en segundo plano cuyo proceso sale antes de terminar de iniciarse en un host con poca memoria muestra `possibly low memory — free some up and retry` en el estado de su fila en lugar de solo la razón de salida sin más. Enviar al segundo plano una sesión con `←` o `/background` lleva su `/color` a la nueva fila. |1119| v2.1.199 | Una sesión en segundo plano cuyo proceso sale antes de terminar de iniciarse en un host con poca memoria muestra `possibly low memory — free some up and retry` en el estado de su fila en lugar de solo la razón de salida sin más. Enviar al segundo plano una sesión con `←` o `/background` lleva su `/color` a la nueva fila. |

1062| v2.1.198 | La vista de agentes envía una notificación a través de `preferredNotifChannel` cuando una sesión en segundo plano necesita entrada, finaliza o falla, y dispara el hook `Notification` con el tipo `agent_needs_input` o `agent_completed`. `←` y `/exit` dentro de `claude attach <id>` regresan a la vista de agentes en lugar de salir al shell; `Ctrl+Z` regresa al shell. Una sesión en segundo plano que aisló su trabajo en un worktree hace commit, hace push de su propia rama aislada, nunca de `main` ni de `master`, y abre un pull request en borrador cuando finaliza en lugar de preguntar primero. `/login` se ejecuta en la vista de agentes y abre el diálogo de inicio de sesión. El diálogo de salida `Background work is running` ofrece `Move to background and exit`. El traspaso al salir también cubre los subagentes en segundo plano, que se reanudan desde su transcripción en el siguiente despertar en lugar de informarse como fallidos. `claude --bg` combinado con `-p` o `--print` se rechaza con un error. El host de sesiones en segundo plano solicita el permiso de Red Local de macOS en el primer acceso a la LAN en lugar de fallar con `connect: no route to host`. |1120| v2.1.198 | La vista de agentes envía una notificación a través de `preferredNotifChannel` cuando una sesión en segundo plano necesita entrada, finaliza o falla, y dispara el hook `Notification` con el tipo `agent_needs_input` o `agent_completed`. `←` y `/exit` dentro de `claude attach <id>` regresan a la vista de agentes en lugar de salir al shell; `Ctrl+Z` regresa al shell. Una sesión en segundo plano que aisló su trabajo en un worktree hace commit, hace push de su propia rama aislada, nunca de `main` ni de `master`, y abre un pull request en borrador cuando finaliza en lugar de preguntar primero. `/login` se ejecuta en la vista de agentes y abre el diálogo de inicio de sesión. El diálogo de salida `Background work is running` ofrece `Move to background and exit`. El traspaso al salir también cubre los subagentes en segundo plano, que se reanudan desde su transcripción en el siguiente despertar en lugar de informarse como fallidos. `claude --bg` combinado con `-p` o `--print` se rechaza con un error. El host de sesiones en segundo plano solicita el permiso de Red Local de macOS en el primer acceso a la LAN en lugar de fallar con `connect: no route to host`. |

1063| v2.1.196 | Una sola pulsación de `←` envía al segundo plano una sesión en primer plano; las versiones anteriores requerían dos pulsaciones, con una sugerencia en el pie de página y una confirmación. `--dangerously-skip-permissions` pasado a `claude agents` muestra el aviso de bypass en lugar de descartarse silenciosamente. Las sesiones interactivas que nunca nombraste llevan un nombre predeterminado como `my-app-3f` en los listados de sesiones y en `claude agents --json`. Los comandos de shell en segundo plano y los flujos de trabajo dinámicos sobreviven a que el proceso de la sesión se detenga, se reinicie o se actualice, incluso en Windows; establece `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1` para desactivar el traspaso. Una transcripción leída erróneamente como vacía al reiniciar se renombra con un sufijo `.orphaned-` en lugar de eliminarse. |1121| v2.1.196 | Una sola pulsación de `←` envía al segundo plano una sesión en primer plano; las versiones anteriores requerían dos pulsaciones, con una sugerencia en el pie de página y una confirmación. `--dangerously-skip-permissions` pasado a `claude agents` muestra el aviso de bypass en lugar de descartarse silenciosamente. Las sesiones interactivas que nunca nombraste llevan un nombre predeterminado como `my-app-3f` en los listados de sesiones y en `claude agents --json`. Los comandos de shell en segundo plano y los flujos de trabajo dinámicos sobreviven a que el proceso de la sesión se detenga, se reinicie o se actualice, incluso en Windows; establece `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1` para desactivar el traspaso. Una transcripción leída erróneamente como vacía al reiniciar se renombra con un sufijo `.orphaned-` en lugar de eliminarse. |

1064| v2.1.195 | El trabajo en segundo plano en curso también se traslada cuando envías una sesión al segundo plano en Windows; establece `CLAUDE_DISABLE_ADOPT=1` para detenerlo en su lugar. El grupo `Completed` llena el espacio vertical restante y el encabezado se compacta en terminales de poca altura. Una versión anterior de Claude Code ya no descarta campos de `state.json` de sesiones más nuevas ni oculta esas sesiones de `claude agents`. Adjuntarse a una sesión detenida cambia inmediatamente en lugar de mostrar una pantalla en blanco durante hasta cinco segundos. Un supervisor que no puede aceptar conexiones sale y libera su bloqueo por sí solo. |1122| v2.1.195 | El trabajo en segundo plano en curso también se traslada cuando envías una sesión al segundo plano en Windows. El grupo `Completed` llena el espacio vertical restante y el encabezado se compacta en terminales de poca altura. Una versión anterior de Claude Code ya no descarta campos de `state.json` de sesiones más nuevas ni oculta esas sesiones de `claude agents`. Adjuntarse a una sesión detenida cambia inmediatamente en lugar de mostrar una pantalla en blanco durante hasta cinco segundos. Un supervisor que no puede aceptar conexiones sale y libera su bloqueo por sí solo. |

1065| v2.1.191 | `claude --bg` con un nombre de `--agent` que no coincide con ninguno de tus subagentes hace fallar el lanzamiento: la sesión sale inmediatamente con un error `--agent '<name>' not found` en lugar de ejecutarse con el agente predeterminado. |1123| v2.1.191 | `claude --bg` con un nombre de `--agent` que no coincide con ninguno de tus subagentes hace fallar el lanzamiento: la sesión sale inmediatamente con un error `--agent '<name>' not found` en lugar de ejecutarse con el agente predeterminado. |

1066| v2.1.174 | Las sesiones en segundo plano ya no heredan variables de endpoint de gateway como `ANTHROPIC_BASE_URL` del shell desde el que se lanzó el supervisor; el supervisor proporciona una instantánea de credenciales nueva a los workers precalentados, lo que corrige errores espurios de `Could not resolve authentication method`. |1124| v2.1.174 | Las sesiones en segundo plano ya no heredan variables de endpoint de gateway como `ANTHROPIC_BASE_URL` del shell desde el que se lanzó el supervisor; el supervisor proporciona una instantánea de credenciales nueva a los workers precalentados, lo que corrige errores espurios de `Could not resolve authentication method`. |

1067| v2.1.172 | `/model` en la entrada de distribución establece una sobrescritura del modelo de distribución con alcance de sesión. |1125| v2.1.172 | `/model` en la entrada de distribución establece una sobrescritura del modelo de distribución con alcance de sesión. |

artifacts.md +17 −6

Details

98* **`Enter`**: lo abre en tu navegador cuando ya está adjunto a la sesión actual, y lo adjunta cuando no lo está. Antes de v2.1.216, `Enter` lo abría en tu navegador98* **`Enter`**: lo abre en tu navegador cuando ya está adjunto a la sesión actual, y lo adjunta cuando no lo está. Antes de v2.1.216, `Enter` lo abría en tu navegador

99* **`o`**: lo abre en tu navegador99* **`o`**: lo abre en tu navegador

100* **`c`**: copia su enlace100* **`c`**: copia su enlace

101* **`d`**: fuera de una [sesión en la nube](/docs/es/claude-code-on-the-web), elimina permanentemente un artefacto que posees después de que confirmes. Su enlace deja de funcionar para todos, incluido tú

101 102 

102Claude Code lee la lista de tu cuenta de claude.ai, por lo que funciona en una nueva sesión y después de `/clear`, cuando el enlace se ha desplazado fuera de la terminal.103Claude Code lee la lista de tu cuenta de claude.ai, por lo que `/artifacts` funciona en una nueva sesión y después de `/clear`, cuando el enlace de un artefacto se ha desplazado fuera de la terminal.

103 104 

104## Compartir un artefacto105## Compartir un artefacto

105 106 

106Un nuevo artefacto es visible solo para usted. Para compartirlo, abra el artefacto en su navegador y use el control **Compartir** en el encabezado de la página. El encabezado también vincula a su galería en [claude.ai/code/artifacts](https://claude.ai/code/artifacts), que enumera todos los artefactos que ha creado.107Un nuevo artefacto es visible solo para usted. Para compartirlo, abra el artefacto en su navegador y use el control **Compartir** en el encabezado de la página. El encabezado también vincula a su galería en [claude.ai/code/artifacts](https://claude.ai/code/artifacts), que enumera todos los artefactos que ha creado.

107 108 

108Los espectadores en su organización pueden ver quién publicó la página: en un artefacto compartido dentro de su organización, su nombre está en el menú de título, y en un artefacto público está en el encabezado de la página para los espectadores que han iniciado sesión en su organización. Un espectador que abre un enlace público sin iniciar sesión, o desde fuera de su organización, ve la etiqueta `El contenido es generado por el usuario y no verificado.` en lugar de su nombre.109Los espectadores en tu organización pueden ver quién publicó la página: en un artefacto compartido dentro de tu organización, tu nombre está en el menú de título, y en un artefacto público está en el encabezado de la página para los espectadores que han iniciado sesión en tu organización. Un espectador que abre un enlace público sin iniciar sesión, o desde fuera de tu organización, ve la etiqueta `Content is user-generated and unverified.` en lugar de tu nombre.

109 110 

110Con quién puede compartir depende de su plan:111Con quién puede compartir depende de su plan:

111 112 

112* **Dentro de su organización**: en los planes Team y Enterprise, otorgue acceso a personas específicas en su organización, o a todos en ella. Los espectadores inician sesión en claude.ai como miembros de su organización para ver la página.113* **Dentro de su organización**: en los planes Team y Enterprise, otorgue acceso a personas específicas en su organización, o a todos en ella. Los espectadores inician sesión en claude.ai como miembros de su organización para ver la página.

113* **Públicamente**: comparta un enlace que cualquiera en internet pueda abrir, sin necesidad de iniciar sesión en claude.ai. En los planes Team y Enterprise, el uso compartido público está desactivado hasta que un propietario [lo habilite para la organización](#control-public-sharing).114* **Públicamente**: comparta un enlace que cualquiera en internet pueda abrir, sin necesidad de iniciar sesión en claude.ai. En los planes Team y Enterprise, el uso compartido público está desactivado hasta que un propietario [lo habilite para la organización](#control-public-sharing).

114 115 

116### Enlazar a una vista específica

117 

118Si una página tiene varias vistas, como pestañas o secciones, puedes enlazar directamente a una de ellas. Pídele los enlaces a Claude:

119 

120```text wrap theme={null}

121Give me a link to each tab of the deploy failures dashboard.

122```

123 

124Cada enlace es el enlace del artefacto con un ancla al final, como `#overview`.

125 

115### Permitir que alguien edite con usted126### Permitir que alguien edite con usted

116 127 

117Las personas con las que comparte son espectadores de forma predeterminada: ven cada versión que publica pero no pueden cambiar la página. En los planes Team y Enterprise, también puede hacer que alguien sea un editor. En el diálogo de uso compartido, agregue una persona y cambie su rol de **espectador** a **editor**.128Las personas con las que comparte son espectadores de forma predeterminada: ven cada versión que publica pero no pueden cambiar la página. En los planes Team y Enterprise, también puede hacer que alguien sea un editor. En el diálogo de uso compartido, agregue una persona y cambie su rol de **espectador** a **editor**.


424 435 

425| Método | Punto final |436| Método | Punto final |

426| :- | :- |437| :- | :- |

427| `GET` | `/v1/compliance/code/artifacts` |438| `GET` | `/v1/compliance/apps/code/artifacts` |

428| `GET` | `/v1/compliance/code/artifacts/{artifact_id}/versions/{version_id}` |439| `GET` | `/v1/compliance/apps/code/artifacts/{artifact_id}/versions/{version_id}` |

429| `DELETE` | `/v1/compliance/code/artifacts/{artifact_id}` |440| `DELETE` | `/v1/compliance/apps/code/artifacts/{artifact_id}` |

430 441 

431Para los esquemas de solicitud y respuesta, consulte la [referencia de la API de Cumplimiento](https://docs.claude.com/en/api/compliance/code/artifacts).442Para los esquemas de solicitud y respuesta, consulta la [referencia de la API de Cumplimiento](https://platform.claude.com/docs/en/api/compliance/apps/code/artifacts).

432 443 

433## Recursos relacionados444## Recursos relacionados

434 445 

Details

161 161 

162> [!NOTE]162> [!NOTE]

163>163>

164> `/auto-mode-setup` requiere un plan Pro, Max o Team y Claude Code v2.1.228 o posterior. En Windows nativo requiere v2.1.233 o posterior. No puede ejecutarlo en una [sesión en la nube](/docs/es/claude-code-on-the-web). También necesita [obtención de banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching), por lo que no puede ejecutarlo en una sesión donde haya desactivado la obtención de banderas.164> `/auto-mode-setup` está disponible en los planes Pro, Max, Team y Enterprise, y con una clave de API de Claude Console. En un plan Pro, Max o Team, necesitas v2.1.228 o posterior, o v2.1.233 o posterior en Windows nativo. En un plan Enterprise o con una clave de API de Claude Console, necesitas v2.1.283 o posterior. Si el comando no aparece en tu sesión, consulta [`/auto-mode-setup` devuelve "Unknown command"](#auto-mode-setup-returns-unknown-command).

165 165 

166### Qué lee `/auto-mode-setup`166### Qué lee `/auto-mode-setup`

167 167 


202 202 

203`/auto-mode-setup` es un comando integrado en lugar de una [skill agrupada](/docs/es/skills#bundled-skills), por lo que esta entrada de `skillOverrides` aún se aplica a él, pero [`disableBundledSkills`](/docs/es/settings-reference#disablebundledskills) no lo desactiva.203`/auto-mode-setup` es un comando integrado en lugar de una [skill agrupada](/docs/es/skills#bundled-skills), por lo que esta entrada de `skillOverrides` aún se aplica a él, pero [`disableBundledSkills`](/docs/es/settings-reference#disablebundledskills) no lo desactiva.

204 204 

205### `/auto-mode-setup` devuelve "Unknown command"

206 

207Si al escribir `/auto-mode-setup` en el prompt de Claude Code se imprime `Unknown command: /auto-mode-setup`, revisa estas causas:

208 

209* **Primera sesión después de una instalación o actualización**: inicia una nueva sesión. Si el comando sigue sin aparecer allí, consulta las [configuraciones en las que las sesiones posteriores también se inician sin él](/docs/es/env-vars#first-session-after-an-install-or-upgrade).

210* **Versión desactualizada**: ejecuta `claude --version` en tu shell. Si la versión es inferior a [la mínima para tu plan](#generate-environment-entries), [actualiza Claude Code](/docs/es/setup#update-claude-code).

211* **Telemetría desactivada, proveedor externo o gateway de aplicaciones de Claude**: antes de v2.1.304, el comando no está disponible en [sesiones donde la obtención de banderas de características está desactivada](/docs/es/env-vars#features-that-need-feature-flag-fetching). Si tu sesión es una de ellas, [actualiza Claude Code](/docs/es/setup#update-claude-code) a v2.1.304 o posterior.

212 

213En una [sesión en la nube](/docs/es/claude-code-on-the-web), el comando imprime `/auto-mode-setup isn't available in this environment.` en su lugar. Ejecútalo en una sesión interactiva en tu terminal.

214 

205## Anular las reglas de bloqueo y permiso215## Anular las reglas de bloqueo y permiso

206 216 

207Tres campos adicionales le permiten reemplazar las listas de reglas integradas del clasificador:217Tres campos adicionales le permiten reemplazar las listas de reglas integradas del clasificador:

Details

27 27 

28> [!NOTE]28> [!NOTE]

29>29>

30> Si el campo de entrada de solicitud contiene texto, presionar `Esc` dos veces lo borra en lugar de abrir el menú. El texto borrado se guarda en su historial de entrada, por lo que presione `Arriba` para recuperarlo después de terminar en el menú de rewind.30> Si el campo de entrada del prompt contiene texto, presionar `Esc` dos veces lo borra en lugar de abrir el menú. El texto borrado se guarda en tu historial de entrada, así que presiona `Up` para recuperarlo después de terminar en el menú de rewind.

31 31 

32El menú de rewind enumera los prompts que enviaste durante la sesión. Selecciona el punto en el que deseas actuar y luego elige una acción:32El menú de rewind enumera los prompts que enviaste durante la sesión. Selecciona el punto en el que deseas actuar y luego elige una acción:

33 33 


44 44 

45Al elegir Resumir hasta aquí, se queda al final de la conversación con la entrada vacía. Con cualquiera de las opciones de resumir, aparece un marcador de **Conversación resumida** en la conversación donde se comprimieron los mensajes.45Al elegir Resumir hasta aquí, se queda al final de la conversación con la entrada vacía. Con cualquiera de las opciones de resumir, aparece un marcador de **Conversación resumida** en la conversación donde se comprimieron los mensajes.

46 46 

47#### Los mensajes revertidos pueden volver si sales antes de tu siguiente prompt

48 

49Para eliminar de nuevo los mensajes que volvieron, ejecuta `/rewind` en la sesión y selecciona el mismo prompt, luego **Restaurar conversación**. Antes de salir, envía un prompt a Claude, porque Claude Code guarda la conversación revertida junto con ese prompt. Los archivos que restauraste se quedan como los dejó el rewind.

50 

47#### Revertir una conversación borrada51#### Revertir una conversación borrada

48 52 

49Si ejecutó `/clear` anteriormente en el mismo proceso de Claude Code, el menú de rewind muestra una entrada adicional en la parte superior de la lista etiquetada como `/resume <session-id> (sesión anterior)`. Selecciónela para reanudar la conversación que estaba activa antes de que se ejecutara `/clear`. La entrada está disponible hasta que salga de Claude Code o reanude una sesión diferente.53Si ejecutaste `/clear` anteriormente en el mismo proceso de Claude Code, el menú de rewind muestra una entrada adicional en la parte superior de la lista etiquetada como `/resume <session-id> (previous session)`. Selecciónala para reanudar la conversación que estaba activa antes de que se ejecutara `/clear`. La entrada está disponible hasta que salgas de Claude Code o reanudes una sesión diferente.

50 54 

51#### Guiar un resumen55#### Guiar un resumen

52 56 

53Resumir no cambia archivos en el disco, y los mensajes originales permanecen en la transcripción de la sesión, por lo que Claude aún puede hacer referencia a los detalles. Para guiar en qué se enfoca el resumen, resalte una opción de **Resumir** con las teclas de flecha e ingrese instrucciones donde la fila dice **agregar contexto (opcional)**, luego presione `Intro`. Seleccionar la opción con su tecla numérica resume inmediatamente sin instrucciones.57Resumir no cambia archivos en el disco, y los mensajes originales permanecen en la transcripción de la sesión, por lo que Claude aún puede hacer referencia a los detalles. Para guiar en qué se enfoca el resumen, resalta una opción de **Resumir** con las teclas de flecha y escribe instrucciones donde la fila dice **agregar contexto (opcional)**, luego presiona `Enter`. Seleccionar la opción con su tecla numérica resume inmediatamente sin instrucciones.

54 58 

55> [!NOTE]59> [!NOTE]

56>60>

Details

827Una captura general `match: {}`, que por convención se coloca al final, se trata como una capa base. Todas las demás políticas heredan de la captura general cualquier clave que no establezcan, por lo que las entradas por rol solo necesitan enumerar lo que difiere del valor predeterminado de la organización. Las reglas de fusión dependen del tipo de clave:827Una captura general `match: {}`, que por convención se coloca al final, se trata como una capa base. Todas las demás políticas heredan de la captura general cualquier clave que no establezcan, por lo que las entradas por rol solo necesitan enumerar lo que difiere del valor predeterminado de la organización. Las reglas de fusión dependen del tipo de clave:

828 828 

829* **Listas de permitidos**: `availableModels` y `permissions.allow`. La lista de una política específica reemplaza por completo la de la base.829* **Listas de permitidos**: `availableModels` y `permissions.allow`. La lista de una política específica reemplaza por completo la de la base.

830* **Listas de denegación y arrays de hooks**: `permissions.deny`, `permissions.ask`, `disabledMcpjsonServers`, `deniedMcpServers`, `blockedMarketplaces` y cada array de tipo de evento de `hooks`. Estas toman la unión de la base y la política, por lo que una sobrescritura por rol no puede eliminar accidentalmente una denegación o un hook de auditoría de toda la organización.830* **Listas de denegación y arrays de hooks**: `permissions.deny`, `permissions.ask`, `disabledMcpjsonServers`, `deniedMcpServers`, `blockedMarketplaces`, `deniedModels` y cada array de tipo de evento de `hooks`. Estas toman la unión de la base y la política, de modo que una denegación o un hook de auditoría de toda la organización no se pueda descartar accidentalmente con una sobrescritura por rol.

831* **Claves de tipo registro**: `env`, `modelOverrides` y `skillOverrides`. Estas se fusionan superficialmente, por lo que un bloque `env` por rol sobrescribe las claves que establece y hereda el resto de la base.831* **Claves de tipo registro**: `env`, `modelOverrides` y `skillOverrides`. Estas se fusionan superficialmente, por lo que un bloque `env` por rol sobrescribe las claves que establece y hereda el resto de la base.

832 832 

833`availableModels` también se aplica del lado del servidor en `/v1/messages`, por lo que un modelo denegado devuelve `400` independientemente de lo que envíe el cliente. Una lista vacía deniega todos los modelos. La comprobación también cubre el modelo con el que empieza una sesión antes de que el desarrollador elija uno, así que [inicia las sesiones en un modelo que la política permita](#start-sessions-on-a-model-the-policy-allows).833`availableModels` también se aplica del lado del servidor en `/v1/messages`, por lo que un modelo denegado devuelve `400` independientemente de lo que envíe el cliente. Una lista vacía deniega todos los modelos. La comprobación también cubre el modelo con el que empieza una sesión antes de que el desarrollador elija uno, así que [inicia las sesiones en un modelo que la política permita](#start-sessions-on-a-model-the-policy-allows).


973| Clave | Aplicada por | Efecto |973| Clave | Aplicada por | Efecto |

974| - | - | - |974| - | - | - |

975| `availableModels` | Gateway + CLI | Lista de modelos permitidos. También se comprueba en `/v1/messages`, por lo que un cliente modificado no puede eludirla. |975| `availableModels` | Gateway + CLI | Lista de modelos permitidos. También se comprueba en `/v1/messages`, por lo que un cliente modificado no puede eludirla. |

976| [`deniedModels`](/docs/es/settings-reference#deniedmodels), [`availableModelsMatch`](/docs/es/settings-reference#availablemodelsmatch) | Gateway + CLI | [Bloquear modelos o versiones específicos](/docs/es/model-config#block-specific-models-or-versions) que `availableModels` permitiría de otro modo. Un modelo bloqueado se rechaza con un `400` en `/v1/messages` y se omite de `/v1/models`. La comprobación propia del gateway requiere Claude Code v2.1.299 o posterior en el servidor del gateway. La comprobación de la CLI requiere v2.1.283 o posterior en los clientes, y los clientes anteriores ignoran ambas claves. |

976| `permissions.allow` / `.deny` | CLI | Reglas de herramientas y comandos. Consulta [Permisos](/docs/es/permissions). |977| `permissions.allow` / `.deny` | CLI | Reglas de herramientas y comandos. Consulta [Permisos](/docs/es/permissions). |

977| `permissions.disableBypassPermissionsMode` | CLI | Establécelo en `disable` para bloquear [`bypassPermissions`](/docs/es/permission-modes#skip-all-checks-with-bypasspermissions-mode), el modo que omite las solicitudes de permiso, y el flag `--dangerously-skip-permissions` |978| `permissions.disableBypassPermissionsMode` | CLI | Establécelo en `disable` para bloquear [`bypassPermissions`](/docs/es/permission-modes#skip-all-checks-with-bypasspermissions-mode), el modo que omite las solicitudes de permiso, y el flag `--dangerously-skip-permissions` |

978| `allowManagedPermissionRulesOnly` | CLI | Cuando es `true`, la configuración administrada pasa a ser la única fuente de configuración de reglas de permisos. La entrada [`allowManagedPermissionRulesOnly`](/docs/es/settings-reference#allowmanagedpermissionrulesonly) enumera todas las fuentes que Claude Code ignora entonces. |979| `allowManagedPermissionRulesOnly` | CLI | Cuando es `true`, la configuración administrada pasa a ser la única fuente de configuración de reglas de permisos. La entrada [`allowManagedPermissionRulesOnly`](/docs/es/settings-reference#allowmanagedpermissionrulesonly) enumera todas las fuentes que Claude Code ignora entonces. |


1045 1046 

1046El gateway deriva gran parte de la respuesta de bootstrap del bloque `cli` o `code` de la política que coincide y de la configuración de nivel superior del gateway:1047El gateway deriva gran parte de la respuesta de bootstrap del bloque `cli` o `code` de la política que coincide y de la configuración de nivel superior del gateway:

1047 1048 

1048* La lista de modelos, de `availableModels`. [Contexto extendido en Claude Desktop](#extended-context-in-claude-desktop) explica la opción de contexto de 1M de cada modelo1049* La lista de modelos, a partir de `availableModels`. La lista omite los modelos que la política bloquea con [`deniedModels` o `availableModelsMatch: exact`](#what-goes-in-cli). Este filtro requiere Claude Code v2.1.299 o posterior en el servidor del gateway. [Contexto extendido en Claude Desktop](#extended-context-in-claude-desktop) cubre la opción de contexto de 1M de cada modelo

1049* Las herramientas deshabilitadas, de las entradas de `permissions.deny` que son solo un nombre de herramienta. Si estableces `disabledBuiltinTools` en el bloque `desktop` de la política, el gateway sirve la unión de tu valor y la lista derivada, por lo que puedes deshabilitar más herramientas de esta manera, pero no puedes volver a habilitar una que deshabilitaste mediante `permissions.deny`1050* Las herramientas deshabilitadas, de las entradas de `permissions.deny` que son solo un nombre de herramienta. Si estableces `disabledBuiltinTools` en el bloque `desktop` de la política, el gateway sirve la unión de tu valor y la lista derivada, por lo que puedes deshabilitar más herramientas de esta manera, pero no puedes volver a habilitar una que deshabilitaste mediante `permissions.deny`

1050* La lista de permitidos de salida, a partir de `sandbox.network.allowedDomains`. Si estableces `coworkEgressAllowedHosts` en el bloque `desktop` de la política, el gateway usa ese valor en lugar de la lista derivada. Si la lista de permitidos que sirve el gateway incluye `*` y el gateway no sirve también el ajuste [`allowedWorkspaceFolders`](https://claude.com/docs/third-party/claude-desktop/code#applied-as-managed-policy) de Claude Desktop, Claude Desktop no activa el [sandbox de Bash](/docs/es/sandboxing) en la pestaña Code1051* La lista de permitidos de salida, a partir de `sandbox.network.allowedDomains`. Si estableces `coworkEgressAllowedHosts` en el bloque `desktop` de la política, el gateway usa ese valor en lugar de la lista derivada. Si la lista de permitidos que sirve el gateway incluye `*` y el gateway no sirve también el ajuste [`allowedWorkspaceFolders`](https://claude.com/docs/third-party/claude-desktop/code#applied-as-managed-policy) de Claude Desktop, Claude Desktop no activa el [sandbox de Bash](/docs/es/sandboxing) en la pestaña Code

1051* Un endpoint OTLP que apunta al propio gateway y los atributos de identidad del usuario con sesión iniciada. El gateway retransmite las exportaciones que recibe en ese endpoint a tus destinos `forward_to`. Incluye el endpoint y los atributos cuando estableces tanto [`telemetry.forward_to`](#telemetry) como `listen.public_url`.1052* Un endpoint OTLP que apunta al propio gateway y los atributos de identidad del usuario con sesión iniciada. El gateway retransmite las exportaciones que recibe en ese endpoint a tus destinos `forward_to`. Incluye el endpoint y los atributos cuando estableces tanto [`telemetry.forward_to`](#telemetry) como `listen.public_url`.

Details

8 8 

9> [!NOTE]9> [!NOTE]

10>10>

11> Las sesiones en la nube están disponibles en los planes Pro, Max y Team, y para usuarios Enterprise con asientos premium o asientos Chat + Claude Code.11> Las sesiones en la nube están disponibles en los planes Pro, Max y Team, y para usuarios Enterprise con asientos premium o asientos Chat + Claude Code. Si tu organización Enterprise administra tu acceso con [roles personalizados](https://support.claude.com/en/articles/13930452), también necesitas un rol que incluya el permiso de sesiones en la nube. Pídele a un Owner que revise tus roles y lo agregue en [**Organization settings > Roles**](https://claude.ai/admin-settings/roles) si falta.

12 12 

13Una sesión en la nube es una sesión de Claude Code que se ejecuta en infraestructura en la nube en lugar de en tu máquina. De forma predeterminada, se ejecuta en infraestructura que Anthropic administra, o en el [entorno autohospedado](/docs/es/self-hosted-environments) de tu organización cuando se enruta allí. La sesión sigue ejecutándose después de cerrar tu portátil, y puedes verificarla o dirigirla desde cualquier dispositivo. Cuenta para los límites de uso de tu plan junto con el resto de tu uso de Claude y Claude Code, y no hay un cargo aparte por la VM en la nube.13Una sesión en la nube es una sesión de Claude Code que se ejecuta en infraestructura en la nube en lugar de en tu máquina. De forma predeterminada, se ejecuta en infraestructura que Anthropic administra, o en el [entorno autohospedado](/docs/es/self-hosted-environments) de tu organización cuando se enruta allí. La sesión sigue ejecutándose después de cerrar tu portátil, y puedes verificarla o dirigirla desde cualquier dispositivo. Cuenta para los límites de uso de tu plan junto con el resto de tu uso de Claude y Claude Code, y no hay un cargo aparte por la VM en la nube.

14 14 


264 264 

265* **`/model`, `/effort`, `/color` y `/rename`**: pasa el valor como argumento, por ejemplo `/model sonnet`, en lugar de abrir el selector de terminal o el control deslizante. Las formas con argumento siguen las [notas de disponibilidad](/docs/es/commands#all-commands) de cada comando.265* **`/model`, `/effort`, `/color` y `/rename`**: pasa el valor como argumento, por ejemplo `/model sonnet`, en lugar de abrir el selector de terminal o el control deslizante. Las formas con argumento siguen las [notas de disponibilidad](/docs/es/commands#all-commands) de cada comando.

266* **`/fast`**: alterna el [modo rápido](/docs/es/fast-mode#use-fast-mode-in-cloud-sessions) para la sesión cuando el modo rápido está [disponible en su cuenta](/docs/es/fast-mode#requirements). Requiere Claude Code v2.1.271 o posterior en el entorno de la sesión.266* **`/fast`**: alterna el [modo rápido](/docs/es/fast-mode#use-fast-mode-in-cloud-sessions) para la sesión cuando el modo rápido está [disponible en su cuenta](/docs/es/fast-mode#requirements). Requiere Claude Code v2.1.271 o posterior en el entorno de la sesión.

267* **`/config`**: en su navegador en claude.ai/code, abre la sección Claude Code de su configuración en lugar de establecer un valor, y el texto después del comando, incluido `key=value`, se ignora. Para cambiar una configuración de una sesión en la nube, establezca una [variable de entorno](/docs/es/cloud-environments#set-environment-variables) en el entorno, o en una sesión con un repositorio, confirme la clave en el archivo `.claude/settings.json` de ese repositorio. [Configuración en sesiones en la nube](/docs/es/settings#settings-in-cloud-sessions) enumera lo que cada sesión lee.267* **`/config`**: en tu navegador en claude.ai/code, abre la sección Claude Code de tu configuración en lugar de establecer un valor, y el texto después del comando, incluido `key=value`, se ignora. Para cambiar un ajuste de una sesión en la nube, establece una [variable de entorno](/docs/es/cloud-environments#set-environment-variables) en el entorno. En una sesión con un repositorio fuera de un [proyecto](/docs/es/claude-projects), en su lugar haz commit de la clave en el archivo `.claude/settings.json` de ese repositorio. [Configuración en sesiones en la nube](/docs/es/settings#settings-in-cloud-sessions) enumera lo que cada sesión lee.

268 268 

269Para la gestión de contexto específicamente:269Para la gestión de contexto específicamente:

270 270 


278 278 

279Para cambiar la ventana de compactación automática en su lugar, establezca [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/es/env-vars) en sus variables de entorno, o ejecute [`/autocompact`](/docs/es/commands#all-commands) con un recuento de tokens en una sesión donde la variable no está establecida.279Para cambiar la ventana de compactación automática en su lugar, establezca [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/es/env-vars) en sus variables de entorno, o ejecute [`/autocompact`](/docs/es/commands#all-commands) con un recuento de tokens en una sesión donde la variable no está establecida.

280 280 

281Los [subagentes](/docs/es/sub-agents) funcionan de la misma manera que lo hacen localmente. Claude puede generarlos con la herramienta Agent para descargar investigación o trabajo paralelo en una ventana de contexto separada, manteniendo la conversación principal más ligera. Los subagentes definidos en `.claude/agents/` de su repositorio se recogen automáticamente.281Los [subagentes](/docs/es/sub-agents) funcionan de la misma manera que lo hacen localmente. Claude puede generarlos con la herramienta Agent para descargar investigación o trabajo paralelo en una ventana de contexto separada, manteniendo la conversación principal más ligera. Fuera de los hilos de un [proyecto](/docs/es/claude-projects#what-threads-pick-up-from-your-repositories), los subagentes definidos en `.claude/agents/` de tu repositorio se cargan automáticamente.

282 282 

283Los [equipos de agentes](/docs/es/agent-teams) están desactivados de forma predeterminada pero se pueden habilitar agregando `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` a sus [variables de entorno](/docs/es/cloud-environments#set-environment-variables).283Los [equipos de agentes](/docs/es/agent-teams) están desactivados de forma predeterminada pero se pueden habilitar agregando `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` a sus [variables de entorno](/docs/es/cloud-environments#set-environment-variables).

284 284 


428Reabre la sesión desde [claude.ai/code](https://claude.ai/code) para aprovisionar una VM nueva:428Reabre la sesión desde [claude.ai/code](https://claude.ai/code) para aprovisionar una VM nueva:

429 429 

430* **Se restaura**: tu historial de conversación430* **Se restaura**: tu historial de conversación

431* **No se restaura**: el trabajo en segundo plano que aún se estaba ejecutando cuando se reclamó la VM, como subagentes y comandos de shell, y la reactivación pendiente de un [`/loop` con ritmo propio](/docs/es/scheduled-tasks#let-claude-choose-the-interval). Para reiniciar el bucle, ejecuta `/loop` de nuevo.431* **No se restaura**: el trabajo en segundo plano que aún se estaba ejecutando o estaba pendiente cuando se reclamó la VM, incluidos:

432 * **Comandos de shell**: Claude Code le indica a Claude qué comandos se detuvieron. Pídele a Claude que vuelva a ejecutar los que aún necesites.

433 * **Subagentes**: Claude Code le indica a Claude qué subagentes se detuvieron, y cuáles de ellos se pueden [reanudar](/docs/es/sub-agents#resume-subagents) en lugar de empezar de nuevo. Pídele a Claude que continúe su trabajo.

434 * **Tareas programadas con alcance de sesión**: las tareas que [programaste en la sesión](/docs/es/scheduled-tasks) y un `/loop` que espera su próxima iteración no se trasladan a la sesión reabierta. Pídele a Claude que vuelva a programar las tareas, o ejecuta `/loop` de nuevo para reiniciar el bucle.

432 435 

433## Limitaciones436## Limitaciones

434 437 

Details

175 175 

176| Ruta bajo `~/.claude/` | Contenidos |176| Ruta bajo `~/.claude/` | Contenidos |

177| - | - |177| - | - |

178| `history.jsonl` | Cada prompt que has escrito, con marca de tiempo y ruta del proyecto. Utilizado para recuperación con flecha hacia arriba, búsqueda de historial con `Ctrl+R` y finalización de comandos de shell con `!`. Cada barrido elimina las entradas con más de `cleanupPeriodDays` cuando la [configuración HIPAA se aplica a tus sesiones](/docs/es/hipaa-setup#check-how-developers-sign-in-and-connect). |178| `history.jsonl` | Prompts que has escrito, con marca de tiempo y ruta del proyecto. Se usa para recuperar entradas con la flecha hacia arriba, para la búsqueda en el historial con `Ctrl+R` y para el autocompletado de comandos de shell con `!`. Cada limpieza elimina las entradas con una antigüedad mayor que `cleanupPeriodDays` cuando la [configuración HIPAA se aplica a tus sesiones](/docs/es/hipaa-setup#check-how-developers-sign-in-and-connect). |

179| `stats-cache.json` | Conteos de tokens y costos agregados mostrados por `/usage` |179| `stats-cache.json` | Conteos de tokens y costos agregados mostrados por `/usage` |

180| `remote-settings.json` | Copia en caché de [configuración administrada por servidor](/docs/es/server-managed-settings) para su organización, o `{}` cuando su organización no ha configurado ninguna. Solo presente cuando la sesión [las obtiene](/docs/es/server-managed-settings#platform-availability). Claude Code verifica actualizaciones al inicio y cada hora durante una sesión. Claude Code lo elimina cuando cierra sesión. |180| `remote-settings.json` | Copia en caché de [configuración administrada por servidor](/docs/es/server-managed-settings) para su organización, o `{}` cuando su organización no ha configurado ninguna. Solo presente cuando la sesión [las obtiene](/docs/es/server-managed-settings#platform-availability). Claude Code verifica actualizaciones al inicio y cada hora durante una sesión. Claude Code lo elimina cuando cierra sesión. |

181| `cache/changelog.md` | Copia en caché del registro de cambios de Claude Code, mostrada por `/release-notes`. Se actualiza en segundo plano. |181| `cache/changelog.md` | Copia en caché del registro de cambios de Claude Code, mostrada por `/release-notes`. Se actualiza en segundo plano. |

claude-projects.md +18 −22

Details

52* **Hilos**: los trabajadores. Cada uno es una sesión separada con su propia ventana de contexto que hace una pieza de trabajo e informa a la conversación cuando termina. Un hilo en la nube trabaja en su propia rama y abre una solicitud de extracción cuando el trabajo lo requiere.52* **Hilos**: los trabajadores. Cada uno es una sesión separada con su propia ventana de contexto que hace una pieza de trabajo e informa a la conversación cuando termina. Un hilo en la nube trabaja en su propia rama y abre una solicitud de extracción cuando el trabajo lo requiere.

53* **Lo que cada hilo en la nube comienza con**:53* **Lo que cada hilo en la nube comienza con**:

54 * Los repositorios y archivos del proyecto, más sus [instrucciones y memoria](#give-a-project-standing-context)54 * Los repositorios y archivos del proyecto, más sus [instrucciones y memoria](#give-a-project-standing-context)

55 * El `CLAUDE.md` y skills en [cada uno de los repositorios del proyecto](#what-threads-pick-up-from-your-repositories), y en un proyecto con un repositorio, las reglas de permisos y hooks de ese repositorio también55 * El `CLAUDE.md` de [cada uno de los repositorios del proyecto](#what-threads-pick-up-from-your-repositories), pero no los skills, `.claude/settings.json` ni `.mcp.json` de los repositorios

56 * Los [conectores](#get-skills-plugins-connectors-and-tools-into-threads) en tu cuenta de claude.ai56 * Los [conectores](#get-skills-plugins-connectors-and-tools-into-threads) en tu cuenta de claude.ai

57 * Un [entorno en la nube](#choose-an-environment-for-threads) que establece su acceso a la red, variables de entorno, secretos de red y herramientas instaladas57 * Un [entorno en la nube](#choose-an-environment-for-threads) que establece su acceso a la red, variables de entorno, secretos de red y herramientas instaladas

58* **El panel Overview**: donde [ves todos los hilos a la vez](#see-what-needs-you-in-overview) y cuáles de ellos te necesitan. Sus otras pestañas son **Library** para los archivos que agregaste y los archivos que produjeron los hilos, **Pull requests** para los que abrieron los hilos, y **Scheduled tasks** para el trabajo programado en el proyecto.58* **El panel Overview**: donde [ves todos los hilos a la vez](#see-what-needs-you-in-overview) y cuáles de ellos te necesitan. Sus otras pestañas son **Library** para los archivos que agregaste y los archivos que produjeron los hilos, **Pull requests** para los que abrieron los hilos, y **Scheduled tasks** para el trabajo programado en el proyecto.


239 239 

240Los hilos se ejecutan en [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) cuando el modelo del hilo lo admite, por lo que la mayoría de las llamadas de herramientas se ejecutan sin pedirle. Cuando un hilo necesita su aprobación, el aviso está dentro de ese hilo y el hilo espera hasta que responda allí. Decirle a Claude en la conversación del proyecto que continúe no lo alcanza.240Los hilos se ejecutan en [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) cuando el modelo del hilo lo admite, por lo que la mayoría de las llamadas de herramientas se ejecutan sin pedirle. Cuando un hilo necesita su aprobación, el aviso está dentro de ese hilo y el hilo espera hasta que responda allí. Decirle a Claude en la conversación del proyecto que continúe no lo alcanza.

241 241 

242Cada aprobación cubre esa solicitud, o el resto de ese hilo si eliges la opción más amplia.242Cada aprobación cubre esa solicitud, o el resto de ese hilo si eliges la opción más amplia. Los hilos en la nube no leen las [reglas de permisos](/docs/es/permissions) del `.claude/settings.json` de un repositorio, por lo que dependes del modo automático y de las aprobaciones que das dentro de cada hilo.

243 

244Para permitir que todos los hilos ejecuten ciertos comandos sin preguntar, o para bloquear algunos, agrega [reglas de permisos](/docs/es/permissions) al `.claude/settings.json` del repositorio. Comprueba que los hilos en la nube de tu proyecto las apliquen:

245 

246* **Un repositorio**: los hilos en la nube aplican las reglas. Consulta [Qué recogen los hilos de tus repositorios](#what-threads-pick-up-from-your-repositories).

247* **Varios repositorios, entorno alojado por Anthropic**: las reglas de permisos de ningún repositorio llegan a un hilo en la nube, por lo que dependes del modo automático y de las aprobaciones que das dentro de cada hilo.

248* **Varios repositorios, entorno autoalojado**: consulta [qué configuración de repositorio se aplica](/docs/es/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories).

249 243 

250### Ejecutar un hilo en su propia computadora244### Ejecutar un hilo en su propia computadora

251 245 


313 307 

314### Decidir qué repositorios agregar308### Decidir qué repositorios agregar

315 309 

316Los repositorios que agregas a un proyecto vienen con todo lo que contienen, su código, `CLAUDE.md` y skills, en cada hilo en la nube. Los repositorios que no agregas siguen al alcance: un hilo en la nube puede agregarse uno a sí mismo cuando su tarea lo necesita. La mayoría de los proyectos usan ambos:310Los repositorios que agregas a un proyecto vienen con su código y su `CLAUDE.md` en cada hilo en la nube, pero [no con sus skills, `.claude/settings.json` ni `.mcp.json`](#what-threads-pick-up-from-your-repositories). Los repositorios que no agregas siguen al alcance: un hilo en la nube puede agregarse uno a sí mismo cuando su tarea lo necesita. La mayoría de los proyectos usan ambos:

317 311 

318* **Agrégalo al proyecto**, en el diálogo **Nuevo proyecto**, en **Configuración del proyecto > Entorno**, o pidiendo a Claude en la conversación que lo agregue al proyecto. Cada hilo en la nube a partir de entonces lo clona y comienza con su `CLAUDE.md` y skills cargados, independientemente de si la tarea lo toca. Pasar de un repositorio a varios también cambia lo que los hilos toman del `.claude/settings.json` de cada repositorio; consulta [Lo que los hilos recogen de tus repositorios](#what-threads-pick-up-from-your-repositories).312* **Agrégalo al proyecto**, en el diálogo **Nuevo proyecto**, en **Configuración del proyecto > Entorno**, o pidiendo a Claude en la conversación que lo agregue al proyecto. Cada hilo en la nube a partir de entonces lo clona y comienza con su `CLAUDE.md` cargado, independientemente de si la tarea lo toca.

319* **Déjalo fuera y deja que los hilos lo agreguen cuando sea necesario.** Un hilo en la nube cuya tarea necesita un repositorio que el proyecto no tiene puede agregárselo a sí mismo, y una nota en el hilo indica que se agregó solo a este hilo. El clon ocurre a mitad de la tarea, por lo que el `CLAUDE.md` y los skills de ese repositorio no estaban allí cuando el hilo comenzó. El siguiente hilo comienza sin él. Un repositorio agregado de esta manera necesita los mismos [requisitos previos](#check-the-prerequisites) que un repositorio del proyecto: la aplicación GitHub de Claude instalada en él y acceso de push desde tu cuenta de GitHub.313* **Déjalo fuera y deja que los hilos lo agreguen cuando sea necesario.** Un hilo en la nube cuya tarea necesita un repositorio que el proyecto no tiene puede agregárselo a sí mismo, y una nota en el hilo indica que se agregó solo a este hilo. El clon ocurre a mitad de la tarea, por lo que el `CLAUDE.md` de ese repositorio no estaba allí cuando el hilo comenzó. El siguiente hilo comienza sin él. Un repositorio agregado de esta manera necesita los mismos [requisitos previos](#check-the-prerequisites) que un repositorio del proyecto: la aplicación GitHub de Claude instalada en él y acceso de push desde tu cuenta de GitHub.

320 314 

321Un proyecto no necesita ningún repositorio. Sus hilos en la nube aún pueden investigar, escribir documentos, y escribir y ejecutar código en su propio sandbox, y entregan archivos a la pestaña **Biblioteca**. Cualquiera de sus hilos en la nube aún puede agregarse un repositorio a sí mismo cuando una tarea lo requiere.315Un proyecto no necesita ningún repositorio. Sus hilos en la nube aún pueden investigar, escribir documentos, y escribir y ejecutar código en su propio sandbox, y entregan archivos a la pestaña **Biblioteca**. Cualquiera de sus hilos en la nube aún puede agregarse un repositorio a sí mismo cuando una tarea lo requiere.

322 316 


335 329 

336### Lo que los hilos recogen de tus repositorios330### Lo que los hilos recogen de tus repositorios

337 331 

338Cada hilo en la nube clona cada repositorio del proyecto y carga `CLAUDE.md` y skills de todos ellos. Las reglas de permisos, los hooks y `env` vienen solo del `.claude/settings.json` en el directorio en el que comienza el hilo.332Los hilos en la nube cargan las instrucciones `CLAUDE.md` de cada repositorio, pero no sus skills, los servidores de `.mcp.json` ni `.claude/settings.json`, ya sea que el proyecto tenga un repositorio o varios.

339 333 

340| En cada repositorio | Un repositorio | Varios repositorios |334| En cada repositorio | En un hilo en la nube |

341| :- | :- | :- |335| :- | :- |

342| `CLAUDE.md` | Se carga cuando comienza el hilo | Se carga desde cada repositorio cuando comienza el hilo |336| `CLAUDE.md`, `.claude/CLAUDE.md` y `.claude/rules/` en la raíz del repositorio | Se cargan desde cada repositorio cuando comienza el hilo. Los archivos `CLAUDE.md` en subdirectorios y las [reglas específicas de ruta](/docs/es/memory#path-specific-rules) no se cargan |

343| Skills, agentes y comandos bajo `.claude/` | Se cargan | Se cargan desde cada repositorio |337| Skills en `.claude/skills/` | No se cargan. Habilita el skill para tu cuenta de claude.ai en su lugar, como se describe en [Obtener skills, plugins, conectores y herramientas en los hilos](#get-skills-plugins-connectors-and-tools-into-threads) |

344| Plugins habilitados en `.claude/settings.json` | No se cargan. Agrega el plugin en **Configuración del proyecto > Plugins** en su lugar | No se cargan. Agrega el plugin en **Configuración del proyecto > Plugins** en su lugar |338| Agentes y comandos en `.claude/` | No se cargan. Para usarlos, [ejecuta el hilo en tu propia computadora](#run-a-thread-on-your-own-computer) |

345| Reglas de permisos, hooks y `env` definidos en `.claude/settings.json` | Se aplican al hilo, excepto las claves `env` que [ninguna sesión en la nube respeta](/docs/es/cloud-environments#what-carries-over-from-your-setup) | No se aplican en un entorno alojado por Anthropic. Para un entorno autoalojado, consulta [qué configuración de repositorio se aplica](/docs/es/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories) |339| Servidores MCP en `.mcp.json` | No se cargan. Usa los conectores de tu cuenta de claude.ai en su lugar, como se describe en [Obtener skills, plugins, conectores y herramientas en los hilos](#get-skills-plugins-connectors-and-tools-into-threads) |

346 340| Plugins habilitados en `.claude/settings.json` | No se cargan. Agrega el plugin en **Configuración del proyecto > Plugins** en su lugar |

347En un proyecto con varios repositorios, pon las reglas permanentes en las instrucciones del proyecto y proporciona a los hilos variables de entorno a través del [entorno en la nube](#choose-an-environment-for-threads).341| Reglas de permisos en `.claude/settings.json` | No se aplican. Aprueba las llamadas a herramientas dentro del hilo, como se describe en [Desbloquear un hilo que espera aprobación](#unblock-a-thread-waiting-on-approval), o [ejecuta el hilo en tu propia computadora](#run-a-thread-on-your-own-computer) |

342| Hooks en `.claude/settings.json` | No se ejecutan. Para usar tus hooks, [ejecuta el hilo en tu propia computadora](#run-a-thread-on-your-own-computer) |

343| `env` en `.claude/settings.json` | No se aplica. Establece variables de entorno en el [entorno en la nube](#choose-an-environment-for-threads) |

348 344 

349### Elegir un entorno para los hilos345### Elegir un entorno para los hilos

350 346 


356 352 

357Los hilos en la nube no tienen los skills, servidores MCP, plugins y herramientas instalados solo en tu máquina. Un hilo que Claude ejecuta en tu máquina a través de [Remote Control](/docs/es/remote-control) usa lo que está instalado allí. Para que cada uno de estos esté disponible para los hilos en la nube:353Los hilos en la nube no tienen los skills, servidores MCP, plugins y herramientas instalados solo en tu máquina. Un hilo que Claude ejecuta en tu máquina a través de [Remote Control](/docs/es/remote-control) usa lo que está instalado allí. Para que cada uno de estos esté disponible para los hilos en la nube:

358 354 

359* Skills, subagentes y comandos: haz commit de ellos en un repositorio que agregaste al proyecto, por ejemplo un skill en `.claude/skills/<skill-name>/SKILL.md`. Cada hilo en la nube clona cada repositorio del proyecto y carga `.claude/skills/`, `.claude/agents/` y `.claude/commands/` de cada uno de ellos, por lo que un skill con commit en un repositorio está disponible en cada hilo en la nube. Los hilos en la nube también cargan los [skills que habilitas para tu cuenta de claude.ai](/docs/es/skills#skills-in-cowork-and-cloud-sessions).355* Skills: habilítalos para tu cuenta de claude.ai, y los hilos en la nube cargan los [skills que habilitas allí](/docs/es/skills#skills-in-cowork-and-cloud-sessions), salvo [algunos hilos en un entorno autoalojado](/docs/es/self-hosted-environments-configuration#how-each-session’s-config-is-assembled). Los skills con commit en el `.claude/skills/` de un repositorio no se cargan en los hilos en la nube.

360* Plugins: agrégalos en **Configuración del proyecto > Plugins**; se cargan en cada nuevo hilo en la nube. Los plugins que un repositorio declara en su `.claude/settings.json` [no se cargan en los hilos en la nube](/docs/es/cloud-environments#what-carries-over-from-your-setup).356* Plugins: agrégalos en **Configuración del proyecto > Plugins**; se cargan en cada nuevo hilo en la nube. Los plugins que un repositorio declara en su `.claude/settings.json` [no se cargan en los hilos en la nube](/docs/es/cloud-environments#what-carries-over-from-your-setup).

361* Servidores MCP: los hilos en la nube obtienen sus herramientas MCP de los conectores de tu cuenta de claude.ai, que son servidores MCP que conectas una sola vez en [claude.ai/customize/connectors](https://claude.ai/customize/connectors). Cada hilo en la nube puede usarlos todos sin configuración por proyecto. La conversación del proyecto en sí no tiene conectores, así que envía el trabajo que necesite uno como una tarea para un hilo en la nube. En un proyecto con un solo repositorio, los hilos en la nube también cargan servidores MCP del [`.mcp.json`](/docs/es/cloud-environments#what-carries-over-from-your-setup) de ese repositorio. [Cómo los conectores llegan a Claude Code](/docs/es/mcp#how-connectors-reach-claude-code) enumera las reglas para sesiones en la nube y la configuración que desactiva los conectores.357* Servidores MCP: los hilos en la nube obtienen sus herramientas MCP de los conectores de tu cuenta de claude.ai, que son servidores MCP que conectas una sola vez en [claude.ai/customize/connectors](https://claude.ai/customize/connectors). Cada hilo en la nube puede usarlos todos sin configuración por proyecto. La conversación del proyecto en sí no tiene conectores, así que envía el trabajo que necesite uno como una tarea para un hilo en la nube. [Cómo los conectores llegan a Claude Code](/docs/es/mcp#how-connectors-reach-claude-code) enumera las reglas para sesiones en la nube y la configuración que desactiva los conectores.

362* Herramientas de línea de comandos y paquetes: instálalos en el [script de configuración](/docs/es/cloud-environments#setup-scripts) del entorno.358* Herramientas de línea de comandos y paquetes: instálalos en el [script de configuración](/docs/es/cloud-environments#setup-scripts) del entorno.

363 359 

364Para ver qué conectores tiene un hilo en la nube en ejecución en claude.ai/code, abre el hilo y selecciona **Conectores** en el menú **+** junto a su cuadro de mensaje. Desactivar un conector allí lo elimina de ese hilo y guarda eso como el predeterminado de tu cuenta, por lo que los nuevos hilos y chats de claude.ai comienzan sin él hasta que lo vuelvas a activar. Un hilo en la nube recoge un conector que agregues o reconectes después del siguiente mensaje que le envíes.360Para ver qué conectores tiene un hilo en la nube en ejecución en claude.ai/code, abre el hilo y selecciona **Conectores** en el menú **+** junto a su cuadro de mensaje. Desactivar un conector allí lo elimina de ese hilo y guarda eso como el predeterminado de tu cuenta, por lo que los nuevos hilos y chats de claude.ai comienzan sin él hasta que lo vuelvas a activar. Un hilo en la nube recoge un conector que agregues o reconectes después del siguiente mensaje que le envíes.

Details

8 8 

9El plugin de seguridad de Claude ejecuta un escaneo de vulnerabilidades multiagente de su base de código dentro de una sesión de Claude Code. Un equipo de agentes de Claude mapea su arquitectura, construye un modelo de amenazas, busca vulnerabilidades y revisa de forma independiente cada hallazgo antes de escribir el informe. Utilice el plugin para escanear un repositorio completo o [solo un conjunto de cambios](#scan-only-your-changes), como el diff de una rama, el diff de una solicitud de extracción o una única confirmación, luego convierta los hallazgos que elija en parches que usted revisa y aplica usted mismo.9El plugin de seguridad de Claude ejecuta un escaneo de vulnerabilidades multiagente de su base de código dentro de una sesión de Claude Code. Un equipo de agentes de Claude mapea su arquitectura, construye un modelo de amenazas, busca vulnerabilidades y revisa de forma independiente cada hallazgo antes de escribir el informe. Utilice el plugin para escanear un repositorio completo o [solo un conjunto de cambios](#scan-only-your-changes), como el diff de una rama, el diff de una solicitud de extracción o una única confirmación, luego convierta los hallazgos que elija en parches que usted revisa y aplica usted mismo.

10 10 

11El plugin se ejecuta localmente en su sesión, utiliza [los modelos que tenga acceso en Claude Code](#models-and-providers), y cada escaneo cuenta hacia su [uso](/docs/es/costs). Si desea un servicio administrado que monitoree sus repositorios, o desea ejecutar escaneos en [Claude Mythos](https://platform.claude.com/docs/en/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5), consulte el producto [Claude Security](https://claude.com/product/claude-security), disponible en el plan Enterprise. El plugin llega al código que el producto administrado no puede alcanzar, como repositorios alojados en GitLab o Bitbucket, o en redes que no permiten conexiones entrantes.11El plugin se ejecuta localmente en tu sesión, usa [los modelos a los que tengas acceso en Claude Code](#models-and-providers), y cada escaneo cuenta para tu [uso](/docs/es/costs). Si quieres un servicio administrado que monitoree tus repositorios, o quieres ejecutar escaneos en [Claude Mythos](https://platform.claude.com/docs/en/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5), consulta el producto [Claude Security](https://claude.com/product/claude-security), disponible en el plan Enterprise.

12 12 

13El plugin también es distinto de las herramientas de revisión ya presentes en Claude Code: el [plugin de orientación de seguridad](/docs/es/security-guidance) revisa el código mientras Claude lo escribe, [`/security-review`](/docs/es/commands#all-commands) ejecuta un único paso sobre su rama, y [Code Review](/docs/es/code-review) revisa solicitudes de extracción. Para ver cómo se apilan las capas, consulte [Cómo se ajusta el plugin con otras herramientas de seguridad](#how-the-plugin-fits-with-other-security-tools).13El plugin también es distinto de las herramientas de revisión ya presentes en Claude Code: el [plugin de orientación de seguridad](/docs/es/security-guidance) revisa el código mientras Claude lo escribe, [`/security-review`](/docs/es/commands#all-commands) ejecuta un único paso sobre su rama, y [Code Review](/docs/es/code-review) revisa solicitudes de extracción. Para ver cómo se apilan las capas, consulte [Cómo se ajusta el plugin con otras herramientas de seguridad](#how-the-plugin-fits-with-other-security-tools).

14 14 

Details

164 164 

165### Archivar un entorno165### Archivar un entorno

166 166 

167Para archivar uno de tus propios entornos, ábrelo para editar, selecciona **Archivar entorno** y confirma. Si el entorno está [compartido con tu organización](#organization-shared-environments), en cambio lo archiva un Propietario desde la página **Entornos en la nube** en la [configuración de administración](https://claude.ai/admin-settings), así que pídeselo a un Propietario a menos que tú lo seas. No puedes eliminar un entorno, solo archivarlo.167Para archivar uno de tus propios entornos, ábrelo para editar, selecciona **Archivar entorno** y confirma. Si el entorno está [compartido con tu organización](#organization-shared-environments), en cambio lo archiva un Propietario desde la página **Entornos en la nube** en la [configuración de administración](https://claude.ai/admin-settings), así que pídeselo a un Propietario a menos que tú lo seas.

168 168 

169El archivado afecta a las nuevas sesiones, no a las que se están ejecutando:169El archivado afecta a las nuevas sesiones, no a las que se están ejecutando:

170 170 


175 * **Valor predeterminado de CLI guardado**: si el entorno era tu [valor predeterminado de CLI](#select-an-environment-from-the-cli) guardado, Claude Code inicia las sesiones en la nube de CLI en el entorno alojado por Anthropic cuando tu lista tiene uno. De lo contrario, las inicia en el primer entorno de tu lista que no sea un [entorno puente de Remote Control](#the-default-environment).175 * **Valor predeterminado de CLI guardado**: si el entorno era tu [valor predeterminado de CLI](#select-an-environment-from-the-cli) guardado, Claude Code inicia las sesiones en la nube de CLI en el entorno alojado por Anthropic cuando tu lista tiene uno. De lo contrario, las inicia en el primer entorno de tu lista que no sea un [entorno puente de Remote Control](#the-default-environment).

176 * **Configurado explícitamente**: cualquier cosa configurada con el entorno explícitamente, como una [tarea programada en la nube](/docs/es/routines#environments-and-network-access), no puede iniciar nuevas sesiones en él. Apúntala a otro entorno.176 * **Configurado explícitamente**: cualquier cosa configurada con el entorno explícitamente, como una [tarea programada en la nube](/docs/es/routines#environments-and-network-access), no puede iniciar nuevas sesiones en él. Apúntala a otro entorno.

177 177 

178Cuando ya no necesites un entorno alojado por Anthropic, archívalo. Ni el diálogo del entorno ni la página de administración **Entornos en la nube** tienen una opción para eliminar un entorno alojado por Anthropic. Si el entorno es [autohospedado](/docs/es/self-hosted-environments), un Propietario puede eliminarlo desde la página **Entornos en la nube** en la configuración de administración. Si no eres Propietario, pídele a uno que lo elimine.

179 

178### Entornos compartidos de la organización180### Entornos compartidos de la organización

179 181 

180En planes Team y Enterprise, un Propietario puede crear entornos en la nube que se comparten con cada miembro de la organización. El mismo rol administra todo lo demás en la página **Entornos en la nube** del administrador, incluyendo [entornos autohospedados](/docs/es/self-hosted-environments); el rol Administrador no puede abrir la página. La lista completa de roles que pueden abrirla es la de [administración de configuración administrada por servidor](/docs/es/server-managed-settings#access-control).182En planes Team y Enterprise, un Propietario puede crear entornos en la nube que se comparten con cada miembro de la organización. El mismo rol administra todo lo demás en la página **Entornos en la nube** del administrador, incluyendo [entornos autohospedados](/docs/es/self-hosted-environments); el rol Administrador no puede abrir la página. La lista completa de roles que pueden abrirla es la de [administración de configuración administrada por servidor](/docs/es/server-managed-settings#access-control).


275 277 

276### Qué se transfiere de tu configuración278### Qué se transfiere de tu configuración

277 279 

280> [!NOTE]

281>

282> De la configuración de repositorio de esta tabla, un hilo en la nube en un [proyecto](/docs/es/claude-projects) solo carga el `CLAUDE.md`, el `.claude/CLAUDE.md` y los archivos de `.claude/rules/` de la raíz del repositorio que no son [específicos de ruta](/docs/es/memory#path-specific-rules). Consulta [Qué recogen los hilos de tus repositorios](/docs/es/claude-projects#what-threads-pick-up-from-your-repositories).

283 

278Las sesiones en la nube comienzan desde un clon nuevo de tu repositorio. Todo lo que confirmes en el repositorio está disponible. Todo lo que hayas instalado o configurado solo en tu propia máquina no está disponible en la sesión. La política de tu organización llega por separado a través de la [configuración administrada por servidor](/docs/es/server-managed-settings).284Las sesiones en la nube comienzan desde un clon nuevo de tu repositorio. Todo lo que confirmes en el repositorio está disponible. Todo lo que hayas instalado o configurado solo en tu propia máquina no está disponible en la sesión. La política de tu organización llega por separado a través de la [configuración administrada por servidor](/docs/es/server-managed-settings).

279 285 

280| | Disponible en sesiones en la nube | Por qué |286| | Disponible en sesiones en la nube | Por qué |


465 471 

466Si tiene hooks SessionStart en su `~/.claude/settings.json` a nivel de usuario, no espere que estén en la nube. La configuración a nivel de usuario permanece en su máquina. Qué otros hooks se ejecutan depende de dónde se ejecute la sesión:472Si tiene hooks SessionStart en su `~/.claude/settings.json` a nivel de usuario, no espere que estén en la nube. La configuración a nivel de usuario permanece en su máquina. Qué otros hooks se ejecutan depende de dónde se ejecute la sesión:

467 473 

468* **Entorno alojado por Anthropic**: Claude Code ejecuta hooks del repositorio y de la [configuración administrada por servidor](/docs/es/server-managed-settings) de su organización. Las sesiones de [Claude Tag](https://claude.com/docs/claude-tag/overview) no reciben configuración administrada por servidor, por lo que los hooks de la configuración administrada por servidor no se ejecutan allí.474* **Entorno alojado por Anthropic**: Claude Code ejecuta hooks de la [configuración administrada por servidor](/docs/es/server-managed-settings) de tu organización y, fuera de un hilo de un [proyecto](/docs/es/claude-projects#what-threads-pick-up-from-your-repositories), del repositorio. Las sesiones de [Claude Tag](https://claude.com/docs/claude-tag/overview) no reciben configuración administrada por servidor, por lo que los hooks de la configuración administrada por servidor no se ejecutan allí.

469* **[Entorno autohospedado](/docs/es/self-hosted-environments-configuration#permissions-and-tool-approval)**: Claude Code también ejecuta los hooks que el operador sembró desde el `~/.claude/` del host del ejecutor, y los hooks en el archivo de configuración administrada de la imagen del ejecutor cuando ese archivo es uno de los [orígenes administrados que Claude Code aplica](/docs/es/managed-settings#how-claude-code-combines-managed-sources).475* **[Entorno autohospedado](/docs/es/self-hosted-environments-configuration#permissions-and-tool-approval)**: Claude Code también ejecuta los hooks que el operador sembró desde el `~/.claude/` del host del ejecutor, y los hooks en el archivo de configuración administrada de la imagen del ejecutor cuando ese archivo es uno de los [orígenes administrados que Claude Code aplica](/docs/es/managed-settings#how-claude-code-combines-managed-sources).

470 476 

471### Instalar dependencias con un hook SessionStart477### Instalar dependencias con un hook SessionStart

472 478 

473Para instalar dependencias solo en sesiones en la nube, empareje un hook SessionStart con un script que verifique dónde se está ejecutando.479Para instalar dependencias solo en sesiones en la nube fuera de un [proyecto](/docs/es/claude-projects#what-threads-pick-up-from-your-repositories), combina un hook SessionStart con un script que verifique dónde se está ejecutando.

474 480 

475Primero, agregue un hook SessionStart a su `.claude/settings.json` del repositorio. Esta configuración le dice a Claude Code que ejecute `scripts/install_pkgs.sh` de su repositorio cada vez que comienza o se reanuda una sesión:481Primero, agregue un hook SessionStart a su `.claude/settings.json` del repositorio. Esta configuración le dice a Claude Code que ejecute `scripts/install_pkgs.sh` de su repositorio cada vez que comienza o se reanuda una sesión:

476 482 


532Los hooks SessionStart se comportan igual en la nube que localmente, con estas advertencias:538Los hooks SessionStart se comportan igual en la nube que localmente, con estas advertencias:

533 539 

534* **Un repositorio por sesión**: en un entorno alojado por Anthropic, una sesión con varios repositorios no carga hooks del `.claude/settings.json` de ningún repositorio, por lo que un hook SessionStart que definas allí no se ejecuta. En su lugar, instala las dependencias para esas sesiones con un [script de configuración](#setup-scripts). Para un entorno autohospedado, consulta [qué configuración de repositorio se aplica](/docs/es/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories).540* **Un repositorio por sesión**: en un entorno alojado por Anthropic, una sesión con varios repositorios no carga hooks del `.claude/settings.json` de ningún repositorio, por lo que un hook SessionStart que definas allí no se ejecuta. En su lugar, instala las dependencias para esas sesiones con un [script de configuración](#setup-scripts). Para un entorno autohospedado, consulta [qué configuración de repositorio se aplica](/docs/es/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories).

541* **No en los hilos en la nube de un proyecto**: un hilo en la nube de un [proyecto](/docs/es/claude-projects#what-threads-pick-up-from-your-repositories) no ejecuta hooks del `.claude/settings.json` de un repositorio, sin importar la cantidad de repositorios. En un entorno alojado por Anthropic, instala las dependencias para los hilos con un [script de configuración](#setup-scripts). En un entorno autohospedado, usa en su lugar un hook en la [configuración del host del ejecutor](/docs/es/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories).

535* **Sin alcance solo en la nube**: los hooks se ejecutan en sesiones locales y en la nube. Para omitir la ejecución local, salga temprano a menos que la variable de entorno `CLAUDE_CODE_REMOTE` sea `true`, de la manera que lo hace el [script de instalación de dependencias](#install-dependencies-with-a-sessionstart-hook).542* **Sin alcance solo en la nube**: los hooks se ejecutan en sesiones locales y en la nube. Para omitir la ejecución local, salga temprano a menos que la variable de entorno `CLAUDE_CODE_REMOTE` sea `true`, de la manera que lo hace el [script de instalación de dependencias](#install-dependencies-with-a-sessionstart-hook).

536* **Requiere acceso a la red**: los comandos de instalación necesitan alcanzar registros de paquetes. Si su entorno usa acceso a la red **None**, estos hooks fallan. La [lista permitida predeterminada](#default-allowed-domains) bajo **Trusted** cubre npm, PyPI, RubyGems y crates.io.543* **Requiere acceso a la red**: los comandos de instalación necesitan alcanzar registros de paquetes. Si su entorno usa acceso a la red **None**, estos hooks fallan. La [lista permitida predeterminada](#default-allowed-domains) bajo **Trusted** cubre npm, PyPI, RubyGems y crates.io.

537* **Compatibilidad con proxy**: en entornos alojados por Anthropic, todo el tráfico saliente pasa por un [proxy de seguridad](#security-proxy), y algunos administradores de paquetes no funcionan correctamente con él; Bun es un ejemplo conocido. En un [entorno autohospedado](/docs/es/self-hosted-environments-deploy#default-deny-egress), el tráfico saliente va a través de su propio límite de red en su lugar.544* **Compatibilidad con proxy**: en entornos alojados por Anthropic, todo el tráfico saliente pasa por un [proxy de seguridad](#security-proxy), y algunos administradores de paquetes no funcionan correctamente con él; Bun es un ejemplo conocido. En un [entorno autohospedado](/docs/es/self-hosted-environments-deploy#default-deny-egress), el tráfico saliente va a través de su propio límite de red en su lugar.

Details

92 92 

93Limita `REVIEW.md` a instrucciones que cambien el comportamiento de la revisión y deja el contexto general del proyecto en `CLAUDE.md`.93Limita `REVIEW.md` a instrucciones que cambien el comportamiento de la revisión y deja el contexto general del proyecto en `CLAUDE.md`.

94 94 

95### Incluye otros archivos en REVIEW\.md

96 

97Puedes dividir las instrucciones de revisión en varios archivos e incorporarlos en tu `REVIEW.md` raíz. Usa esto cuando `REVIEW.md` se vuelva largo o cuando ya mantengas reglas de revisión en otro archivo.

98 

99Para incluir un archivo, agrega una línea al `REVIEW.md` raíz que contenga solo `@` y el nombre del archivo. Code Review coloca el contenido del archivo en lugar de esa línea, de modo que se aplica como parte de `REVIEW.md`. En este ejemplo, el archivo raíz da una instrucción propia y luego incluye dos archivos de reglas:

100 

101```markdown theme={null}

102# Review instructions

103 

104Report at most five Nits per review.

105 

106@review-security.md

107@review-api.md

108```

109 

110Guarda los archivos incluidos en la raíz del repositorio, junto a `REVIEW.md`:

111 

112```text theme={null}

113your-repo/

114├── REVIEW.md

115├── review-security.md

116└── review-api.md

117```

118 

119Code Review incluye los archivos cuando lee `REVIEW.md` desde una rama protegida, así que consulta [qué rama lee una revisión para tu repositorio](#what-a-review-reads-for-each-branch-setup):

120 

121* **Rama protegida**: Code Review coloca el archivo incluido en lugar de su línea `@`

122* **Rama predeterminada sin protección**: la línea `@` permanece en `REVIEW.md` como texto sin formato. Si el pull request cambia el archivo que nombra la línea, la línea se omite.

123 

124Cuando una revisión no aplica un archivo incluido, comprueba cada uno de estos puntos:

125 

126* **Ubicación**: mueve el archivo a la raíz del repositorio. Una ruta hacia un subdirectorio, como `@docs/review-rules.md`, no se incluye.

127* **Nombre**: haz coincidir el nombre del archivo exactamente, incluidas mayúsculas y minúsculas, y usa un nombre sin espacios. Una línea cuyo nombre no coincide con ningún archivo junto a `REVIEW.md` permanece en `REVIEW.md` como texto sin formato, y la ejecución de comprobación no la reporta como una inclusión omitida.

128* **Un solo nivel**: enumera todos los archivos en el `REVIEW.md` raíz. Una línea `@` en un archivo incluido o en un `REVIEW.md` de subdirectorio permanece como texto sin formato, y un enlace de markdown a otro archivo no es una inclusión.

129* **Límites**: incluye como máximo ocho archivos distintos y mantén `REVIEW.md` y los archivos que incluye por debajo de 150,000 bytes en conjunto. Un archivo que alcanzaría el límite de bytes se omite por completo, no se recorta. La ejecución de comprobación reporta cuántas líneas de inclusión omitió por cualquiera de los dos límites.

130* **Enlaces**: mantén 64 enlaces de markdown o menos entre `REVIEW.md` y los archivos que incluye. Los enlaces a direcciones `http`, `https` o `mailto` y a anclas `#` no cuentan. Si se supera ese límite, la revisión omite todo tu `REVIEW.md` raíz, no solo los archivos incluidos. La ejecución de comprobación entonces [indica que las instrucciones no se aplicaron](/docs/es/code-review-troubleshooting#the-check-run-mentions-review-md).

131* **Copia fusionada**: fusiona el archivo incluido en la [rama desde la que se lee `REVIEW.md`](#which-branch-review-md-is-read-from). La revisión lee ambos desde el mismo commit, nunca desde los propios cambios del pull request.

132 

95### Desde qué rama se lee REVIEW\.md133### Desde qué rama se lee REVIEW\.md

96 134 

97Code Review lee `REVIEW.md` desde la rama base del pull request o desde la rama predeterminada, nunca desde los propios cambios del pull request. Para cambiar el comportamiento de la revisión, fusiona primero el cambio en `REVIEW.md`.135Code Review lee `REVIEW.md` desde la rama base del pull request o desde la rama predeterminada, nunca desde los propios cambios del pull request. Para cambiar el comportamiento de la revisión, fusiona primero el cambio en `REVIEW.md`.


117 155 

118| Protección de rama | Copia leída | Archivos leídos |156| Protección de rama | Copia leída | Archivos leídos |

119| :- | :- | :- |157| :- | :- | :- |

120| La rama predeterminada está protegida y el pull request apunta a ella o a una rama que ningún ruleset protege | Rama predeterminada | Archivos raíz y de subdirectorios |158| La rama predeterminada está protegida y el pull request apunta a ella o a una rama que ningún ruleset protege | Rama predeterminada | Archivo raíz, los archivos que incluye y archivos de subdirectorios |

121| El pull request apunta a otra rama que un ruleset protege | Esa rama base | Archivos raíz y de subdirectorios |159| El pull request apunta a otra rama que un ruleset protege | Esa rama base | Archivo raíz, los archivos que incluye y archivos de subdirectorios |

122| La rama predeterminada no está protegida y la rama base no tiene ninguna regla de protección de ningún tipo | Rama predeterminada | Archivo raíz |160| La rama predeterminada no está protegida y la rama base no tiene ninguna regla de protección de ningún tipo | Rama predeterminada | Archivo raíz |

123| Code Review no puede confirmar la configuración de protección. Esto incluye una rama predeterminada sin protección con una rama base que solo tiene una regla clásica | Ninguna | Ninguno |161| Code Review no puede confirmar la configuración de protección. Esto incluye una rama predeterminada sin protección con una rama base que solo tiene una regla clásica | Ninguna | Ninguno |

124 162 

Details

55 55 

56### Leer el resultado desde un script56### Leer el resultado desde un script

57 57 

58Para condicionar una fusión o publicar un resumen desde tu propio CI, analiza la última línea del texto de Details con `gh` y jq. Esa línea es un comentario legible por máquina.58Para condicionar una fusión o publicar un resumen desde tu propio CI, analiza la última línea del texto de Details con `gh` y jq. Esa línea es un comentario HTML que contiene los conteos de gravedad en formato JSON:

59 

60```text theme={null}

61<!-- bughunter-severity: {"nit":1,"normal":2,"pre_existing":0} -->

62```

63 

64Las líneas anteriores pueden incluir nombres de archivos del pull request. Si analizas el texto a tu manera, toma los conteos solo de la última línea, como hace el comando de estos pasos.

59 65 

60**1. Encuentra el ID del check run**66**1. Encuentra el ID del check run**

61 67 


67 73 

68**2. Lee los conteos de gravedad**74**2. Lee los conteos de gravedad**

69 75 

70Lee los conteos de ese check run, reemplazando `CHECK_RUN_ID` con el ID:76Lee los conteos del campo `output.text` del check run, que contiene el texto de Details. Reemplaza `CHECK_RUN_ID` con el ID:

71 77 

72```bash theme={null}78```bash theme={null}

73gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID \79gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID --jq '

74 --jq '.output.text | split("bughunter-severity: ")[1] | split(" -->")[0] | fromjson'80 (.output.text | split("\n") | last

81 | scan("^<!-- bughunter-severity: (.*) -->$")[0] | fromjson)?

82 // error("no severity line")'

75```83```

76 84 

77Esto imprime un objeto JSON con un conteo por gravedad y sus claves en orden alfabético, por ejemplo `{"nit": 1, "normal": 2, "pre_existing": 0}`. Los conteos incluyen hallazgos de revisiones anteriores del pull request cuyos hilos siguen abiertos.85Esto imprime un objeto JSON con un conteo por gravedad y sus claves en orden alfabético, por ejemplo `{"nit": 1, "normal": 2, "pre_existing": 0}`. Los conteos incluyen hallazgos de revisiones anteriores del pull request cuyos hilos siguen abiertos.


80 88 

81Haz que tu script maneje estos casos:89Haz que tu script maneje estos casos:

82 90 

83* **`normal` es mayor que cero**: haz fallar el job si quieres condicionar la fusión. La clave `normal` contiene el conteo de hallazgos Important, así que Claude encontró al menos un bug que vale la pena corregir antes de fusionar.91* **`normal` es mayor que cero**: haz fallar el job si quieres condicionar la fusión. La clave `normal` contiene el conteo de hallazgos Important, así que Claude encontró al menos un bug que vale la pena corregir antes de fusionar. Para imprimir solo ese conteo, agrega `| .normal` antes de la comilla simple de cierre.

84* **Falta la línea**: trátalo como ausencia de veredicto y no como cero hallazgos. Un check run de una revisión que falló, agotó el tiempo de espera, fue cancelada o fue reemplazada por una más reciente no tiene esa línea, y algunas revisiones completadas tampoco la tienen.92* **Falta la línea**: el comando imprime un error que contiene `no severity line` en lugar de los conteos y termina con un código de salida distinto de cero. Trátalo como ausencia de veredicto y no como cero hallazgos. Un check run de una revisión que falló, agotó el tiempo de espera, fue cancelada o fue reemplazada por una más reciente no tiene esa línea, y algunas revisiones completadas tampoco la tienen.

85 93 

86## Solicitar una revisión94## Solicitar una revisión

87 95 


99 107 

100| Comando | Qué hace | Cuándo usarlo |108| Comando | Qué hace | Cuándo usarlo |

101| :- | :- | :- |109| :- | :- | :- |

102| `@claude review` | Inicia una sola revisión sin suscribir el PR a futuros pushes | Quieres una revisión ahora, por ejemplo en un pull request de un repositorio configurado como Manual, u otra revisión de inmediato en los otros modos |110| `@claude review` | Inicia una sola revisión sin suscribir el PR a futuros pushes | Quieres una revisión ahora, por ejemplo en un pull request de un repositorio configurado como **Manual**, u otra revisión de inmediato en los otros modos |

103| `@claude review always` | Inicia una revisión y suscribe el PR a revisiones activadas por push de ahí en adelante | Quieres que cada push posterior inicie una revisión nueva, por ejemplo en un PR de alta prioridad en un repositorio configurado como Manual |111| `@claude review always` | Inicia una revisión y suscribe el PR a revisiones activadas por push de ahí en adelante | Quieres que cada push posterior inicie una revisión nueva, por ejemplo en un PR de alta prioridad en un repositorio configurado como **Manual** |

104| `@claude review once` | Igual que `@claude review`: inicia una sola revisión sin suscribir | Los mismos casos que `@claude review` |112| `@claude review once` | Igual que `@claude review`: inicia una sola revisión sin suscribir | Los mismos casos que `@claude review` |

113| `@claude review stop` | Finaliza la suscripción del PR a las revisiones activadas por push, sin iniciar una revisión ni cancelar una que ya esté en cola o en ejecución. Claude responde con un comentario en lugar de un check run. | Suscribiste un PR con `@claude review always` en un repositorio configurado como **Manual** u **Once after PR creation**, y ya no quieres que cada push inicie una revisión |

114| `@claude review off` o `@claude review pause` | Igual que `@claude review stop` | Los mismos casos que `@claude review stop` |

115 

116En un repositorio configurado como **After every push**, no puedes detener las revisiones con un comentario, porque allí los pushes inician revisiones con o sin suscripción. Para evitar que los pushes inicien revisiones en un pull request allí, conviértelo en [borrador](#review-drafts-and-pull-requests-from-forks). Cuando vuelvas a marcarlo como listo para revisión, se iniciará una revisión.

105 117 

106Para que cualquiera de estos comandos inicie una revisión, deben cumplirse todas estas condiciones:118Para que cualquier comando de comentario surta efecto, deben cumplirse todas estas condiciones:

107 119 

108* Publícalo como un nuevo comentario de nivel superior en el pull request, no como un comentario en línea sobre una línea del diff ni como el cuerpo de una revisión. Editar un comentario anterior no cuenta.120* Publícalo como un nuevo comentario de nivel superior en el pull request, no como un comentario en línea sobre una línea del diff ni como el cuerpo de una revisión. Editar un comentario anterior no cuenta.

109* Pon el comando al inicio del comentario, con `always` en la misma línea que el resto del comando. Las mayúsculas y minúsculas no importan.121* Pon el comando completo en una sola línea al inicio del comentario. Puede ir seguido de otro texto. Si `always` o `stop` están mal escritos o en una línea posterior, Claude interpreta el comentario como un simple `@claude review` e inicia una sola revisión. Las mayúsculas y minúsculas no importan.

110* Necesitas permiso de write, maintain o admin en el repositorio. Claude lo verifica con GitHub para cada persona que comenta, y los comentarios de bots no inician revisiones.122* Necesitas permiso de write, maintain o admin en el repositorio. Claude lo verifica con GitHub para cada persona que comenta, y los comentarios de bots no inician revisiones.

111* El pull request debe estar abierto.123* El pull request debe estar abierto.

112 124 

113Cuando se acepta el comando, aparece un check run **Claude Code Review** en el pull request con el título **Code review queued...**. El título cambia a **Code review in progress...** cuando la revisión comienza. Claude también puede reaccionar a tu comentario con 👀, pero esa reacción puede aparecer aunque no se inicie ninguna revisión, así que busca el check run en su lugar.125Cuando se acepta un comando que inicia una revisión, aparece un check run **Claude Code Review** en el pull request con el título **Code review queued...**. El título cambia a **Code review in progress...** cuando la revisión comienza. Claude también puede reaccionar a tu comentario con 👀, pero esa reacción puede aparecer aunque no se inicie ninguna revisión, así que busca el check run en su lugar.

114 126 

115Si ya hay una revisión en ejecución sobre el último commit del pull request, una nueva solicitud no inicia una segunda.127Si ya hay una revisión en ejecución sobre el último commit del pull request, una nueva solicitud no inicia una segunda.

116 128 

Details

66 66 

67## El check run menciona REVIEW\.md67## El check run menciona REVIEW\.md

68 68 

69Dos de los mensajes que un check run puede incluir sobre `REVIEW.md` tienen que ver con la protección de ramas:69Estos son tres de los mensajes que un check run puede incluir sobre `REVIEW.md`:

70 70 

71* **"This review applied the repository's review instructions (REVIEW\.md) from its default branch, which is not protected against direct pushes."**: la revisión leyó solo el archivo de la raíz. Consulta [De qué rama se lee REVIEW.md](/docs/es/code-review-customize#which-branch-review-md-is-read-from) para saber qué cambia al proteger la rama.71* **"This review applied the repository's review instructions (REVIEW\.md) from its default branch, which is not protected against direct pushes."**: la revisión leyó solo el archivo de la raíz. Consulta [De qué rama se lee REVIEW.md](/docs/es/code-review-customize#which-branch-review-md-is-read-from) para saber qué cambia al proteger la rama.

72* **"were not applied to this review: branch protection could not be confirmed"**: la revisión no leyó ningún `REVIEW.md`.72* **"were not applied to this review: branch protection could not be confirmed"**: la revisión no leyó ningún `REVIEW.md`.

73* **"they link to a file this pull request modifies, or carry more links than the review checks"**: la revisión omitió el `REVIEW.md` de la raíz, o la cantidad de archivos `REVIEW.md` de subdirectorios que indica el mensaje. Revisa el archivo omitido para cada causa. En el caso del `REVIEW.md` de la raíz, revisa también los [archivos que incluye](/docs/es/code-review-customize#include-other-files-in-review-md):

74 * **Demasiados enlaces**: contiene más de 64 enlaces de Markdown. Reduce los enlaces a [64 o menos](/docs/es/code-review-customize#include-other-files-in-review-md).

75 * **Un enlace que la revisión no puede analizar**: tiene un enlace de Markdown mal formado. Corrige o elimina el enlace.

76 * **Un enlace a un archivo modificado**: enlaza a un archivo o carpeta que este pull request modifica, y la revisión no pudo dejar fuera solo las líneas con ese enlace. Escribe la regla directamente en `REVIEW.md`.

73 77 

74## Problemas de configuración78## Problemas de configuración

75 79 

commands.md +4 −4

Details

55| `/artifact-capabilities` | **[Skill](/docs/es/skills#bundled-skills).** Carga la referencia de las capacidades de tiempo de ejecución que puede usar un [artefacto](/docs/es/artifacts) publicado, como [llamar a tus conectores](/docs/es/artifacts#pull-live-data-with-mcp-connectors) u [ofrecer la descarga de un archivo](/docs/es/artifacts#offer-a-file-download), incluidas las que tiene tu cuenta. Normalmente Claude la carga por su cuenta antes de crear una página que use alguna. Disponible donde lo están los [artefactos](/docs/es/artifacts#availability) |55| `/artifact-capabilities` | **[Skill](/docs/es/skills#bundled-skills).** Carga la referencia de las capacidades de tiempo de ejecución que puede usar un [artefacto](/docs/es/artifacts) publicado, como [llamar a tus conectores](/docs/es/artifacts#pull-live-data-with-mcp-connectors) u [ofrecer la descarga de un archivo](/docs/es/artifacts#offer-a-file-download), incluidas las que tiene tu cuenta. Normalmente Claude la carga por su cuenta antes de crear una página que use alguna. Disponible donde lo están los [artefactos](/docs/es/artifacts#availability) |

56| `/artifact-diagramming` | **[Skill](/docs/es/skills#bundled-skills).** Carga orientación sobre diagramas para que Claude la siga en [artefactos](/docs/es/artifacts): cuándo ayuda un diagrama, qué dibujar y cómo escribir SVG en línea que siga siendo legible en temas claros y oscuros. Requiere Claude Code v2.1.221 o posterior |56| `/artifact-diagramming` | **[Skill](/docs/es/skills#bundled-skills).** Carga orientación sobre diagramas para que Claude la siga en [artefactos](/docs/es/artifacts): cuándo ayuda un diagrama, qué dibujar y cómo escribir SVG en línea que siga siendo legible en temas claros y oscuros. Requiere Claude Code v2.1.221 o posterior |

57| `/artifacts` | Enumera los [artefactos](/docs/es/artifacts#find-an-artifact-again) que te pertenecen o que se compartieron contigo y luego adjunta uno a la sesión, ábrelo en tu navegador o copia su enlace. Disponible donde lo están los [artefactos](/docs/es/artifacts#availability). Requiere Claude Code v2.1.208 o posterior; adjuntar con `Enter` requiere v2.1.216 |57| `/artifacts` | Enumera los [artefactos](/docs/es/artifacts#find-an-artifact-again) que te pertenecen o que se compartieron contigo y luego adjunta uno a la sesión, ábrelo en tu navegador o copia su enlace. Disponible donde lo están los [artefactos](/docs/es/artifacts#availability). Requiere Claude Code v2.1.208 o posterior; adjuntar con `Enter` requiere v2.1.216 |

58| `/auto-mode-setup` | [Genera un borrador de entradas `autoMode.environment`](/docs/es/auto-mode-config#generate-environment-entries) a partir de tu proyecto y tus sesiones recientes, luego revisa el borrador y guárdalo en tu configuración de usuario. Requiere un plan Pro, Max o Team y Claude Code v2.1.228 o posterior. En Windows nativo, requiere v2.1.233 o posterior |58| `/auto-mode-setup` | [Genera un borrador de entradas `autoMode.environment`](/docs/es/auto-mode-config#generate-environment-entries) a partir de tu proyecto y tus sesiones recientes, luego revisa el borrador y guárdalo en tu configuración de usuario. En un plan Pro, Max o Team, requiere Claude Code v2.1.228 o posterior, o v2.1.233 o posterior en Windows nativo. En un plan Enterprise o con una clave de API de Claude Console, requiere v2.1.283 o posterior. Si el comando no aparece, consulta [`/auto-mode-setup` devuelve "Unknown command"](/docs/es/auto-mode-config#auto-mode-setup-returns-unknown-command) |

59| `/autocompact [auto\|<tokens>]` | Establece la ventana de compactación automática: qué tan llena se pone la ventana de contexto antes de que Claude Code compacte automáticamente. Pasa un tamaño como `500k`, o `auto` para volver a la ventana ajustada para tu modelo. Claude Code guarda el valor en la configuración de usuario y lo aplica a la sesión actual. Consulta [Establecer la ventana de compactación automática](/docs/es/model-config#set-the-auto-compact-window) para ver los valores aceptados y qué lo sobrescribe. Sin argumento, abre un diálogo que muestra la ventana actual. Requiere Claude Code v2.1.221 o posterior |59| `/autocompact [auto\|<tokens>]` | Establece la ventana de compactación automática: qué tan llena se pone la ventana de contexto antes de que Claude Code compacte automáticamente. Pasa un tamaño como `500k`, o `auto` para volver a la ventana ajustada para tu modelo. Claude Code guarda el valor en la configuración de usuario y lo aplica a la sesión actual. Consulta [Establecer la ventana de compactación automática](/docs/es/model-config#set-the-auto-compact-window) para ver los valores aceptados y qué lo sobrescribe. Sin argumento, abre un diálogo que muestra la ventana actual. Requiere Claude Code v2.1.221 o posterior |

60| `/autofix-pr [prompt]` | Inicia una [sesión en la nube](/docs/es/claude-code-on-the-web#auto-fix-pull-requests) que vigila el PR de la rama actual y envía correcciones cuando falla la CI o los revisores dejan comentarios. Detecta el PR abierto desde tu rama activa con `gh pr view`; para vigilar otro PR, primero cambia a su rama. De forma predeterminada, se le indica a la sesión en la nube que corrija cada falla de CI y cada comentario de revisión; pasa un prompt para darle instrucciones diferentes, por ejemplo `/autofix-pr only fix lint and type errors`. Requiere la CLI `gh` y acceso a [sesiones en la nube](/docs/es/claude-code-on-the-web) |60| `/autofix-pr [prompt]` | Inicia una [sesión en la nube](/docs/es/claude-code-on-the-web#auto-fix-pull-requests) que vigila el PR de la rama actual y envía correcciones cuando falla la CI o los revisores dejan comentarios. Detecta el PR abierto desde tu rama activa con `gh pr view`; para vigilar otro PR, primero cambia a su rama. De forma predeterminada, se le indica a la sesión en la nube que corrija cada falla de CI y cada comentario de revisión; pasa un prompt para darle instrucciones diferentes, por ejemplo `/autofix-pr only fix lint and type errors`. Requiere la CLI `gh` y acceso a [sesiones en la nube](/docs/es/claude-code-on-the-web) |

61| `/background [prompt]` | Separa la sesión actual para que se ejecute como un [agente en segundo plano](/docs/es/agent-view) y libera esta terminal. Pasa un prompt para enviar una instrucción más antes de separarla. Supervisa la sesión con `claude agents`. Para copiar la conversación en una nueva sesión en segundo plano mientras esta sigue ejecutándose, usa `/fork`. Alias: `/bg` |61| `/background [prompt]` | Separa la sesión actual para que se ejecute como un [agente en segundo plano](/docs/es/agent-view) y libera esta terminal. Pasa un prompt para enviar una instrucción más antes de separarla. Supervisa la sesión con `claude agents`. Para copiar la conversación en una nueva sesión en segundo plano mientras esta sigue ejecutándose, usa `/fork`. Alias: `/bg` |


65| `/bug [report]` | Informa un error o comparte tu conversación. Eliges cuánto historial de la sesión incluir y confirmas en una pantalla de consentimiento antes de que se envíe nada. Cuando iniciaste sesión en Anthropic con una conexión de primera parte, el informe va a Anthropic; con un proveedor externo, o sin credenciales de Anthropic, Claude Code escribe el informe en un [archivo local en `~/.claude/feedback-bundles/`](/docs/es/data-usage#telemetry-services) que reenvías tú mismo. En la [extensión de VS Code](/docs/es/vs-code#use-the-prompt-box), `/bug` abre en su lugar el diálogo de comentarios propio de la extensión; requiere Claude Code v2.1.229 o posterior. Cuando lo ejecutas mientras Claude está respondiendo, Claude Code abre el diálogo de inmediato. Antes de v2.1.232, Claude Code ponía el comando en cola hasta que terminaba el turno. Alias: `/share`. Antes de v2.1.212, `/bug` y `/share` eran alias de `/feedback` |65| `/bug [report]` | Informa un error o comparte tu conversación. Eliges cuánto historial de la sesión incluir y confirmas en una pantalla de consentimiento antes de que se envíe nada. Cuando iniciaste sesión en Anthropic con una conexión de primera parte, el informe va a Anthropic; con un proveedor externo, o sin credenciales de Anthropic, Claude Code escribe el informe en un [archivo local en `~/.claude/feedback-bundles/`](/docs/es/data-usage#telemetry-services) que reenvías tú mismo. En la [extensión de VS Code](/docs/es/vs-code#use-the-prompt-box), `/bug` abre en su lugar el diálogo de comentarios propio de la extensión; requiere Claude Code v2.1.229 o posterior. Cuando lo ejecutas mientras Claude está respondiendo, Claude Code abre el diálogo de inmediato. Antes de v2.1.232, Claude Code ponía el comando en cola hasta que terminaba el turno. Alias: `/share`. Antes de v2.1.212, `/bug` y `/share` eran alias de `/feedback` |

66| `/cd <path>` | Mueve esta sesión a un nuevo directorio de trabajo, conservando la conversación. Escribe una ruta parcial para ver sugerencias de directorios coincidentes; presiona `Tab` para aceptar una. Para saber qué aplica Claude Code desde el nuevo directorio en cuanto te mueves, y en qué se diferencia `/cd` de `/add-dir`, consulta [Mover la sesión a otro directorio](/docs/es/permissions#move-the-session-to-another-directory) |66| `/cd <path>` | Mueve esta sesión a un nuevo directorio de trabajo, conservando la conversación. Escribe una ruta parcial para ver sugerencias de directorios coincidentes; presiona `Tab` para aceptar una. Para saber qué aplica Claude Code desde el nuevo directorio en cuanto te mueves, y en qué se diferencia `/cd` de `/add-dir`, consulta [Mover la sesión a otro directorio](/docs/es/permissions#move-the-session-to-another-directory) |

67| `/chrome` | Ajusta la configuración de [Claude in Chrome](/docs/es/chrome) |67| `/chrome` | Ajusta la configuración de [Claude in Chrome](/docs/es/chrome) |

68| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|managed-agents-secure\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/es/skills#bundled-skills).** Carga material de referencia de la [API de Claude](https://platform.claude.com/docs/en/api/overview) y de [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) para el lenguaje de tu proyecto. También se activa automáticamente cuando tu código importa `anthropic` o `@anthropic-ai/sdk`. Para saber qué hace cada subcomando y la versión que requiere, consulta [Trabajar en proyectos de la API de Claude](/docs/es/skills#work-on-claude-api-projects) |68| `/claude-api [migrate\|upgrade\|api-version\|managed-agents-onboard\|managed-agents-secure\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/es/skills#bundled-skills).** Carga material de referencia de la [API de Claude](https://platform.claude.com/docs/en/api/overview) y de [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) para el lenguaje de tu proyecto. También se activa automáticamente cuando tu código importa `anthropic` o `@anthropic-ai/sdk`. Para saber qué hace cada subcomando y la versión que requiere, consulta [Trabajar en proyectos de la API de Claude](/docs/es/skills#work-on-claude-api-projects) |

69| `/claude-in-chrome [task]` | **[Skill](/docs/es/skills#bundled-skills).** Haz que Claude realice una tarea en tu navegador, como probar una página, completar un formulario o leer los registros de la consola, a través de [Claude in Chrome](/docs/es/chrome). Disponible cuando la integración con Chrome está habilitada para la sesión, por ejemplo con `claude --chrome`, o cuando Claude Code puede ofrecer [instalar la extensión](/docs/es/chrome#install-the-extension-when-claude-asks) |69| `/claude-in-chrome [task]` | **[Skill](/docs/es/skills#bundled-skills).** Haz que Claude realice una tarea en tu navegador, como probar una página, completar un formulario o leer los registros de la consola, a través de [Claude in Chrome](/docs/es/chrome). Disponible cuando la integración con Chrome está habilitada para la sesión, por ejemplo con `claude --chrome`, o cuando Claude Code puede ofrecer [instalar la extensión](/docs/es/chrome#install-the-extension-when-claude-asks) |

70| `/clear [name]` | Inicia una nueva conversación con el contexto vacío. Pasa un nombre para etiquetar la conversación anterior en el selector de `/resume`. Para liberar contexto sin dejar la misma conversación, usa `/compact` en su lugar. Reanuda la conversación anterior con `/resume` o, en el mismo proceso de Claude Code, restáurala desde [la entrada de sesión anterior del menú de rewind](/docs/es/checkpointing#rewind-past-a-cleared-conversation). Alias: `/reset`, `/new` |70| `/clear [name]` | Inicia una nueva conversación con el contexto vacío. Pasa un nombre para etiquetar la conversación anterior en el selector de `/resume`. Para liberar contexto sin dejar la misma conversación, usa `/compact` en su lugar. Reanuda la conversación anterior con `/resume` o, en el mismo proceso de Claude Code, restáurala desde [la entrada de sesión anterior del menú de rewind](/docs/es/checkpointing#rewind-past-a-cleared-conversation). Alias: `/reset`, `/new` |

71| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | **[Skill](/docs/es/skills#bundled-skills).** Revisa el diff actual, o un número de PR, una rama o una ruta que pases, en busca de errores de corrección. Según tu modelo y tu nivel de esfuerzo, la revisión también cubre oportunidades de limpieza. Pasa `--fix` para que Claude aplique los hallazgos, `--comment` para publicarlos en el PR de GitHub o en el merge request de GitLab, o `ultra` para ejecutar una [revisión en la nube](/docs/es/ultrareview) profunda. Publicar en un merge request de GitLab requiere Claude Code v2.1.257 o posterior. Con `ultra` sobre un PR de `github.com` como destino, pasa `--post` para preseleccionar [publicar los hallazgos terminados en el PR](/docs/es/ultrareview#post-findings-to-the-pull-request) en el diálogo de inicio; `--post` requiere Claude Code v2.1.227 o posterior. Consulta [Revisar localmente con `/code-review`](/docs/es/code-review-local) para conocer los niveles de esfuerzo, cómo elegir el destino y cómo se relaciona con `/simplify`. Alias: `/review` |71| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | **[Skill](/docs/es/skills#bundled-skills).** Revisa el diff actual, o un número de PR, una rama o una ruta que pases, en busca de errores de corrección. Según tu modelo y tu nivel de esfuerzo, la revisión también cubre oportunidades de limpieza. Pasa `--fix` para que Claude aplique los hallazgos, `--comment` para publicarlos en el PR de GitHub o en el merge request de GitLab, o `ultra` para ejecutar una [revisión en la nube](/docs/es/ultrareview) profunda. Publicar en un merge request de GitLab requiere Claude Code v2.1.257 o posterior. Con `ultra` sobre un PR de `github.com` como destino, pasa `--post` para preseleccionar [publicar los hallazgos terminados en el PR](/docs/es/ultrareview#post-findings-to-the-pull-request) en el diálogo de inicio; `--post` requiere Claude Code v2.1.227 o posterior. Consulta [Revisar localmente con `/code-review`](/docs/es/code-review-local) para conocer los niveles de esfuerzo, cómo elegir el destino y cómo se relaciona con `/simplify`. Alias: `/review` |


80| `/deep-research <question>` | **[Workflow](/docs/es/workflows#bundled-workflows).** Distribuye búsquedas web sobre una pregunta, obtiene y contrasta fuentes, y sintetiza un informe con citas |80| `/deep-research <question>` | **[Workflow](/docs/es/workflows#bundled-workflows).** Distribuye búsquedas web sobre una pregunta, obtiene y contrasta fuentes, y sintetiza un informe con citas |

81| `/design [brief]` | **[Skill](/docs/es/skills#bundled-skills).** Crea borradores de maquetas de UI, flujos de pantallas, páginas de destino o pósteres como mesas de trabajo (artboards) en un solo lienzo, publicados como un [artefacto](/docs/es/artifacts#draft-a-design-canvas) de Claude Design, por ejemplo `/design a settings screen for a mobile banking app`. Editas las mesas de trabajo en un navegador de escritorio y tus ediciones se guardan automáticamente. Puedes exportar cada mesa de trabajo como PNG o PDF. Requiere Claude Code v2.1.265 o posterior, una sesión donde los [artefactos estén disponibles](/docs/es/artifacts#availability) y una cuenta donde la [plantilla Design esté disponible](/docs/es/artifacts#start-from-a-slides-design-or-docs-template); si tu organización desactivó esa plantilla, `/design` no crea borradores de diseños. Disponible en la API de Anthropic. En Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry y Claude Platform on AWS, los artefactos no están disponibles, por lo que el comando no está disponible allí |81| `/design [brief]` | **[Skill](/docs/es/skills#bundled-skills).** Crea borradores de maquetas de UI, flujos de pantallas, páginas de destino o pósteres como mesas de trabajo (artboards) en un solo lienzo, publicados como un [artefacto](/docs/es/artifacts#draft-a-design-canvas) de Claude Design, por ejemplo `/design a settings screen for a mobile banking app`. Editas las mesas de trabajo en un navegador de escritorio y tus ediciones se guardan automáticamente. Puedes exportar cada mesa de trabajo como PNG o PDF. Requiere Claude Code v2.1.265 o posterior, una sesión donde los [artefactos estén disponibles](/docs/es/artifacts#availability) y una cuenta donde la [plantilla Design esté disponible](/docs/es/artifacts#start-from-a-slides-design-or-docs-template); si tu organización desactivó esa plantilla, `/design` no crea borradores de diseños. Disponible en la API de Anthropic. En Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry y Claude Platform on AWS, los artefactos no están disponibles, por lo que el comando no está disponible allí |

82| `/design consent`, `/design revoke` | Otorga a Claude acceso a [Claude Design](https://claude.ai/design), o retíralo. Cuando una respuesta de Claude te pida ejecutar `/design consent`, escríbelo tú mismo en el prompt de Claude Code |82| `/design consent`, `/design revoke` | Otorga a Claude acceso a [Claude Design](https://claude.ai/design), o retíralo. Cuando una respuesta de Claude te pida ejecutar `/design consent`, escríbelo tú mismo en el prompt de Claude Code |

83| `/design-login` | Autoriza el acceso al sistema de diseño para `/design-sync` con tu cuenta de claude.ai. Inicia sesión con `/design-login` cada vez que `/design-sync` o `/design consent` te lo indique |83| `/design-login` | Autoriza el acceso al sistema de diseño para `/design-sync` con tu cuenta de claude.ai. Inicia sesión con `/design-login` cada vez que `/design-sync` o `/design consent` te lo indique. Este inicio de sesión es para el sitio independiente de Claude Design en claude.ai/design, que cierra a más tardar el 14 de diciembre de 2026; consulta [Migrar de Claude Design independiente a Claude](https://support.claude.com/en/articles/17440474-migrate-from-standalone-claude-design-to-claude) |

84| `/design-sync [hint]` | **[Skill](/docs/es/skills#bundled-skills).** Convierte el sistema de diseño de React de tu repositorio y súbelo a [Claude Design](https://claude.ai/design), para que los diseños que produzca usen tus componentes reales. Opcionalmente, nombra el sistema de diseño, por ejemplo `/design-sync Acme DS`. Una primera sincronización verifica cada componente y puede tardar unas horas en un repositorio grande. Disponible en la API de Anthropic. Necesita claude.ai, al que la CLI no se conecta en Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry ni Claude Platform on AWS, ni a través de un [gateway de Claude apps](/docs/es/claude-apps-gateway#availability-and-limitations), por lo que el comando no está disponible allí |84| `/design-sync [hint]` | **[Skill](/docs/es/skills#bundled-skills).** Convierte el sistema de diseño de React de tu repositorio y súbelo a [Claude Design](https://claude.ai/design), para que los diseños que produzca usen tus componentes reales. Opcionalmente, nombra el sistema de diseño, por ejemplo `/design-sync Acme DS`. Una primera sincronización verifica cada componente y puede tardar unas horas en un repositorio grande. Disponible en la API de Anthropic. Necesita claude.ai, al que la CLI no se conecta en Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry ni Claude Platform on AWS, ni a través de un [gateway de Claude apps](/docs/es/claude-apps-gateway#availability-and-limitations). El comando no está disponible allí. Este comando sube al sitio independiente claude.ai/design, que cierra a más tardar el 14 de diciembre de 2026; consulta [Migrar de Claude Design independiente a Claude](https://support.claude.com/en/articles/17440474-migrate-from-standalone-claude-design-to-claude) |

85| `/desktop` | Continúa la sesión actual en la app de escritorio de Claude Code. Requiere macOS o Windows x64 y una suscripción a Claude. Alias: `/app` |85| `/desktop` | Continúa la sesión actual en la app de escritorio de Claude Code. Requiere macOS o Windows x64 y una suscripción a Claude. Alias: `/app` |

86| `/diff` | Revisa los cambios en tu árbol de trabajo, incluidas las ediciones que Claude ha hecho hasta ahora. Consulta [Revisar cambios con /diff](/docs/es/interactive-mode#review-changes-with-%2Fdiff) |86| `/diff` | Revisa los cambios en tu árbol de trabajo, incluidas las ediciones que Claude ha hecho hasta ahora. Consulta [Revisar cambios con /diff](/docs/es/interactive-mode#review-changes-with-%2Fdiff) |

87| `/doctor [prompt-audit [path]]` | **[Skill](/docs/es/skills#bundled-skills).** Ejecuta una revisión de la configuración que diagnostica problemas de instalación, configuración, extensiones y `CLAUDE.md`, y propone correcciones que Claude aplica después de que confirmas. Para saber qué cubre la revisión, o para auditar tus instrucciones con `prompt-audit` en su lugar, consulta [Revisar tu configuración con `/doctor`](/docs/es/skills#check-your-setup-with-/doctor). El subcomando `prompt-audit` requiere Claude Code v2.1.283 o posterior. Alias: `/checkup` |87| `/doctor [prompt-audit [path]]` | **[Skill](/docs/es/skills#bundled-skills).** Ejecuta una revisión de la configuración que diagnostica problemas de instalación, configuración, extensiones y `CLAUDE.md`, y propone correcciones que Claude aplica después de que confirmas. Para saber qué cubre la revisión, o para auditar tus instrucciones con `prompt-audit` en su lugar, consulta [Revisar tu configuración con `/doctor`](/docs/es/skills#check-your-setup-with-/doctor). El subcomando `prompt-audit` requiere Claude Code v2.1.283 o posterior. Alias: `/checkup` |

Details

379 379 

380Para evitar que las referencias con `@` incluyan el contenido de los archivos y los listados de directorios en tu mensaje, establece [`CLAUDE_CODE_DISABLE_FILE_MENTIONS=1`](/docs/es/env-vars#variables) en tu shell o en tu configuración de usuario. Claude recibe entonces las rutas que referenciaste junto con una nota para leerlas usando sus herramientas de archivos. La variable requiere Claude Code v2.1.299 o posterior, y Claude Code la ignora en la configuración de proyecto y local.380Para evitar que las referencias con `@` incluyan el contenido de los archivos y los listados de directorios en tu mensaje, establece [`CLAUDE_CODE_DISABLE_FILE_MENTIONS=1`](/docs/es/env-vars#variables) en tu shell o en tu configuración de usuario. Claude recibe entonces las rutas que referenciaste junto con una nota para leerlas usando sus herramientas de archivos. La variable requiere Claude Code v2.1.299 o posterior, y Claude Code la ignora en la configuración de proyecto y local.

381 381 

382Tus [hooks `PreToolUse`](/docs/es/hooks#pretooluse) no se ejecutan cuando Claude Code incluye un archivo que referencias con `@`, porque no realiza ninguna llamada a herramienta. Si dependes de esos hooks para controlar lo que Claude lee, bloquea rutas específicas o evita que las referencias con `@` incluyan archivos:

383 

384* **Bloquear rutas específicas**: agrega una [regla de denegación de `Read`](/docs/es/permissions#read-and-edit) para ellas. Claude Code no incluye un archivo que coincida con la regla.

385* **Evitar que las referencias con `@` incluyan archivos**: establece `CLAUDE_CODE_DISABLE_FILE_MENTIONS=1`, lo que evita que las referencias con `@` a archivos y directorios en tus mensajes incluyan contenido, incluso para rutas que tus hooks no verifican. Tus hooks coincidentes se ejecutan entonces antes de que Claude abra una ruta referenciada con una herramienta como `Read`.

386 

382***387***

383 388 

384### Ejecutar Claude en un horario389### Ejecutar Claude en un horario


392| [Tareas programadas en la nube](/docs/es/routines) | Nube, administrada por Anthropic de forma predeterminada | Tareas que deben ejecutarse incluso cuando tu computadora está apagada. También pueden activarse con llamadas a la API o eventos de GitHub además de un horario. Configúralas en [claude.ai/code/routines](https://claude.ai/code/routines). |397| [Tareas programadas en la nube](/docs/es/routines) | Nube, administrada por Anthropic de forma predeterminada | Tareas que deben ejecutarse incluso cuando tu computadora está apagada. También pueden activarse con llamadas a la API o eventos de GitHub además de un horario. Configúralas en [claude.ai/code/routines](https://claude.ai/code/routines). |

393| [Tareas programadas de escritorio](/docs/es/desktop-scheduled-tasks) | Su máquina, a través de la aplicación de escritorio | Tareas que necesitan acceso directo a archivos locales, herramientas o cambios sin confirmar. |398| [Tareas programadas de escritorio](/docs/es/desktop-scheduled-tasks) | Su máquina, a través de la aplicación de escritorio | Tareas que necesitan acceso directo a archivos locales, herramientas o cambios sin confirmar. |

394| [GitHub Actions](/docs/es/github-actions) | Su canalización de CI | Tareas vinculadas a eventos de repositorio como PRs abiertos, o horarios cron que deben vivir junto con su configuración de flujo de trabajo. |399| [GitHub Actions](/docs/es/github-actions) | Su canalización de CI | Tareas vinculadas a eventos de repositorio como PRs abiertos, o horarios cron que deben vivir junto con su configuración de flujo de trabajo. |

395| [`/loop`](/docs/es/scheduled-tasks) | La sesión CLI actual | Sondeo rápido mientras una sesión está abierta. `--resume` y `--continue` restauran las no expiradas. |400| [`/loop`](/docs/es/scheduled-tasks) | La sesión CLI actual | Sondeo rápido mientras una sesión está abierta. `--resume` y `--continue` restauran los bucles de intervalo fijo no expirados. |

396 401 

397> [!TIP]402> [!TIP]

398>403>

costs.md +24 −5

Details

55 55 

56#### Desglose de uso del plan56#### Desglose de uso del plan

57 57 

58En un plan Pro, Max, Team o Enterprise, `/usage` también muestra un desglose de lo que cuenta contra los límites de su plan:58En un plan Pro, Max, Team o Enterprise, `/usage` también muestra un desglose de lo que cuenta contra los límites de tu plan, con recomendaciones:

59 59 

60* **Attribution (Atribución)**: uso reciente atribuido a skills, subagentes, plugins y servidores MCP individuales, cada uno mostrado como un porcentaje del total. La participación de un servidor MCP cuenta solo las solicitudes que consumieron uno de sus resultados de herramientas. Antes de v2.1.222, después de una llamada a un servidor MCP, Claude Code atribuía cada solicitud posterior a ese servidor, sobrestimando su participación.60* **Attribution (Atribución)**: uso reciente atribuido a skills, subagentes, plugins y servidores MCP individuales, cada uno mostrado como un porcentaje del total. La participación de un servidor MCP cuenta solo las solicitudes que consumieron uno de sus resultados de herramientas. Antes de v2.1.222, después de una llamada a un servidor MCP, Claude Code atribuía cada solicitud posterior a ese servidor, sobrestimando su participación.

61* **Behavior flags (Indicadores de comportamiento)**: comportamientos como contexto largo o fallos de caché, marcados cuando uno representa el 10% o más del uso reciente.61* **Recommendations (Recomendaciones)**: cambios que reducen tu uso, uno por fila. Cada fila comienza con la proporción del uso reciente que aborda, de al menos 10%, como en `25% Trim ~/code/api/CLAUDE.md · 49k tokens per request`. Para que Claude Code aplique las que puede, consulta [Aplica recomendaciones con el atajo de corrección](#apply-recommendations-with-the-fix-shortcut).

62* **Loops (Bucles)**: una fila para cada una de las tareas [`/loop` u otras tareas programadas con alcance de sesión](/docs/es/scheduled-tasks) más pesadas que se ejecutaron recientemente, ordenadas por tokens totales, con un recuento del resto. Requiere Claude Code v2.1.242 o posterior.62* **Loops (Bucles)**: una fila para cada una de las tareas [`/loop` u otras tareas programadas con alcance de sesión](/docs/es/scheduled-tasks) más pesadas que se ejecutaron recientemente, ordenadas por tokens totales, con un recuento del resto. Requiere Claude Code v2.1.242 o posterior.

63 * **Qué informa cada fila**: con qué frecuencia se activa la tarea, cuántas veces se ejecutó, sus tokens totales y por ejecución, y cuándo se ejecutó por última vez63 * **Qué informa cada fila**: con qué frecuencia se activa la tarea, cuántas veces se ejecutó, sus tokens totales y por ejecución, y cuándo se ejecutó por última vez

64 * **Bucles detenidos y recreados**: Claude Code identifica cada fila por el prompt de la tarea, así que un bucle que detienes y vuelves a crear sigue siendo una sola fila64 * **Bucles detenidos y recreados**: Claude Code identifica cada fila por el prompt de la tarea, así que un bucle que detienes y vuelves a crear sigue siendo una sola fila

65 65 

66Presione `d` o `w` para cambiar entre las últimas 24 horas y los últimos 7 días. Las cifras son aproximadas y se calculan a partir del historial de sesión local en esta máquina, por lo que el uso de otros dispositivos o claude.ai no se incluye.66Presione `d` o `w` para cambiar entre las últimas 24 horas y los últimos 7 días. Las cifras son aproximadas y se calculan a partir del historial de sesión local en esta máquina, por lo que el uso de otros dispositivos o claude.ai no se incluye.

67 67 

68En la [extensión de VS Code](/docs/es/vs-code#check-account-and-usage), las participaciones de atribución y los indicadores de comportamiento aparecen en el diálogo Cuenta y uso con un botón de alternancia Día y Semana, sin las filas de Loops.68En la [extensión de VS Code](/docs/es/vs-code#check-account-and-usage), las participaciones de atribución y las recomendaciones aparecen en el diálogo Cuenta y uso con un selector de Día y Semana, sin las filas de Loops.

69 

70#### Aplica recomendaciones con el atajo de corrección

71 

72Cuando el pie de `/usage` muestra una sugerencia como `f to fix 2 of 3`, presiona `f` para que Claude Code actúe sobre las recomendaciones que puede. El atajo `f` requiere Claude Code v2.1.305 o posterior.

73 

741. Cuando termina cualquier turno en curso, Claude Code ejecuta cada comando [`/effort`](/docs/es/model-config#adjust-effort-level) que aparece en una fila sin `run`.

752. Luego Claude recibe un prompt con un paso para cada una de las demás filas sobre las que puede actuar. El prompt le pide a Claude que te muestre cada cambio antes de hacerlo.

76 

77Para ver qué hace presionar `f` con cada una de tus filas, busca la forma de la fila en la primera columna:

78 

79| Forma de la fila | Fila de ejemplo | Cuando presionas `f` |

80| :- | :- | :- |

81| Termina en un comando `/effort` sin `run` delante | `40% Switch from max to high effort · /effort high` | Claude Code ejecuta el comando |

82| Termina en `run` y un comando | `30% Compact before you step away · run /compact` | No ocurre nada para esta fila. Ejecuta tú mismo el comando en el prompt de Claude Code |

83| Termina en cualquier otra cosa | `25% Trim ~/code/api/CLAUDE.md · 49k tokens per request` | Claude recibe un paso en el prompt para algunas de estas filas, y no ocurre nada para el resto. Si Claude no te muestra ningún cambio para una fila, sigue tú mismo esa recomendación |

84 

85En `f to fix 2 of 3`, el primer número cuenta las filas sobre las que Claude Code actúa cuando presionas `f`, y el segundo cuenta las filas mostradas. Una sugerencia sin `of`, como `f to fix both`, significa que Claude Code actúa sobre todas las filas mostradas.

86 

87Mientras [Remote Control](/docs/es/remote-control) está conectado, el pie no muestra ninguna sugerencia `f`. Si al presionar `f` se cierra `/usage` con `Nothing was sent. Turn off Remote Control to use fixes.`, Remote Control se conectó mientras `/usage` estaba abierto. Para volver a usar `f`, [desconecta Remote Control](/docs/es/remote-control#check-connection-status), luego ejecuta `/usage` en el prompt de Claude Code y presiona `f` de nuevo.

69 88 

70#### Verifique su gasto en créditos de uso89#### Verifique su gasto en créditos de uso

71 90 


367Una sesión que ha estado abierta durante horas puede usar mucho más de los límites de su plan de lo que su actividad sugiere, generalmente por una de estas razones:386Una sesión que ha estado abierta durante horas puede usar mucho más de los límites de su plan de lo que su actividad sugiere, generalmente por una de estas razones:

368 387 

369* **Contexto largo**: Claude Code envía su conversación completa con cada solicitud, y cada vez que Claude utiliza herramientas envía otra solicitud que lleva ese lote de resultados de herramientas. Con [almacenamiento en caché de solicitudes](/docs/es/prompt-caching), Claude Code relee ese historial a la [tasa de token almacenado en caché](https://platform.claude.com/docs/en/about-claude/pricing), por lo que una pregunta de una línea en una sesión que ha estado abierta todo el día sigue consumiendo uso para toda la conversación. Consulte [Gestionar el contexto de forma proactiva](#manage-context-proactively) para conocer formas de mantener su contexto pequeño388* **Contexto largo**: Claude Code envía su conversación completa con cada solicitud, y cada vez que Claude utiliza herramientas envía otra solicitud que lleva ese lote de resultados de herramientas. Con [almacenamiento en caché de solicitudes](/docs/es/prompt-caching), Claude Code relee ese historial a la [tasa de token almacenado en caché](https://platform.claude.com/docs/en/about-claude/pricing), por lo que una pregunta de una línea en una sesión que ha estado abierta todo el día sigue consumiendo uso para toda la conversación. Consulte [Gestionar el contexto de forma proactiva](#manage-context-proactively) para conocer formas de mantener su contexto pequeño

370* **Fallos de caché**: tu primer mensaje después de una pausa más larga que la [duración de la caché](/docs/es/prompt-caching#cache-lifetime) falla en la caché y reprocesa tu contexto completo. La duración es de una hora en una suscripción y se reduce a cinco minutos una vez que estás utilizando [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans); con una clave de API o un proveedor de nube, es de cinco minutos por defecto. Para mantener la duración de una hora mientras utilizas créditos de uso, [elige el TTL tú mismo](/docs/es/prompt-caching#choose-the-ttl-yourself)389* **Fallos de caché**: tu primer mensaje después de una pausa más larga que la [duración de la caché](/docs/es/prompt-caching#cache-lifetime) falla en la caché y reprocesa tu contexto completo. Consulta [qué duración obtienen tus solicitudes](/docs/es/prompt-caching#which-ttl-each-request-gets) y [los controles para configurarla](/docs/es/prompt-caching#choose-the-ttl-yourself)

371* **Tareas programadas**: una [tarea programada con alcance de sesión](/docs/es/scheduled-tasks) se ejecuta en su intervalo incluso mientras la sesión está inactiva, enviando tu contexto completo cada vez390* **Tareas programadas**: una [tarea programada con alcance de sesión](/docs/es/scheduled-tasks) se ejecuta en su intervalo incluso mientras la sesión está inactiva, enviando tu contexto completo cada vez

372* **Mensajes entre sesiones**: Claude Code entrega un [mensaje de otra de sus sesiones](/docs/es/cross-session-messaging) como un nuevo turno cuando esta sesión está inactiva, enviando su contexto completo cada vez. Para retener los mensajes entrantes en lugar de entregarlos, establezca [`crossSessionInbound`](/docs/es/settings-reference#crosssessioninbound) en `hold`391* **Mensajes entre sesiones**: Claude Code entrega un [mensaje de otra de sus sesiones](/docs/es/cross-session-messaging) como un nuevo turno cuando esta sesión está inactiva, enviando su contexto completo cada vez. Para retener los mensajes entrantes en lugar de entregarlos, establezca [`crossSessionInbound`](/docs/es/settings-reference#crosssessioninbound) en `hold`

373* **Verificaciones de objetivos**: mientras el trabajo en segundo plano mantiene un [objetivo](/docs/es/goal) activo en espera, Claude Code [le pide a Claude que verifique ese trabajo](/docs/es/goal#background-work-defers-evaluation) incluso cuando la sesión está inactiva, iniciando un nuevo turno que envía su contexto completo. Claude Code inicia como máximo tres verificaciones inactivas por objetivo entre sus solicitudes. Antes de v2.1.246, las verificaciones inactivas eran ilimitadas. Para desactivar las verificaciones, establezca [`CLAUDE_CODE_GOAL_CHECKIN_MINUTES`](/docs/es/env-vars) en `0`. Las verificaciones inactivas requieren Claude Code v2.1.236 o posterior392* **Verificaciones de objetivos**: mientras el trabajo en segundo plano mantiene un [objetivo](/docs/es/goal) activo en espera, Claude Code [le pide a Claude que verifique ese trabajo](/docs/es/goal#background-work-defers-evaluation) incluso cuando la sesión está inactiva, iniciando un nuevo turno que envía su contexto completo. Claude Code inicia como máximo tres verificaciones inactivas por objetivo entre sus solicitudes. Antes de v2.1.246, las verificaciones inactivas eran ilimitadas. Para desactivar las verificaciones, establezca [`CLAUDE_CODE_GOAL_CHECKIN_MINUTES`](/docs/es/env-vars) en `0`. Las verificaciones inactivas requieren Claude Code v2.1.236 o posterior


375* **Compañeros agentes**: cada [compañero](#agent-team-token-costs) activo sigue consumiendo tokens hasta que sale394* **Compañeros agentes**: cada [compañero](#agent-team-token-costs) activo sigue consumiendo tokens hasta que sale

376* **Compactación**: `/compact` lee la conversación que resume, por lo que [compactar un contexto grande](/docs/es/prompt-caching#compacting-the-conversation) es en sí una solicitud grande. Cuando desea un nuevo comienzo en lugar de continuidad, `/clear` no cuesta nada395* **Compactación**: `/compact` lee la conversación que resume, por lo que [compactar un contexto grande](/docs/es/prompt-caching#compacting-the-conversation) es en sí una solicitud grande. Cuando desea un nuevo comienzo en lugar de continuidad, `/clear` no cuesta nada

377 396 

378En un plan Pro, Max, Team o Enterprise, el desglose de `/usage` marca comportamientos que representan el 10% o más de su uso reciente, como contexto largo o fallos de caché, cada uno con un consejo para reducirlo.397En un plan Pro, Max, Team o Enterprise, el [desglose de `/usage`](#plan-usage-breakdown) recomienda un cambio para los comportamientos que representan el 10% o más de tu uso reciente, como contexto largo o fallos de caché.

379 398 

380## Entender los cambios en el comportamiento de Claude Code399## Entender los cambios en el comportamiento de Claude Code

381 400 

Details

158 158 

159Si esta sesión no está conectada a Remote Control cuando Claude envía a una sesión más allá de esta máquina, el mensaje aún se envía, pero sin una [dirección de respuesta](#what-a-message-looks-like). Claude que recibe no puede responderlo.159Si esta sesión no está conectada a Remote Control cuando Claude envía a una sesión más allá de esta máquina, el mensaje aún se envía, pero sin una [dirección de respuesta](#what-a-message-looks-like). Claude que recibe no puede responderlo.

160 160 

161## Cómo una sesión trata un mensaje entrante161## Cómo trata una sesión un mensaje entrante

162 162 

163Cuando la sesión A envía un mensaje a la sesión B, Claude Code le dice al Claude de B que el mensaje vino de otra sesión, no de ti, y limita lo que el mensaje puede hacer:163Cuando la sesión A envía un mensaje a la sesión B, Claude Code le indica al Claude de B que el mensaje provino de otra sesión, no de ti, y limita lo que el mensaje puede hacer:

164 164 

165* **No puede aprobar nada**: un mensaje de otra sesión nunca cuenta como tu consentimiento, así que no puede responder a un mensaje de permiso pendiente en tu nombre.165* **No puede aprobar nada**: un mensaje de otra sesión nunca cuenta como tu consentimiento, por lo que no puede responder una solicitud de permiso pendiente en tu nombre.

166* **No puede cambiar configuración**: Claude Code instruye al Claude receptor a nunca cambiar configuraciones de permisos, `CLAUDE.md` u otra configuración porque otra sesión lo pidió.166* **No puede cambiar la configuración**: Claude Code le indica al Claude receptor que nunca cambie la configuración de permisos, `CLAUDE.md` ni otra configuración porque otra sesión lo haya pedido.

167* **Los comandos no se ejecutan**: un comando en el texto del mensaje, como `/compact`, llega como texto plano. Claude Code nunca lo ejecuta.167* **Los comandos no se ejecutan**: un comando en el texto del mensaje, como `/compact`, llega como texto sin formato. Claude Code nunca lo ejecuta.

168* **Los mensajes de permiso aún se disparan**: si actuar sobre el mensaje requiere un permiso que la sesión receptora no tiene, ves el mismo mensaje que verías para cualquier otro trabajo.168* **Las solicitudes de permiso siguen apareciendo**: si actuar según el mensaje requiere un permiso que la sesión receptora no tiene, ves la misma solicitud que verías para cualquier otro trabajo.

169 169 

170### Cómo se ve un mensaje170### Cómo se ve un mensaje

171 171 

172Cuando llega un mensaje, Claude Code lo muestra en la conversación como una vista previa de una línea atenuada, y la línea de vista previa permanece en la conversación después. La vista previa lleva el nombre del remitente y la primera línea del mensaje, cortada con `…` cuando es larga, como `› Message from @api-worker: Schema migration finished (ctrl+o to expand)`.172Cuando llega un mensaje, Claude Code lo muestra en la conversación como una vista previa atenuada de una línea, y esa línea de vista previa permanece en la conversación después. La vista previa incluye el nombre del remitente y la primera línea del mensaje, recortada con `…` cuando es larga, como `› Message from @api-worker: Schema migration finished (ctrl+o to expand)`.

173 173 

174Cualquiera de estos muestra el texto completo:174Cualquiera de estas opciones te muestra el texto completo:

175 175 

176* Presiona `Ctrl+O` para abrir el [visor de transcripción](/docs/es/interactive-mode#transcript-viewer) y lee el texto completo bajo el nombre de sesión del remitente.176* Presiona `Ctrl+O` para abrir el [visor de transcripciones](/docs/es/interactive-mode#transcript-viewer) y leer el texto completo bajo el nombre de la sesión del remitente.

177* En el [renderizado en pantalla completa](/docs/es/fullscreen#use-the-mouse), haz clic en una línea de vista previa que omite parte del mensaje para expandirla en el lugar.177* En el [renderizado de pantalla completa](/docs/es/fullscreen#use-the-mouse), haz clic en una línea de vista previa que omita parte del mensaje para expandirla en su lugar.

178* En una sesión iniciada con [`--verbose`](/docs/es/cli-reference#cli-flags), Claude Code muestra el texto completo en lugar de la vista previa.178* En una sesión iniciada con [`--verbose`](/docs/es/cli-reference#cli-flags), Claude Code muestra el texto completo en lugar de la vista previa.

179 179 

180La vista previa acorta solo lo que ves. Ya sea que la expandas o no, Claude lee el mensaje completo.180La vista previa acorta solo lo que ves. La expandas o no, Claude lee el mensaje completo.

181 181 

182Claude recibe el mensaje con el nombre del remitente y una dirección de respuesta, excepto para un [mensaje de una sola dirección entre máquinas](#message-sessions-on-other-machines), que no lleva dirección de respuesta.182Claude recibe el mensaje con el nombre del remitente y una dirección de respuesta, excepto en el caso de un [mensaje unidireccional entre máquinas](#message-sessions-on-other-machines), que no incluye dirección de respuesta.

183 183 

184Este ejemplo es un mensaje que un Claude escribió a otro, tal como su texto completo se lee cuando lo expandes:184Este ejemplo es un mensaje que un Claude le escribió a otro, tal como se lee su texto completo cuando lo expandes:

185 185 

186```text wrap theme={null}186```text wrap theme={null}

187Schema migration finished187Schema migration finished

188The new column is tenant_id, and rebasing on main is safe now.188The new column is tenant_id, and rebasing on main is safe now.

189```189```

190 190 

191### Controlar mensajes entrantes191### Controlar los mensajes entrantes

192 192 

193Establece [`crossSessionInbound`](/docs/es/settings-reference#crosssessioninbound) para elegir qué hace una sesión con los mensajes que llegan de tus otras sesiones:193Establece [`crossSessionInbound`](/docs/es/settings-reference#crosssessioninbound) para elegir qué hace una sesión con los mensajes que llegan de tus otras sesiones:

194 194 

195| Valor | Comportamiento |195| Valor | Comportamiento |

196| :- | :- |196| :- | :- |

197| `accept` | Claude Code entrega cada mensaje a Claude |197| `accept` | Claude Code entrega cada mensaje a Claude |

198| `hold` | Claude Code muestra un aviso para cada mensaje y no lo entrega. Si un `accept` se aplica después, según las [reglas de precedencia](/docs/es/settings-reference#crosssessioninbound), Claude Code libera los mensajes retenidos |198| `hold` | Claude Code muestra un aviso para cada mensaje y no lo entrega. Si más adelante se aplica un `accept`, según las [reglas de precedencia](/docs/es/settings-reference#crosssessioninbound), Claude Code libera los mensajes retenidos |

199| `refuse` | Claude Code descarta cada mensaje sin entregarlo |199| `refuse` | Claude Code descarta cada mensaje sin entregarlo |

200 200 

201Más allá de editar un archivo de configuración, puedes seleccionar el valor en la fila `/config` **Mensajes de tus otras sesiones**. Claude Code escribe el valor que seleccionas en tu configuración de usuario. La fila requiere Claude Code v2.1.232 o posterior y no aparece mientras la configuración administrada o la bandera `--settings` establece la clave, ya que un valor de configuración de usuario no se aplicaría entonces. Claude Code rechaza el atajo `/config crossSessionInbound=value` para esta clave.201Además de editar un archivo de configuración, puedes seleccionar el valor en la fila **Messages from your other sessions** de `/config`. Claude Code escribe el valor que selecciones en tu configuración de usuario. La fila requiere Claude Code v2.1.232 o posterior y no aparece mientras la configuración administrada o el flag `--settings` establecen la clave, ya que en ese caso un valor de la configuración de usuario no se aplicaría. Claude Code rechaza la forma abreviada `/config crossSessionInbound=value` para esta clave.

202 202 

203Para ver qué valor se aplica, sigue las reglas de precedencia `crossSessionInbound` en la [referencia de configuración](/docs/es/settings-reference#crosssessioninbound).203Para ver qué valor se aplica, sigue las reglas de precedencia de `crossSessionInbound` en la [referencia de configuración](/docs/es/settings-reference#crosssessioninbound).

204 204 

205Cuando no se aplica ningún valor, Claude Code decide por mensaje de las dos clases de modo de permiso de las sesiones. Agrupa sesiones que [omiten mensajes de permiso](/docs/es/permission-modes#skip-all-checks-with-bypasspermissions-mode) en una clase, y todas las otras sesiones en la otra. El modo Plan cuenta como omisión en sesiones con permisos de omisión disponibles, y [auto](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), `acceptEdits` y `dontAsk` cuentan como mensajes:205Cuando no se aplica ningún valor, Claude Code decide por cada mensaje según los modos de permisos de las dos sesiones. Agrupa las sesiones que [omiten las solicitudes de permiso](/docs/es/permission-modes#skip-all-checks-with-bypasspermissions-mode) en una clase, y todas las demás sesiones en la otra. El modo plan cuenta como omisión de solicitudes en las sesiones interactivas de la terminal que tienen disponible la omisión de permisos, y [auto](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), `acceptEdits` y `dontAsk` cuentan como modos que piden permisos:

206 206 

207* **La sesión receptora solicita permisos**: Claude Code entrega cada mensaje. Retiene uno para tu aprobación solo cuando la sesión de envío se identifica como omitiendo mensajes de permiso.207* **La sesión receptora pide permisos**: Claude Code entrega cada mensaje. Retiene uno para tu aprobación solo cuando la sesión remitente se identifica como una que omite las solicitudes de permiso.

208* **La sesión receptora omite mensajes de permiso**: Claude Code retiene cada mensaje para tu aprobación. Entrega uno solo cuando la sesión de envío se identifica como también omitiendo.208* **La sesión receptora omite las solicitudes de permiso**: Claude Code retiene cada mensaje para tu aprobación. Entrega uno solo cuando la sesión remitente se identifica como una que también omite las solicitudes.

209 209 

210Cuando el valor predeterminado retiene un mensaje en una sesión interactiva de terminal, Claude Code abre un diálogo de aprobación allí. El diálogo muestra el remitente y una vista previa:210Cuando el comportamiento predeterminado retiene un mensaje en una sesión interactiva de la terminal, Claude Code abre allí un diálogo de aprobación. El diálogo muestra el remitente y una vista previa:

211 211 

212* **Aprobar** entrega ese mensaje a Claude.212* **Approve** entrega ese único mensaje a Claude.

213* **Denegar**, o descartar el diálogo, lo descarta.213* **Deny**, o cerrar el diálogo, lo descarta.

214* Cuando el diálogo permanece sin respuesta pasado el plazo [`dialogExpiry`](/docs/es/settings-reference#dialogexpiry), Claude Code lo cierra y descarta el mensaje. El plazo predeterminado es cinco minutos.214* Cuando el diálogo queda sin respuesta más allá del plazo de [`dialogExpiry`](/docs/es/settings-reference#dialogexpiry), Claude Code lo cierra y descarta el mensaje. El plazo predeterminado es de cinco minutos.

215* Mientras ninguna terminal está adjunta a una [sesión en segundo plano](/docs/es/agent-view), Claude Code deja el diálogo abierto pasado el plazo. Después de que adjuntes, si el diálogo permanece sin respuesta durante un período de plazo completo, Claude Code lo cierra y descarta el mensaje.215* Mientras no haya ninguna terminal conectada a una [sesión en segundo plano](/docs/es/agent-view), Claude Code deja el diálogo abierto más allá del plazo. Después de que te conectes, si el diálogo queda sin respuesta durante un período de plazo completo, Claude Code lo cierra y descarta el mensaje.

216* Si la clase de modo de permiso de esta sesión cambia mientras los mensajes están retenidos, Claude Code re-aplica las reglas de entrada, entrega los mensajes que ahora acepta, y muestra un aviso.216* Si la clase de modo de permisos de esta sesión cambia mientras hay mensajes retenidos, Claude Code vuelve a aplicar las reglas de entrada, entrega los mensajes que ahora aceptan y muestra un aviso.

217 217 

218Una sesión en la extensión de VS Code o en la aplicación de escritorio no puede mostrar el diálogo. Claude Code retiene allí un mensaje hasta el mismo plazo, como se describe en [Sesiones no interactivas](#non-interactive-sessions).218Una sesión en la extensión de VS Code o en la aplicación de escritorio no puede mostrar el diálogo. Claude Code conserva allí un mensaje retenido hasta el mismo plazo, como se describe en [Sesiones no interactivas](#non-interactive-sessions).

219 219 

220Claude Code retiene como máximo 100 mensajes, y pasado eso descarta los más antiguos.220Claude Code retiene como máximo 100 mensajes y, a partir de ese límite, descarta los más antiguos.

221 221 

222### Sesiones no interactivas222### Sesiones no interactivas

223 223 

224Claude Code vincula un socket de bandeja de entrada para una sesión [`claude -p`](/docs/es/headless) como una interactiva, así que un trabajador `-p` de larga duración puede recibir mensajes y aparece en el listado. Cuando inicias una sesión en [modo desnudo](/docs/es/headless#start-faster-with-bare-mode), Claude Code no vincula el socket, así que esa sesión no puede recibir mensajes y no aparece en la lista de agentes.224Claude Code vincula un socket de bandeja de entrada para una sesión de [`claude -p`](/docs/es/headless) igual que para una interactiva, de modo que un worker `-p` de larga duración puede recibir mensajes y aparece en el listado. Cuando inicias una sesión en [modo bare](/docs/es/headless#start-faster-with-bare-mode), Claude Code no vincula el socket, por lo que esa sesión no puede recibir mensajes y no aparece en la lista de agentes.

225 225 

226Una sesión `-p` no puede mostrar el diálogo de aprobación. Cuando el [valor predeterminado de entrada](#control-inbound-messages) retiene un mensaje allí, Claude Code lo mantiene para el mismo plazo [`dialogExpiry`](/docs/es/settings-reference#dialogexpiry) que el diálogo usa, cinco minutos por defecto:226Una sesión `-p` no puede mostrar el diálogo de aprobación. Cuando el [comportamiento de entrada predeterminado](#control-inbound-messages) retiene un mensaje allí, Claude Code lo conserva durante el mismo plazo de [`dialogExpiry`](/docs/es/settings-reference#dialogexpiry) que usa el diálogo, cinco minutos de forma predeterminada:

227 227 

228* **Antes del plazo**: si un cambio de modo o configuración permite el mensaje, Claude Code lo entrega.228* **Antes del plazo**: si un cambio de modo o de configuración permite el mensaje, Claude Code lo entrega.

229* **Pasado el plazo**: Claude Code descarta el mensaje e informa que expiró a un remitente que puede alcanzar.229* **Después del plazo**: Claude Code descarta el mensaje y lo informa como vencido a un remitente al que pueda llegar.

230 230 

231Establece `dialogExpiry` a `"never"` para mantener los mensajes retenidos por defecto hasta que la sesión termine. Un mensaje retenido por una configuración explícita `hold` no expira; Claude Code lo entrega solo cuando un `accept` se aplica después.231Establece `dialogExpiry` en `"never"` para conservar los mensajes retenidos por el comportamiento predeterminado hasta que termine la sesión. Un mensaje retenido por un ajuste `hold` explícito no vence; Claude Code lo entrega cuando más adelante se aplica un `accept`.

232 232 

233Para permitir que un trabajador `-p` tome mensajes desatendido, inicia con `crossSessionInbound` establecido a `accept` en su valor `--settings`. Un `accept` en tu configuración de usuario también funciona pero se aplica a cada sesión que ejecutas.233Para que un worker `-p` acepte mensajes sin supervisión, inícialo con `crossSessionInbound` establecido en `accept` en su valor de `--settings`. Un `accept` en tu configuración de usuario también funciona, pero se aplica a todas las sesiones que ejecutes.

234 234 

235### El socket de bandeja de entrada de la sesión235### El socket de bandeja de entrada de la sesión

236 236 

237Lee esta sección cuando una sesión que esperas no está en la lista de agentes, cuando quieres que un script o hook publique en una sesión, o cuando un comando sandboxed no puede alcanzar el socket.237Lee esta sección cuando una sesión que esperas no esté en la lista de agentes, cuando quieras que un script o un hook publique en una sesión, o cuando un comando en el sandbox no pueda llegar al socket.

238 238 

239Claude Code vincula un socket de bandeja de entrada para cada sesión con mensajería entre sesiones habilitada, donde otras sesiones en la máquina entregan mensajes. El socket es un socket de dominio Unix en macOS y Linux, incluido Linux dentro de WSL 2, y una tubería con nombre en Windows nativo. Para qué tipos de sesión vinculan uno, consulta [Sesiones no interactivas](#non-interactive-sessions).239Claude Code vincula un socket de bandeja de entrada para cada sesión con la mensajería entre sesiones habilitada, donde otras sesiones de la máquina entregan mensajes. El socket es un socket de dominio Unix en macOS y Linux, incluido Linux dentro de WSL 2, y una named pipe en Windows nativo. Para saber qué tipos de sesión vinculan uno, consulta [Sesiones no interactivas](#non-interactive-sessions).

240 240 

241Puedes encontrar la ruta del socket en dos lugares:241Puedes encontrar la ruta del socket en dos lugares:

242 242 

243* `/status` la muestra en la fila `Peer address`. La ruta tiene el prefijo `uds:`.243* `/status` la muestra en la fila `Peer address`. La ruta lleva el prefijo `uds:`.

244* Claude Code la exporta a [hooks](/docs/es/hooks) y comandos Bash como la variable de entorno [`CLAUDE_CODE_MESSAGING_SOCKET`](/docs/es/env-vars#variables):244* Claude Code la exporta a los [hooks](/docs/es/hooks) y a los comandos de Bash como la variable de entorno [`CLAUDE_CODE_MESSAGING_SOCKET`](/docs/es/env-vars#variables):

245 * En una sesión que inicia con mensajería activada, Claude Code exporta la variable antes de que cualquier hook se ejecute, incluido `SessionStart`.245 * En una sesión que se inicia con la mensajería activada, Claude Code exporta la variable antes de que se ejecute cualquier hook, incluido `SessionStart`.

246 246 

247En macOS y Linux, Claude Code restringe el socket a tu usuario del sistema operativo. En Windows nativo, en su lugar requiere que cada conexión se autentique primero con una clave que solo tu usuario del sistema operativo puede leer. De cualquier manera, en una máquina compartida las sesiones de otro usuario no pueden entregar a él.247En macOS y Linux, Claude Code restringe el socket a tu usuario del sistema operativo. En Windows nativo, en cambio, requiere que cada conexión se autentique primero con una clave que solo tu usuario del sistema operativo puede leer. En ambos casos, en una máquina compartida las sesiones de otro usuario no pueden entregarle mensajes.

248 248 

249En macOS y Linux, Claude Code también rechaza crear el socket en un directorio que no puede aceptar, por ejemplo uno que otro usuario posee, y usa un directorio privado por usuario, `/tmp/cc-socks-<uid>`, en su lugar. Cuando no puede aceptar ningún directorio, la sesión se ejecuta sin una bandeja de entrada: Claude Code muestra un aviso, `/status` muestra `unavailable` y la razón en su fila `Peer address`, y el registro [`--debug`](/docs/es/cli-reference#cli-flags) registra el rechazo completo.249En macOS y Linux, Claude Code también se niega a crear el socket en un directorio que no puede aceptar, por ejemplo uno cuyo propietario es otro usuario, y en su lugar usa un directorio privado por usuario, `/tmp/cc-socks-<uid>`. Cuando no puede aceptar ningún directorio, la sesión se ejecuta sin bandeja de entrada: Claude Code muestra un aviso, `/status` muestra `unavailable` y el motivo en su fila `Peer address`, y el registro de [`--debug`](/docs/es/cli-reference#cli-flags) registra el rechazo completo.

250 250 

251Junto a la ruta del socket, Claude Code exporta un token por sesión como [`CLAUDE_CODE_MESSAGING_TOKEN`](/docs/es/env-vars#variables). Un script que publica en el socket de su propia sesión puede enviar `{"type":"auth","token":"<token>"}` como la primera línea de su conexión, donde `<token>` es el valor de `CLAUDE_CODE_MESSAGING_TOKEN`. Si Claude Code requiere la línea depende de la plataforma:251Junto con la ruta del socket, Claude Code exporta un token por sesión como [`CLAUDE_CODE_MESSAGING_TOKEN`](/docs/es/env-vars#variables). Un script que publica en el socket de su propia sesión puede enviar `{"type":"auth","token":"<token>"}` como la primera línea de su conexión, donde `<token>` es el valor de `CLAUDE_CODE_MESSAGING_TOKEN`. Que Claude Code requiera esa línea depende de la plataforma:

252 252 

253* **macOS y Linux, incluido WSL 2**: la línea es opcional. Claude Code acepta una conexión con o sin ella.253* **macOS y Linux, incluido WSL 2**: la línea es opcional. Claude Code acepta una conexión con ella o sin ella.

254* **Windows nativo**: la línea es requerida. Claude Code cierra cualquier conexión cuya primera línea no sea una línea de autenticación válida y no entrega nada de esa conexión.254* **Windows nativo**: la línea es obligatoria. Claude Code cierra cualquier conexión cuya primera línea no sea una línea de autenticación válida y no entrega nada de esa conexión.

255 255 

256Abre la conexión solo cuando el mensaje que estás publicando esté listo. Claude Code cierra una conexión que no ha enviado una línea completa dentro de 30 segundos, así que captura la salida de un comando lento primero y luego abre la conexión para enviarlo.256Abre la conexión solo cuando el mensaje que vas a publicar esté listo. Claude Code cierra una conexión que no ha enviado una línea completa en 30 segundos, así que primero captura la salida de un comando lento y luego abre la conexión para enviarla.

257 257 

258Claude Code ejecuta mensajes que llegan en el socket a través de los mismos [controles de entrada](#control-inbound-messages) que cualquier otro mensaje de par, con una excepción y un requisito previo:258Claude Code procesa los mensajes que llegan al socket con los mismos [controles de entrada](#control-inbound-messages) que cualquier otro mensaje entre sesiones, con una excepción y un requisito previo:

259 259 

260* **Mensajes de propio-hijo**: cuando no se aplica ningún valor `crossSessionInbound`, Claude Code entrega un mensaje que verifica vino de los procesos hijo de la sesión, como un hook o comando Bash que publica de vuelta al socket de su propia sesión.260* **Mensajes de procesos hijos propios**: cuando no se aplica ningún valor de `crossSessionInbound`, Claude Code entrega un mensaje que verifica que provino de los procesos hijos de la propia sesión, como un hook o un comando de Bash que publica de vuelta en el socket de su propia sesión.

261 * En Linux, incluido dentro de WSL 2, Claude Code puede verificar por evidencia de proceso incluso para un hijo que ya ha salido. En macOS puede verificar de esa manera solo mientras el proceso de publicación aún se está ejecutando, y en un contenedor donde Claude Code se ejecuta como ID de proceso 1 no tiene evidencia de proceso en absoluto. En Windows nativo tampoco la tiene.261 * En Linux, incluido dentro de WSL 2, Claude Code puede verificarlo mediante evidencia de procesos incluso para un proceso hijo que ya terminó. En macOS solo puede verificarlo de esa forma mientras el proceso que publica sigue en ejecución, y en un contenedor donde Claude Code se ejecuta como el proceso con ID 1 no tiene ninguna evidencia de procesos. En Windows nativo tampoco tiene ninguna.

262 * En macOS después de que el proceso de publicación ha salido y en contenedores donde Claude Code se ejecuta como ID de proceso 1, esa evidencia de proceso falta, y Claude Code en su lugar verifica un hijo que envió el [`CLAUDE_CODE_MESSAGING_TOKEN`](/docs/es/env-vars#variables) exportado de la sesión en la línea de autenticación que abrió su conexión. En Windows nativo, ese token es la única forma en que Claude Code verifica un mensaje de propio-hijo.262 * En macOS después de que el proceso que publica haya terminado, y en contenedores donde Claude Code se ejecuta como el proceso con ID 1, esa evidencia de procesos no existe, y Claude Code en su lugar verifica un proceso hijo que envió el [`CLAUDE_CODE_MESSAGING_TOKEN`](/docs/es/env-vars#variables) exportado de la sesión en la línea de autenticación que abrió su conexión. En Windows nativo, ese token es la única forma en que Claude Code verifica un mensaje de un proceso hijo propio.

263 * Cuando Claude Code no puede verificar de ninguna manera, trata el mensaje como cualquier otro que no afirma ninguna clase de permiso, así que una sesión que omite mensajes de permiso lo retiene para tu aprobación.263 * Cuando Claude Code no puede verificarlo de ninguna de las dos formas, trata el mensaje como cualquier otro que no declara ninguna clase de permisos, por lo que una sesión que omite las solicitudes de permiso lo retiene para tu aprobación.

264* **Sesiones sandboxed**: controla si un comando Bash puede alcanzar el socket desde dentro del [sandbox](/docs/es/sandboxing) con la configuración de socket Unix del sandbox, [`sandbox.network.allowAllUnixSockets` y `sandbox.network.allowUnixSockets`](/docs/es/settings-reference#sandbox-settings).264* **Sesiones en el sandbox**: controla si un comando de Bash puede llegar al socket desde dentro del [sandbox](/docs/es/sandboxing) con los ajustes de sockets Unix del sandbox, [`sandbox.network.allowAllUnixSockets` y `sandbox.network.allowUnixSockets`](/docs/es/settings-reference#sandbox-settings).

265 265 

266## Restringir mensajería entre sesiones266## Restringir mensajería entre sesiones

267 267 

desktop.md +15 −8

Details

6 6 

7> Aproveche al máximo Claude Code Desktop: sesiones paralelas con aislamiento de Git, diseño de panel de arrastrar y soltar, terminal integrada y editor de archivos, chats laterales, uso de computadora, envíe sesiones desde su teléfono, revisión visual de diferencias, vistas previas de aplicaciones, monitoreo de PR, conectores y configuración empresarial.7> Aproveche al máximo Claude Code Desktop: sesiones paralelas con aislamiento de Git, diseño de panel de arrastrar y soltar, terminal integrada y editor de archivos, chats laterales, uso de computadora, envíe sesiones desde su teléfono, revisión visual de diferencias, vistas previas de aplicaciones, monitoreo de PR, conectores y configuración empresarial.

8 8 

9La aplicación Claude Desktop tiene tres pestañas: **Chat** para conversaciones, **Cowork** para [Dispatch y trabajo agentico más largo](https://claude.com/product/cowork), y **Code** para desarrollo de software. Esta página es la referencia para la pestaña Code.9En la aplicación Claude Desktop, Claude Code es la pestaña **Code**. La aplicación también tiene chat y [Cowork](https://claude.com/product/cowork), que se encarga de Dispatch y del trabajo agéntico más largo. Esta página es la referencia para la pestaña Code.

10 10 

11> **[Descargar para macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs)**11> **[Descargar para macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs)**

12>12>


214 214 

215### Ver los detalles de la sesión215### Ver los detalles de la sesión

216 216 

217El panel de detalles de la sesión es un conjunto de tarjetas junto al chat que muestran dónde se ejecuta la sesión, qué cambió y qué está ejecutando. El panel aparece después de que inicias una sesión, siempre que el chat sea lo bastante ancho para mostrarlo.217El panel de detalles de la sesión es un conjunto de tarjetas junto al chat que muestran dónde se ejecuta la sesión, qué cambió, qué está ejecutando y su uso de contexto. El panel aparece después de que inicias una sesión, siempre que el chat sea lo bastante ancho para mostrarlo.

218 218 

219#### Ocultar o mostrar el panel de detalles de la sesión219#### Ocultar o mostrar el panel de detalles de la sesión

220 220 


298 298 

299### Verificar uso299### Verificar uso

300 300 

301Haz clic en el anillo de uso junto al selector de modelo para ver tu uso actual de la ventana de contexto y tu uso del plan para el período. El uso de contexto es por sesión; el uso del plan se comparte en todas tus superficies de Claude Code.301Para ver qué tan llena está la ventana de contexto de esta sesión, identifica el diseño de tu pestaña Code:

302 

303* **Diseño actual**: el encabezado de la tarjeta **Context** en el [panel de detalles de la sesión](#see-session-details) lo muestra como un porcentaje. Abre la tarjeta para ver qué está usando la ventana por categoría.

304* **[Diseño anterior](#check-which-layout-you-have)**: haz clic en el anillo de uso junto al selector de modelo. Su ventana emergente muestra tu uso de la ventana de contexto.

305 

306En cualquiera de los dos diseños, escribe `/context` en el cuadro de prompt para mostrar en el chat un desglose por categoría de la ventana de contexto de esta sesión.

307 

308Ambos diseños tienen el anillo de uso junto al selector de modelo. Haz clic en él para ver tu uso del plan, que se comparte en todas tus superficies de Claude Code.

302 309 

303## Permitir que Claude use su computadora310## Permitir que Claude use su computadora

304 311 


398 405 

399> [!NOTE]406> [!NOTE]

400>407>

401> El aislamiento de sesión requiere [Git](https://git-scm.com/downloads). La mayoría de las Macs incluyen Git de forma predeterminada. Ejecuta `git --version` en Terminal para verificarlo; si imprime un número de versión, Git está instalado. Si encuentras errores de Git, pide ayuda a Claude en la [pestaña Cowork](https://claude.com/product/cowork) para solucionar problemas de tu configuración.408> El aislamiento de sesión requiere [Git](https://git-scm.com/downloads). La mayoría de las Macs incluyen Git de forma predeterminada. Ejecuta `git --version` en Terminal para verificarlo; si imprime un número de versión, Git está instalado. Si encuentras errores de Git, pide ayuda a Claude en [Cowork](https://claude.com/product/cowork) para solucionar problemas de tu configuración.

402 409 

403### Agregar carpetas a una sesión410### Agregar carpetas a una sesión

404 411 


462 469 

463Cuando Claude envía un mensaje a otra sesión a través de esta superficie, Claude Code lo muestra allí como una tarjeta etiquetada con el título de la sesión que lo envía y un enlace de vuelta, para que siempre puedas saber de dónde vino un mensaje. Si la sesión receptora está en medio de una tarea, Claude Code retiene el mensaje y Claude lo lee una vez que el trabajo actual termina. El Claude receptor puede responder, y Claude Code entrega la respuesta de vuelta a través de esta superficie. Claude no puede entregar mensajes a una sesión archivada y te avisa cuando un mensaje no se entrega.470Cuando Claude envía un mensaje a otra sesión a través de esta superficie, Claude Code lo muestra allí como una tarjeta etiquetada con el título de la sesión que lo envía y un enlace de vuelta, para que siempre puedas saber de dónde vino un mensaje. Si la sesión receptora está en medio de una tarea, Claude Code retiene el mensaje y Claude lo lee una vez que el trabajo actual termina. El Claude receptor puede responder, y Claude Code entrega la respuesta de vuelta a través de esta superficie. Claude no puede entregar mensajes a una sesión archivada y te avisa cuando un mensaje no se entrega.

464 471 

465Claude Code aplica cuatro comportamientos de seguridad entre sesiones:472Claude Code aplica tres comportamientos de seguridad entre sesiones:

466 473 

467* Recibes una tarjeta de aprobación antes de que Claude archive una sesión, excepto en el modo automático y el modo Bypass permissions, donde Claude puede archivar una sesión sin ella. Para que se te pregunte, cambia a Manual.474* Recibes una tarjeta de aprobación antes de que Claude archive una sesión, excepto en el modo automático y el modo Bypass permissions, donde Claude puede archivar una sesión sin ella. Para que se te pregunte, cambia a Manual.

468* A través de esta superficie, Claude no puede enviar mensajes entre sesiones desde una sesión que nadie está viendo, como una ejecución de tarea programada, ni puede entregar mensajes en una.

469* Claude Code verifica cada mensaje de esta superficie contra los [controles de entrada](/docs/es/cross-session-messaging#control-inbound-messages) de la sesión receptora, incluso cuando la sesión receptora no tiene [mensajería entre sesiones](/docs/es/cross-session-messaging#availability) en sí misma. Si estableces [`crossSessionInbound`](/docs/es/settings-reference#crosssessioninbound) en `refuse` en la sesión receptora, Claude Code descarta los mensajes de esta superficie. Claude Code reporta el rechazo a la aplicación de escritorio de Claude. Antes de v2.1.234, Claude Code descartaba cada mensaje de esta superficie dirigido a una sesión receptora sin mensajería entre sesiones.475* Claude Code verifica cada mensaje de esta superficie contra los [controles de entrada](/docs/es/cross-session-messaging#control-inbound-messages) de la sesión receptora, incluso cuando la sesión receptora no tiene [mensajería entre sesiones](/docs/es/cross-session-messaging#availability) en sí misma. Si estableces [`crossSessionInbound`](/docs/es/settings-reference#crosssessioninbound) en `refuse` en la sesión receptora, Claude Code descarta los mensajes de esta superficie. Claude Code reporta el rechazo a la aplicación de escritorio de Claude. Antes de v2.1.234, Claude Code descartaba cada mensaje de esta superficie dirigido a una sesión receptora sin mensajería entre sesiones.

470* Claude Code cita cada mensaje entrante y lo atribuye a la sesión que lo envió, y Claude sigue respetando la configuración de permisos propia de la sesión receptora al actuar sobre uno.476* Claude Code cita cada mensaje entrante y lo atribuye a la sesión que lo envió, y Claude sigue respetando la configuración de permisos propia de la sesión receptora al actuar sobre uno.

471 477 


514 520 

515### Sesiones desde Dispatch521### Sesiones desde Dispatch

516 522 

517[Dispatch](https://support.claude.com/en/articles/13947068) es una conversación persistente con Claude que vive en la pestaña [Cowork](https://claude.com/product/cowork). Le envías a Dispatch un mensaje con una tarea, y decide cómo manejarla.523[Dispatch](https://support.claude.com/en/articles/13947068) es una conversación persistente con Claude que vive en [Cowork](https://claude.com/product/cowork). Le envías a Dispatch un mensaje con una tarea, y decide cómo manejarla.

518 524 

519Una tarea puede terminar como una sesión de Code de dos formas: solicitas una directamente, como "abre una sesión de Claude Code y corrige el error de inicio de sesión", o Dispatch decide que la tarea es trabajo de desarrollo e inicia una por su cuenta. Las tareas que normalmente se enrutan a Code incluyen corregir errores, actualizar dependencias, ejecutar pruebas o abrir pull requests. La investigación, la edición de documentos y el trabajo con hojas de cálculo permanecen en Cowork.525Una tarea puede terminar como una sesión de Code de dos formas: solicitas una directamente, como "abre una sesión de Claude Code y corrige el error de inicio de sesión", o Dispatch decide que la tarea es trabajo de desarrollo e inicia una por su cuenta. Las tareas que normalmente se enrutan a Code incluyen corregir errores, actualizar dependencias, ejecutar pruebas o abrir pull requests. La investigación, la edición de documentos y el trabajo con hojas de cálculo permanecen en Cowork.

520 526 


528 534 

529## Extender Claude Code535## Extender Claude Code

530 536 

531Conecte servicios externos, agregue flujos de trabajo reutilizables, personalice el comportamiento de Claude y configure servidores de vista previa. Para administrar conectores, skills y plugins en un solo lugar, haga clic en **Customize** en la barra lateral. La pestaña [Cowork](https://claude.com/product/cowork) en la aplicación de escritorio obtiene sus skills, plugins y conectores de esta configuración de Customize, que se sincroniza a través de su cuenta de claude.ai, no desde el directorio `~/.claude` de la CLI.537Conecta servicios externos, agrega flujos de trabajo reutilizables, personaliza el comportamiento de Claude y configura servidores de vista previa. Para administrar conectores, skills y plugins en un solo lugar, haz clic en **Customize** en la barra lateral. [Cowork](https://claude.com/product/cowork) en la aplicación de escritorio obtiene sus skills, plugins y conectores de esta configuración de Customize, que se sincroniza a través de tu cuenta de claude.ai, no desde el directorio `~/.claude` de la CLI.

532 538 

533Claude Code también carga los skills y plugins habilitados para su cuenta de claude.ai en sesiones de terminal donde inicia sesión con la misma cuenta. Consulte [Skills sincronizados desde claude.ai](/docs/es/skills#how-synced-skills-behave) y [Plugins sincronizados desde claude.ai](/docs/es/plugins/loading#synced-plugins).539Claude Code también carga los skills y plugins habilitados para su cuenta de claude.ai en sesiones de terminal donde inicia sesión con la misma cuenta. Consulte [Skills sincronizados desde claude.ai](/docs/es/skills#how-synced-skills-behave) y [Plugins sincronizados desde claude.ai](/docs/es/plugins/loading#synced-plugins).

534 540 


1659*.livepreview.claude.ai1665*.livepreview.claude.ai

1660claude.com1666claude.com

1661platform.claude.com1667platform.claude.com

1668sso.claude.com

1662*.livepreview.claude.app1669*.livepreview.claude.app

1663*.claudeusercontent.com1670*.claudeusercontent.com

1664*.claudemcpcontent.com1671*.claudemcpcontent.com

Details

21 21 

22### Requisitos de Cowork22### Requisitos de Cowork

23 23 

24Cowork es la pestaña de escritorio para [Dispatch y trabajo agéntico más largo](https://claude.com/docs/cowork/overview). En Linux, Cowork ejecuta esas tareas en una máquina virtual que la aplicación de escritorio aloja con QEMU y KVM. Para usar Cowork, su máquina necesita:24Cowork es la parte de la aplicación de escritorio para [Dispatch y trabajo agéntico más largo](https://claude.com/docs/cowork/overview). En Linux, Cowork ejecuta esas tareas en una máquina virtual que la aplicación de escritorio aloja con QEMU y KVM. Para usar Cowork, tu máquina necesita:

25 25 

26* **Virtualización de hardware**: activada en la configuración del firmware. Sin ella, la pestaña Cowork reporta "Cowork requires hardware virtualization (KVM)".26* **Virtualización de hardware**: activada en la configuración del firmware. Sin ella, Cowork reporta "Cowork requires hardware virtualization (KVM)".

27* **Firmware QEMU y UEFI**: `qemu-system-x86`, `ovmf`, y `virtiofsd` en x86\_64, o `qemu-system-arm`, `qemu-efi-aarch64`, y `virtiofsd` en arm64. `apt install claude-desktop` los instala por defecto como paquetes recomendados. Si instaló con `--no-install-recommends`, o su sistema es una imagen mínima que omite paquetes recomendados, la pestaña Cowork reporta "Cowork requires QEMU" y muestra el comando `apt install` a ejecutar. Ubuntu 22.04 no tiene paquete `virtiofsd`; la aplicación usa una copia incluida allí.27* **Firmware QEMU y UEFI**: `qemu-system-x86`, `ovmf` y `virtiofsd` en x86\_64, o `qemu-system-arm`, `qemu-efi-aarch64` y `virtiofsd` en arm64. `apt install claude-desktop` los instala por defecto como paquetes recomendados. Si instalaste con `--no-install-recommends`, o tu sistema es una imagen mínima que omite paquetes recomendados, Cowork reporta "Cowork requires QEMU" y muestra el comando `apt install` que debes ejecutar. Ubuntu 22.04 no tiene paquete `virtiofsd`; la aplicación usa una copia incluida allí.

28* **Acceso a `/dev/kvm`**: agregue su usuario al grupo `kvm` con `sudo usermod -aG kvm $USER`, luego cierre sesión e inicie sesión nuevamente. Algunos entornos de escritorio otorgan acceso al usuario conectado a `/dev/kvm` sin el grupo, pero Cowork también necesita `/dev/vhost-vsock`, que solo los miembros del grupo `kvm` pueden abrir. Únase al grupo incluso si `/dev/kvm` ya funciona para usted.28* **Acceso a `/dev/kvm`**: agregue su usuario al grupo `kvm` con `sudo usermod -aG kvm $USER`, luego cierre sesión e inicie sesión nuevamente. Algunos entornos de escritorio otorgan acceso al usuario conectado a `/dev/kvm` sin el grupo, pero Cowork también necesita `/dev/vhost-vsock`, que solo los miembros del grupo `kvm` pueden abrir. Únase al grupo incluso si `/dev/kvm` ya funciona para usted.

29 29 

30La aplicación verifica estos requisitos una vez al iniciar: reiníciela después de instalar paquetes, y cierre sesión e inicie sesión nuevamente después de unirse al grupo. Si `/dev/vhost-vsock` falta y su kernel en ejecución no tiene directorio de módulos bajo `/lib/modules`, la pestaña Cowork reporta que el kernel no incluye el soporte de virtualización que Cowork necesita y que no se puede agregar manualmente. Esta combinación es común en ChromeOS y en entornos Linux basados en contenedores.30La aplicación verifica estos requisitos una vez al iniciar: reiníciala después de instalar paquetes, y cierra sesión e inicia sesión nuevamente después de unirte al grupo. Si falta `/dev/vhost-vsock` y tu kernel en ejecución no tiene directorio de módulos bajo `/lib/modules`, Cowork reporta que el kernel no incluye el soporte de virtualización que Cowork necesita y que no se puede agregar manualmente. Esta combinación es común en ChromeOS y en entornos Linux basados en contenedores.

31 31 

32## Instalar32## Instalar

33 33 


71 71 

72Lanza **Claude** desde tu lanzador de aplicaciones, o ejecuta `claude-desktop` desde una terminal, e inicia sesión con tu cuenta de Anthropic.72Lanza **Claude** desde tu lanzador de aplicaciones, o ejecuta `claude-desktop` desde una terminal, e inicia sesión con tu cuenta de Anthropic.

73 73 

74La aplicación de Linux inicia sesión de la misma manera que en macOS y Windows: con una suscripción a claude.ai, o a través del SSO de tu organización. Desktop no acepta una clave de API de Claude Console directamente; usa la [CLI](/docs/es/quickstart) para la autenticación con clave de API. Para implementaciones empresariales que enrutan Desktop a la Plataforma de Agentes de Google Cloud o a una puerta de enlace de LLM, consulta [Claude Desktop en 3P](https://claude.com/docs/third-party/claude-desktop/overview) y [configuración de red](/docs/es/network-config).74La aplicación de Linux inicia sesión de la misma manera que en macOS y Windows: con una suscripción a claude.ai, o a través del SSO de tu organización. Para la autenticación con clave de API, usa la [CLI](/docs/es/quickstart). Para usar Desktop con Amazon Bedrock, Agent Platform de Google Cloud, Microsoft Foundry o un gateway de LLM en su lugar, consulta [Claude Desktop en 3P](https://claude.com/docs/third-party/claude-desktop/overview). Para servidores proxy y autoridades de certificación personalizadas en esos despliegues, consulta [configuración de red](/docs/es/network-config).

75 75 

76### Instalar desde un archivo descargado76### Instalar desde un archivo descargado

77 77 


153 153 

154### Cowork no está disponible154### Cowork no está disponible

155 155 

156Si la pestaña Cowork muestra uno de estos mensajes, corrija el requisito que nombra y luego reinicie la aplicación:156Si Cowork muestra uno de estos mensajes, corrige el requisito que nombra y luego reinicia la aplicación:

157 157 

158* **Cowork requiere QEMU**: instale los [paquetes QEMU y firmware UEFI](#cowork-requirements) que el mensaje enumera.158* **Cowork requiere QEMU**: instale los [paquetes QEMU y firmware UEFI](#cowork-requirements) que el mensaje enumera.

159* **Cowork requiere virtualización de hardware (KVM)**: active la [virtualización de hardware](#cowork-requirements) en la configuración del firmware.159* **Cowork requiere virtualización de hardware (KVM)**: active la [virtualización de hardware](#cowork-requirements) en la configuración del firmware.

Details

6 6 

7> Instale la aplicación de escritorio de Claude, abra la pestaña Code e inicie su primera sesión de Claude Code en una carpeta de proyecto en su computadora.7> Instale la aplicación de escritorio de Claude, abra la pestaña Code e inicie su primera sesión de Claude Code en una carpeta de proyecto en su computadora.

8 8 

9La aplicación de escritorio le proporciona Claude Code con una interfaz gráfica, para que pueda pedirle a Claude que trabaje en el código de una carpeta en su computadora y revise sus cambios sin usar una terminal. Esta página lo guía a través de la instalación de la aplicación e iniciando su primera sesión en la pestaña **Code**. Claude Code requiere una [suscripción Pro, Max, Team o Enterprise](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_pricing).9La aplicación de escritorio te proporciona Claude Code con una interfaz gráfica. Puedes pedirle a Claude que trabaje en el código de una carpeta en tu computadora y revisar sus cambios sin usar una terminal.

10 

11Claude Code está en la pestaña **Code**, en la parte superior de la barra lateral de la aplicación. Esta página te guía a través de la instalación de la aplicación y el inicio de tu primera sesión allí. Claude Code requiere una [suscripción Pro, Max, Team o Enterprise](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_pricing).

10 12 

11> **[Descargar para macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs)**13> **[Descargar para macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs)**

12>14>


27> Estos casos se tratan en otras páginas:29> Estos casos se tratan en otras páginas:

28>30>

29> * **Ya está configurado**: consulte [Usar Claude Code Desktop](/docs/es/desktop) para todo lo que la pestaña Code puede hacer31> * **Ya está configurado**: consulte [Usar Claude Code Desktop](/docs/es/desktop) para todo lo que la pestaña Code puede hacer

30> * **Desea `claude` en su terminal**: [instale la CLI](/docs/es/quickstart) por separado32> * **Quieres `claude` en tu terminal**: [instala la CLI](/docs/es/quickstart) por separado

31 33> * **Usas chat o Cowork**: consulta el [Centro de Ayuda de Claude](https://support.claude.com/)

32La aplicación de escritorio tiene tres pestañas:34> * **Necesitas más información sobre la instalación o implementación de la aplicación de escritorio**: consulta los [artículos de soporte de Claude Desktop](https://support.claude.com/en/collections/16163169-claude-desktop)

33 

34* **Chat**: Conversación general sin acceso a archivos, similar a claude.ai.

35* **Cowork**: Un agente autónomo de fondo que trabaja en tareas de forma independiente mientras realiza otro trabajo.

36* **Code**: Un asistente de codificación interactivo con acceso directo a sus archivos locales. Dependiendo del modo de permisos, usted aprueba cada cambio conforme Claude lo propone o revisa los cambios después de que Claude los realiza.

37 

38Chat y Cowork se tratan en el [Centro de Ayuda de Claude](https://support.claude.com/); la instalación e implementación de la aplicación de escritorio se tratan en los [artículos de soporte de Claude Desktop](https://support.claude.com/en/collections/16163169-claude-desktop). Esta página se enfoca en la pestaña **Code**.

39 35 

40## Instalar36## Instalar

41 37 

42**1. Instalar e iniciar sesión**38**1. Instalar e iniciar sesión**

43 39 

44En macOS y Windows, descargue el instalador desde los enlaces anteriores y ejecútelo. En Linux, siga los pasos de instalación en [Claude Desktop en Linux](/docs/es/desktop-linux). Inicie Claude desde su carpeta Aplicaciones en macOS, el menú Inicio en Windows, o su lanzador de aplicaciones en Linux, luego inicie sesión con su cuenta de Anthropic.40En macOS y Windows, descarga el instalador desde los enlaces anteriores y ejecútalo. En Linux, sigue los pasos de instalación en [Claude Desktop en Linux](/docs/es/desktop-linux). Inicia Claude desde tu carpeta Aplicaciones en macOS, el menú Inicio en Windows o tu lanzador de aplicaciones en Linux, y luego inicia sesión con tu cuenta de Anthropic.

45 41 

46**2. Abrir la pestaña Code**42**2. Abrir la pestaña Code**

47 43 

48Haga clic en la pestaña **Code** en el centro superior. Si hacer clic en Code le solicita actualizar, debe [suscribirse a un plan de pago](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_upgrade) primero. Si le solicita iniciar sesión en línea, complete el inicio de sesión y reinicie la aplicación. Si ve un error 403, consulte [solución de problemas de autenticación](/docs/es/desktop#403-or-authentication-errors-in-the-code-tab).44Haz clic en la pestaña **Code** en la parte superior de la barra lateral. Si las pestañas solo muestran íconos, pasa el cursor sobre uno para ver su nombre. Si aparece una solicitud o un error después de hacer clic en **Code**, sigue la solución correspondiente:

45 

46* **Solicitud para actualizar**: primero debes [suscribirte a un plan de pago](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_upgrade)

47* **Solicitud para iniciar sesión en línea**: completa el inicio de sesión y reinicia la aplicación

48* **Error 403**: consulta [solución de problemas de autenticación](/docs/es/desktop#403-or-authentication-errors-in-the-code-tab)

49 49 

50La aplicación de escritorio incluye Claude Code, por lo que no necesita instalar Node.js o la CLI para usar la pestaña Code.50La aplicación de escritorio incluye Claude Code, por lo que no necesita instalar Node.js o la CLI para usar la pestaña Code.

51 51 


87 87 

88Revisa tu [modo de permisos](/docs/es/desktop#choose-a-permission-mode) en la fila debajo del cuadro del prompt para ver si Claude espera tu aprobación:88Revisa tu [modo de permisos](/docs/es/desktop#choose-a-permission-mode) en la fila debajo del cuadro del prompt para ver si Claude espera tu aprobación:

89 89 

90* **Auto or Accept edits**: Claude aplica sus cambios de archivo, y aparece un indicador como `+12 -1` para que pueda revisarlos en la vista de diferencias90* **Auto o Accept edits**: Claude aplica sus cambios de archivo, y aparece un indicador como `+12 -1` para que puedas revisarlos en la [vista de diff](/docs/es/desktop#review-changes-with-diff-view)

91* **Manual**: Claude propone cada cambio y espera tu aprobación antes de aplicarlo91* **Manual**: Claude propone cada cambio y espera tu aprobación antes de aplicarlo

92 92 

93En modo Manual, verá:93En modo Manual, verá:

94 94 

951. Una [diff view](/docs/es/desktop#review-changes-with-diff-view) que muestra exactamente qué cambiará en cada archivo951. Un diff que muestra exactamente qué cambiará

962. Botones Aceptar/Rechazar para aprobar o rechazar cada cambio962. Botones para aprobar o rechazar cada cambio

973. Actualizaciones en tiempo real mientras Claude trabaja en su solicitud973. Actualizaciones en tiempo real mientras Claude trabaja en su solicitud

98 98 

99## ¿Y ahora qué?99## ¿Y ahora qué?

Details

28| Acceso a archivos locales | No (clon nuevo) | Sí | Sí |28| Acceso a archivos locales | No (clon nuevo) | Sí | Sí |

29| Servidores MCP | Conectores configurados por tarea | [Archivos de configuración](/docs/es/mcp) y conectores | Heredado de la sesión |29| Servidores MCP | Conectores configurados por tarea | [Archivos de configuración](/docs/es/mcp) y conectores | Heredado de la sesión |

30| Solicitudes de permiso | No (se ejecuta de forma autónoma) | Configurable por tarea | Heredado de la sesión |30| Solicitudes de permiso | No (se ejecuta de forma autónoma) | Configurable por tarea | Heredado de la sesión |

31| Programación personalizable | A través de `/schedule` en la CLI | Sí | Sí |31| Programación personalizable | Sí | Sí | Sí |

32| Intervalo mínimo | 1 hora | 1 minuto | 1 minuto |32| Intervalo mínimo | 1 hora | 1 minuto cuando Claude lo establece, [1 hora en los formularios](/docs/es/desktop-scheduled-tasks#schedule-options) | 1 minuto |

33 33 

34> [!TIP]34> [!TIP]

35>35>


61 61 

62**5. Activa Only on this computer**62**5. Activa Only on this computer**

63 63 

64Por ahora, omite la tarjeta **Trigger** y expande **Advanced settings** debajo de ella. En la pestaña **General**, activa **Only on this computer**. Con esta opción activada, la tarea se ejecuta en tu máquina en una carpeta local, y la tarjeta **Trigger** ofrece los ajustes preestablecidos que se indican en [Opciones de programación](#schedule-options).64Por ahora, omite la tarjeta **Trigger** y expande **Advanced settings** debajo de ella. En la pestaña **General**, activa **Only on this computer**. Con esta opción activada, la tarea se ejecuta en tu máquina en una carpeta local.

65 65 

66Si el interruptor no está disponible, quita el repositorio o el disparador de evento de GitHub o de API, porque estos convierten la tarea en una [tarea programada en la nube](/docs/es/routines).66Si el interruptor no está disponible, quita el repositorio o el disparador de evento de GitHub o de API, porque estos convierten la tarea en una [tarea programada en la nube](/docs/es/routines).

67 67 


81 81 

82Haz clic en **Create**. Si aún no has confiado en la carpeta, Desktop te pide que confíes en ella en este momento. Se abre la página de detalles de la tarea.82Haz clic en **Create**. Si aún no has confiado en la carpeta, Desktop te pide que confíes en ella en este momento. Se abre la página de detalles de la tarea.

83 83 

84En la página de detalles, haz clic en el ícono de lápiz para abrir el [formulario **Edit**](#manage-scheduled-tasks). Ahí puedes cambiar la **Description** que Desktop completó a partir de tus instrucciones, seleccionar **Worktree** o cambiar la programación a **Manual**.84En la página de detalles, haz clic en el ícono de lápiz para abrir el [formulario **Edit**](#manage-scheduled-tasks). Ahí puedes cambiar la **Description** que Desktop completó a partir de tus instrucciones, seleccionar **Worktree** o cambiar la programación a **Manual** o **Custom**.

85 85 

86También puedes crear una tarea describiendo lo que deseas en cualquier sesión. Por ejemplo, "configura una revisión de código diaria que se ejecute cada mañana a las 9am" crea una tarea recurrente. Una solicitud como "recuérdame mañana a las 3pm que verifique el deploy" crea una tarea única que se desactiva después de ejecutarse.86También puedes crear una tarea describiendo lo que deseas en cualquier sesión. Por ejemplo, "configura una revisión de código diaria que se ejecute cada mañana a las 9am" crea una tarea recurrente. Una solicitud como "recuérdame mañana a las 3pm que verifique el deploy" crea una tarea única que se desactiva después de ejecutarse.

87 87 


95* **Description**: ingresa una descripción. **Create** permanece no disponible hasta que lo hagas.95* **Description**: ingresa una descripción. **Create** permanece no disponible hasta que lo hagas.

96* **El cuadro de instrucciones**: ingresa lo que Claude debe hacer cuando se ejecute la tarea. Selecciona el modo de permisos y el modelo en los menús del cuadro.96* **El cuadro de instrucciones**: ingresa lo que Claude debe hacer cuando se ejecute la tarea. Selecciona el modo de permisos y el modelo en los menús del cuadro.

97* **Working folder**: selecciona la carpeta en la que se ejecuta la tarea. **Create** permanece no disponible hasta que selecciones una.97* **Working folder**: selecciona la carpeta en la que se ejecuta la tarea. **Create** permanece no disponible hasta que selecciones una.

98* **Trigger**: selecciona una programación. **Custom** acepta una expresión cron. Para los demás ajustes preestablecidos, consulta [Opciones de programación](#schedule-options).98* **Trigger**: selecciona una programación. Para los ajustes preestablecidos, consulta [Opciones de programación](#schedule-options).

99 99 

100Haz clic en **Create**. Se abre la página de detalles de la tarea.100Haz clic en **Create**. Se abre la página de detalles de la tarea.

101 101 

102## Opciones de programación102## Opciones de programación

103 103 

104Cuando activas **Only on this computer** en **Advanced settings**, la tarjeta **Trigger** ofrece Hourly, Daily, Weekdays y Weekly. El [formulario **Edit**](#manage-scheduled-tasks) de la tarea también ofrece **Manual**.104Cuando activas **Only on this computer** en **Advanced settings**, la tarjeta **Trigger** ofrece Hourly, Daily, Weekdays y Weekly. Para obtener **Manual** o **Custom** en una tarea así, abre su [formulario **Edit**](#manage-scheduled-tasks) después de crearla. Ese formulario y el [diálogo con **Only on this computer** en la parte superior](#dialog-with-only-on-this-computer-at-the-top) ofrecen estas seis opciones:

105 105 

106* **Hourly**: se ejecuta cada hora106* **Hourly**: se ejecuta cada hora

107* **Daily**: se ejecuta todos los días a la hora local que seleccione107* **Daily**: se ejecuta todos los días a la hora local que seleccione

108* **Weekdays**: igual que Daily pero omite sábado y domingo108* **Weekdays**: igual que Daily pero omite sábado y domingo

109* **Weekly**: muestra un selector de hora y un selector de día109* **Weekly**: muestra un selector de hora y un selector de día

110* **Manual**: sin programación, solo se ejecuta cuando haces clic en **Run now**. Útil para guardar un prompt que activas bajo demanda110* **Manual**: sin programación, solo se ejecuta cuando haces clic en **Run now**. Útil para guardar un prompt que activas bajo demanda

111* **Custom**: se ejecuta según una expresión cron que ingresas y que se evalúa en tu hora local, como `0 9 * * *` para las 9:00 AM todos los días. Escribe los días de la semana y los meses como números, ya que no se aceptan sus nombres. El domingo es `0`, no `7`. El formulario rechaza una expresión que se ejecute con más frecuencia que una vez por hora.

111 112 

112Para intervalos que el selector no ofrece, como cada 15 minutos, el primero de cada mes, o una única ejecución en un momento futuro específico, pídale a Claude en cualquier sesión de Desktop que configure la programación. Use lenguaje natural; por ejemplo, "programa una tarea para ejecutar todas las pruebas cada 6 horas."113También puedes pedirle a Claude en cualquier sesión de Desktop que configure la programación. Claude no está sujeto al límite de una vez por hora y puede configurar una única ejecución en un momento futuro. Por ejemplo, pide "ejecuta el conjunto de pruebas cada 30 minutos" o "el próximo lunes a las 9am, resume los pull requests fusionados desde el viernes."

113 114 

114## Cómo se ejecutan las tareas programadas115## Cómo se ejecutan las tareas programadas

115 116 


121>122>

122> Para tareas que necesitan ejecutarse incluso cuando tu computadora está apagada, o que deben activarse mediante una llamada a la API o un evento de GitHub, crea una [tarea programada en la nube](/docs/es/routines) en su lugar.123> Para tareas que necesitan ejecutarse incluso cuando tu computadora está apagada, o que deben activarse mediante una llamada a la API o un evento de GitHub, crea una [tarea programada en la nube](/docs/es/routines) en su lugar.

123 124 

124Cuando se activa una tarea local, aparece una nueva sesión bajo una sección **Scheduled** en la barra lateral. Ábrela para ver qué hizo Claude, revisar cambios o responder a solicitudes de permiso. Claude puede editar archivos, ejecutar comandos, crear commits y abrir pull requests, lo mismo que en una sesión que inicias tú mismo.125### Encontrar la sesión de una ejecución

126 

127Para abrir la sesión que inició una ejecución, ve a la [página de detalles](#manage-scheduled-tasks) de la tarea y haz clic en la fila de esa ejecución en la lista **History**.

128 

129La lista de sesiones de la barra lateral también puede mostrar un grupo **Scheduled**, con una fila por tarea. Para abrir la sesión de la ejecución más reciente de una tarea, haz clic en la fila de la tarea en ese grupo. Para mostrar el grupo, [comprueba qué diseño tienes](/docs/es/desktop#check-which-layout-you-have):

130 

131* **Diseño actual**: abre el [menú **Group and sort**](/docs/es/desktop#organize-and-find-sessions), selecciona **Show** y luego selecciona **Scheduled**. El grupo comienza contraído, así que haz clic en su encabezado para expandirlo. **Show** incluye **Scheduled** cuando al menos una de tus tareas está **Active**, el **Status** que muestra la página de detalles de una tarea. Si no aparece en la lista, usa la lista **History**, que funciona tanto si el grupo se muestra como si no.

132* **Diseño anterior**: el grupo está en la lista de sesiones sin que tengas que activar nada

133 

134En la sesión de una ejecución, sin importar cómo llegaste a ella, puedes ver qué hizo Claude, revisar cambios y responder a solicitudes de permiso. Claude puede editar archivos, ejecutar comandos, crear commits y abrir pull requests, lo mismo que en una sesión que inicias tú mismo.

125 135 

126## Ejecuciones perdidas136## Ejecuciones perdidas

127 137 


131 141 

132## Permisos para tareas programadas142## Permisos para tareas programadas

133 143 

134Cada tarea tiene su propio modo de permiso, que establece al crear o editar la tarea. Las reglas de permiso de `~/.claude/settings.json` también se aplican a sesiones de tareas programadas. Si una tarea se ejecuta en [Manual mode](/docs/es/desktop#choose-a-permission-mode) y necesita ejecutar una herramienta para la que no tiene permiso, la ejecución se detiene hasta que la apruebe. La sesión permanece abierta en la barra lateral para que pueda responder más tarde.144Cada tarea tiene su propio modo de permisos, que estableces al crear o editar la tarea. Las reglas de tipo allow de `~/.claude/settings.json` también se aplican a las sesiones de tareas programadas. Si una tarea se ejecuta en [Manual mode](/docs/es/desktop#choose-a-permission-mode) y necesita ejecutar una herramienta para la que no tiene permiso, la ejecución se detiene hasta que la apruebes. Para aprobarla, [busca la sesión de la ejecución](#find-a-runs-session) y responde a la solicitud de permiso allí.

135 145 

136Para evitar detenciones, haga clic en **Run now** después de crear una tarea, observe las solicitudes de permiso y seleccione "always allow" para cada una. Las ejecuciones futuras de esa tarea aprueban automáticamente las mismas herramientas sin solicitar. Puede revisar y revocar estas aprobaciones desde la página de detalles de la tarea.146Para evitar detenciones, haga clic en **Run now** después de crear una tarea, observe las solicitudes de permiso y seleccione "always allow" para cada una. Las ejecuciones futuras de esa tarea aprueban automáticamente las mismas herramientas sin solicitar. Puede revisar y revocar estas aprobaciones desde la página de detalles de la tarea.

137 147 


146* **Edit**: cambie las instrucciones, la programación, la carpeta u otras configuraciones156* **Edit**: cambie las instrucciones, la programación, la carpeta u otras configuraciones

147* **Review history**: vea cada ejecución anterior, incluidas las ejecuciones omitidas. Pase el cursor sobre una entrada omitida para ver por qué: su computadora estaba dormida, la ejecución anterior aún estaba en progreso, u otras tareas programadas ya estaban en ejecución. Haga clic en **Show more** para cargar entradas más antiguas.157* **Review history**: vea cada ejecución anterior, incluidas las ejecuciones omitidas. Pase el cursor sobre una entrada omitida para ver por qué: su computadora estaba dormida, la ejecución anterior aún estaba en progreso, u otras tareas programadas ya estaban en ejecución. Haga clic en **Show more** para cargar entradas más antiguas.

148* **Review allowed permissions**: vea y revoque aprobaciones de herramientas guardadas para esta tarea desde el panel **Always allowed**158* **Review allowed permissions**: vea y revoque aprobaciones de herramientas guardadas para esta tarea desde el panel **Always allowed**

149* **Delete**: elimine la tarea y archive todas las sesiones que creó. Aparece una casilla de verificación **Also delete files on disk** en el diálogo de confirmación; márquela para eliminar también el archivo `SKILL.md` de la tarea y los datos asociados de `~/.claude/scheduled-tasks/`.159* **Delete**: elimina la tarea. Las sesiones que creó la tarea se [archivan](/docs/es/desktop#organize-and-find-sessions), no se eliminan. La carpeta que contiene el archivo `SKILL.md` de la tarea permanece en disco en `~/.claude/scheduled-tasks/<task-name>/`, o en `scheduled-tasks/<task-name>/` bajo [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars) si configuraste esa variable. Para quitar esa carpeta, elimínala tú mismo.

150 160 

151También puede enumerar, crear, editar y pausar tareas pidiendo a Claude en cualquier sesión de Desktop. Por ejemplo, "pausa mi tarea dependency-audit" o "muéstrame mis tareas programadas." Para eliminar una tarea, use el botón **Delete** en su página de detalles.161También puede enumerar, crear, editar y pausar tareas pidiendo a Claude en cualquier sesión de Desktop. Por ejemplo, "pausa mi tarea dependency-audit" o "muéstrame mis tareas programadas." Para eliminar una tarea, use el botón **Delete** en su página de detalles.

152 162 

env-vars.md +10 −19

Details

124> * `DISABLE_TELEMETRY`124> * `DISABLE_TELEMETRY`

125> * `DISABLE_ERROR_REPORTING`125> * `DISABLE_ERROR_REPORTING`

126> * `CLAUDE_CODE_TMUX_TRUECOLOR`126> * `CLAUDE_CODE_TMUX_TRUECOLOR`

127> * `FALLBACK_FOR_ALL_PRIMARY_MODELS`

128> * `IS_DEMO`127> * `IS_DEMO`

129>128>

130> Otra variable tiene su propia regla: `FORCE_HYPERLINK` lee un número, por lo que solo `0` la desactiva. La fila de cada variable también indica su propia regla.129> Otra variable tiene su propia regla: `FORCE_HYPERLINK` lee un número, por lo que solo `0` la desactiva. La fila de cada variable también indica su propia regla.


136| `ANTHROPIC_AWS_API_KEY` | Clave de API del espacio de trabajo para [Claude Platform on AWS](/docs/es/claude-platform-on-aws), generada en la consola de AWS. Se envía como `x-api-key` y tiene precedencia sobre AWS SigV4 |135| `ANTHROPIC_AWS_API_KEY` | Clave de API del espacio de trabajo para [Claude Platform on AWS](/docs/es/claude-platform-on-aws), generada en la consola de AWS. Se envía como `x-api-key` y tiene precedencia sobre AWS SigV4 |

137| `ANTHROPIC_AWS_BASE_URL` | Sobrescribe la URL del endpoint de [Claude Platform on AWS](/docs/es/claude-platform-on-aws). Úsala para regiones personalizadas o al enrutar a través de un [gateway de LLM](/docs/es/llm-gateway). El valor predeterminado es `https://aws-external-anthropic.{region}.api.aws`. Claude Code resuelve la región con la [misma precedencia que en Amazon Bedrock](/docs/es/amazon-bedrock#3-configure-claude-code) |136| `ANTHROPIC_AWS_BASE_URL` | Sobrescribe la URL del endpoint de [Claude Platform on AWS](/docs/es/claude-platform-on-aws). Úsala para regiones personalizadas o al enrutar a través de un [gateway de LLM](/docs/es/llm-gateway). El valor predeterminado es `https://aws-external-anthropic.{region}.api.aws`. Claude Code resuelve la región con la [misma precedencia que en Amazon Bedrock](/docs/es/amazon-bedrock#3-configure-claude-code) |

138| `ANTHROPIC_AWS_WORKSPACE_ID` | Obligatoria para [Claude Platform on AWS](/docs/es/claude-platform-on-aws). Se envía en cada solicitud como el encabezado `anthropic-workspace-id` |137| `ANTHROPIC_AWS_WORKSPACE_ID` | Obligatoria para [Claude Platform on AWS](/docs/es/claude-platform-on-aws). Se envía en cada solicitud como el encabezado `anthropic-workspace-id` |

139| `ANTHROPIC_BASE_URL` | Sobrescribe el endpoint de la API para enrutar las solicitudes a través de un proxy o gateway. Cuando se establece en un host que no es de primera parte, [MCP Tool Search](/docs/es/mcp#scale-with-mcp-tool-search) se desactiva de forma predeterminada. Establece `ENABLE_TOOL_SEARCH=true` si tu proxy reenvía bloques `tool_reference`. A partir de v2.1.196, [Remote Control](/docs/es/remote-control#requirements) se desactiva cuando esta variable apunta a un host distinto de `api.anthropic.com`, igual que su comportamiento en Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry |138| `ANTHROPIC_BASE_URL` | Sobrescribe el endpoint de la API para enrutar las solicitudes a través de un proxy o gateway. Para saber qué ocurre cuando ese gateway rechaza la búsqueda de herramientas MCP, consulta [Búsqueda de herramientas a través de un gateway de LLM](/docs/es/mcp#tool-search-through-a-gateway). A partir de la v2.1.196, [Remote Control](/docs/es/remote-control#requirements) se desactiva cuando apunta a un host distinto de `api.anthropic.com`, igual que su comportamiento en Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry |

140| `ANTHROPIC_BEDROCK_BASE_URL` | Sobrescribe la URL del endpoint de Amazon Bedrock. Úsala para endpoints personalizados de Amazon Bedrock o al enrutar a través de un [gateway de LLM](/docs/es/llm-gateway). Consulta [Amazon Bedrock](/docs/es/amazon-bedrock) |139| `ANTHROPIC_BEDROCK_BASE_URL` | Sobrescribe la URL del endpoint de Amazon Bedrock. Úsala para endpoints personalizados de Amazon Bedrock o al enrutar a través de un [gateway de LLM](/docs/es/llm-gateway). Consulta [Amazon Bedrock](/docs/es/amazon-bedrock) |

141| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | Sobrescribe la URL del endpoint de Amazon Bedrock Mantle. Consulta [Endpoint de Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint) |140| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | Sobrescribe la URL del endpoint de Amazon Bedrock Mantle. Consulta [Endpoint de Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint) |

142| `ANTHROPIC_BEDROCK_REGION_PREFIX` | Prefijo del perfil de inferencia entre regiones (`us`, `eu`, `apac`, `jp`, `au` o `global`) que Claude Code prueba primero en lugar del derivado de la región de AWS. Se ignora en las regiones de AWS GovCloud. Requiere Claude Code v2.1.224 o posterior. Consulta [Amazon Bedrock](/docs/es/amazon-bedrock#cross-region-inference-profile-prefixes) |141| `ANTHROPIC_BEDROCK_REGION_PREFIX` | Prefijo del perfil de inferencia entre regiones (`us`, `eu`, `apac`, `jp`, `au` o `global`) que Claude Code prueba primero en lugar del derivado de la región de AWS. Se ignora en las regiones de AWS GovCloud. Requiere Claude Code v2.1.224 o posterior. Consulta [Amazon Bedrock](/docs/es/amazon-bedrock#cross-region-inference-profile-prefixes) |


178| `ANTHROPIC_VERTEX_PROJECT_ID` | ID del proyecto de GCP al que se dirigen las solicitudes de Google Cloud's Agent Platform. Consulta [Configurar las credenciales de GCP](/docs/es/google-vertex-ai#3-configure-gcp-credentials) |177| `ANTHROPIC_VERTEX_PROJECT_ID` | ID del proyecto de GCP al que se dirigen las solicitudes de Google Cloud's Agent Platform. Consulta [Configurar las credenciales de GCP](/docs/es/google-vertex-ai#3-configure-gcp-credentials) |

179| `ANTHROPIC_WORKSPACE_ID` | ID del espacio de trabajo para [workload identity federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Establécela cuando tu regla de federación abarque más de un espacio de trabajo, para que el intercambio de tokens sepa a qué espacio de trabajo dirigirse |178| `ANTHROPIC_WORKSPACE_ID` | ID del espacio de trabajo para [workload identity federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Establécela cuando tu regla de federación abarque más de un espacio de trabajo, para que el intercambio de tokens sepa a qué espacio de trabajo dirigirse |

180| `API_FORCE_IDLE_TIMEOUT` | Sobrescribe el tiempo de espera de inactividad del cuerpo de 5 minutos que aborta una respuesta del modelo en streaming cuando no llegan bytes. Establécela en `0` para desactivar el tiempo de espera, por ejemplo cuando un [gateway](/docs/es/llm-gateway) lento o un modelo local hace pausas de más de 5 minutos entre fragmentos, o en `1` para mantenerlo activo con todos los proveedores. Si no se establece, el tiempo de espera está activo en proveedores distintos de la API directa de Anthropic, [Claude Platform on AWS](/docs/es/claude-platform-on-aws) y Amazon Bedrock con `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` establecida. Los [watchdogs de streaming](/docs/es/network-config#streaming-idle-watchdogs) se ejecutan de forma independiente y abortan una pausa silenciosa prolongada incluso si estableces `0` aquí |179| `API_FORCE_IDLE_TIMEOUT` | Sobrescribe el tiempo de espera de inactividad del cuerpo de 5 minutos que aborta una respuesta del modelo en streaming cuando no llegan bytes. Establécela en `0` para desactivar el tiempo de espera, por ejemplo cuando un [gateway](/docs/es/llm-gateway) lento o un modelo local hace pausas de más de 5 minutos entre fragmentos, o en `1` para mantenerlo activo con todos los proveedores. Si no se establece, el tiempo de espera está activo en proveedores distintos de la API directa de Anthropic, [Claude Platform on AWS](/docs/es/claude-platform-on-aws) y Amazon Bedrock con `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` establecida. Los [watchdogs de streaming](/docs/es/network-config#streaming-idle-watchdogs) se ejecutan de forma independiente y abortan una pausa silenciosa prolongada incluso si estableces `0` aquí |

181| `API_TIMEOUT_MS` | Tiempo en milisegundos que tiene cada intento de solicitud a la API para recibir sus encabezados de respuesta (predeterminado: 600000, o 10 minutos; máximo: 2147483647). No limita cuánto dura una respuesta en streaming después de eso. Cuando estableces un valor positivo, cada intento de una [solicitud sin streaming](/docs/es/errors#streaming-response-ended-before-any-complete-data-was-received) debe terminar dentro de ese tiempo. Auméntalo cuando las solicitudes agoten el tiempo de espera en redes lentas o al enrutar a través de un proxy |180| `API_TIMEOUT_MS` | Tiempo en milisegundos que tiene cada intento de solicitud a la API para recibir sus encabezados de respuesta. No limita cuánto dura después una respuesta en streaming. El valor predeterminado es 600000, es decir, 10 minutos, y el máximo es 2147483647. Cuando estableces un valor positivo, cada intento de una [solicitud sin streaming](/docs/es/errors#streaming-response-ended-before-any-complete-data-was-received) tiene que terminar dentro de ese tiempo. Auméntalo cuando se agote el tiempo de espera de las solicitudes en redes lentas o al enrutar a través de un proxy. Establécela en `0` para quitar este límite, lo que requiere Claude Code v2.1.305 o posterior. Con `0`, a un intento sin streaming igual se le agota el tiempo de espera después de 300 segundos en una sesión local |

182| `AWS_BEARER_TOKEN_BEDROCK` | Clave de API de Amazon Bedrock para la autenticación (consulta [Claves de API de Amazon Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |181| `AWS_BEARER_TOKEN_BEDROCK` | Clave de API de Amazon Bedrock para la autenticación (consulta [Claves de API de Amazon Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |

183| `BASH_DEFAULT_TIMEOUT_MS` | Tiempo de espera predeterminado para un comando en primer plano de la herramienta Bash o PowerShell, en milisegundos (predeterminado: 120000, o 2 minutos). Un valor superior al [límite de tiempo predeterminado para los comandos en segundo plano](/docs/es/tools-reference#time-limit-for-background-commands) reemplaza ese valor predeterminado en las sesiones desatendidas. El límite de tiempo en segundo plano requiere Claude Code v2.1.285 o posterior |182| `BASH_DEFAULT_TIMEOUT_MS` | Tiempo de espera predeterminado para un comando en primer plano de la herramienta Bash o PowerShell, en milisegundos (predeterminado: 120000, o 2 minutos). Un valor superior al [límite de tiempo predeterminado para los comandos en segundo plano](/docs/es/tools-reference#time-limit-for-background-commands) reemplaza ese valor predeterminado en las sesiones desatendidas. El límite de tiempo en segundo plano requiere Claude Code v2.1.285 o posterior |

184| `BASH_MAX_OUTPUT_LENGTH` | Número máximo de caracteres de la salida de bash que Claude Code incorpora al resultado de un comando (predeterminado: 30000; máximo: 150000). Si estableces el ajuste [`bashOutputMaxChars`](/docs/es/settings-reference#bashoutputmaxchars), Claude Code ignora esta variable. Consulta [Límites de salida](/docs/es/tools-reference#output-limits) |183| `BASH_MAX_OUTPUT_LENGTH` | Número máximo de caracteres de la salida de bash que Claude Code incorpora al resultado de un comando (predeterminado: 30000; máximo: 150000). Si estableces el ajuste [`bashOutputMaxChars`](/docs/es/settings-reference#bashoutputmaxchars), Claude Code ignora esta variable. Consulta [Límites de salida](/docs/es/tools-reference#output-limits) |


186| `BETA_TRACING_ENDPOINT` | Endpoint OTLP/HTTP para el [rastreo beta detallado](/docs/es/monitoring-usage#traces-beta): con `ENABLE_BETA_TRACING_DETAILED=1`, los registros y las trazas se envían allí en lugar de a los exportadores configurados. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |185| `BETA_TRACING_ENDPOINT` | Endpoint OTLP/HTTP para el [rastreo beta detallado](/docs/es/monitoring-usage#traces-beta): con `ENABLE_BETA_TRACING_DETAILED=1`, los registros y las trazas se envían allí en lugar de a los exportadores configurados. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |

187| `CCR_FORCE_BUNDLE` | Establécela en `1` para forzar que [`claude --cloud`](/docs/es/claude-code-on-the-web#send-local-repositories-without-github) empaquete y suba tu repositorio local en lugar de clonarlo desde su remoto |186| `CCR_FORCE_BUNDLE` | Establécela en `1` para forzar que [`claude --cloud`](/docs/es/claude-code-on-the-web#send-local-repositories-without-github) empaquete y suba tu repositorio local en lugar de clonarlo desde su remoto |

188| `CLAUDECODE` | Se establece en `1` en los subprocesos que Claude Code genera (herramientas Bash y PowerShell, sesiones de tmux, comandos de [hooks](/docs/es/hooks), comandos de la [línea de estado](/docs/es/statusline), subprocesos de [servidores MCP](/docs/es/mcp) stdio). Las extensiones de IDE también la establecen en sus terminales integradas. Úsala para detectar cuándo un script se ejecuta dentro de un subproceso generado por Claude Code. Para comprobar si el proceso actual fue generado directamente por una llamada a herramienta o un hook, y no dentro de un servidor MCP stdio que Claude Code inició, usa `CLAUDE_CODE_CHILD_SESSION` en su lugar |187| `CLAUDECODE` | Se establece en `1` en los subprocesos que Claude Code genera (herramientas Bash y PowerShell, sesiones de tmux, comandos de [hooks](/docs/es/hooks), comandos de la [línea de estado](/docs/es/statusline), subprocesos de [servidores MCP](/docs/es/mcp) stdio). Las extensiones de IDE también la establecen en sus terminales integradas. Úsala para detectar cuándo un script se ejecuta dentro de un subproceso generado por Claude Code. Para comprobar si el proceso actual fue generado directamente por una llamada a herramienta o un hook, y no dentro de un servidor MCP stdio que Claude Code inició, usa `CLAUDE_CODE_CHILD_SESSION` en su lugar |

189| `CLAUDE_AFK_COUNTDOWN_MS` | Cuántos milisegundos antes de la continuación automática aparece la cuenta regresiva en pantalla en un diálogo de [`AskUserQuestion`](/docs/es/tools-reference) sin responder. Predeterminado `20000` (20 segundos), con un límite igual al tiempo de espera de continuación automática. No tiene efecto a menos que la continuación automática esté activada; consulta el ajuste [`askUserQuestionTimeout`](/docs/es/settings-reference#askuserquestiontimeout) y `CLAUDE_AFK_TIMEOUT_MS`. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env). Requiere Claude Code v2.1.198 o posterior |

190| `CLAUDE_AFK_TIMEOUT_MS` | Cuántos milisegundos de inactividad deben pasar antes de que un diálogo de [`AskUserQuestion`](/docs/es/tools-reference) sin responder continúe automáticamente sin ti. La continuación automática está desactivada de forma predeterminada; actívala con el ajuste [`askUserQuestionTimeout`](/docs/es/settings-reference#askuserquestiontimeout). Esta variable es una sobrescritura para demostraciones y pruebas automatizadas: cuando está establecida, tiene precedencia sobre ese ajuste y activa la continuación automática incluso cuando el ajuste no está establecido o es `never`. Establecer `0` no desactiva el tiempo de espera; cierra el diálogo de inmediato. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env). Antes de v2.1.200, la continuación automática estaba activada de forma predeterminada con un tiempo de espera de `60000` (60 segundos). Requiere Claude Code v2.1.198 o posterior |

191| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Establécela en `1` para desactivar todos los tipos de [subagentes](/docs/es/sub-agents) integrados, como Explore y Plan. Solo se aplica en modo no interactivo (el flag `-p`). Útil para usuarios del SDK que quieren empezar desde cero. Esto también elimina `general-purpose`, el subagente que Claude Code ejecuta cuando una llamada a la herramienta Agent omite `subagent_type`. En ese caso, dicha llamada falla con [`subagent_type is required`](/docs/es/errors#subagent-type-is-required) |188| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Establécela en `1` para desactivar todos los tipos de [subagentes](/docs/es/sub-agents) integrados, como Explore y Plan. Solo se aplica en modo no interactivo (el flag `-p`). Útil para usuarios del SDK que quieren empezar desde cero. Esto también elimina `general-purpose`, el subagente que Claude Code ejecuta cuando una llamada a la herramienta Agent omite `subagent_type`. En ese caso, dicha llamada falla con [`subagent_type is required`](/docs/es/errors#subagent-type-is-required) |

192| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | Establécela en `1` para omitir el prefijo `mcp__<server>__` en los nombres de las herramientas de los servidores MCP creados con el SDK. Las herramientas usan sus nombres originales. Solo para uso con el SDK |189| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | Establécela en `1` para omitir el prefijo `mcp__<server>__` en los nombres de las herramientas de los servidores MCP creados con el SDK. Las herramientas usan sus nombres originales. Solo para uso con el SDK |

193| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Tiempo de espera por estancamiento en milisegundos para los subagentes. También abarca los [agentes de flujos de trabajo](/docs/es/workflows#when-an-agent-stalls-and-restarts) en Claude Code v2.1.286 o posterior. Predeterminado `600000` (10 minutos); si aumentas `CLAUDE_STREAM_IDLE_TIMEOUT_MS` mientras el watchdog de streaming está activado, el valor predeterminado aumenta con él, como describe [Manejar respuestas de la API lentas o estancadas](/docs/es/agent-sdk/typescript#handle-slow-or-stalled-api-responses) |190| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Tiempo de espera por estancamiento en milisegundos para los subagentes. También abarca los [agentes de flujos de trabajo](/docs/es/workflows#when-an-agent-stalls-and-restarts) en Claude Code v2.1.286 o posterior. Predeterminado `600000` (10 minutos); si aumentas `CLAUDE_STREAM_IDLE_TIMEOUT_MS` mientras el watchdog de streaming está activado, el valor predeterminado aumenta con él, como describe [Manejar respuestas de la API lentas o estancadas](/docs/es/agent-sdk/typescript#handle-slow-or-stalled-api-responses) |


229| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | Nivel mínimo de registro que se escribe en el archivo de registro de depuración. Valores: `verbose`, `debug` (predeterminado), `info`, `warn`, `error`. Establécela en `verbose` para incluir diagnósticos de gran volumen, como la salida completa del comando de la línea de estado, o súbela a `error` para reducir el ruido |226| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | Nivel mínimo de registro que se escribe en el archivo de registro de depuración. Valores: `verbose`, `debug` (predeterminado), `info`, `warn`, `error`. Establécela en `verbose` para incluir diagnósticos de gran volumen, como la salida completa del comando de la línea de estado, o súbela a `error` para reducir el ruido |

230| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Establécela en `1` para desactivar la compatibilidad con la [ventana de contexto de 1M](/docs/es/model-config#extended-context). Claude Code elimina las variantes de modelo `[1m]` del selector de modelos y limita a una ventana de 200K los modelos que se ejecutan con la ventana de 1M de forma predeterminada. Consulta [Desactivar el contexto de 1M](/docs/es/model-config#turn-off-1m-context). Útil para entornos empresariales con requisitos de cumplimiento. Para conocer su función al corregir la ventana de un ID de modelo `[1m]` no reconocido, consulta [Corregir la ventana para un gateway o un ID de modelo personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |227| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Establécela en `1` para desactivar la compatibilidad con la [ventana de contexto de 1M](/docs/es/model-config#extended-context). Claude Code elimina las variantes de modelo `[1m]` del selector de modelos y limita a una ventana de 200K los modelos que se ejecutan con la ventana de 1M de forma predeterminada. Consulta [Desactivar el contexto de 1M](/docs/es/model-config#turn-off-1m-context). Útil para entornos empresariales con requisitos de cumplimiento. Para conocer su función al corregir la ventana de un ID de modelo `[1m]` no reconocido, consulta [Corregir la ventana para un gateway o un ID de modelo personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |

231| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Establécela en `1` para desactivar el [razonamiento adaptativo](/docs/es/model-config#adjust-effort-level) en Opus 4.6 y Sonnet 4.6 y recurrir al presupuesto de pensamiento fijo controlado por `MAX_THINKING_TOKENS`. No tiene efecto en los [modelos Fable](/docs/es/model-config#extended-thinking), Sonnet 5 y posteriores, Haiku 5.5, ni Opus 4.7 y posteriores, que siempre usan razonamiento adaptativo |228| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Establécela en `1` para desactivar el [razonamiento adaptativo](/docs/es/model-config#adjust-effort-level) en Opus 4.6 y Sonnet 4.6 y recurrir al presupuesto de pensamiento fijo controlado por `MAX_THINKING_TOKENS`. No tiene efecto en los [modelos Fable](/docs/es/model-config#extended-thinking), Sonnet 5 y posteriores, Haiku 5.5, ni Opus 4.7 y posteriores, que siempre usan razonamiento adaptativo |

232| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | Establécela en `1` para evitar que Claude Code combine por clave los bloques `env` de la [configuración administrada](/docs/es/managed-settings#precedence-within-the-managed-tier) de los distintos orígenes de administración, de modo que solo se aplique el bloque `env` completo del origen de mayor prioridad, como antes de v2.1.223. Establécela en el entorno que inicia Claude Code, ya que Claude Code ignora una copia entregada mediante un bloque `env` de la configuración. Requiere Claude Code v2.1.223 o posterior |

233| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | Establécela en `1` para desactivar la [herramienta advisor](/docs/es/advisor). El comando `/advisor` deja de estar disponible, cualquier `advisorModel` configurado se ignora y el flag `--advisor` se acepta pero no tiene efecto, por lo que los scripts existentes que lo pasan siguen funcionando sin errores |229| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | Establécela en `1` para desactivar la [herramienta advisor](/docs/es/advisor). El comando `/advisor` deja de estar disponible, cualquier `advisorModel` configurado se ignora y el flag `--advisor` se acepta pero no tiene efecto, por lo que los scripts existentes que lo pasan siguen funcionando sin errores |

234| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Establécela en `1` para desactivar los [agentes en segundo plano y la vista de agentes](/docs/es/agent-view): `claude agents`, `--bg`, `/background` y el supervisor bajo demanda. Equivale al ajuste [`disableAgentView`](/docs/es/settings-reference#disableagentview) |230| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Establécela en `1` para desactivar los [agentes en segundo plano y la vista de agentes](/docs/es/agent-view): `claude agents`, `--bg`, `/background` y el supervisor bajo demanda. Equivale al ajuste [`disableAgentView`](/docs/es/settings-reference#disableagentview) |

235| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Establécela en `1` para desactivar el [renderizado a pantalla completa](/docs/es/fullscreen) y usar el renderizador clásico de pantalla principal. La conversación permanece en el historial de desplazamiento nativo de tu terminal, por lo que `Cmd+f` y el modo de copia de tmux funcionan como de costumbre. Tiene precedencia sobre `CLAUDE_CODE_NO_FLICKER` y el ajuste [`tui`](/docs/es/settings-reference#tui). También puedes cambiar con `/tui default`. No se aplica a las sesiones en segundo plano abiertas desde la [vista de agentes](/docs/es/agent-view), que siempre usan el renderizado a pantalla completa |231| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Establécela en `1` para desactivar el [renderizado a pantalla completa](/docs/es/fullscreen) y usar el renderizador clásico de pantalla principal. La conversación permanece en el historial de desplazamiento nativo de tu terminal, por lo que `Cmd+f` y el modo de copia de tmux funcionan como de costumbre. Tiene precedencia sobre `CLAUDE_CODE_NO_FLICKER` y el ajuste [`tui`](/docs/es/settings-reference#tui). También puedes cambiar con `/tui default`. No se aplica a las sesiones en segundo plano abiertas desde la [vista de agentes](/docs/es/agent-view), que siempre usan el renderizado a pantalla completa |


240| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Establécela en `1` para desactivar toda la funcionalidad de tareas en segundo plano, incluido el parámetro `run_in_background` en las herramientas Bash y de subagentes, el paso automático a segundo plano y el atajo Ctrl+B |236| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Establécela en `1` para desactivar toda la funcionalidad de tareas en segundo plano, incluido el parámetro `run_in_background` en las herramientas Bash y de subagentes, el paso automático a segundo plano y el atajo Ctrl+B |

241| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Establécela en `1` para que Claude Code deje de tratar una respuesta en streaming de [Amazon Bedrock](/docs/es/amazon-bedrock) con un encabezado `Content-Type` ausente o vacío como el flujo de eventos binario de Amazon Bedrock. De forma predeterminada, Claude Code asume que un gateway eliminó el encabezado de una respuesta que por lo demás no se modificó, así que decodifica el cuerpo y el streaming sigue funcionando. Establécela solo para un gateway que además reemite el flujo como eventos enviados por el servidor; Claude Code lee entonces el cuerpo sin encabezado como eventos enviados por el servidor. Requiere Claude Code v2.1.239 o posterior |237| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Establécela en `1` para que Claude Code deje de tratar una respuesta en streaming de [Amazon Bedrock](/docs/es/amazon-bedrock) con un encabezado `Content-Type` ausente o vacío como el flujo de eventos binario de Amazon Bedrock. De forma predeterminada, Claude Code asume que un gateway eliminó el encabezado de una respuesta que por lo demás no se modificó, así que decodifica el cuerpo y el streaming sigue funcionando. Establécela solo para un gateway que además reemite el flujo como eventos enviados por el servidor; Claude Code lee entonces el cuerpo sin encabezado como eventos enviados por el servidor. Requiere Claude Code v2.1.239 o posterior |

242| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Establécela en `1` para omitir la comprobación de que una respuesta en streaming de [Amazon Bedrock](/docs/es/amazon-bedrock) lleva el content-type `application/vnd.amazon.eventstream`. Sin esta variable, cuando una respuesta lleva un content-type distinto, Claude Code hace fallar la solicitud con un error que nombra ese tipo, lo que significa que un [gateway o proxy está transformando la respuesta](/docs/es/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). Configura el gateway para que reenvíe el encabezado `Content-Type` y el cuerpo sin modificar en lugar de establecer esta variable. Requiere Claude Code v2.1.208 o posterior |238| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Establécela en `1` para omitir la comprobación de que una respuesta en streaming de [Amazon Bedrock](/docs/es/amazon-bedrock) lleva el content-type `application/vnd.amazon.eventstream`. Sin esta variable, cuando una respuesta lleva un content-type distinto, Claude Code hace fallar la solicitud con un error que nombra ese tipo, lo que significa que un [gateway o proxy está transformando la respuesta](/docs/es/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). Configura el gateway para que reenvíe el encabezado `Content-Type` y el cuerpo sin modificar en lugar de establecer esta variable. Requiere Claude Code v2.1.208 o posterior |

243| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Establécela en `1` para detener los comandos de shell en segundo plano en ejecución, los flujos de trabajo dinámicos y, a partir de v2.1.198, los subagentes en segundo plano de una [sesión en segundo plano](/docs/es/agent-view) cuando el [supervisor](/docs/es/agent-view#the-supervisor-process) detiene, reinicia o actualiza el proceso de esa sesión, en lugar de entregárselos al siguiente proceso de la sesión. Solo afecta a esa entrega: pasar una sesión a segundo plano con `←` o [`/background`](/docs/es/agent-view#from-inside-a-session) sigue trasladando el trabajo en segundo plano en curso, y `CLAUDE_DISABLE_ADOPT` desactiva ambas cosas. Requiere Claude Code v2.1.196 o posterior |239| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Establécela en `1` para detener el trabajo en curso de una [sesión en segundo plano](/docs/es/agent-view) cuando el [supervisor](/docs/es/agent-view#the-supervisor-process) detiene, reinicia o actualiza el proceso de esa sesión, en lugar de entregarlo al siguiente proceso de la sesión. Ese trabajo son los comandos de shell en segundo plano en ejecución y los flujos de trabajo dinámicos de la sesión, además de los subagentes en segundo plano a partir de v2.1.198. Solo afecta a esa entrega: enviar una sesión a segundo plano con `←` o [`/background`](/docs/es/agent-view#from-inside-a-session) sigue trasladando el trabajo en segundo plano en curso. Requiere Claude Code v2.1.196 o posterior |

244| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | Establécela en `1` para evitar que Claude Code termine los [comandos de shell en segundo plano](/docs/es/interactive-mode#background-bash-commands) bajo presión de memoria. De forma predeterminada, en macOS y Linux, Claude Code termina los shells en segundo plano cuando el sistema operativo informa una presión de memoria crítica y la sesión ha estado inactiva durante 30 minutos sin ningún turno ni subagente en ejecución. Windows no tiene señal de presión de memoria, por lo que esta variable no tiene efecto allí. Requiere Claude Code v2.1.193 o posterior |240| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | Establécela en `1` para evitar que Claude Code termine los [comandos de shell en segundo plano](/docs/es/interactive-mode#background-bash-commands) bajo presión de memoria. De forma predeterminada, en macOS y Linux, Claude Code termina los shells en segundo plano cuando el sistema operativo informa una presión de memoria crítica y la sesión ha estado inactiva durante 30 minutos sin ningún turno ni subagente en ejecución. Windows no tiene señal de presión de memoria, por lo que esta variable no tiene efecto allí. Requiere Claude Code v2.1.193 o posterior |

245| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Establécela en `1` para desactivar los [skills](/docs/es/skills) y flujos de trabajo incluidos con Claude Code: los skills y flujos de trabajo incluidos se eliminan por completo, mientras que los comandos integrados como `/init` se pueden seguir escribiendo pero se ocultan al modelo. `/doctor` se puede seguir escribiendo como los comandos integrados; ocúltalo con `DISABLE_DOCTOR_COMMAND` en su lugar. Los skills de plugins, `.claude/skills/` y `.claude/commands/` no se ven afectados. Equivale al ajuste [`disableBundledSkills`](/docs/es/settings-reference#disablebundledskills) |241| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Establécela en `1` para desactivar los [skills](/docs/es/skills) y flujos de trabajo incluidos con Claude Code: los skills y flujos de trabajo incluidos se eliminan por completo, mientras que los comandos integrados como `/init` se pueden seguir escribiendo pero se ocultan al modelo. `/doctor` se puede seguir escribiendo como los comandos integrados; ocúltalo con `DISABLE_DOCTOR_COMMAND` en su lugar. Los skills de plugins, `.claude/skills/` y `.claude/commands/` no se ven afectados. Equivale al ajuste [`disableBundledSkills`](/docs/es/settings-reference#disablebundledskills) |

246| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Establécela en `1` para mantener disponibles las herramientas de navegador de [Claude in Chrome](/docs/es/chrome) mientras se omite la sección de Chrome del prompt del sistema y el [skill incluido](/docs/es/skills#bundled-skills) `/claude-in-chrome`. Para hosts que integran Claude Code y proporcionan su propia guía de navegador. Requiere Claude Code v2.1.257 o posterior |242| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Establécela en `1` para mantener disponibles las herramientas de navegador de [Claude in Chrome](/docs/es/chrome) mientras se omite la sección de Chrome del prompt del sistema y el [skill incluido](/docs/es/skills#bundled-skills) `/claude-in-chrome`. Para hosts que integran Claude Code y proporcionan su propia guía de navegador. Requiere Claude Code v2.1.257 o posterior |


299| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Establécela en `1` para forzar la persistencia de la transcripción, el historial de prompts y el registro en `claude agents` incluso cuando este `claude` se haya iniciado desde dentro de otra sesión de Claude Code. Úsala cuando un valor heredado de `CLAUDE_CODE_CHILD_SESSION`, por ejemplo de una sesión de `screen` o de un lanzador en segundo plano iniciado por primera vez por la herramienta Bash de Claude Code, haga que una sesión genuina de nivel superior se clasifique erróneamente como anidada. A partir de la v2.1.178, Claude Code detecta automáticamente el caso de tmux e ignora el marcador heredado, por lo que tmux ya no necesita esta variable. También se respeta en la v2.1.169 y anteriores; no tiene efecto en la v2.1.170 ni en la v2.1.171, donde se eliminó la detección de sesiones anidadas que sobrescribe |295| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Establécela en `1` para forzar la persistencia de la transcripción, el historial de prompts y el registro en `claude agents` incluso cuando este `claude` se haya iniciado desde dentro de otra sesión de Claude Code. Úsala cuando un valor heredado de `CLAUDE_CODE_CHILD_SESSION`, por ejemplo de una sesión de `screen` o de un lanzador en segundo plano iniciado por primera vez por la herramienta Bash de Claude Code, haga que una sesión genuina de nivel superior se clasifique erróneamente como anidada. A partir de la v2.1.178, Claude Code detecta automáticamente el caso de tmux e ignora el marcador heredado, por lo que tmux ya no necesita esta variable. También se respeta en la v2.1.169 y anteriores; no tiene efecto en la v2.1.170 ni en la v2.1.171, donde se eliminó la detección de sesiones anidadas que sobrescribe |

300| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | Establécela en `1` para forzar la representación tachada de `~~text~~` en las respuestas de Claude cuando tu terminal lo admite pero no se detecta automáticamente, por ejemplo a través de SSH sin reenviar `TERM_PROGRAM`. Sin esto, las terminales no detectadas muestran los marcadores `~~` literales en lugar de representar el texto tachado. Requiere Claude Code v2.1.186 o posterior |296| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | Establécela en `1` para forzar la representación tachada de `~~text~~` en las respuestas de Claude cuando tu terminal lo admite pero no se detecta automáticamente, por ejemplo a través de SSH sin reenviar `TERM_PROGRAM`. Sin esto, las terminales no detectadas muestran los marcadores `~~` literales en lugar de representar el texto tachado. Requiere Claude Code v2.1.186 o posterior |

301| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Establécela en `1` para forzar la activación de la [salida sincronizada](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) del modo privado DEC 2026 cuando tu terminal la admite pero no se detecta automáticamente. Útil para emuladores como `eat` de Emacs que implementan BSU/ESU pero no responden a la sonda de capacidades. No tiene efecto bajo tmux. A diferencia de `CLAUDE_CODE_NO_FLICKER`, que cambia a la [representación en pantalla completa](/docs/es/fullscreen), esta no cambia el renderizador |297| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Establécela en `1` para forzar la activación de la [salida sincronizada](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) del modo privado DEC 2026 cuando tu terminal la admite pero no se detecta automáticamente. Útil para emuladores como `eat` de Emacs que implementan BSU/ESU pero no responden a la sonda de capacidades. No tiene efecto bajo tmux. A diferencia de `CLAUDE_CODE_NO_FLICKER`, que cambia a la [representación en pantalla completa](/docs/es/fullscreen), esta no cambia el renderizador |

302| `CLAUDE_CODE_FORCE_TERMINAL_IMAGES` | Establécela en `1` para dibujar los [elementos `Image` de los mods](/docs/es/plugins/mods/reference#elements) como imágenes cuando tu terminal dibuja imágenes del protocolo de gráficos de kitty con marcadores de posición Unicode pero no se detecta automáticamente. Consulta [qué terminales detecta Claude Code](/docs/es/plugins/mods/gallery#image-and-client) y por qué no ayuda dentro de tmux o screen |298| `CLAUDE_CODE_FORCE_TERMINAL_IMAGES` | Establécela en `1` para dibujar los [elementos `Image` de los mods](/docs/es/plugins/mods/reference#elements) como imágenes cuando tu terminal dibuja imágenes del protocolo de gráficos de kitty con marcadores de posición Unicode y aun así ves el texto `alt` atenuado de un `Image`. Consulta [qué terminales dibujan un `Image`](/docs/es/plugins/mods/gallery#image-and-client) y por qué esta variable no ayuda dentro de tmux o screen |

303| `CLAUDE_CODE_FORK_SUBAGENT` | Controla el modo fork, que está activado de forma predeterminada y permite que Claude inicie [forks](/docs/es/sub-agents#fork-the-current-conversation) por su cuenta. Mientras el modo fork está activado, Claude tampoco puede [esperar a un subagente](/docs/es/sub-agents#run-subagents-in-foreground-or-background) en sesiones interactivas de terminal, VS Code o escritorio en tu máquina. Establécela en `0` para desactivar el modo fork. Para las versiones, consulta [Desactivar el modo fork](/docs/es/sub-agents#turn-fork-mode-on-or-off) |299| `CLAUDE_CODE_FORK_SUBAGENT` | Controla el modo fork, que está activado de forma predeterminada y permite que Claude inicie [forks](/docs/es/sub-agents#fork-the-current-conversation) por su cuenta. Mientras el modo fork está activado, Claude tampoco puede [esperar a un subagente](/docs/es/sub-agents#run-subagents-in-foreground-or-background) en sesiones interactivas de terminal, VS Code o escritorio en tu máquina. Establécela en `0` para desactivar el modo fork. Para las versiones, consulta [Desactivar el modo fork](/docs/es/sub-agents#turn-fork-mode-on-or-off) |

304| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | Establécela en `1` para emitir el texto y los bloques de pensamiento de los [subagentes](/docs/es/sub-agents) en la salida de `claude -p --output-format stream-json`, el mismo comportamiento que el flag [`--forward-subagent-text`](/docs/es/cli-reference#cli-flags). Usa la variable cuando un harness invoca `claude` y no puede pasar el flag por sí mismo. A diferencia del flag, que termina con un error fuera del modo no interactivo con salida stream-json, la variable se ignora en esos casos para que las invocaciones anidadas sigan funcionando cuando se establece para todo el proceso. Requiere Claude Code v2.1.211 o posterior |300| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | Establécela en `1` para emitir el texto y los bloques de pensamiento de los [subagentes](/docs/es/sub-agents) en la salida de `claude -p --output-format stream-json`, el mismo comportamiento que el flag [`--forward-subagent-text`](/docs/es/cli-reference#cli-flags). Usa la variable cuando un harness invoca `claude` y no puede pasar el flag por sí mismo. A diferencia del flag, que termina con un error fuera del modo no interactivo con salida stream-json, la variable se ignora en esos casos para que las invocaciones anidadas sigan funcionando cuando se establece para todo el proceso. Requiere Claude Code v2.1.211 o posterior |

305| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | Establécela en `1` para enviar los [encabezados de sugerencia para gateways](/docs/es/llm-gateway-protocol#gateway-hint-headers), como `x-claude-code-request-class` y `x-claude-code-compaction`, en un proxy personalizado o en un proveedor externo como Amazon Bedrock o Claude Platform on AWS. Establécela en `0` para dejar de enviarlos en todas las conexiones, incluida una conexión directa a la API de Anthropic, donde Claude Code los envía de forma predeterminada. Requiere Claude Code v2.1.273 o posterior |301| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | Establécela en `1` para enviar los [encabezados de sugerencia para gateways](/docs/es/llm-gateway-protocol#gateway-hint-headers), como `x-claude-code-request-class` y `x-claude-code-compaction`, en un proxy personalizado o en un proveedor externo como Amazon Bedrock o Claude Platform on AWS. Establécela en `0` para dejar de enviarlos en todas las conexiones, incluida una conexión directa a la API de Anthropic, donde Claude Code los envía de forma predeterminada. Requiere Claude Code v2.1.273 o posterior |


319| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Sobrescribe el tamaño de la ventana de contexto que Claude Code supone para el modelo activo. A partir de la v2.1.193, cómo se aplica depende de cómo resuelve Claude Code el ID del modelo; consulta [Corregir la ventana para un gateway o un ID de modelo personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Úsala cuando enrutes a un modelo a través de `ANTHROPIC_BASE_URL` cuya ventana de contexto no coincida con el tamaño integrado para su nombre |315| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Sobrescribe el tamaño de la ventana de contexto que Claude Code supone para el modelo activo. A partir de la v2.1.193, cómo se aplica depende de cómo resuelve Claude Code el ID del modelo; consulta [Corregir la ventana para un gateway o un ID de modelo personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Úsala cuando enrutes a un modelo a través de `ANTHROPIC_BASE_URL` cuya ventana de contexto no coincida con el tamaño integrado para su nombre |

320| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Longitud máxima en caracteres de las descripciones de herramientas MCP y de las instrucciones de servidores MCP que Claude Code envía al modelo. El valor que establezcas reemplaza ambos [límites predeterminados](/docs/es/mcp#for-mcp-server-authors): 4096, y 16384 para la descripción de una herramienta que Claude carga mediante la búsqueda de herramientas. Acepta un número entero positivo en dígitos simples. Cualquier otro valor se ignora y se aplican los predeterminados. Requiere Claude Code v2.1.280 o posterior |316| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Longitud máxima en caracteres de las descripciones de herramientas MCP y de las instrucciones de servidores MCP que Claude Code envía al modelo. El valor que establezcas reemplaza ambos [límites predeterminados](/docs/es/mcp#for-mcp-server-authors): 4096, y 16384 para la descripción de una herramienta que Claude carga mediante la búsqueda de herramientas. Acepta un número entero positivo en dígitos simples. Cualquier otro valor se ignora y se aplican los predeterminados. Requiere Claude Code v2.1.280 o posterior |

321| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Establece el número máximo de tokens de salida para la mayoría de las solicitudes. Los valores predeterminados y los límites varían según el modelo; consulta [tokens de salida máximos](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Claude Code reduce al límite un valor que supere el límite de un modelo. Para un ID de modelo que Claude Code no puede resolver a un modelo que conozca, el valor predeterminado es 32000 y el límite es 128000. Aumentar este valor reduce la ventana de contexto efectiva disponible antes de que se active la [compactación automática](/docs/es/costs#reduce-token-usage) |317| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Establece el número máximo de tokens de salida para la mayoría de las solicitudes. Los valores predeterminados y los límites varían según el modelo; consulta [tokens de salida máximos](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Claude Code reduce al límite un valor que supere el límite de un modelo. Para un ID de modelo que Claude Code no puede resolver a un modelo que conozca, el valor predeterminado es 32000 y el límite es 128000. Aumentar este valor reduce la ventana de contexto efectiva disponible antes de que se active la [compactación automática](/docs/es/costs#reduce-token-usage) |

322| `CLAUDE_CODE_MAX_RETRIES` | Sobrescribe el número de veces que se reintentan las solicitudes a la API fallidas (predeterminado: 10). Limitado a 15 a partir de la v2.1.186; a partir de la v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` aumenta el valor predeterminado y elimina el límite. Para sesiones desatendidas que necesitan esperar durante interrupciones más largas, establece en su lugar `CLAUDE_CODE_RETRY_WATCHDOG` |318| `CLAUDE_CODE_MAX_RETRIES` | Sobrescribe el número de veces que se reintentan las solicitudes fallidas a la API (predeterminado: 10). Los reintentos pueden detenerse antes ante errores `529` de sobrecarga. Por ejemplo, con una clave de API en un modelo Opus, se detiene en el tercer `529` y muestra [Repeated 529 Overloaded errors](/docs/es/errors#api-error-repeated-529-overloaded-errors). Si estableces un [modelo de respaldo](/docs/es/settings-reference#fallbackmodel), Claude Code cambia a ese modelo en lugar de mostrar el error. Limitada a 15 a partir de la v2.1.186; a partir de la v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` aumenta el valor predeterminado y elimina el límite. Para sesiones desatendidas que necesitan esperar durante interrupciones más largas, establece `CLAUDE_CODE_RETRY_WATCHDOG` en su lugar |

323| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Eliminada en la v2.1.224 y ahora no tiene efecto. Antes limitaba el número total de [subagentes](/docs/es/sub-agents) que Claude podía generar con la herramienta Agent en una sesión (predeterminado: 200); generar más allá del límite fallaba con `Subagent spawn limit reached`. El [límite de subagentes concurrentes](/docs/es/sub-agents#concurrent-subagent-limit) y el [límite de profundidad](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents) siguen aplicándose |319| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Eliminada en la v2.1.224 y ahora no tiene efecto. Antes limitaba el número total de [subagentes](/docs/es/sub-agents) que Claude podía generar con la herramienta Agent en una sesión (predeterminado: 200); generar más allá del límite fallaba con `Subagent spawn limit reached`. El [límite de subagentes concurrentes](/docs/es/sub-agents#concurrent-subagent-limit) y el [límite de profundidad](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents) siguen aplicándose |

324| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | Número de [capas de subagentes](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents) permitidas por debajo de la conversación principal (predeterminado: 3). Con el valor predeterminado, los subagentes pueden generar sus propios subagentes, y un subagente de la tercera capa no puede generar más; establécela en `1` para desactivar el anidamiento. De la v2.1.217 a la v2.1.218, el valor predeterminado era 1, por lo que un subagente no podía generar los suyos a menos que aumentaras el límite; la v2.1.219 aumentó el valor predeterminado a 3. Acepta un número entero positivo con dígitos simples; cualquier otro valor se ignora, por lo que el límite se puede ajustar pero no eliminar. Requiere Claude Code v2.1.217 o posterior |320| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | Número de [capas de subagentes](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents) permitidas por debajo de la conversación principal (predeterminado: 3). Con el valor predeterminado, los subagentes pueden generar sus propios subagentes, y un subagente de la tercera capa no puede generar más; establécela en `1` para desactivar el anidamiento. De la v2.1.217 a la v2.1.218, el valor predeterminado era 1, por lo que un subagente no podía generar los suyos a menos que aumentaras el límite; la v2.1.219 aumentó el valor predeterminado a 3. Acepta un número entero positivo con dígitos simples; cualquier otro valor se ignora, por lo que el límite se puede ajustar pero no eliminar. Requiere Claude Code v2.1.217 o posterior |

325| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Número máximo de herramientas de solo lectura y subagentes que pueden ejecutarse en paralelo (predeterminado: 10). Los valores más altos aumentan el paralelismo pero consumen más recursos |

326| `CLAUDE_CODE_MAX_TURNS` | Limita el número de turnos agénticos cuando no se pasa un límite explícito. Equivale a pasar [`--max-turns`](/docs/es/cli-reference#cli-flags), que tiene precedencia cuando ambos están establecidos. Un valor que no sea un entero positivo se rechaza al inicio con un error en lugar de tratarse como sin límite |321| `CLAUDE_CODE_MAX_TURNS` | Limita el número de turnos agénticos cuando no se pasa un límite explícito. Equivale a pasar [`--max-turns`](/docs/es/cli-reference#cli-flags), que tiene precedencia cuando ambos están establecidos. Un valor que no sea un entero positivo se rechaza al inicio con un error en lugar de tratarse como sin límite |

327| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | Límite de llamadas a [WebSearch](/docs/es/tools-reference#session-search-limit) (valor predeterminado: 200). Cuando Claude alcanza el límite, las siguientes llamadas a WebSearch devuelven un aviso que le indica que continúe con la información que ya recopiló y que lo mencione en su respuesta. Acepta un número entero positivo sin límite superior. Cualquier otra cosa se ignora y se aplica el valor predeterminado, por lo que el límite se puede aumentar pero no desactivar. Requiere Claude Code v2.1.212 o posterior |322| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | Límite de llamadas a [WebSearch](/docs/es/tools-reference#session-search-limit) (valor predeterminado: 200). Cuando Claude alcanza el límite, las siguientes llamadas a WebSearch devuelven un aviso que le indica que continúe con la información que ya recopiló y que lo mencione en su respuesta. Acepta un número entero positivo sin límite superior. Cualquier otra cosa se ignora y se aplica el valor predeterminado, por lo que el límite se puede aumentar pero no desactivar. Requiere Claude Code v2.1.212 o posterior |

328| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Establécela en `1` para iniciar los servidores MCP stdio solo con un entorno base seguro más el `env` configurado del servidor, en lugar de heredar el entorno de tu shell |323| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Establécela en `1` para iniciar los servidores MCP stdio solo con un entorno base seguro más el `env` configurado del servidor, en lugar de heredar el entorno de tu shell |

329| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | Tiempo transcurrido en milisegundos antes de que una llamada a herramienta MCP que sigue en ejecución [pase a una tarea en segundo plano](/docs/es/mcp#automatic-backgrounding-of-long-tool-calls) (predeterminado: 120000, o 2 minutos). Establécela en `0` para desactivar el paso automático a segundo plano. Requiere Claude Code v2.1.212 o posterior |324| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | Tiempo transcurrido en milisegundos antes de que una llamada a herramienta MCP que sigue en ejecución [pase a una tarea en segundo plano](/docs/es/mcp#automatic-backgrounding-of-long-tool-calls) (predeterminado: 120000, o 2 minutos). Establécela en `0` para desactivar el paso automático a segundo plano. Requiere Claude Code v2.1.212 o posterior |

330| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | Cuánto tiempo en milisegundos espera el primer turno de una sesión [no interactiva](/docs/es/headless) a los servidores MCP que aún se están conectando, en lugar de la [espera del primer turno](/docs/es/agent-sdk/mcp#connection-timing) predeterminada. Cuando se establece, la espera abarca todos los servidores pendientes; en un [entorno autohospedado](/docs/es/self-hosted-environments-configuration#connection-timing), solo cambia cuánto dura la espera. Establécela en `0` para omitir la espera. Un servidor de [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags) mantiene su propia espera de `MCP_TIMEOUT` independientemente del valor. Requiere Claude Code v2.1.274 o posterior |325| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | Cuánto tiempo en milisegundos espera el primer turno de una sesión [no interactiva](/docs/es/headless) a los servidores MCP que aún se están conectando, en lugar de la [espera del primer turno](/docs/es/agent-sdk/mcp#connection-timing) predeterminada. En un [entorno autoalojado](/docs/es/self-hosted-environments-configuration#connection-timing), solo cambia cuánto dura la espera. Algunos servidores mantienen una espera propia independientemente del valor; [Tiempos de conexión](/docs/es/agent-sdk/mcp#connection-timing) los enumera. Establécela en `0` para omitir la espera para todos los demás servidores. Requiere Claude Code v2.1.274 o posterior |

331| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | Tiempo de espera por inactividad en milisegundos para las llamadas a herramientas MCP. Cuando un servidor MCP stdio, HTTP, SSE, WebSocket o de [conector de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai) no envía ninguna respuesta ni ninguna notificación de progreso durante este tiempo, la llamada a herramienta se aborta con un error en lugar de esperar el `MCP_TOOL_TIMEOUT` general. Sobrescribe los valores predeterminados por transporte de 300000 (5 minutos) para servidores de red y 1800000 (30 minutos) para servidores stdio. Establécela en `0` para deshabilitar la comprobación de inactividad. Los valores inferiores a 1000 se elevan a un segundo, y el valor se limita al `MCP_TOOL_TIMEOUT` efectivo. Un `timeout` por servidor en `.mcp.json` de al menos 1000 eleva la ventana de inactividad de ese servidor a al menos el valor de `timeout`. No se aplica a servidores del IDE ni a servidores en proceso del SDK. Requiere Claude Code v2.1.187 o posterior. Antes de la v2.1.203, los servidores stdio estaban exentos del tiempo de espera por inactividad |326| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | Tiempo de espera por inactividad en milisegundos para las llamadas a herramientas MCP. Cuando un servidor MCP stdio, HTTP, SSE, WebSocket o de [conector de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai) no envía ninguna respuesta ni ninguna notificación de progreso durante este tiempo, la llamada a herramienta se aborta con un error en lugar de esperar el `MCP_TOOL_TIMEOUT` general. Sobrescribe los valores predeterminados por transporte de 300000 (5 minutos) para servidores de red y 1800000 (30 minutos) para servidores stdio. Establécela en `0` para deshabilitar la comprobación de inactividad. Los valores inferiores a 1000 se elevan a un segundo, y el valor se limita al `MCP_TOOL_TIMEOUT` efectivo. Un `timeout` por servidor en `.mcp.json` de al menos 1000 eleva la ventana de inactividad de ese servidor a al menos el valor de `timeout`. No se aplica a servidores del IDE ni a servidores en proceso del SDK. Requiere Claude Code v2.1.187 o posterior. Antes de la v2.1.203, los servidores stdio estaban exentos del tiempo de espera por inactividad |

332| `CLAUDE_CODE_MESSAGING_SOCKET` | La establece Claude Code, no tú: en las sesiones que vinculan un [socket de bandeja de entrada](/docs/es/cross-session-messaging#the-sessions-inbox-socket), Claude Code exporta la ruta de ese socket a los hooks y a los comandos de Bash cuando vincula el socket. En una sesión que se inicia con la mensajería activada, Claude Code vincula el socket antes de que se ejecute cualquier hook. Otras sesiones de la máquina entregan mensajes a esta ruta. Cada sesión exporta su propio socket en lugar de uno heredado de un proceso padre, y los mensajes que llegan a él pasan por los [controles de entrada](/docs/es/cross-session-messaging#control-inbound-messages) de la sesión. Los bloques `env` de la configuración no pueden establecerla. Requiere Claude Code v2.1.224 o posterior |327| `CLAUDE_CODE_MESSAGING_SOCKET` | La establece Claude Code, no tú: en las sesiones que vinculan un [socket de bandeja de entrada](/docs/es/cross-session-messaging#the-sessions-inbox-socket), Claude Code exporta la ruta de ese socket a los hooks y a los comandos de Bash cuando vincula el socket. En una sesión que se inicia con la mensajería activada, Claude Code vincula el socket antes de que se ejecute cualquier hook. Otras sesiones de la máquina entregan mensajes a esta ruta. Cada sesión exporta su propio socket en lugar de uno heredado de un proceso padre, y los mensajes que llegan a él pasan por los [controles de entrada](/docs/es/cross-session-messaging#control-inbound-messages) de la sesión. Los bloques `env` de la configuración no pueden establecerla. Requiere Claude Code v2.1.224 o posterior |

333| `CLAUDE_CODE_MESSAGING_TOKEN` | La establece Claude Code, no tú: en las sesiones que vinculan un [socket de bandeja de entrada](/docs/es/cross-session-messaging#the-sessions-inbox-socket), Claude Code exporta este token por sesión a los hooks y a los comandos de Bash junto con `CLAUDE_CODE_MESSAGING_SOCKET`. Un script que publica en el socket puede enviar `{"type":"auth","token":"<token>"}` como su primera línea para demostrar que pertenece a la sesión. En Windows nativo, Claude Code exige esta línea y cierra cualquier conexión que no comience con una válida. Las [reglas de procesos hijos propios](/docs/es/cross-session-messaging#the-sessions-inbox-socket) indican cuándo consulta Claude Code el token. Cada sesión exporta su propio token, nunca uno heredado de una sesión padre. Los bloques `env` de la configuración no pueden establecerla. Requiere Claude Code v2.1.228 o posterior |328| `CLAUDE_CODE_MESSAGING_TOKEN` | La establece Claude Code, no tú: en las sesiones que vinculan un [socket de bandeja de entrada](/docs/es/cross-session-messaging#the-sessions-inbox-socket), Claude Code exporta este token por sesión a los hooks y a los comandos de Bash junto con `CLAUDE_CODE_MESSAGING_SOCKET`. Un script que publica en el socket puede enviar `{"type":"auth","token":"<token>"}` como su primera línea para demostrar que pertenece a la sesión. En Windows nativo, Claude Code exige esta línea y cierra cualquier conexión que no comience con una válida. Las [reglas de procesos hijos propios](/docs/es/cross-session-messaging#the-sessions-inbox-socket) indican cuándo consulta Claude Code el token. Cada sesión exporta su propio token, nunca uno heredado de una sesión padre. Los bloques `env` de la configuración no pueden establecerla. Requiere Claude Code v2.1.228 o posterior |


372| `CLAUDE_CODE_RESUME_PROMPT` | Sobrescribe el mensaje de continuación que Claude Code envía a Claude cuando `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` continúa un turno interrumpido en lugar de volver a enviar su prompt, o cuando reanudas una [llamada a herramienta diferida](/docs/es/hooks#defer-a-tool-call-for-later) con `-p`. El valor predeterminado es `Continue from where you left off.`. Una cadena vacía usa el valor predeterminado |367| `CLAUDE_CODE_RESUME_PROMPT` | Sobrescribe el mensaje de continuación que Claude Code envía a Claude cuando `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` continúa un turno interrumpido en lugar de volver a enviar su prompt, o cuando reanudas una [llamada a herramienta diferida](/docs/es/hooks#defer-a-tool-call-for-later) con `-p`. El valor predeterminado es `Continue from where you left off.`. Una cadena vacía usa el valor predeterminado |

373| `CLAUDE_CODE_RETRY_WATCHDOG` | Establécela en `1` para sesiones desatendidas, como harnesses de evaluación, trabajos de CI o workers remotos. Reintenta indefinidamente los errores de capacidad `429` y `529` en lugar de fallar después de `CLAUDE_CODE_MAX_RETRIES` intentos. Claude Code falla de inmediato cuando una solicitud de velocidad estándar recibe un `429` que informa de un límite de gasto o de créditos de uso agotados, incluso uno de un [límite de gasto del gateway](/docs/es/errors#spend-limit-reached) que se restablece según un calendario. Antes de la v2.1.239, el watchdog reintentaba estos errores indefinidamente. Para las solicitudes en modo rápido, consulta [Manejar los rate limits](/docs/es/fast-mode#handle-rate-limits). El watchdog espera hasta 5 minutos entre intentos, o hasta que se restablezca el límite cuando la respuesta incluye una hora de restablecimiento del rate limit, de modo que una sesión que alcanza un límite de uso espera a que transcurra la ventana restante. En la v2.1.199 o posterior, también aumenta a 300 el número predeterminado de reintentos para otros errores transitorios, como errores del servidor, tiempos de espera agotados y conexiones interrumpidas, lo que equivale aproximadamente a tres horas de backoff, y elimina el límite de 15 en `CLAUDE_CODE_MAX_RETRIES` si estableces esa variable de forma explícita. Requiere Claude Code v2.1.186 o posterior |368| `CLAUDE_CODE_RETRY_WATCHDOG` | Establécela en `1` para sesiones desatendidas, como harnesses de evaluación, trabajos de CI o workers remotos. Reintenta indefinidamente los errores de capacidad `429` y `529` en lugar de fallar después de `CLAUDE_CODE_MAX_RETRIES` intentos. Claude Code falla de inmediato cuando una solicitud de velocidad estándar recibe un `429` que informa de un límite de gasto o de créditos de uso agotados, incluso uno de un [límite de gasto del gateway](/docs/es/errors#spend-limit-reached) que se restablece según un calendario. Antes de la v2.1.239, el watchdog reintentaba estos errores indefinidamente. Para las solicitudes en modo rápido, consulta [Manejar los rate limits](/docs/es/fast-mode#handle-rate-limits). El watchdog espera hasta 5 minutos entre intentos, o hasta que se restablezca el límite cuando la respuesta incluye una hora de restablecimiento del rate limit, de modo que una sesión que alcanza un límite de uso espera a que transcurra la ventana restante. En la v2.1.199 o posterior, también aumenta a 300 el número predeterminado de reintentos para otros errores transitorios, como errores del servidor, tiempos de espera agotados y conexiones interrumpidas, lo que equivale aproximadamente a tres horas de backoff, y elimina el límite de 15 en `CLAUDE_CODE_MAX_RETRIES` si estableces esa variable de forma explícita. Requiere Claude Code v2.1.186 o posterior |

374| `CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS` | Tiempo máximo en milisegundos que cada solicitud a la API dedica a esperar a que pasen los errores `429` y `529` cuando `CLAUDE_CODE_RETRY_WATCHDOG` está establecida. Una vez agotado ese tiempo, el siguiente error de ese tipo termina la solicitud. Indica un número entero positivo con dígitos simples, como `1800000` para 30 minutos. Cuando no está establecida, la espera no tiene límite. Requiere Claude Code v2.1.295 o posterior |369| `CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS` | Tiempo máximo en milisegundos que cada solicitud a la API dedica a esperar a que pasen los errores `429` y `529` cuando `CLAUDE_CODE_RETRY_WATCHDOG` está establecida. Una vez agotado ese tiempo, el siguiente error de ese tipo termina la solicitud. Indica un número entero positivo con dígitos simples, como `1800000` para 30 minutos. Cuando no está establecida, la espera no tiene límite. Requiere Claude Code v2.1.295 o posterior |

370| `CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS` | Intervalo mínimo en milisegundos entre comprobaciones de si un [límite de uso](/docs/es/errors#youve-hit-your-session-limit) ya se levantó, mientras una solicitud espera a que ese límite se restablezca con `CLAUDE_CODE_RETRY_WATCHDOG` establecida. Cuando una comprobación detecta que el límite se levantó, la solicitud se envía de inmediato. Indica un número entero en dígitos simples desde `60000`, un minuto, hasta `10800000`, tres horas. Las comprobaciones solo se realizan para el límite de sesión o semanal de una suscripción de claude.ai mientras no se están usando créditos de uso, y no mientras `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` está establecida. Cuando esta variable no está establecida o su valor está fuera de ese rango, no se realizan comprobaciones. Requiere Claude Code v2.1.305 o posterior |

375| `CLAUDE_CODE_SAFE_MODE` | Establécela en `1` para iniciar en modo seguro: CLAUDE.md, skills, plugins, hooks, servidores MCP, comandos y agentes personalizados, estilos de salida, flujos de trabajo, temas personalizados, atajos de teclado personalizados, comandos de la línea de estado y de sugerencia de archivos, servidores LSP y la memoria automática no se cargan, para solucionar problemas de una configuración rota. La política de configuración administrada sigue aplicándose, incluidos los hooks, la línea de estado y los comandos de sugerencia de archivos configurados por política; los plugins administrados, los skills administrados, el CLAUDE.md administrado y los servidores MCP configurados por política no se aplican. Equivale a pasar [`--safe-mode`](/docs/es/cli-reference#cli-flags). Los procesos hijos iniciados directamente heredan la variable |371| `CLAUDE_CODE_SAFE_MODE` | Establécela en `1` para iniciar en modo seguro: CLAUDE.md, skills, plugins, hooks, servidores MCP, comandos y agentes personalizados, estilos de salida, flujos de trabajo, temas personalizados, atajos de teclado personalizados, comandos de la línea de estado y de sugerencia de archivos, servidores LSP y la memoria automática no se cargan, para solucionar problemas de una configuración rota. La política de configuración administrada sigue aplicándose, incluidos los hooks, la línea de estado y los comandos de sugerencia de archivos configurados por política; los plugins administrados, los skills administrados, el CLAUDE.md administrado y los servidores MCP configurados por política no se aplican. Equivale a pasar [`--safe-mode`](/docs/es/cli-reference#cli-flags). Los procesos hijos iniciados directamente heredan la variable |

376| `CLAUDE_CODE_SCRIPT_CAPS` | Objeto JSON que limita cuántas veces se pueden invocar scripts específicos por sesión cuando `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` está establecida. Las claves son subcadenas que se comparan con el texto del comando; los valores son límites enteros de llamadas. Por ejemplo, `{"deploy.sh": 2}` permite llamar a `deploy.sh` como máximo dos veces. La coincidencia se basa en subcadenas, por lo que trucos de expansión del shell como `./scripts/deploy.sh $(evil)` siguen contando para el límite. La ramificación en tiempo de ejecución mediante `xargs` o `find -exec` no se detecta; se trata de un control de defensa en profundidad |372| `CLAUDE_CODE_SCRIPT_CAPS` | Objeto JSON que limita cuántas veces se pueden invocar scripts específicos por sesión cuando `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` está establecida. Las claves son subcadenas que se comparan con el texto del comando; los valores son límites enteros de llamadas. Por ejemplo, `{"deploy.sh": 2}` permite llamar a `deploy.sh` como máximo dos veces. La coincidencia se basa en subcadenas, por lo que trucos de expansión del shell como `./scripts/deploy.sh $(evil)` siguen contando para el límite. La ramificación en tiempo de ejecución mediante `xargs` o `find -exec` no se detecta; se trata de un control de defensa en profundidad |

377| `CLAUDE_CODE_SCROLL_SPEED` | Establece el multiplicador de desplazamiento de la rueda del ratón en la [representación en pantalla completa](/docs/es/fullscreen#mouse-wheel-scrolling). Acepta cualquier valor positivo hasta 20, incluidos valores fraccionarios inferiores a 1, como `0.5`, para ralentizar el desplazamiento acelerado del trackpad y la rueda en terminales que ya amplifican los eventos de la rueda. Establécela en `3` para igualar a `vim` si tu terminal envía un evento de rueda por muesca sin amplificación. Se ignora en la terminal del IDE de JetBrains, donde Claude Code usa su propio manejo del desplazamiento |373| `CLAUDE_CODE_SCROLL_SPEED` | Establece el multiplicador de desplazamiento de la rueda del ratón en la [representación en pantalla completa](/docs/es/fullscreen#mouse-wheel-scrolling). Acepta cualquier valor positivo hasta 20, incluidos valores fraccionarios inferiores a 1, como `0.5`, para ralentizar el desplazamiento acelerado del trackpad y la rueda en terminales que ya amplifican los eventos de la rueda. Establécela en `3` para igualar a `vim` si tu terminal envía un evento de rueda por muesca sin amplificación. Se ignora en la terminal del IDE de JetBrains, donde Claude Code usa su propio manejo del desplazamiento |


405| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Tiempo de espera en milisegundos durante el cual la primera consulta espera la lista inicial de skills cuando `CLAUDE_CODE_SYNC_SKILLS` está establecida (predeterminado: 5000). Cuando se supera, la primera consulta se ejecuta con los skills que hayan llegado. Las descargas terminan en segundo plano en cualquier caso, y Claude espera la descarga de un skill cuando invoca ese skill |401| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Tiempo de espera en milisegundos durante el cual la primera consulta espera la lista inicial de skills cuando `CLAUDE_CODE_SYNC_SKILLS` está establecida (predeterminado: 5000). Cuando se supera, la primera consulta se ejecuta con los skills que hayan llegado. Las descargas terminan en segundo plano en cualquier caso, y Claude espera la descarga de un skill cuando invoca ese skill |

406| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Establécela en `false` para deshabilitar el resaltado de sintaxis en la salida de diff. Útil cuando los colores interfieren con la configuración de tu terminal. Para deshabilitar también el resaltado en los bloques de código y en las vistas previas de archivos, usa el ajuste [`syntaxHighlightingDisabled`](/docs/es/settings-reference#syntaxhighlightingdisabled) |402| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Establécela en `false` para deshabilitar el resaltado de sintaxis en la salida de diff. Útil cuando los colores interfieren con la configuración de tu terminal. Para deshabilitar también el resaltado en los bloques de código y en las vistas previas de archivos, usa el ajuste [`syntaxHighlightingDisabled`](/docs/es/settings-reference#syntaxhighlightingdisabled) |

407| `CLAUDE_CODE_TASK_LIST_ID` | Comparte una lista de tareas entre sesiones. Establece el mismo ID en varias instancias de Claude Code para coordinarse en una lista de tareas compartida, en [sesiones que tienen las herramientas Task](/docs/es/tools-reference#task-tool-availability). Consulta [Lista de tareas](/docs/es/interactive-mode#task-list) |403| `CLAUDE_CODE_TASK_LIST_ID` | Comparte una lista de tareas entre sesiones. Establece el mismo ID en varias instancias de Claude Code para coordinarse en una lista de tareas compartida, en [sesiones que tienen las herramientas Task](/docs/es/tools-reference#task-tool-availability). Consulta [Lista de tareas](/docs/es/interactive-mode#task-list) |

408| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | Sobrescribe, en milisegundos, cuánto tiempo espera una sesión no interactiva al salir a que su [equipo de agentes](/docs/es/agent-teams) termine de desmontarse. Acepta de 1000 a 60000; un valor fuera de rango se ignora y se aplica el predeterminado de 10000. Requiere Claude Code v2.1.206 o posterior |

409| `CLAUDE_CODE_TMPDIR` | Sobrescribe el directorio temporal que se usa para los archivos temporales internos. Claude Code agrega `/claude-{uid}/` a esta ruta en Unix, o `/claude/` en Windows. Predeterminado: `/tmp` en macOS, `os.tmpdir()` en Linux y Windows. En macOS y Linux, los subprocesos de Bash [en sandbox](/docs/es/sandboxing) reciben un `$TMPDIR` de respaldo corto bajo el directorio predeterminado del sistema cuando tu sobrescritura es una ruta larga, ya que algunas herramientas fallan cuando las rutas temporales son demasiado largas. Los comandos de Bash sin sandbox heredan el `$TMPDIR` de tu shell cuando está establecido. En Windows nativo, cuando tu shell no establece `$TMPDIR`, un comando de Bash que hace referencia a `$TMPDIR` recibe tu sobrescritura, o `%TEMP%` cuando no has establecido una. Los archivos temporales propios de Claude Code siempre usan tu sobrescritura. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |404| `CLAUDE_CODE_TMPDIR` | Sobrescribe el directorio temporal que se usa para los archivos temporales internos. Claude Code agrega `/claude-{uid}/` a esta ruta en Unix, o `/claude/` en Windows. Predeterminado: `/tmp` en macOS, `os.tmpdir()` en Linux y Windows. En macOS y Linux, los subprocesos de Bash [en sandbox](/docs/es/sandboxing) reciben un `$TMPDIR` de respaldo corto bajo el directorio predeterminado del sistema cuando tu sobrescritura es una ruta larga, ya que algunas herramientas fallan cuando las rutas temporales son demasiado largas. Los comandos de Bash sin sandbox heredan el `$TMPDIR` de tu shell cuando está establecido. En Windows nativo, cuando tu shell no establece `$TMPDIR`, un comando de Bash que hace referencia a `$TMPDIR` recibe tu sobrescritura, o `%TEMP%` cuando no has establecido una. Los archivos temporales propios de Claude Code siempre usan tu sobrescritura. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |

410| `CLAUDE_CODE_TMUX_TRUECOLOR` | Establécela en cualquier valor no vacío, como `1`, para permitir la salida de color verdadero de 24 bits dentro de tmux. **Establecerla en `0` o `false` sigue permitiendo el color verdadero**, a diferencia de la mayoría de las variables de activación/desactivación; elimina la variable para restaurar la limitación a 256 colores. De forma predeterminada, Claude Code se limita a 256 colores cuando `$TMUX` está establecida, porque tmux no transmite las secuencias de escape de color verdadero a menos que esté configurado para ello. Establécela después de agregar `set -ga terminal-overrides ',*:Tc'` a tu `~/.tmux.conf`. Consulta [Configuración de la terminal](/docs/es/terminal-config) para ver otros ajustes de tmux |405| `CLAUDE_CODE_TMUX_TRUECOLOR` | Establécela en cualquier valor no vacío, como `1`, para permitir la salida de color verdadero de 24 bits dentro de tmux. **Establecerla en `0` o `false` sigue permitiendo el color verdadero**, a diferencia de la mayoría de las variables de activación/desactivación; elimina la variable para restaurar la limitación a 256 colores. De forma predeterminada, Claude Code se limita a 256 colores cuando `$TMUX` está establecida, porque tmux no transmite las secuencias de escape de color verdadero a menos que esté configurado para ello. Establécela después de agregar `set -ga terminal-overrides ',*:Tc'` a tu `~/.tmux.conf`. Consulta [Configuración de la terminal](/docs/es/terminal-config) para ver otros ajustes de tmux |

411| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | En Linux y WSL, establécela en una lista separada por comas de los tipos de procesos que Claude Code [excluye del límite de memoria de las herramientas](/docs/es/tools-reference#memory-limit-on-linux-and-wsl), como `mcp` o `lsp`. Establece `none` para limitar todos los tipos, o `all-new` para limitar solo los comandos de las herramientas Bash, PowerShell y Monitor. Claude Code mantiene los comandos de las herramientas Bash, PowerShell y Monitor bajo el límite sea lo que sea que indiques. Requiere Claude Code v2.1.246 o posterior |406| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | En Linux y WSL, establécela en una lista separada por comas de los tipos de procesos que Claude Code [excluye del límite de memoria de las herramientas](/docs/es/tools-reference#memory-limit-on-linux-and-wsl), como `mcp` o `lsp`. Establece `none` para limitar todos los tipos, o `all-new` para limitar solo los comandos de las herramientas Bash, PowerShell y Monitor. Claude Code mantiene los comandos de las herramientas Bash, PowerShell y Monitor bajo el límite sea lo que sea que indiques. Requiere Claude Code v2.1.246 o posterior |

412| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | En Linux y WSL, establécela en un tamaño como `4G` para [limitar la memoria que pueden usar los comandos de las herramientas Bash y PowerShell](/docs/es/tools-reference#memory-limit-on-linux-and-wsl), y los comandos de la herramienta Monitor en la v2.1.246 o posterior. Escribe el tamaño con dígitos simples, solo para un número de bytes o con un sufijo `K`, `M`, `G` o `T`. Establece `0` u `off` para desactivar el límite. Una vez que el primer proceso que inicia Claude Code ha activado o desactivado el límite, un valor modificado surte efecto la próxima vez que inicies `claude`. Requiere Claude Code v2.1.233 o posterior |407| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | En Linux y WSL, establécela en un tamaño como `4G` para [limitar la memoria que pueden usar los comandos de las herramientas Bash y PowerShell](/docs/es/tools-reference#memory-limit-on-linux-and-wsl), y los comandos de la herramienta Monitor en la v2.1.246 o posterior. Escribe el tamaño con dígitos simples, solo para un número de bytes o con un sufijo `K`, `M`, `G` o `T`. Establece `0` u `off` para desactivar el límite. Una vez que el primer proceso que inicia Claude Code ha activado o desactivado el límite, un valor modificado surte efecto la próxima vez que inicies `claude`. Requiere Claude Code v2.1.233 o posterior |

413| `CLAUDE_CODE_TRANSCRIPT_LOCAL_GC` | Establécela en `1` para limitar cuánto crece el [archivo de transcripción](/docs/es/sessions#where-transcripts-are-stored) de una sesión larga de `-p` o del Agent SDK. Después de cada compactación, una vez que el archivo supera los 5 MB, Claude Code elimina el historial anterior a esa compactación. Reanudar la sesión restaura la misma conversación tanto si el archivo se recortó como si no. Establécela en el entorno desde el que inicias Claude Code, ya que un bloque `env` de la configuración no puede activarla. Requiere Claude Code v2.1.287 o posterior |408| `CLAUDE_CODE_TRANSCRIPT_LOCAL_GC` | Establécela en `1` para limitar cuánto crece el [archivo de transcripción](/docs/es/sessions#where-transcripts-are-stored) de una sesión larga de `-p` o del Agent SDK. Después de cada compactación, una vez que el archivo supera los 5 MB, Claude Code elimina el historial anterior a esa compactación. En v2.1.296 o posterior, el archivo se mantiene igual cuando eliminar ese historial lo reduciría en menos del 10%. Reanudar la sesión restaura la misma conversación, se haya recortado o no el archivo. Establécela en el entorno desde el que inicias Claude Code, ya que un bloque `env` de la configuración no puede activarla. Requiere Claude Code v2.1.287 o posterior |

414| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Plazo en milisegundos antes de que Claude Code cancele un diálogo que reenvía a un cliente remoto, como un host de [Remote Control](/docs/es/remote-control) o del SDK, o el diálogo de aprobación de un [mensaje entre sesiones retenido](/docs/es/cross-session-messaging#control-inbound-messages); las solicitudes de permiso y las preguntas de `AskUserQuestion` usan sus propios flujos y no se rigen por él. En Claude Code v2.1.236 o posterior, también limita la [solicitud de consentimiento de créditos de uso de Fable](/docs/es/model-config#fable-and-usage-credits) a mitad de sesión en una sesión que puede estar ejecutándose sin supervisión. [Controlar mensajes entrantes](/docs/es/cross-session-messaging#control-inbound-messages) y [sesiones no interactivas](/docs/es/cross-session-messaging#non-interactive-sessions) cubren las reglas completas de expiración de los mensajes retenidos, incluidos los casos en que el plazo no se aplica. Sobrescribe el ajuste [`dialogExpiry`](/docs/es/settings-reference#dialogexpiry). `0` o un valor negativo desactiva el plazo. Se ignora en [la configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |409| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Plazo en milisegundos antes de que Claude Code cancele un diálogo que reenvía a un cliente remoto, como un host de [Remote Control](/docs/es/remote-control) o del SDK, o el diálogo de aprobación de un [mensaje entre sesiones retenido](/docs/es/cross-session-messaging#control-inbound-messages); las solicitudes de permiso y las preguntas de `AskUserQuestion` usan sus propios flujos y no se rigen por él. En Claude Code v2.1.236 o posterior, también limita la [solicitud de consentimiento de créditos de uso de Fable](/docs/es/model-config#fable-and-usage-credits) a mitad de sesión en una sesión que puede estar ejecutándose sin supervisión. [Controlar mensajes entrantes](/docs/es/cross-session-messaging#control-inbound-messages) y [sesiones no interactivas](/docs/es/cross-session-messaging#non-interactive-sessions) cubren las reglas completas de expiración de los mensajes retenidos, incluidos los casos en que el plazo no se aplica. Sobrescribe el ajuste [`dialogExpiry`](/docs/es/settings-reference#dialogexpiry). `0` o un valor negativo desactiva el plazo. Se ignora en [la configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |

415| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Usa [Claude Platform on AWS](/docs/es/claude-platform-on-aws) |410| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Usa [Claude Platform on AWS](/docs/es/claude-platform-on-aws) |

416| `CLAUDE_CODE_USE_BEDROCK` | Usa [Amazon Bedrock](/docs/es/amazon-bedrock) |411| `CLAUDE_CODE_USE_BEDROCK` | Usa [Amazon Bedrock](/docs/es/amazon-bedrock) |

417| `CLAUDE_CODE_USE_FOUNDRY` | Usa [Microsoft Foundry](/docs/es/microsoft-foundry) |412| `CLAUDE_CODE_USE_FOUNDRY` | Usa [Microsoft Foundry](/docs/es/microsoft-foundry) |

418| `CLAUDE_CODE_USE_MANTLE` | Usa el [endpoint Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint) de Amazon Bedrock |413| `CLAUDE_CODE_USE_MANTLE` | Usa el [endpoint Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint) de Amazon Bedrock |

419| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | Establécelo en `1` para descubrir comandos personalizados, subagentes y estilos de salida usando las API de archivos de Node.js en lugar de ripgrep. Establécelo si el binario de ripgrep incluido no está disponible o está bloqueado en tu entorno. No afecta a la herramienta Grep ni a las herramientas de búsqueda de archivos |

420| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | Controla la herramienta PowerShell. En Windows sin Git Bash, la herramienta se habilita automáticamente; establécelo en `0` para deshabilitarla. En Windows con Git Bash instalado, la herramienta está activada de forma predeterminada para las cuentas de claude.ai y de Console; establécelo en `1` para habilitarla en sesiones de Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, o en `0` para desactivarla. En Linux, macOS y WSL, establécelo en `1` para habilitarla, lo que requiere `pwsh` en tu `PATH`. Cuando está habilitada en Windows, Claude puede ejecutar comandos de PowerShell de forma nativa en lugar de pasar por Git Bash. Consulta [herramienta PowerShell](/docs/es/tools-reference#powershell-tool) |414| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | Controla la herramienta PowerShell. En Windows sin Git Bash, la herramienta se habilita automáticamente; establécelo en `0` para deshabilitarla. En Windows con Git Bash instalado, la herramienta está activada de forma predeterminada para las cuentas de claude.ai y de Console; establécelo en `1` para habilitarla en sesiones de Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, o en `0` para desactivarla. En Linux, macOS y WSL, establécelo en `1` para habilitarla, lo que requiere `pwsh` en tu `PATH`. Cuando está habilitada en Windows, Claude puede ejecutar comandos de PowerShell de forma nativa en lugar de pasar por Git Bash. Consulta [herramienta PowerShell](/docs/es/tools-reference#powershell-tool) |

421| `CLAUDE_CODE_USE_VERTEX` | Usa [Google Cloud's Agent Platform](/docs/es/google-vertex-ai) |415| `CLAUDE_CODE_USE_VERTEX` | Usa [Google Cloud's Agent Platform](/docs/es/google-vertex-ai) |

422| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | Establécelo en el número de milisegundos durante los que [WebFetch](/docs/es/tools-reference#webfetch-tool-behavior) mantiene en caché la respuesta de cada URL obtenida. El valor predeterminado es `900000`, que equivale a 15 minutos. Solo acepta dígitos simples; `0`, un decimal o cualquier otra escritura mantiene el valor predeterminado. Claude Code lee el valor una vez por inicio, por lo que un cambio en un bloque `env` de la configuración se aplica la próxima vez que inicies `claude`. Requiere Claude Code v2.1.233 o posterior |416| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | Establécelo en el número de milisegundos durante los que [WebFetch](/docs/es/tools-reference#webfetch-tool-behavior) mantiene en caché la respuesta de cada URL obtenida. El valor predeterminado es `900000`, que equivale a 15 minutos. Solo acepta dígitos simples; `0`, un decimal o cualquier otra escritura mantiene el valor predeterminado. Claude Code lee el valor una vez por inicio, por lo que un cambio en un bloque `env` de la configuración se aplica la próxima vez que inicies `claude`. Requiere Claude Code v2.1.233 o posterior |


427| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Límite superior en milisegundos de cuánto tiempo espera un agente de [flujo de trabajo](/docs/es/workflows) a que comience la primera respuesta de un agente hermano con el mismo prefijo antes de enviar su propia primera solicitud. Cuando una distribución en abanico (fan-out) inicia varios agentes que comparten un [prefijo de caché de prompts](/docs/es/workflows#prompt-caching-in-a-fan-out), Claude Code retiene a todos los agentes excepto al primero hasta este tiempo para que el resto lea el prefijo en caché en lugar de que cada uno lo procese sin caché. Valor predeterminado: `5000`. Establécelo en `0` para desactivar la espera. Cuando `DISABLE_PROMPT_CACHING` está establecida, los agentes nunca esperan. Requiere Claude Code v2.1.229 o posterior |421| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Límite superior en milisegundos de cuánto tiempo espera un agente de [flujo de trabajo](/docs/es/workflows) a que comience la primera respuesta de un agente hermano con el mismo prefijo antes de enviar su propia primera solicitud. Cuando una distribución en abanico (fan-out) inicia varios agentes que comparten un [prefijo de caché de prompts](/docs/es/workflows#prompt-caching-in-a-fan-out), Claude Code retiene a todos los agentes excepto al primero hasta este tiempo para que el resto lea el prefijo en caché en lugar de que cada uno lo procese sin caché. Valor predeterminado: `5000`. Establécelo en `0` para desactivar la espera. Cuando `DISABLE_PROMPT_CACHING` está establecida, los agentes nunca esperan. Requiere Claude Code v2.1.229 o posterior |

428| `CLAUDE_CODE_YOU_SHOULD_KNOW_DEBUG` | Establécela en `1` para mostrar, encima del prompt, una línea por cada una de las últimas tres comprobaciones que hizo el [mod You should know](/docs/es/interactive-mode#you-should-know-suggestions) en esta sesión. Úsala para confirmar que el mod está haciendo comprobaciones cuando no aparece ninguna nota. Requiere Claude Code v2.1.287 o posterior |422| `CLAUDE_CODE_YOU_SHOULD_KNOW_DEBUG` | Establécela en `1` para mostrar, encima del prompt, una línea por cada una de las últimas tres comprobaciones que hizo el [mod You should know](/docs/es/interactive-mode#you-should-know-suggestions) en esta sesión. Úsala para confirmar que el mod está haciendo comprobaciones cuando no aparece ninguna nota. Requiere Claude Code v2.1.287 o posterior |

429| `CLAUDE_CONFIG_DIR` | Sobrescribe el directorio de configuración (predeterminado: `~/.claude`). Toda la configuración, el historial de sesiones y los plugins se almacenan en esta ruta. Para las credenciales, consulta [dónde almacena Claude Code las credenciales](/docs/es/authentication#credential-management). Útil para ejecutar varias cuentas en paralelo: por ejemplo, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Establécelo en tu shell, en la configuración de usuario o en la configuración administrada. En un archivo de configuración, escribe la [ruta absoluta](#in-settings-files). Se ignora en [la configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |423| `CLAUDE_CONFIG_DIR` | Sobrescribe el directorio de configuración (predeterminado: `~/.claude`). Toda la configuración, el historial de sesiones y los plugins se almacenan en esta ruta. Para las credenciales, consulta [dónde almacena Claude Code las credenciales](/docs/es/authentication#credential-management). Útil para ejecutar varias cuentas en paralelo: por ejemplo, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Establécelo en tu shell, en la configuración de usuario o en la configuración administrada. En un archivo de configuración, escribe la [ruta absoluta](#in-settings-files). Se ignora en [la configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |

430| `CLAUDE_DISABLE_ADOPT` | Establécelo en `1` para detener el trabajo en segundo plano en curso en lugar de trasladarlo cuando envías una sesión a segundo plano presionando `←` o con [`/background`](/docs/es/agent-view#from-inside-a-session). Claude Code te pide que confirmes antes de enviarla a segundo plano y luego detiene las tareas que de otro modo se trasladarían. Requiere Claude Code v2.1.195 o posterior |

431| `CLAUDE_EFFORT` | Se establece automáticamente en los subprocesos de la herramienta Bash y en los comandos de hooks con el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) vigente cuando se inicia el subproceso: `low`, `medium`, `high`, `xhigh` o `max`. Coincide con el campo `effort.level` que se pasa a los [hooks](/docs/es/hooks). Solo se establece cuando el modelo actual admite el parámetro effort |424| `CLAUDE_EFFORT` | Se establece automáticamente en los subprocesos de la herramienta Bash y en los comandos de hooks con el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) vigente cuando se inicia el subproceso: `low`, `medium`, `high`, `xhigh` o `max`. Coincide con el campo `effort.level` que se pasa a los [hooks](/docs/es/hooks). Solo se establece cuando el modelo actual admite el parámetro effort |

432| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Establécelo en `1` para forzar la habilitación del watchdog de inactividad de streaming a nivel de bytes, o en `0` para forzar su deshabilitación. `0` también desactiva el [plazo del primer byte](/docs/es/network-config#streaming-idle-watchdogs) en las conexiones donde se ejecuta ese plazo. Cuando no está establecida, el watchdog está habilitado de forma predeterminada para las conexiones directas a la API de Anthropic y a [Claude Platform on AWS](/docs/es/claude-platform-on-aws), y para las respuestas en streaming en conexiones de [gateway](/docs/es/gateways) a las que se accede mediante `ANTHROPIC_BASE_URL` o `ANTHROPIC_AWS_BASE_URL`; antes de v2.1.222 no se ejecutaba en esas conexiones de gateway, por lo que el watchdog a nivel de eventos podía informar de un bloqueo allí incluso mientras llegaban pings de keep-alive. Para los tiempos de espera y cómo interactúan los temporizadores, consulta [Watchdogs de inactividad de streaming](/docs/es/network-config#streaming-idle-watchdogs) |425| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Establécelo en `1` para forzar la habilitación del watchdog de inactividad de streaming a nivel de bytes, o en `0` para forzar su deshabilitación. `0` también desactiva el [plazo del primer byte](/docs/es/network-config#streaming-idle-watchdogs) en las conexiones donde se ejecuta ese plazo. Cuando no está establecida, el watchdog está habilitado de forma predeterminada para las conexiones directas a la API de Anthropic y a [Claude Platform on AWS](/docs/es/claude-platform-on-aws), y para las respuestas en streaming en conexiones de [gateway](/docs/es/gateways) a las que se accede mediante `ANTHROPIC_BASE_URL` o `ANTHROPIC_AWS_BASE_URL`; antes de v2.1.222 no se ejecutaba en esas conexiones de gateway, por lo que el watchdog a nivel de eventos podía informar de un bloqueo allí incluso mientras llegaban pings de keep-alive. Para los tiempos de espera y cómo interactúan los temporizadores, consulta [Watchdogs de inactividad de streaming](/docs/es/network-config#streaming-idle-watchdogs) |

433| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Establécelo en `1` para habilitar el watchdog de inactividad de streaming a nivel de bytes en las respuestas `vnd.amazon.eventstream` de Amazon Bedrock, lo que también habilita el [plazo del primer byte](/docs/es/network-config#streaming-idle-watchdogs) en las solicitudes de streaming de Bedrock. Desactivado de forma predeterminada. Configura el tiempo de espera con `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |426| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Establécelo en `1` para habilitar el watchdog de inactividad de streaming a nivel de bytes en las respuestas `vnd.amazon.eventstream` de Amazon Bedrock, lo que también habilita el [plazo del primer byte](/docs/es/network-config#streaming-idle-watchdogs) en las solicitudes de streaming de Bedrock. Desactivado de forma predeterminada. Configura el tiempo de espera con `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |


465| `DO_NOT_TRACK` | Establécelo en `1` para excluirte de la telemetría, con el mismo efecto que `DISABLE_TELEMETRY`, incluido sobre la [obtención de feature flags](#features-that-need-feature-flag-fetching). Claude Code lee esta variable como un booleano estándar, por lo que `0` mantiene la telemetría activada, y la respeta como la convención entre herramientas reconocida por muchas CLI para desarrolladores |458| `DO_NOT_TRACK` | Establécelo en `1` para excluirte de la telemetría, con el mismo efecto que `DISABLE_TELEMETRY`, incluido sobre la [obtención de feature flags](#features-that-need-feature-flag-fetching). Claude Code lee esta variable como un booleano estándar, por lo que `0` mantiene la telemetría activada, y la respeta como la convención entre herramientas reconocida por muchas CLI para desarrolladores |

466| `ENABLE_BETA_TRACING_DETAILED` | Establécelo en `1`, y establece `BETA_TRACING_ENDPOINT` en el endpoint de tu colector OTLP/HTTP, para activar el [rastreo beta detallado](/docs/es/monitoring-usage#traces-beta), que añade atributos de span con contenido y el span `claude_code.hook`. Las sesiones interactivas de la CLI también requieren que tu organización esté en la lista de permitidos de la beta. Ambas variables se ignoran en [la configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |459| `ENABLE_BETA_TRACING_DETAILED` | Establécelo en `1`, y establece `BETA_TRACING_ENDPOINT` en el endpoint de tu colector OTLP/HTTP, para activar el [rastreo beta detallado](/docs/es/monitoring-usage#traces-beta), que añade atributos de span con contenido y el span `claude_code.hook`. Las sesiones interactivas de la CLI también requieren que tu organización esté en la lista de permitidos de la beta. Ambas variables se ignoran en [la configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |

467| `ENABLE_CLAUDEAI_MCP_SERVERS` | Establécelo en `false` para impedir que Claude Code obtenga los [servidores MCP de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai). Habilitado de forma predeterminada para los usuarios que han iniciado sesión. Para deshabilitarlo por proyecto o por organización, establece [`disableClaudeAiConnectors`](/docs/es/settings-reference#disableclaudeaiconnectors) en la configuración en su lugar |460| `ENABLE_CLAUDEAI_MCP_SERVERS` | Establécelo en `false` para impedir que Claude Code obtenga los [servidores MCP de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai). Habilitado de forma predeterminada para los usuarios que han iniciado sesión. Para deshabilitarlo por proyecto o por organización, establece [`disableClaudeAiConnectors`](/docs/es/settings-reference#disableclaudeaiconnectors) en la configuración en su lugar |

468| `ENABLE_PROMPT_CACHING_1H` | Establécelo en `1` para solicitar un [TTL de caché de prompts](/docs/es/prompt-caching#cache-lifetime) de 1 hora en lugar de los 5 minutos predeterminados. Pensado para usuarios de clave de API, [Amazon Bedrock](/docs/es/amazon-bedrock), [Google Cloud's Agent Platform](/docs/es/google-vertex-ai), [Microsoft Foundry](/docs/es/microsoft-foundry) y [Claude Platform on AWS](/docs/es/claude-platform-on-aws). Los usuarios de suscripción dentro del uso incluido reciben automáticamente el TTL de 1 hora en la [conversación principal](/docs/es/prompt-caching#which-ttl-each-request-gets). Los usuarios de suscripción que consumen [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) pueden establecerla para mantener el TTL de 1 hora. Las escrituras en caché de 1 hora se facturan a una tarifa más alta. Para elegir el TTL por grupo de solicitudes en su lugar, usa `CLAUDE_CODE_PROMPT_CACHE_TTL` y `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, que tienen precedencia sobre esta variable |461| `ENABLE_PROMPT_CACHING_1H` | Establécela en `1` para solicitar un [TTL de caché de prompts](/docs/es/prompt-caching#cache-lifetime) de 1 hora en lugar de los 5 minutos predeterminados. Pensada para usuarios de clave de API, [Amazon Bedrock](/docs/es/amazon-bedrock), [Google Cloud's Agent Platform](/docs/es/google-vertex-ai), [Microsoft Foundry](/docs/es/microsoft-foundry) y [Claude Platform on AWS](/docs/es/claude-platform-on-aws). Para los usuarios con suscripción dentro del uso incluido, Claude Code solicita automáticamente el TTL de 1 hora en la [conversación principal](/docs/es/prompt-caching#which-ttl-each-request-gets). Los usuarios con suscripción que consumen [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) pueden establecerla para mantener el TTL de 1 hora. Las escrituras en caché de 1 hora se facturan a una tarifa más alta. Para elegir el TTL por separado para la conversación principal y para las solicitudes fuera de ella, usa `CLAUDE_CODE_PROMPT_CACHE_TTL` y `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, que tienen precedencia sobre esta variable |

469| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Obsoleta. Usa `ENABLE_PROMPT_CACHING_1H` en su lugar |462| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Obsoleta. Usa `ENABLE_PROMPT_CACHING_1H` en su lugar |

470| `ENABLE_TOOL_SEARCH` | Controla la [búsqueda de herramientas MCP](/docs/es/mcp#scale-with-mcp-tool-search). Sin establecer, Claude Code difiere todas las herramientas MCP de forma predeterminada, y en su lugar las carga de antemano cuando `ANTHROPIC_BASE_URL` apunta a un host que no es de primera parte. `true` las mantiene diferidas también en ese host. `auto` las carga de antemano cuando las definiciones de herramientas caben en el 10 % del contexto. `auto:N` establece un umbral personalizado, como `auto:5` para el 5 %. `false` carga todas las herramientas de antemano. Para los modelos y despliegues que cargan todas las herramientas de antemano sea cual sea este valor, consulta [Configurar la búsqueda de herramientas](/docs/es/mcp#configure-tool-search) |463| `ENABLE_TOOL_SEARCH` | Controla [MCP Tool Search](/docs/es/mcp#scale-with-mcp-tool-search). Sin definir o `true` difiere las herramientas MCP, excepto en los [casos que mantienen desactivada la búsqueda de herramientas](/docs/es/mcp#configure-tool-search). `auto` activa la búsqueda de herramientas una vez que las definiciones alcanzan el 10 % de la ventana de contexto. `auto:N` establece un umbral personalizado, como `auto:5` para el 5 %. `false` carga todas las herramientas por adelantado. Si un gateway rechaza la búsqueda de herramientas, consulta [Búsqueda de herramientas a través de un gateway de LLM](/docs/es/mcp#tool-search-through-a-gateway) |

471| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Establécelo en cualquier valor no vacío, como `1`, para que Claude Code deje de reintentar ante errores de sobrecarga repetidos con todos los modelos cuando no hay ningún modelo de respaldo configurado. **Establecerlo en `0` o `false` también lo habilita**, a diferencia de la mayoría de las variables de activación/desactivación; elimina la variable para restaurar el comportamiento de reintento predeterminado. Sin ella, Claude Code deja de reintentar de esta forma en los modelos que reconoce como modelos Opus, Fable o Mythos cuando te autenticas con una clave de API o un [proveedor externo](/docs/es/third-party-integrations) en lugar de una suscripción a Claude. En Claude Code v2.1.160 o posterior, Claude Code cambia a tu [cadena de modelos de respaldo](/docs/es/model-config#fallback-model-chains) configurada ante errores de sobrecarga repetidos con cualquier modelo principal, por lo que esta variable no afecta al cambio a un modelo de respaldo |

472| `FORCE_AUTOUPDATE_PLUGINS` | Establécelo en `1` para forzar las actualizaciones automáticas de plugins incluso cuando el actualizador automático principal está deshabilitado mediante `DISABLE_AUTOUPDATER` |464| `FORCE_AUTOUPDATE_PLUGINS` | Establécelo en `1` para forzar las actualizaciones automáticas de plugins incluso cuando el actualizador automático principal está deshabilitado mediante `DISABLE_AUTOUPDATER` |

473| `FORCE_HYPERLINK` | Establécelo en `1` para habilitar los hipervínculos OSC 8 en los que se puede hacer clic cuando tu terminal los admite pero no se detecta automáticamente, o en `0` para deshabilitarlos. Cuando no está establecida, Claude Code habilita los hipervínculos solo cuando detecta que la terminal los admite. Claude Code interpreta este valor como un número, no como un booleano, por lo que un valor como `false`, `no` u `off` habilita los hipervínculos en lugar de deshabilitarlos. La [insignia de PR o merge request](/docs/es/interactive-mode#pr-review-status) del pie de página se muestra como hipervínculo incluso cuando Claude Code no puede detectar que la terminal los admite, como a través de SSH. Establécelo en `0` para mostrar la insignia como texto sin formato |465| `FORCE_HYPERLINK` | Establécelo en `1` para habilitar los hipervínculos OSC 8 en los que se puede hacer clic cuando tu terminal los admite pero no se detecta automáticamente, o en `0` para deshabilitarlos. Cuando no está establecida, Claude Code habilita los hipervínculos solo cuando detecta que la terminal los admite. Claude Code interpreta este valor como un número, no como un booleano, por lo que un valor como `false`, `no` u `off` habilita los hipervínculos en lugar de deshabilitarlos. La [insignia de PR o merge request](/docs/es/interactive-mode#pr-review-status) del pie de página se muestra como hipervínculo incluso cuando Claude Code no puede detectar que la terminal los admite, como a través de SSH. Establécelo en `0` para mostrar la insignia como texto sin formato |

474| `FORCE_PROMPT_CACHING_5M` | Establécelo en `1` para forzar el TTL de caché de prompts de 5 minutos incluso cuando de otro modo se aplicaría el TTL de 1 hora. Sobrescribe `CLAUDE_CODE_PROMPT_CACHE_TTL`, `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, `ENABLE_PROMPT_CACHING_1H` y los ajustes `promptCacheTtl` y `subagentPromptCacheTtl` |466| `FORCE_PROMPT_CACHING_5M` | Establécelo en `1` para forzar el TTL de caché de prompts de 5 minutos incluso cuando de otro modo se aplicaría el TTL de 1 hora. Sobrescribe `CLAUDE_CODE_PROMPT_CACHE_TTL`, `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, `ENABLE_PROMPT_CACHING_1H` y los ajustes `promptCacheTtl` y `subagentPromptCacheTtl` |


572 564 

573Con la obtención desactivada, no puedes:565Con la obtención desactivada, no puedes:

574 566 

575* Ejecutar [`/auto-mode-setup`](/docs/es/auto-mode-config#generate-environment-entries) para redactar entradas de `autoMode.environment`

576* Usar [Remote Control](/docs/es/remote-control) con `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` o `DISABLE_GROWTHBOOK` establecidas. Para `DISABLE_TELEMETRY` y `DO_NOT_TRACK`, consulta los [requisitos de Remote Control](/docs/es/remote-control#requirements)567* Usar [Remote Control](/docs/es/remote-control) con `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` o `DISABLE_GROWTHBOOK` establecidas. Para `DISABLE_TELEMETRY` y `DO_NOT_TRACK`, consulta los [requisitos de Remote Control](/docs/es/remote-control#requirements)

577* [Enviar mensajes a sesiones fuera de esta máquina](/docs/es/cross-session-messaging#message-sessions-on-other-machines) cuando [Remote Control](/docs/es/remote-control#requirements) no está disponible. El envío de mensajes entre sesiones en esta máquina funciona con la obtención desactivada568* [Enviar mensajes a sesiones fuera de esta máquina](/docs/es/cross-session-messaging#message-sessions-on-other-machines) cuando [Remote Control](/docs/es/remote-control#requirements) no está disponible. El envío de mensajes entre sesiones en esta máquina funciona con la obtención desactivada

578* Ejecutar [`claude import` o el comando `/import`](/docs/es/cli-reference#cli-commands)569* Ejecutar [`claude import` o el comando `/import`](/docs/es/cli-reference#cli-commands)

errors.md +289 −42

Details

83| `Your account does not have access to Claude. Please login again or contact your administrator.` | [Autenticación](#oauth-token-revoked-or-expired) |83| `Your account does not have access to Claude. Please login again or contact your administrator.` | [Autenticación](#oauth-token-revoked-or-expired) |

84| `API Error: 401 Invalid authentication credentials` | [Autenticación](#api-error-401-invalid-authentication-credentials) |84| `API Error: 401 Invalid authentication credentials` | [Autenticación](#api-error-401-invalid-authentication-credentials) |

85| `Login expired · Please run /login` | [Autenticación](#login-expired) |85| `Login expired · Please run /login` | [Autenticación](#login-expired) |

86| `The browser can't return the sign-in to Claude Code automatically` | [Autenticación](#couldnt-start-the-local-sign-in-listener) |

87| `Couldn't start the local listener that receives the browser sign-in. Try again.` | [Autenticación](#couldnt-start-the-local-sign-in-listener) |

86| `Failed to start OAuth callback server` | [Autenticación](#failed-to-start-oauth-callback-server) |88| `Failed to start OAuth callback server` | [Autenticación](#failed-to-start-oauth-callback-server) |

87| `Claude login not accepted · Run /login, then try again` | [Autenticación](#claude-login-not-accepted) |89| `Claude login not accepted · Run /login, then try again` | [Autenticación](#claude-login-not-accepted) |

88| `Artifacts need a claude.ai login` | [Autenticación](#artifacts-need-a-claude-ai-login) |90| `Artifacts need a claude.ai login` | [Autenticación](#artifacts-need-a-claude-ai-login) |


100| `claude.ai rejected the session token` / `session token rejected` | [Autenticación](#claude-ai-rejected-the-session-token) |102| `claude.ai rejected the session token` / `session token rejected` | [Autenticación](#claude-ai-rejected-the-session-token) |

101| `MCP server "<name>" needs you to sign in again (run /mcp to re-authenticate)` | [Autenticación](#mcp-server-needs-you-to-sign-in-again) |103| `MCP server "<name>" needs you to sign in again (run /mcp to re-authenticate)` | [Autenticación](#mcp-server-needs-you-to-sign-in-again) |

102| `rejected the credential from its headersHelper` / `rejected the Authorization header in its config` | [Autenticación](#mcp-server-needs-you-to-sign-in-again) |104| `rejected the credential from its headersHelper` / `rejected the Authorization header in its config` | [Autenticación](#mcp-server-needs-you-to-sign-in-again) |

105| `(check the helper, then start a new task or chat)` / `(update it, then start a new task or chat)` | [Autenticación](#mcp-credential-rejected-in-cowork) |

103| `MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate` | [Autenticación](#mcp-server-needs-you-to-sign-in-again) |106| `MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate` | [Autenticación](#mcp-server-needs-you-to-sign-in-again) |

104| `MCP server "<name>" requires re-authorization (token expired)` | [Autenticación](#mcp-server-needs-you-to-sign-in-again) |107| `MCP server "<name>" requires re-authorization (token expired)` | [Autenticación](#mcp-server-needs-you-to-sign-in-again) |

105| `This server's URL is missing or not a valid URL, so sign-in can't start` | [Autenticación](#mcp-server-url-is-missing-or-not-a-valid-url) |108| `This server's URL is missing or not a valid URL, so sign-in can't start` | [Autenticación](#mcp-server-url-is-missing-or-not-a-valid-url) |


200| `Installation was killed before it could finish (exit code 137)` | [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install#installation-was-killed-before-it-could-finish) |203| `Installation was killed before it could finish (exit code 137)` | [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install#installation-was-killed-before-it-could-finish) |

201| `The connection dropped while downloading the update` | [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |204| `The connection dropped while downloading the update` | [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |

202| `Download timed out: exceeded the total deadline` | [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |205| `Download timed out: exceeded the total deadline` | [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |

206| `Release verification failed for Claude Code <version> (<reason>). The update was not installed.` | [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install#release-verification-failed) |

207| `Auto-update failed · Run claude doctor` | [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install#auto-update-failed) |

203| `--bg and --print conflict` | [Errores de línea de comandos](#conflict-between-bg-and-print) |208| `--bg and --print conflict` | [Errores de línea de comandos](#conflict-between-bg-and-print) |

204| `Couldn't tell whether --bg is a flag or text here, so nothing was started` | [Errores de línea de comandos](#couldnt-tell-whether-bg-is-a-flag-or-text) |209| `Couldn't tell whether --bg is a flag or text here, so nothing was started` | [Errores de línea de comandos](#couldnt-tell-whether-bg-is-a-flag-or-text) |

205| `Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.` | [Errores de línea de comandos](#conflict-between-a-system-prompt-flag-and-its-file-form) |210| `Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.` | [Errores de línea de comandos](#conflict-between-a-system-prompt-flag-and-its-file-form) |


270| `Custom output styles can't be selected over Remote Control or from a relayed message` | [Errores de línea de comandos](#custom-output-styles-cant-be-selected-over-remote-control) |275| `Custom output styles can't be selected over Remote Control or from a relayed message` | [Errores de línea de comandos](#custom-output-styles-cant-be-selected-over-remote-control) |

271| `Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load` | [Errores de línea de comandos](#output-styles-are-saved-to-local-settings-which-this-session-doesnt-load) |276| `Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load` | [Errores de línea de comandos](#output-styles-are-saved-to-local-settings-which-this-session-doesnt-load) |

272| `/recap only runs when you ask for it yourself in this session` | [Errores de línea de comandos](#recap-only-runs-when-you-ask-for-it-yourself) |277| `/recap only runs when you ask for it yourself in this session` | [Errores de línea de comandos](#recap-only-runs-when-you-ask-for-it-yourself) |

278| `/feedback is disabled by your organization's policy`, o lo mismo para `/bug` o `/share` | [Errores de línea de comandos](#feedback-is-disabled-by-your-organizations-policy) |

273| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [Errores de plugins](#plugin-eval-is-currently-in-early-access) |279| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [Errores de plugins](#plugin-eval-is-currently-in-early-access) |

274| `cannot be evaluated where sessions load it` | [Probar plugins con evals](/docs/es/plugin-evals#cannot-be-evaluated-where-sessions-load-it) |280| `cannot be evaluated where sessions load it` | [Probar plugins con evals](/docs/es/plugin-evals#cannot-be-evaluated-where-sessions-load-it) |

275| `Marketplace "<name>" is registered from an untrusted source` | [Errores de plugins](#marketplace-is-registered-from-an-untrusted-source) |281| `Marketplace "<name>" is registered from an untrusted source` | [Errores de plugins](#marketplace-is-registered-from-an-untrusted-source) |


289| `The packages it lists are not installed` / `The packages it lists were not installed, because` | [Solución de problemas de plugins](/docs/es/plugins/troubleshooting#the-packages-it-lists-are-not-installed) |295| `The packages it lists are not installed` / `The packages it lists were not installed, because` | [Solución de problemas de plugins](/docs/es/plugins/troubleshooting#the-packages-it-lists-are-not-installed) |

290| `does not load (...), so Claude Code ignores the whole file` | [Solución de problemas de plugins](/docs/es/plugins/troubleshooting#does-not-load-so-claude-code-ignores-the-whole-file) |296| `does not load (...), so Claude Code ignores the whole file` | [Solución de problemas de plugins](/docs/es/plugins/troubleshooting#does-not-load-so-claude-code-ignores-the-whole-file) |

291| `path escapes plugin directory` | [Errores de plugins](#path-escapes-plugin-directory) |297| `path escapes plugin directory` | [Errores de plugins](#path-escapes-plugin-directory) |

298| `Plugin not loaded: its manifest <path> was not read` | [Errores de plugins](#plugin-not-loaded-its-manifest-was-not-read) |

292| `path could not be checked` | [Errores de plugins](#path-could-not-be-checked) |299| `path could not be checked` | [Errores de plugins](#path-could-not-be-checked) |

293| `its marketplace entry path does not stay inside the marketplace directory` | [Errores de plugins](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |300| `its marketplace entry path does not stay inside the marketplace directory` | [Errores de plugins](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |

294| `Plugin source path refused` | [Errores de plugins](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |301| `Plugin source path refused` | [Errores de plugins](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |


304| `File is covered by a Read deny rule in your permission settings` | [Errores de herramientas](#file-is-covered-by-a-read-deny-rule) |311| `File is covered by a Read deny rule in your permission settings` | [Errores de herramientas](#file-is-covered-by-a-read-deny-rule) |

305| `cannot contain null bytes (\0)` | [Errores de herramientas](#path-cannot-contain-null-bytes) |312| `cannot contain null bytes (\0)` | [Errores de herramientas](#path-cannot-contain-null-bytes) |

306| `Path contains null bytes` | [Errores de herramientas](#path-cannot-contain-null-bytes) |313| `Path contains null bytes` | [Errores de herramientas](#path-cannot-contain-null-bytes) |

314| `File is too large to read as an image (the limit is 128MB)` | [Errores de herramientas](#file-is-too-large-to-read-as-an-image) |

315| `Cannot read this as an image: <path> is a pipe or a device` | [Errores de herramientas](#file-is-too-large-to-read-as-an-image) |

307| `subagent_type is required: the general-purpose agent is not available in this session` | [Errores de herramientas](#subagent-type-is-required) |316| `subagent_type is required: the general-purpose agent is not available in this session` | [Errores de herramientas](#subagent-type-is-required) |

308| `Error: this write left the memory index at MEMORY.md at ..., over its ... read limit` | [Errores de herramientas](#memory-index-is-over-its-read-limit) |317| `Error: this write left the memory index at MEMORY.md at ..., over its ... read limit` | [Errores de herramientas](#memory-index-is-over-its-read-limit) |

309| `pkill: refusing to run` | [Errores de herramientas](#pkill-pattern-matches-the-claude-code-process) |318| `pkill: refusing to run` | [Errores de herramientas](#pkill-pattern-matches-the-claude-code-process) |

310| `Failed to write to <name>'s inbox — nothing was sent` | [Errores de herramientas](#failed-to-write-to-a-teammate-inbox) |319| `Failed to write to <name>'s inbox — nothing was sent` | [Errores de herramientas](#failed-to-write-to-a-teammate-inbox) |

311| `Failed to write the plan approval request to the lead's inbox — plan not submitted` | [Errores de herramientas](#failed-to-write-to-a-teammate-inbox) |320| `Failed to write the plan approval request to the lead's inbox — plan not submitted` | [Errores de herramientas](#failed-to-write-to-a-teammate-inbox) |

312| `Its agent definition was not restored: the folder its definition file came from is not trusted` | [Errores de herramientas](#teammate-agent-definition-not-restored) |321| `Its agent definition was not restored: the folder its definition file came from is not trusted` | [Errores de herramientas](#teammate-agent-definition-not-restored) |

322| `Only a teammate can approve a shutdown request` | [Errores de herramientas](#only-a-teammate-can-approve-a-shutdown-request) |

313| `Message too large for cross-session delivery` | [Errores de herramientas](#message-too-large-for-cross-session-delivery) |323| `Message too large for cross-session delivery` | [Errores de herramientas](#message-too-large-for-cross-session-delivery) |

314| `Too many messages to this session just now` | [Errores de herramientas](#too-many-messages-to-this-session-just-now) |324| `Too many messages to this session just now` | [Errores de herramientas](#too-many-messages-to-this-session-just-now) |

315| `Cross-session message was dropped at the recipient session's inbox` | [Errores de herramientas](#cross-session-message-dropped-at-the-inbox) |325| `Cross-session message was dropped at the recipient session's inbox` | [Errores de herramientas](#cross-session-message-dropped-at-the-inbox) |


325| `Your disk quota is full on the filesystem with Claude Code's temp directory <dir> (EDQUOT)` | [Errores de herramientas](#disk-quota-or-temp-filesystem-is-full) |335| `Your disk quota is full on the filesystem with Claude Code's temp directory <dir> (EDQUOT)` | [Errores de herramientas](#disk-quota-or-temp-filesystem-is-full) |

326| `The filesystem with Claude Code's temp directory <dir>, or your disk quota on it, is full (ENOSPC)` | [Errores de herramientas](#disk-quota-or-temp-filesystem-is-full) |336| `The filesystem with Claude Code's temp directory <dir>, or your disk quota on it, is full (ENOSPC)` | [Errores de herramientas](#disk-quota-or-temp-filesystem-is-full) |

327| `Command output was lost: the temp filesystem at <dir> is full` / `is out of inodes` | [Errores de herramientas](#disk-quota-or-temp-filesystem-is-full) |337| `Command output was lost: the temp filesystem at <dir> is full` / `is out of inodes` | [Errores de herramientas](#disk-quota-or-temp-filesystem-is-full) |

338| `The command was not started: this computer's disk is full (ENOSPC)` / `(EDQUOT)` | [Errores de herramientas](#disk-quota-or-temp-filesystem-is-full) |

328| `File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary` | [Errores de herramientas](#file-is-not-valid-utf-8) |339| `File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary` | [Errores de herramientas](#file-is-not-valid-utf-8) |

329| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [Errores de herramientas](#the-source-file-is-not-valid-utf-8-text) |340| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [Errores de herramientas](#the-source-file-is-not-valid-utf-8-text) |

330| `the source file has the replacement character U+FFFD` | [Errores de herramientas](#the-source-file-is-not-valid-utf-8-text) |341| `the source file has the replacement character U+FFFD` | [Errores de herramientas](#the-source-file-is-not-valid-utf-8-text) |

331| `Not published: that file is on a network share` | [Errores de herramientas](#not-published-that-file-is-on-a-network-share) |342| `Not published: that file is on a network share` | [Errores de herramientas](#not-published-that-file-is-on-a-network-share) |

343| `Not published: Claude sent the same content again after a newer version of the artifact turned it away` / `Not published: Claude sent its changes again over the same file after a newer version of the artifact turned them away` | [Errores de herramientas](#not-published-a-newer-version-of-the-artifact-turned-it-away) |

332| `Reading a local file from outside this session's connected folders, or through a link, needs the approval card` | [Errores de herramientas](#reading-a-local-file-from-outside-the-connected-folders) |344| `Reading a local file from outside this session's connected folders, or through a link, needs the approval card` | [Errores de herramientas](#reading-a-local-file-from-outside-the-connected-folders) |

333| `cannot read file_path (...) — the file could not be examined, and no one can answer the approval card` | [Errores de herramientas](#reading-a-local-file-from-outside-the-connected-folders) |345| `cannot read file_path (...) — the file could not be examined, and no one can answer the approval card` | [Errores de herramientas](#reading-a-local-file-from-outside-the-connected-folders) |

334| `WebFetch cannot fetch localhost or other hostnames without a dot` | [Errores de herramientas](#webfetch-cannot-fetch-localhost) |346| `WebFetch cannot fetch localhost or other hostnames without a dot` | [Errores de herramientas](#webfetch-cannot-fetch-localhost) |


345| `Can't open — this session is running in another terminal` | [Errores de sesión en segundo plano](#this-session-is-running-in-another-terminal) |357| `Can't open — this session is running in another terminal` | [Errores de sesión en segundo plano](#this-session-is-running-in-another-terminal) |

346| `This conversation is already open in another running Claude session` | [Errores de sesión en segundo plano](#this-session-is-running-in-another-terminal) |358| `This conversation is already open in another running Claude session` | [Errores de sesión en segundo plano](#this-session-is-running-in-another-terminal) |

347| `This session's saved conversation is no longer on disk` | [Errores de sesión en segundo plano](#this-sessions-saved-conversation-is-no-longer-on-disk) |359| `This session's saved conversation is no longer on disk` | [Errores de sesión en segundo plano](#this-sessions-saved-conversation-is-no-longer-on-disk) |

348| `Bypass permissions was requested at launch and ignored` | [Omitir todas las comprobaciones con el modo bypassPermissions](/docs/es/permission-modes#bypass-permissions-acceptance) |360| `Bypass permissions was requested at launch and ignored` | [Bypass permissions ignorado en una sesión en segundo plano](/docs/es/permission-modes#bypass-permissions-ignored-in-a-background-session) |

349| `kept <id> — its worktree is still at <path>` | [Errores de sesión en segundo plano](#worktree-has-commits-that-are-not-pushed-anywhere) |361| `kept <id> — its worktree is still at <path>` | [Errores de sesión en segundo plano](#worktree-has-commits-that-are-not-pushed-anywhere) |

350| `kept <id> — <n> unpushed commits on <branch>` | [Errores de sesión en segundo plano](#worktree-has-commits-that-are-not-pushed-anywhere) |362| `kept <id> — <n> unpushed commits on <branch>` | [Errores de sesión en segundo plano](#worktree-has-commits-that-are-not-pushed-anywhere) |

351| `kept <id> — worktree has commits that are not pushed anywhere` | [Errores de sesión en segundo plano](#worktree-has-commits-that-are-not-pushed-anywhere) |363| `kept <id> — worktree has commits that are not pushed anywhere` | [Errores de sesión en segundo plano](#worktree-has-commits-that-are-not-pushed-anywhere) |


354| `Session <id> was stopped while the respawn was in flight` | [Errores de sesión en segundo plano](#session-was-stopped-while-the-respawn-was-in-flight) |366| `Session <id> was stopped while the respawn was in flight` | [Errores de sesión en segundo plano](#session-was-stopped-while-the-respawn-was-in-flight) |

355| `This session was running agent '<name>', which is no longer available` | [Errores de sesión en segundo plano](#session-agent-no-longer-available) |367| `This session was running agent '<name>', which is no longer available` | [Errores de sesión en segundo plano](#session-agent-no-longer-available) |

356| `This session restarted <time> after its next /loop wakeup was due, so that wakeup will not fire` | [Errores de sesión en segundo plano](#restarted-after-its-next-loop-wakeup-was-due) |368| `This session restarted <time> after its next /loop wakeup was due, so that wakeup will not fire` | [Errores de sesión en segundo plano](#restarted-after-its-next-loop-wakeup-was-due) |

369| `No LLM gateway: a gateway set in your shell isn't passed to a session opened from another folder` | [Errores de sesión en segundo plano](#no-llm-gateway-opened-from-another-folder) |

370| `No LLM gateway: opened from another folder · respawn from <folder>` | [Errores de sesión en segundo plano](#no-llm-gateway-opened-from-another-folder) |

357| `CLAUDE_CODE_PROCESS_WRAPPER: launcher ...` | [Errores de sesión en segundo plano](#claude_code_process_wrapper-launcher-errors) |371| `CLAUDE_CODE_PROCESS_WRAPPER: launcher ...` | [Errores de sesión en segundo plano](#claude_code_process_wrapper-launcher-errors) |

358| `EUNKNOWN: unknown error, uv_spawn` | [Errores de sesión en segundo plano](#eunknown-when-starting-a-background-session) |372| `EUNKNOWN: unknown error, uv_spawn` | [Errores de sesión en segundo plano](#eunknown-when-starting-a-background-session) |

359| `EACCES: permission denied, posix_spawn` | [Errores de sesión en segundo plano](#eacces-when-starting-a-background-session) |373| `EACCES: permission denied, posix_spawn` | [Errores de sesión en segundo plano](#eacces-when-starting-a-background-session) |


394| `API Error: ANTHROPIC_FOUNDRY_RESOURCE must be a Foundry resource name` | [Advertencias de configuración](#anthropic-foundry-resource-must-be-a-foundry-resource-name) |408| `API Error: ANTHROPIC_FOUNDRY_RESOURCE must be a Foundry resource name` | [Advertencias de configuración](#anthropic-foundry-resource-must-be-a-foundry-resource-name) |

395| `headersHelper not run — this workspace has no persisted trust` | [Advertencias de configuración](#headershelper-not-run) |409| `headersHelper not run — this workspace has no persisted trust` | [Advertencias de configuración](#headershelper-not-run) |

396| `Invalid permission rule "..." was skipped: Malformed Tool(content) rule` | [Advertencias de configuración](#malformed-tool-content-rule) |410| `Invalid permission rule "..." was skipped: Malformed Tool(content) rule` | [Advertencias de configuración](#malformed-tool-content-rule) |

411| `matches no tool · check for typos` / `matches no known tool — check for typos` | [Advertencias de configuración](#matches-no-tool) |

397| `... is not matched by file permission checks` | [Advertencias de configuración](#is-not-matched-by-file-permission-checks) |412| `... is not matched by file permission checks` | [Advertencias de configuración](#is-not-matched-by-file-permission-checks) |

413| `Write(<path>) never matches · use Edit(<path>)` / `Glob(<path>) never matches · use Read(<path>)` | [Advertencias de configuración](#is-not-matched-by-file-permission-checks) |

398| `... has a wildcard before the rest of the command` | [Advertencias de configuración](#has-a-wildcard-before-the-rest-of-the-command) |414| `... has a wildcard before the rest of the command` | [Advertencias de configuración](#has-a-wildcard-before-the-rest-of-the-command) |

415| `allows any option at its * · use an exact value` | [Advertencias de configuración](#has-a-wildcard-before-the-rest-of-the-command) |

399| `Denying Bash also turns off the PowerShell tool, so Claude has neither` | [Advertencias de configuración](#denying-bash-also-turns-off-the-powershell-tool) |416| `Denying Bash also turns off the PowerShell tool, so Claude has neither` | [Advertencias de configuración](#denying-bash-also-turns-off-the-powershell-tool) |

400| `CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced` | [Advertencias de configuración](#the-200k-limit-isnt-enforced) |417| `CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced` | [Advertencias de configuración](#the-200k-limit-isnt-enforced) |

418| `CLAUDE_CODE_AUTO_COMPACT_WINDOW="<value>" reads as <N> tokens, so Claude Code treats it as the 100k minimum` | [Valores y advertencias de `CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/es/model-config#claude_code_auto_compact_window-values) |

419| `CLAUDE_CODE_AUTO_COMPACT_WINDOW="<value>" is too large, so Claude Code treats it as the 1M maximum` | [Valores y advertencias de `CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/es/model-config#claude_code_auto_compact_window-values) |

420| `CLAUDE_CODE_AUTO_COMPACT_WINDOW="<value>" isn't a usable size, so Claude Code ignores it` | [Valores y advertencias de `CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/es/model-config#claude_code_auto_compact_window-values) |

401| `Model "<model>" isn't recognized · context assumed to be 200k tokens` | [Corregir la ventana para un gateway o un ID de modelo personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |421| `Model "<model>" isn't recognized · context assumed to be 200k tokens` | [Corregir la ventana para un gateway o un ID de modelo personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |

402| `Claude Code doesn't recognize the model "<model>", so it assumes a context window of 200k tokens` | [Corregir la ventana para un gateway o un ID de modelo personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |422| `Claude Code doesn't recognize the model "<model>", so it assumes a context window of 200k tokens` | [Corregir la ventana para un gateway o un ID de modelo personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |

403| `[claude-code:unrecognized_model]` | [Advertencias de configuración](#unrecognized-model-id-on-a-request) |423| `[claude-code:unrecognized_model]` | [Advertencias de configuración](#unrecognized-model-id-on-a-request) |


462| [`CLAUDE_CODE_MAX_RETRIES`](/docs/es/env-vars) | 10 | Número de reintentos. Limitado a 15 a partir de v2.1.186; a partir de v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` aumenta el valor predeterminado y elimina el límite. Redúcelo para que los fallos aparezcan más rápido en scripts. |482| [`CLAUDE_CODE_MAX_RETRIES`](/docs/es/env-vars) | 10 | Número de reintentos. Limitado a 15 a partir de v2.1.186; a partir de v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` aumenta el valor predeterminado y elimina el límite. Redúcelo para que los fallos aparezcan más rápido en scripts. |

463| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/es/env-vars) | sin establecer | Establécelo en `1` en sesiones desatendidas, como trabajos de CI, para reintentar errores de capacidad `429` y `529` indefinidamente en lugar de fallar después de `CLAUDE_CODE_MAX_RETRIES` intentos. Claude Code falla de inmediato cuando una solicitud de velocidad estándar recibe un `429` que reporta un límite de gasto o créditos de uso agotados, incluso uno de un [límite de gasto de un gateway](#spend-limit-reached) que se restablece según un calendario. Antes de v2.1.239, el watchdog los reintentaba indefinidamente. Para solicitudes en modo rápido, consulta [Handle rate limits](/docs/es/fast-mode#handle-rate-limits). En v2.1.199 o posterior, también aumenta el número predeterminado de reintentos para otros errores transitorios, como errores del servidor, tiempos de espera agotados y conexiones perdidas, a 300, aproximadamente tres horas de retroceso, y elimina el límite de 15 en `CLAUDE_CODE_MAX_RETRIES` si estableces esa variable explícitamente. |483| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/es/env-vars) | sin establecer | Establécelo en `1` en sesiones desatendidas, como trabajos de CI, para reintentar errores de capacidad `429` y `529` indefinidamente en lugar de fallar después de `CLAUDE_CODE_MAX_RETRIES` intentos. Claude Code falla de inmediato cuando una solicitud de velocidad estándar recibe un `429` que reporta un límite de gasto o créditos de uso agotados, incluso uno de un [límite de gasto de un gateway](#spend-limit-reached) que se restablece según un calendario. Antes de v2.1.239, el watchdog los reintentaba indefinidamente. Para solicitudes en modo rápido, consulta [Handle rate limits](/docs/es/fast-mode#handle-rate-limits). En v2.1.199 o posterior, también aumenta el número predeterminado de reintentos para otros errores transitorios, como errores del servidor, tiempos de espera agotados y conexiones perdidas, a 300, aproximadamente tres horas de retroceso, y elimina el límite de 15 en `CLAUDE_CODE_MAX_RETRIES` si estableces esa variable explícitamente. |

464| [`CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS`](/docs/es/env-vars) | sin establecer | Tiempo máximo en milisegundos que cada solicitud a la API pasa esperando a que se resuelvan los errores `429` y `529` cuando `CLAUDE_CODE_RETRY_WATCHDOG` está establecido. Si no está establecido, la espera no tiene límite. Requiere Claude Code v2.1.295 o posterior. |484| [`CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS`](/docs/es/env-vars) | sin establecer | Tiempo máximo en milisegundos que cada solicitud a la API pasa esperando a que se resuelvan los errores `429` y `529` cuando `CLAUDE_CODE_RETRY_WATCHDOG` está establecido. Si no está establecido, la espera no tiene límite. Requiere Claude Code v2.1.295 o posterior. |

485| [`CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS`](/docs/es/env-vars) | sin establecer | Intervalo mínimo en milisegundos entre comprobaciones de si un [límite de uso](#youve-hit-your-session-limit) ya se levantó, mientras una solicitud espera a que ese límite se restablezca con `CLAUDE_CODE_RETRY_WATCHDOG` establecido. Cuando una comprobación encuentra que el límite se levantó, la solicitud se envía de inmediato. Indica solo dígitos, de `60000` a `10800000`. Si no está establecido o está fuera de ese rango, no se realizan comprobaciones. Para saber cuándo Claude Code omite estas comprobaciones, consulta la [referencia de variables de entorno](/docs/es/env-vars). Requiere Claude Code v2.1.305 o posterior. |

465| [`CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS`](/docs/es/env-vars) | 500 | Retraso inicial en milisegundos del retroceso entre reintentos de una solicitud que la API rechaza con un error de sobrecarga `529`. Auméntalo, hasta 32000, para distribuir los reintentos en un período más largo cuando la API está al límite de su capacidad. No tiene efecto cuando `CLAUDE_CODE_RETRY_WATCHDOG` está establecido en `1`, ni cuando la solicitud rechazada se envió en [modo rápido](/docs/es/fast-mode#handle-rate-limits). Requiere Claude Code v2.1.292 o posterior. |486| [`CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS`](/docs/es/env-vars) | 500 | Retraso inicial en milisegundos del retroceso entre reintentos de una solicitud que la API rechaza con un error de sobrecarga `529`. Auméntalo, hasta 32000, para distribuir los reintentos en un período más largo cuando la API está al límite de su capacidad. No tiene efecto cuando `CLAUDE_CODE_RETRY_WATCHDOG` está establecido en `1`, ni cuando la solicitud rechazada se envió en [modo rápido](/docs/es/fast-mode#handle-rate-limits). Requiere Claude Code v2.1.292 o posterior. |

466| [`CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS`](/docs/es/env-vars) | 32000 | Límite máximo en milisegundos del retroceso entre reintentos de una solicitud que la API rechaza con un error de sobrecarga `529`. Auméntalo, hasta 64000, para que los reintentos posteriores sigan espaciándose cuando la API está al límite de su capacidad. No tiene efecto cuando `CLAUDE_CODE_RETRY_WATCHDOG` está establecido en `1`, ni cuando la solicitud rechazada se envió en [modo rápido](/docs/es/fast-mode#handle-rate-limits). Requiere Claude Code v2.1.296 o posterior. |487| [`CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS`](/docs/es/env-vars) | 32000 | Límite máximo en milisegundos del retroceso entre reintentos de una solicitud que la API rechaza con un error de sobrecarga `529`. Auméntalo, hasta 64000, para que los reintentos posteriores sigan espaciándose cuando la API está al límite de su capacidad. No tiene efecto cuando `CLAUDE_CODE_RETRY_WATCHDOG` está establecido en `1`, ni cuando la solicitud rechazada se envió en [modo rápido](/docs/es/fast-mode#handle-rate-limits). Requiere Claude Code v2.1.296 o posterior. |

467| [`API_TIMEOUT_MS`](/docs/es/env-vars) | 600000 | Tiempo en milisegundos que tiene cada intento de solicitud para recibir sus encabezados de respuesta. No limita cuánto dura una respuesta en streaming después de eso. Auméntalo para redes lentas o proxies. Para saber cómo limita el plazo del primer byte, consulta [No response from API](#no-response-from-api). |488| [`API_TIMEOUT_MS`](/docs/es/env-vars) | 600000 | Tiempo en milisegundos que tiene cada intento de solicitud para recibir sus encabezados de respuesta. No limita cuánto dura una respuesta en streaming después de eso. Auméntalo para redes lentas o proxies. Para saber cómo limita el plazo del primer byte, consulta [No response from API](#no-response-from-api). |


490 511 

491* Consulta [status.claude.com](https://status.claude.com), o la página de estado del proveedor nombrada en el mensaje, para ver si hay incidentes activos512* Consulta [status.claude.com](https://status.claude.com), o la página de estado del proveedor nombrada en el mensaje, para ver si hay incidentes activos

492* Espera un minuto y luego envía tu mensaje de nuevo. Tu mensaje original sigue en la conversación, así que para un prompt largo puedes escribir `try again` en lugar de pegarlo completo.513* Espera un minuto y luego envía tu mensaje de nuevo. Tu mensaje original sigue en la conversación, así que para un prompt largo puedes escribir `try again` en lugar de pegarlo completo.

514* Si [`ANTHROPIC_BASE_URL`](/docs/es/env-vars) apunta a un [gateway de LLM](/docs/es/llm-gateway) y todas las solicitudes fallan de esta manera, comprueba si tu gateway está rechazando los campos de búsqueda de herramientas que Claude Code envía por defecto. Para comprobarlo, establece `ENABLE_TOOL_SEARCH=false` como se describe en [Búsqueda de herramientas a través de un gateway de LLM](/docs/es/mcp#tool-search-through-a-gateway) y luego vuelve a intentarlo. Antes de v2.1.304, la búsqueda de herramientas estaba desactivada detrás de un gateway a menos que la activaras con `ENABLE_TOOL_SEARCH`.

493* Si el error persiste sin ningún incidente publicado, ejecuta `/feedback` para que Anthropic pueda investigar con los detalles de tu solicitud. Consulta [Informar un error](#report-an-error) si `/feedback` no está disponible en tu entorno.515* Si el error persiste sin ningún incidente publicado, ejecuta `/feedback` para que Anthropic pueda investigar con los detalles de tu solicitud. Consulta [Informar un error](#report-an-error) si `/feedback` no está disponible en tu entorno.

494 516 

495### API Error: Repeated 529 Overloaded errors517### API Error: Repeated 529 Overloaded errors


520Request timed out542Request timed out

521```543```

522 544 

523El tiempo de espera predeterminado de la solicitud es de 10 minutos.545El tiempo de espera predeterminado de la solicitud es de 10 minutos. Si estableces [`API_TIMEOUT_MS`](/docs/es/env-vars) en `0`, este tiempo de espera de la solicitud se desactiva. El [plazo del primer byte](#no-response-from-api) y el tiempo de espera de inactividad del cuerpo no se desactivan cuando estableces `0`, así que una solicitud en streaming sigue ejecutándose bajo [los que se apliquen a tu conexión](/docs/es/network-config#streaming-idle-watchdogs). Un intento sin streaming mantiene su límite de 300 segundos en una sesión local y aún puede terminar con este mensaje.

524 546 

525**Qué hacer:**547**Qué hacer:**

526 548 

549* Si todas las solicitudes fallan con este mensaje y estableciste `API_TIMEOUT_MS` en `0`, comprueba `claude --version`. En una versión anterior a v2.1.305, actualiza Claude Code o establece un valor positivo.

527* Reintenta la solicitud550* Reintenta la solicitud

528* Si la causa es una red lenta o un proxy, aumenta `API_TIMEOUT_MS` como se describe en [Reintentos automáticos](#automatic-retries)551* Si la causa es una red lenta o un proxy, aumenta `API_TIMEOUT_MS` como se describe en [Reintentos automáticos](#automatic-retries)

529* Si se agota el tiempo de espera con frecuencia y tu red por lo demás funciona bien, consulta [Errores de red y de conexión](#network-and-connection-errors) más abajo552* Si se agota el tiempo de espera con frecuencia y tu red por lo demás funciona bien, consulta [Errores de red y de conexión](#network-and-connection-errors) más abajo


541* **Primer intento**: [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/es/env-vars) cuando lo estableces en 1 o más, limitado a un valor entre 10 segundos y 30 minutos. De lo contrario, Claude Code usa el tiempo de espera del watchdog a nivel de bytes indicado en [Watchdogs de inactividad del streaming](/docs/es/network-config#streaming-idle-watchdogs), así que las variables que cambian ese tiempo de espera también cambian esta espera. En cualquier caso, Claude Code agrega un segundo por cada 32KB del cuerpo de la solicitud.564* **Primer intento**: [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/es/env-vars) cuando lo estableces en 1 o más, limitado a un valor entre 10 segundos y 30 minutos. De lo contrario, Claude Code usa el tiempo de espera del watchdog a nivel de bytes indicado en [Watchdogs de inactividad del streaming](/docs/es/network-config#streaming-idle-watchdogs), así que las variables que cambian ese tiempo de espera también cambian esta espera. En cualquier caso, Claude Code agrega un segundo por cada 32KB del cuerpo de la solicitud.

542* **Reintento**: un segundo menos que `API_TIMEOUT_MS`, poco menos de 10 minutos por defecto, para que el reintento pueda durar más que un proxy o gateway que retiene la respuesta hasta que termina la generación. En Amazon Bedrock, el reintento usa el mismo plazo que el primer intento, y el mensaje muestra una duración en lugar de dos.565* **Reintento**: un segundo menos que `API_TIMEOUT_MS`, poco menos de 10 minutos por defecto, para que el reintento pueda durar más que un proxy o gateway que retiene la respuesta hasta que termina la generación. En Amazon Bedrock, el reintento usa el mismo plazo que el primer intento, y el mensaje muestra una duración en lugar de dos.

543 566 

567 Excepto en Amazon Bedrock, si estableces `API_TIMEOUT_MS` en `0`, el reintento espera 10 minutos más un segundo por cada 32KB, o lo mismo que el primer intento si eso es más largo.

568 

544Ninguna de las dos esperas supera un segundo menos que un `API_TIMEOUT_MS` positivo, y un `API_TIMEOUT_MS` positivo inferior a 11 segundos desactiva el plazo. El watchdog a nivel de bytes se inicia solo cuando llegan los encabezados de respuesta, así que una respuesta que deja de enviar bytes después de eso sigue las [reglas de streaming detenido](#automatic-retries) en lugar de este plazo.569Ninguna de las dos esperas supera un segundo menos que un `API_TIMEOUT_MS` positivo, y un `API_TIMEOUT_MS` positivo inferior a 11 segundos desactiva el plazo. El watchdog a nivel de bytes se inicia solo cuando llegan los encabezados de respuesta, así que una respuesta que deja de enviar bytes después de eso sigue las [reglas de streaming detenido](#automatic-retries) en lugar de este plazo.

545 570 

546**Qué hacer:**571**Qué hacer:**


845* Ejecuta `/status` y confirma que la credencial activa es la que esperas. Un `ANTHROPIC_API_KEY` olvidado en tu entorno puede enrutar las solicitudes a través de una clave de nivel bajo en lugar de tu suscripción.870* Ejecuta `/status` y confirma que la credencial activa es la que esperas. Un `ANTHROPIC_API_KEY` olvidado en tu entorno puede enrutar las solicitudes a través de una clave de nivel bajo en lugar de tu suscripción.

846* Consulta la consola de tu proveedor para ver los límites activos y solicita un nivel más alto si es necesario871* Consulta la consola de tu proveedor para ver los límites activos y solicita un nivel más alto si es necesario

847* Para claves de API de Anthropic, consulta la [referencia de rate limits](https://platform.claude.com/docs/en/api/rate-limits) para ver cómo funcionan los niveles y cómo establecer límites por espacio de trabajo872* Para claves de API de Anthropic, consulta la [referencia de rate limits](https://platform.claude.com/docs/en/api/rate-limits) para ver cómo funcionan los niveles y cómo establecer límites por espacio de trabajo

848* Reduce la concurrencia: baja [`CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY`](/docs/es/env-vars), evita ejecutar muchos subagentes en paralelo o cambia a un modelo más pequeño con `/model` para ejecuciones con scripts de alto volumen873* Reduce la concurrencia: evita ejecutar muchos subagentes en paralelo o cambia a un modelo más pequeño con `/model` para ejecuciones con scripts de alto volumen

849 874 

850### You've hit your monthly spend limit875### You've hit your monthly spend limit

851 876 


1267* Si `/status` muestra solo tu inicio de sesión, ejecuta `/login` una vez. Si la credencial se revocó, un nuevo inicio de sesión la reemplaza.1292* Si `/status` muestra solo tu inicio de sesión, ejecuta `/login` una vez. Si la credencial se revocó, un nuevo inicio de sesión la reemplaza.

1268* Si el mismo mensaje vuelve a aparecer con la misma cuenta de inicio de sesión, la cuenta o la organización ya no está activa. Comprueba la cuenta y la organización que informa `/status`, y pide al administrador de tu organización que restaure el acceso.1293* Si el mismo mensaje vuelve a aparecer con la misma cuenta de inicio de sesión, la cuenta o la organización ya no está activa. Comprueba la cuenta y la organización que informa `/status`, y pide al administrador de tu organización que restaure el acceso.

1269* Si [`ANTHROPIC_BASE_URL`](/docs/es/env-vars) apunta a un [gateway de LLM](/docs/es/llm-gateway), el texto después de `401` es el mensaje de tu gateway y no el de Anthropic, y `/login` no lo cambia. Corrige en su lugar la credencial que espera tu gateway.1294* Si [`ANTHROPIC_BASE_URL`](/docs/es/env-vars) apunta a un [gateway de LLM](/docs/es/llm-gateway), el texto después de `401` es el mensaje de tu gateway y no el de Anthropic, y `/login` no lo cambia. Corrige en su lugar la credencial que espera tu gateway.

1295* Si todas las solicitudes fallan con un `401` una vez que tu gateway tiene la credencial que espera, comprueba si el gateway está rechazando los campos de búsqueda de herramientas que Claude Code envía de forma predeterminada. Para comprobarlo, define `ENABLE_TOOL_SEARCH=false` como se describe en [Búsqueda de herramientas a través de un gateway de LLM](/docs/es/mcp#tool-search-through-a-gateway) y vuelve a intentarlo. Antes de la v2.1.304, la búsqueda de herramientas estaba desactivada detrás de un gateway a menos que la activaras con `ENABLE_TOOL_SEARCH`.

1270 1296 

1271### Inicio de sesión expirado1297### Inicio de sesión expirado

1272 1298 


1338* En otras plataformas, vuelve a ejecutar `/login`1364* En otras plataformas, vuelve a ejecutar `/login`

1339* Si el inicio de sesión sigue sin guardarse, consulta [No has iniciado sesión o el token expiró](/docs/es/troubleshoot-install#not-logged-in-or-token-expired) para ver el comando para desbloquear el llavero y otros pasos de recuperación del almacenamiento de credenciales1365* Si el inicio de sesión sigue sin guardarse, consulta [No has iniciado sesión o el token expiró](/docs/es/troubleshoot-install#not-logged-in-or-token-expired) para ver el comando para desbloquear el llavero y otros pasos de recuperación del almacenamiento de credenciales

1340 1366 

1341### No se pudo iniciar el servidor de callback de OAuth1367### Couldn't start the local listener that receives the browser sign-in

1342 1368 

1343Cuando `/login`, `claude auth login` o `claude setup-token` te inician sesión a través del navegador, Claude Code abre un puerto de escucha en `127.0.0.1` para que tu navegador pueda devolverle el resultado del inicio de sesión. Este mensaje significa que Claude Code no pudo abrir ese puerto, y el inicio de sesión se detiene antes de que aparezca una ventana del navegador o una URL de inicio de sesión:1369Cada uno de estos mensajes de `/login`, `claude auth login` o `claude setup-token` significa que Claude Code no pudo abrir el puerto en `127.0.0.1` donde tu navegador devuelve el resultado del inicio de sesión.

1344 1370 

1345```text theme={null}1371Con el aviso que empieza con `The browser can't return the sign-in to Claude Code automatically`, el inicio de sesión continúa sin ese puerto. No se abre ningún navegador, y el aviso aparece encima de una URL donde inicias sesión en su lugar:

1346Failed to start OAuth callback server: Failed to start server. Is port 0 in use?1372 

1373```text wrap theme={null}

1374The browser can't return the sign-in to Claude Code automatically. After you sign in, paste the code shown.

1347```1375```

1348 1376 

1349Si tu mensaje termina en `Is port 0 in use?`, el intento de escuchar en la dirección de loopback IPv4 `127.0.0.1` falló por completo. Como el fallo ocurre antes de que exista una URL de inicio de sesión, el flujo `Paste code here if prompted` no está disponible como alternativa.1377Con el mensaje que incluye `Couldn't start the local listener`, el inicio de sesión se detuvo. Eso ocurre, por ejemplo, cuando canalizas una entrada hacia `claude auth login`:

1378 

1379```text theme={null}

1380Couldn't start the local listener that receives the browser sign-in. Try again.

1381```

1350 1382 

1351**Qué hacer:**1383**Qué hacer:**

1352 1384 

1353* Para iniciar sesión de inmediato sin el listener local: si usas una suscripción de claude.ai, ejecuta [`claude setup-token`](/docs/es/authentication#generate-a-long-lived-token) en una máquina donde el inicio de sesión funcione y define el token que imprime como `CLAUDE_CODE_OAUTH_TOKEN` en esta máquina. De lo contrario, define `ANTHROPIC_API_KEY` con una clave de [Claude Console](https://platform.claude.com/settings/keys). [Precedencia de autenticación](/docs/es/authentication#authentication-precedence) explica cómo elige Claude Code entre credenciales.1385* **`The browser can't return the sign-in to Claude Code automatically`**: no necesitas corregir nada primero. Abre en un navegador la URL que aparece debajo del aviso e inicia sesión. Luego el navegador muestra un código: pégalo en Claude Code en el prompt `Paste code here >`, y el inicio de sesión continúa desde ahí.

1354* Para usar en su lugar el inicio de sesión por navegador en esta máquina, Claude Code debe poder escuchar en `127.0.0.1`. Si se ejecuta dentro de un sandbox, comprueba que la política del sandbox permita escuchar en puertos locales y luego vuelve a ejecutar `/login`. Si debería poder hacerlo y sigue fallando, ejecuta `/feedback` para que el informe incluya los detalles de tu entorno.1386* **`Couldn't start the local listener that receives the browser sign-in`**: ejecuta el mismo comando de nuevo. Si se detiene de la misma manera, inicia sesión con un token o una clave de API en lugar del navegador. O, si canalizaste una entrada hacia `claude auth login`, ejecútalo en una terminal para que pueda aceptar un código pegado.

1387* **Para iniciar sesión con un token o una clave de API en lugar del navegador**: si usas una suscripción de claude.ai, ejecuta [`claude setup-token`](/docs/es/authentication#generate-a-long-lived-token) en una máquina donde el inicio de sesión funcione. Luego define el token que imprime como la variable de entorno [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/es/env-vars) en esta máquina. De lo contrario, define la variable de entorno `ANTHROPIC_API_KEY` con una clave de la [Claude Console](https://platform.claude.com/settings/keys). [Precedencia de autenticación](/docs/es/authentication#authentication-precedence) explica cómo elige Claude Code entre credenciales.

1388* **Para recuperar el regreso automático desde el navegador**: Claude Code debe poder escuchar en `127.0.0.1`. Si se ejecuta dentro de un sandbox, comprueba que la política del sandbox permita escuchar en puertos locales y luego vuelve a iniciar sesión. Si escuchar debería funcionar ahí y el aviso sigue apareciendo, ejecuta `/feedback` para que el informe incluya los detalles de tu entorno.

1389 

1390Antes de la v2.1.305, el inicio de sesión se detenía en cuanto no se podía abrir el puerto y no mostraba ninguna URL donde iniciar sesión. El mensaje decía, por ejemplo, `Failed to start OAuth callback server: Failed to start server. Is port 0 in use?`. En esas versiones, actualiza Claude Code y vuelve a iniciar sesión, o inicia sesión con un token o una clave de API en lugar del navegador.

1355 1391 

1356### Inicio de sesión de Claude no aceptado1392### Inicio de sesión de Claude no aceptado

1357 1393 


1513 1549 

1514Actualiza el valor del encabezado donde está configurado el servidor y luego reconecta desde `/mcp`.1550Actualiza el valor del encabezado donde está configurado el servidor y luego reconecta desde `/mcp`.

1515 1551 

1516Antes de la v2.1.273, los casos de inicio de sesión expirado, `headersHelper` y encabezado `Authorization` mostraban todos `MCP server "<name>" requires re-authorization (token expired)`.1552En una sesión de [Cowork](https://claude.com/docs/cowork/overview) en tu máquina en la aplicación Claude Desktop, estos mensajes significan que el servidor MCP rechazó una credencial que se le proporcionó. Corrige la que indica el mensaje y luego inicia una nueva tarea o chat en Cowork:

1553 

1554```text theme={null}

1555MCP server "<name>" rejected the credential from its headersHelper (check the helper, then start a new task or chat)

1556MCP server "<name>" rejected the Authorization header in its config (update it, then start a new task or chat)

1557```

1558 

1559* **Credencial de `headersHelper` rechazada**: comprueba que el helper devuelva una credencial que el servidor acepte y luego inicia una nueva tarea o chat en Cowork

1560* **Encabezado `Authorization` rechazado**: actualiza el valor de `Authorization` bajo `headers` en la configuración de ese servidor y luego inicia una nueva tarea o chat en Cowork

1561 

1562Antes de la v2.1.302, una sesión de Cowork mostraba en cambio los finales `run /mcp to reconnect`, aunque `/mcp` no está disponible allí. Si ves uno de esos finales en Cowork, igualmente revisa el helper o actualiza el encabezado y luego inicia una nueva tarea o chat. Antes de la v2.1.273, los casos de inicio de sesión caducado, `headersHelper` y encabezado `Authorization` mostraban todos `MCP server "<name>" requires re-authorization (token expired)`.

1517 1563 

1518Un servidor también puede rechazar una llamada a herramienta con HTTP 403 `insufficient_scope` para pedirte que autorices un alcance, a veces uno que tu token ya incluye. El mensaje nombra ese alcance:1564Un servidor también puede rechazar una llamada a herramienta con HTTP 403 `insufficient_scope` para pedirte que autorices un alcance, a veces uno que tu token ya incluye. El mensaje nombra ese alcance:

1519 1565 


1812* Confirma que puedes alcanzar el host de la API desde el mismo shell ejecutando `curl -I https://api.anthropic.com`. En Windows PowerShell usa `curl.exe -I https://api.anthropic.com` para que no se use el alias integrado `Invoke-WebRequest`.1858* Confirma que puedes alcanzar el host de la API desde el mismo shell ejecutando `curl -I https://api.anthropic.com`. En Windows PowerShell usa `curl.exe -I https://api.anthropic.com` para que no se use el alias integrado `Invoke-WebRequest`.

1813* Si estás detrás de un proxy corporativo, establece `HTTPS_PROXY` antes de iniciar Claude Code y consulta [Configuración de red](/docs/es/network-config)1859* Si estás detrás de un proxy corporativo, establece `HTTPS_PROXY` antes de iniciar Claude Code y consulta [Configuración de red](/docs/es/network-config)

1814* Si enrutas a través de un gateway LLM o un relé, establece [`ANTHROPIC_BASE_URL`](/docs/es/env-vars) en su dirección. Consulta [Conectar Claude Code a un gateway LLM](/docs/es/llm-gateway-connect) para la configuración.1860* Si enrutas a través de un gateway LLM o un relé, establece [`ANTHROPIC_BASE_URL`](/docs/es/env-vars) en su dirección. Consulta [Conectar Claude Code a un gateway LLM](/docs/es/llm-gateway-connect) para la configuración.

1861* Si `ANTHROPIC_BASE_URL` ya apunta a tu gateway y cada solicitud termina en `Connection dropped`, verifica si tu gateway está rechazando los campos de búsqueda de herramientas que Claude Code envía de forma predeterminada. Para verificarlo, establece `ENABLE_TOOL_SEARCH=false` como se describe en [Búsqueda de herramientas a través de un gateway LLM](/docs/es/mcp#tool-search-through-a-gateway) y vuelve a intentarlo. Antes de v2.1.304, la búsqueda de herramientas estaba desactivada detrás de un gateway a menos que la activaras con `ENABLE_TOOL_SEARCH`.

1815* Asegúrate de que tu firewall permita los hosts enumerados en [Requisitos de acceso a la red](/docs/es/network-config#network-access-requirements)1862* Asegúrate de que tu firewall permita los hosts enumerados en [Requisitos de acceso a la red](/docs/es/network-config#network-access-requirements)

1816* Los fallos intermitentes se [reintentan automáticamente](#automatic-retries); los fallos persistentes apuntan a un problema de red local1863* Los fallos intermitentes se [reintentan automáticamente](#automatic-retries)

1817 1864 

1818Si `curl` tiene éxito pero Claude Code sigue fallando, la causa suele ser algo entre el runtime y la red, no la red en sí:1865Si `curl` tiene éxito pero Claude Code sigue fallando, la causa suele ser algo entre el runtime y la red, no la red en sí:

1819 1866 


2166* Recorta los archivos de memoria `CLAUDE.md` grandes, o mueve las instrucciones a [reglas limitadas a rutas](/docs/es/memory#path-specific-rules) que se carguen solo cuando sean relevantes2213* Recorta los archivos de memoria `CLAUDE.md` grandes, o mueve las instrucciones a [reglas limitadas a rutas](/docs/es/memory#path-specific-rules) que se carguen solo cuando sean relevantes

2167* La compactación automática está activada de forma predeterminada y normalmente evita este error. Si la desactivaste en `/config` o con [`DISABLE_AUTO_COMPACT`](/docs/es/env-vars), vuelve a activarla. Si la mantienes desactivada, ejecuta `/compact` tú mismo antes de que se llene la ventana.2214* La compactación automática está activada de forma predeterminada y normalmente evita este error. Si la desactivaste en `/config` o con [`DISABLE_AUTO_COMPACT`](/docs/es/env-vars), vuelve a activarla. Si la mantienes desactivada, ejecuta `/compact` tú mismo antes de que se llene la ventana.

2168* Si el error aparece cerca de 200K tokens en un modelo que acepta más, una causa es un ID de modelo que Claude Code no reconoce. Claude Code asume una ventana de 200K para ese ID, así que para seguir trabajando más allá de ese punto, [indícale la ventana de contexto real del modelo](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id).2215* Si el error aparece cerca de 200K tokens en un modelo que acepta más, una causa es un ID de modelo que Claude Code no reconoce. Claude Code asume una ventana de 200K para ese ID, así que para seguir trabajando más allá de ese punto, [indícale la ventana de contexto real del modelo](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id).

2216* Si el error apareció justo después de que detuviste a Claude mientras compactaba la conversación, tu conversación no cambió y sigue siendo lo bastante grande como para necesitar compactación. Ejecuta `/compact` y vuelve a enviar tu mensaje. Para evitar que el error se repita, [actualiza Claude Code](/docs/es/setup#update-claude-code) a v2.1.304 o posterior. Antes de v2.1.304, detenerlo en ese momento podía terminar el turno con este error.

2169 2217 

2170Consulta [Explorar la ventana de contexto](/docs/es/context-window) para ver de forma interactiva cómo se llena el contexto.2218Consulta [Explorar la ventana de contexto](/docs/es/context-window) para ver de forma interactiva cómo se llena el contexto.

2171 2219 


2298 2346 

2299### No se permiten entradas adicionales2347### No se permiten entradas adicionales

2300 2348 

2301Un proxy o gateway de LLM entre Claude Code y la API eliminó el encabezado de solicitud `anthropic-beta`, por lo que la API rechazó los campos que dependen de él.2349El endpoint que recibió la solicitud rechazó uno de los campos de la solicitud como una entrada que no acepta, y el mensaje del endpoint nombra ese campo.

2302 2350 

2303```text theme={null}2351```text theme={null}

2304API Error: 400 ... Extra inputs are not permitted ... context_management2352API Error: 400 ... context_management: Extra inputs are not permitted

2305```2353```

2306 2354 

2307Claude Code envía campos exclusivos de beta, como `context_management`, junto con un encabezado `anthropic-beta` que los habilita. Cuando un gateway reenvía el cuerpo pero descarta el encabezado, la API ve campos que no reconoce.2355Claude Code envía campos exclusivos de beta, como `context_management` y `defer_loading` de la búsqueda de herramientas, junto con un encabezado `anthropic-beta` que los habilita. Cuando un gateway reenvía el cuerpo pero descarta el encabezado, la API ve campos que no reconoce. Cuando un gateway reenvía un cuerpo en formato de Anthropic a un upstream con un esquema diferente, ese upstream rechaza esos campos. [Pares de encabezado beta y campo del cuerpo](/docs/es/llm-gateway-protocol#beta-header-and-body-field-pairs) cubre ambos casos.

2308 2356 

2309**Qué hacer:**2357**Qué hacer:**

2310 2358 

2311* Configura tu gateway para que reenvíe el encabezado `anthropic-beta`. Consulta [paso de funcionalidades](/docs/es/llm-gateway-protocol#feature-pass-through) para saber qué deben reenviar los gateways.2359* Si el mensaje contiene `context_management: Extra inputs are not permitted`, [actualiza Claude Code](/docs/es/setup#update-claude-code) a v2.1.304 o posterior. Después de actualizar, Claude Code responde a este rechazo enviando la solicitud una vez más sin el campo. Antes de v2.1.304, Claude Code no reintentaba ante este rechazo.

2360* Si el mensaje nombra `defer_loading` o `tool_reference`, actualiza Claude Code o desactiva la [búsqueda de herramientas](/docs/es/mcp#tool-search-through-a-gateway):

2361 * [Actualiza Claude Code](/docs/es/setup#update-claude-code) a v2.1.305 o posterior. Claude Code entonces responde a este rechazo enviando la solicitud una vez más sin los campos de búsqueda de herramientas.

2362 * Si no puedes actualizar, o el mensaje sigue apareciendo después de hacerlo, establece `ENABLE_TOOL_SEARCH=false` en tu shell o en el [`env` de tu configuración](/docs/es/settings-reference#env). Si un archivo de configuración ya establece la variable, cámbiala ahí, ya que ese valor [puede sobrescribir un export del shell](/docs/es/settings-reference#how-env-values-interact-with-your-shell). Claude Code entonces carga las herramientas MCP por adelantado.

2363* Si tu gateway descarta el encabezado, configúralo para que reenvíe el encabezado `anthropic-beta`. Consulta [transferencia de funciones](/docs/es/llm-gateway-protocol#feature-pass-through) para saber qué deben reenviar los gateways.

2312* Como alternativa, establece [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/docs/es/env-vars) antes de iniciar. [Desactivar las capacidades de versión preliminar](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities) describe el alcance exacto.2364* Como alternativa, establece [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/docs/es/env-vars) antes de iniciar. [Desactivar las capacidades de versión preliminar](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities) describe el alcance exacto.

2313 2365 

2366Antes de v2.1.302, este error también podía nombrar el campo `diagnostics` sin que hubiera ningún gateway de por medio. Aparecía cuando una sesión que ya había usado la Anthropic API pasaba a Amazon Bedrock o al Agent Platform de Google Cloud sin reiniciarse. Por ejemplo, una sesión que dejaste abierta pasa a Bedrock cuando ejecutas [`/setup-bedrock`](/docs/es/commands) en otra ventana de Claude Code. En esas versiones, ejecuta `/clear` en esa sesión o reiníciala.

2367 

2314### El esquema de entrada de la herramienta no es válido2368### El esquema de entrada de la herramienta no es válido

2315 2369 

2316Una herramienta de la solicitud declaró un `input_schema` que no supera la validación de JSON Schema de la API, por lo que la API rechazó toda la solicitud. El número después de `tools.` es la posición de la herramienta que falla en la lista de herramientas de la solicitud, no un nombre que puedas buscar.2370Una herramienta de la solicitud declaró un `input_schema` que no supera la validación de JSON Schema de la API, por lo que la API rechazó toda la solicitud. El número después de `tools.` es la posición de la herramienta que falla en la lista de herramientas de la solicitud, no un nombre que puedas buscar.


2384* Usa un alias como `sonnet` u `opus` en lugar de un ID completo con versión. Los alias se resuelven a un valor predeterminado que se mantiene actualizado, así que no quedan obsoletos. Consulta [Configuración del modelo](/docs/es/model-config).2438* Usa un alias como `sonnet` u `opus` en lugar de un ID completo con versión. Los alias se resuelven a un valor predeterminado que se mantiene actualizado, así que no quedan obsoletos. Consulta [Configuración del modelo](/docs/es/model-config).

2385* Si el modelo incorrecto sigue reapareciendo en la CLI, hay un ID obsoleto configurado en algún lugar. Revisa los lugares donde puedes establecer un modelo en [orden de prioridad](/docs/es/model-config#setting-your-model) y elimina el valor obsoleto.2439* Si el modelo incorrecto sigue reapareciendo en la CLI, hay un ID obsoleto configurado en algún lugar. Revisa los lugares donde puedes establecer un modelo en [orden de prioridad](/docs/es/model-config#setting-your-model) y elimina el valor obsoleto.

2386* Claude Code reporta un inicio de sesión de claude.ai expirado como [Inicio de sesión expirado](#login-expired), no como este error. Antes de v2.1.206, un inicio de sesión expirado que ya no se podía renovar hacía fallar todos los modelos con este error; ejecuta `/login` si ves eso en una versión anterior.2440* Claude Code reporta un inicio de sesión de claude.ai expirado como [Inicio de sesión expirado](#login-expired), no como este error. Antes de v2.1.206, un inicio de sesión expirado que ya no se podía renovar hacía fallar todos los modelos con este error; ejecuta `/login` si ves eso en una versión anterior.

2441* Si [`ANTHROPIC_BASE_URL`](/docs/es/env-vars) apunta a un [LLM gateway](/docs/es/llm-gateway) y todos los modelos fallan de esta manera, comprueba si tu gateway está rechazando los campos de búsqueda de herramientas que Claude Code envía de forma predeterminada. Para comprobarlo, establece `ENABLE_TOOL_SEARCH=false` como se describe en [Búsqueda de herramientas a través de un LLM gateway](/docs/es/mcp#tool-search-through-a-gateway) y vuelve a intentarlo. Antes de v2.1.304, la búsqueda de herramientas estaba desactivada detrás de un gateway a menos que la activaras con `ENABLE_TOOL_SEARCH`.

2387* Para despliegues en Agent Platform de Google Cloud, consulta [Solución de problemas de Agent Platform de Google Cloud](/docs/es/google-vertex-ai#troubleshooting).2442* Para despliegues en Agent Platform de Google Cloud, consulta [Solución de problemas de Agent Platform de Google Cloud](/docs/es/google-vertex-ai#troubleshooting).

2388 2443 

2389### El modelo no es un ID de modelo reconocido2444### El modelo no es un ID de modelo reconocido


2590Otros mensajes reportan la misma condición:2645Otros mensajes reportan la misma condición:

2591 2646 

2592* En una sesión interactiva, una notificación dice `Advisor will not activate on the main model (advisor is less capable); subagents may still use it and may use more tokens · /advisor`.2647* En una sesión interactiva, una notificación dice `Advisor will not activate on the main model (advisor is less capable); subagents may still use it and may use more tokens · /advisor`.

2593* Al iniciar con el flag `--advisor`, una advertencia dice `"<advisor>" cannot advise "<main model>" (the advisor must be at least as capable as the main model). The advisor will not be used for the main model.` y la sesión se inicia de todos modos.2648* Cuando inicias con el flag `--advisor` en [modo no interactivo](/docs/es/headless), y la ejecución no es una [sesión en segundo plano](/docs/es/agent-view), se escribe una advertencia en stderr y la ejecución se inicia de todos modos. Dice `"<advisor>" cannot advise "<main model>" (the advisor must be at least as capable as the main model). The advisor will not be used for the main model.` Una sesión interactiva escribe esa advertencia solo en el [log de depuración](#configuration-warnings).

2594 2649 

2595**Qué hacer:**2650**Qué hacer:**

2596 2651 


3361 3416 

3362Hay cadenas similares que se activan antes de que el comando llegue a ejecutarse:3417Hay cadenas similares que se activan antes de que el comando llegue a ejecutarse:

3363 3418 

3364* `Shell command permission check failed for pattern "..."`: la comprobación de permisos del comando no lo permitió. [Permission checks on injected commands](/docs/es/skills#permission-checks-on-injected-commands) explica qué resultados cancelan la invocación en cada modo de permisos y cómo aprobar previamente un comando con `allowed-tools`3419* `Shell command permission check failed for pattern "..."`: la verificación de permisos del comando no lo permitió. [Verificaciones de permisos en comandos inyectados](/docs/es/skills#permission-checks-on-injected-commands) explica qué resultados cancelan en cada modo de permisos y cómo aprobar previamente un comando con `allowed-tools`

3365* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: el frontmatter del skill exige bash en una máquina que no lo tiene. Instala Git para Windows o cambia el frontmatter a `shell: powershell`. Consulta [How injected commands run](/docs/es/skills#how-injected-commands-run)3420* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: el frontmatter del skill exige bash en una máquina que no lo tiene. Instala Git for Windows o cambia el frontmatter a `shell: powershell`. Consulta [Cómo se ejecutan los comandos inyectados](/docs/es/skills#how-injected-commands-run)

3366* `No shell command in <name> was run`: uno de los comandos `!` del archivo contiene un carácter de control sin procesar distinto de tabulación o salto de línea, así que ninguno de ellos se ejecuta. Consulta [cómo encontrar y eliminar el carácter](#no-shell-command-was-run)3421* `No shell command in <name> was run`: uno de los comandos `!` del archivo contiene un carácter de control sin procesar distinto de tabulación o salto de línea, así que ninguno de ellos se ejecuta. Consulta [cómo encontrar y eliminar el carácter](#no-shell-command-was-run)

3367 3422 

3368**Qué hacer:**3423**Qué hacer:**


3464Claude Code sugiere el nombre de comando o alias más cercano que el menú muestra en esta sesión. Cuando no hay nada cercano, el mensaje termina después del nombre. La causa suele ser una de las siguientes:3519Claude Code sugiere el nombre de comando o alias más cercano que el menú muestra en esta sesión. Cuando no hay nada cercano, el mensaje termina después del nombre. La causa suele ser una de las siguientes:

3465 3520 

3466* Un error tipográfico, como `/hepl` por `/help`. [Cómo el menú de comandos coincide con lo que escribes](/docs/es/commands#how-the-command-menu-matches-what-you-type) explica cómo elegir una coincidencia cercana antes de enviar3521* Un error tipográfico, como `/hepl` por `/help`. [Cómo el menú de comandos coincide con lo que escribes](/docs/es/commands#how-the-command-menu-matches-what-you-type) explica cómo elegir una coincidencia cercana antes de enviar

3467* Un comando que existe pero no está disponible en esta sesión porque no se cumple un requisito, como tu plataforma, tu plan o tu método de autenticación. Las entradas de solución de problemas de [`/web-setup`](/docs/es/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command) y [`/schedule`](/docs/es/routines#schedule-returns-unknown-command) recorren dos casos comunes. Algunos comandos responden con su propio mensaje cuando la política de tu organización los deshabilita, como [`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy)3522* Un comando que existe pero no está disponible en esta sesión porque no se cumple un requisito, como tu plataforma, tu plan o tu método de autenticación. Consulta la entrada de [`/web-setup`](/docs/es/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command), [`/schedule`](/docs/es/routines#schedule-returns-unknown-command) o [`/auto-mode-setup`](/docs/es/auto-mode-config#auto-mode-setup-returns-unknown-command). Algunos comandos responden con su propio mensaje cuando la política de tu organización los desactiva, como [`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy)

3468* Un comando de un [plugin](/docs/es/plugins/overview) o de un [servidor MCP](/docs/es/mcp#use-mcp-prompts-as-commands) que no está instalado o conectado en esta sesión3523* Un comando de un [plugin](/docs/es/plugins/overview) o de un [servidor MCP](/docs/es/mcp#use-mcp-prompts-as-commands) que no está instalado o conectado en esta sesión

3469 3524 

3470Claude Code responde así a un nombre con `/` sin coincidencia solo en una sesión interactiva de terminal. En cualquier otra sesión, envía el prompt a Claude como un mensaje normal, con una nota de que el comando no se ejecutó y una lista de los comandos que Claude puede ejecutar en la sesión. Esas sesiones incluyen:3525Claude Code responde así a un nombre con `/` sin coincidencia solo en una sesión interactiva de terminal. En cualquier otra sesión, envía el prompt a Claude como un mensaje normal, con una nota de que el comando no se ejecutó y una lista de los comandos que Claude puede ejecutar en la sesión. Esas sesiones incluyen:


3513 3568 

3514* **No pasaste una rama base**: Claude Code comparó contra la rama predeterminada del repositorio y sugiere pasar tu base explícitamente, como en el ejemplo anterior3569* **No pasaste una rama base**: Claude Code comparó contra la rama predeterminada del repositorio y sugiere pasar tu base explícitamente, como en el ejemplo anterior

3515* **Pasaste una rama base que ya estaba en tu clon**: la sugerencia dice ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``3570* **Pasaste una rama base que ya estaba en tu clon**: la sugerencia dice ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``

3516* **Pasaste una rama base que no estaba en tu clon**: Claude Code la obtuvo de origin antes de comparar. La sugerencia dice ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``; cuando Claude Code no puede determinar si tu clon es superficial, sugiere `git fetch --unshallow origin` en su lugar. Antes de v2.1.221, la sugerencia proponía `git fetch --unshallow origin` para toda rama base obtenida, y en un clon completo ese comando falla con `fatal: --unshallow on a complete repository does not make sense`.3571* **Pasaste una rama base que no estaba en tu clon**: Claude Code la obtuvo de origin antes de comparar. La sugerencia dice ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``; cuando Claude Code no puede determinar si tu clon es superficial, sugiere `git fetch --unshallow origin` en su lugar. Antes de v2.1.221, la sugerencia proponía `git fetch --unshallow origin` para cada rama base obtenida, y en un clon completo ese comando falla con `fatal: --unshallow on a complete repository does not make sense`.

3517 3572 

3518**Qué hacer:**3573**Qué hacer:**

3519 3574 


3856* Abre la sesión tú mismo y ejecuta `/recap` allí: en su terminal, en la [aplicación de escritorio](/docs/es/desktop) o la [aplicación móvil](/docs/es/mobile), en [claude.ai/code](https://claude.ai/code), o a través de [Remote Control](/docs/es/remote-control)3911* Abre la sesión tú mismo y ejecuta `/recap` allí: en su terminal, en la [aplicación de escritorio](/docs/es/desktop) o la [aplicación móvil](/docs/es/mobile), en [claude.ai/code](https://claude.ai/code), o a través de [Remote Control](/docs/es/remote-control)

3857* Si lo envió una tarea programada en la nube u otro programa, quita `/recap` de ese prompt3912* Si lo envió una tarea programada en la nube u otro programa, quita `/recap` de ese prompt

3858 3913 

3914### /feedback is disabled by your organization's policy

3915 

3916Este mensaje significa que la política de tu organización no permite enviar comentarios sobre el producto desde Claude Code, así que `/feedback`, `/bug` y `/share` no abren el diálogo de comentarios. El mensaje menciona el comando que escribiste en el prompt de Claude Code:

3917 

3918```text wrap theme={null}

3919/feedback is disabled by your organization's policy. To report a bug, open an issue at https://github.com/anthropics/claude-code/issues. Issues are public, so leave out anything confidential.

3920```

3921 

3922El mensaje también puede consistir solo en su primera frase.

3923 

3924**Qué hacer:**

3925 

3926* Para informar un error, abre un issue en [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues). Cualquier persona puede leer los issues allí, así que omite el código, las transcripciones y cualquier otra cosa confidencial.

3927 

3928Antes de v2.1.302, el mensaje completo decía `/feedback is disabled by your organization's policy. Contact your organization admin to enable it.`

3929 

3859## Errores de plugins3930## Errores de plugins

3860 3931 

3861Estos errores provienen de la configuración de [plugins](/docs/es/plugins/overview) y [marketplace](/docs/es/plugins/overview). Para problemas de plugins que no producen uno de los mensajes en esta página, como una URL de marketplace que no carga o un plugin que se instala pero no aparece, consulte [Solución de problemas de plugins](/docs/es/plugins/troubleshooting).3932Estos errores provienen de la configuración de [plugins](/docs/es/plugins/overview) y [marketplace](/docs/es/plugins/overview). Para problemas de plugins que no producen uno de los mensajes en esta página, como una URL de marketplace que no carga o un plugin que se instala pero no aparece, consulte [Solución de problemas de plugins](/docs/es/plugins/troubleshooting).


4001 4072 

4002### Path escapes plugin directory4073### Path escapes plugin directory

4003 4074 

4004Un componente de plugin cuya ruta está declarada en el `plugin.json` del plugin o en su [entrada de marketplace](/docs/es/plugins/marketplace-reference#plugin-entries), se resuelve fuera del directorio del plugin. Claude Code descarta esa ruta y carga el resto del plugin. El nombre del componente en el mensaje, como `commands` o `hooks`, nombra el campo que declaró la ruta.4075Una de las rutas de componentes del plugin conduce fuera del directorio del plugin o no se pudo confirmar que esté dentro de él, por lo que Claude Code descarta esa ruta y carga el resto del plugin. Para una ruta que el plugin declara en `plugin.json` o en su [entrada de marketplace](/docs/es/plugins/marketplace-reference#plugin-entries), el nombre del componente en el mensaje, como `commands` o `hooks`, indica el campo que declaró la ruta.

4005 4076 

4006```text theme={null}4077```text theme={null}

4007commands path escapes plugin directory: ./../shared.md4078commands path escapes plugin directory: ./../shared.md


4015commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory4086commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory

4016```4087```

4017 4088 

4089Un mensaje que da la ruta completa de uno de los archivos propios de un plugin de marketplace, como `hooks/hooks.json`, significa que Claude Code omitió ese archivo. Eso ocurre cuando Claude Code no puede confirmar que el archivo está dentro del plugin o, para un plugin en un [marketplace local](/docs/es/plugins/loading#in-place-and-copied-plugins), dentro de ese marketplace. El mensaje informa cada uno de estos archivos bajo el nombre de componente indicado:

4090 

4091* `hooks/hooks.json`: `hooks`

4092* `monitors/monitors.json`: `monitors`

4093* `settings.json`: `settings`

4094* `SKILL.md` en la raíz del plugin: `skills`

4095 

4096Por ejemplo, este mensaje corresponde a un `hooks/hooks.json` que se resuelve fuera tanto del plugin como de su marketplace local:

4097 

4098```text theme={null}

4099hooks path escapes plugin directory: /home/user/my-marketplace/my-plugin/hooks/hooks.json — it resolves to /home/user/dotfiles/hooks.json, outside the plugin directory and its marketplace directory

4100```

4101 

4018En macOS y Linux, Claude Code también rechaza una ruta de componente que contenga una barra invertida en cualquier lugar, incluso cuando la ruta permanece dentro del plugin. Un plugin cuyas rutas de componentes utilizan separadores de estilo Windows se carga en Windows y activa este rechazo en las otras plataformas:4102En macOS y Linux, Claude Code también rechaza una ruta de componente que contenga una barra invertida en cualquier lugar, incluso cuando la ruta permanece dentro del plugin. Un plugin cuyas rutas de componentes utilizan separadores de estilo Windows se carga en Windows y activa este rechazo en las otras plataformas:

4019 4103 

4020```text theme={null}4104```text theme={null}


4023 4107 

4024Antes de v2.1.251, Claude Code cargaba una ruta `commands` declarada en una entrada de marketplace incluso cuando apuntaba fuera del directorio del plugin.4108Antes de v2.1.251, Claude Code cargaba una ruta `commands` declarada en una entrada de marketplace incluso cuando apuntaba fuera del directorio del plugin.

4025 4109 

4026Antes de v2.1.257, la verificación solo miraba la ortografía de la ruta, no dónde conducía un enlace simbólico.4110Antes de v2.1.257, la verificación de las rutas que declara el plugin solo miraba la forma en que estaba escrita la ruta, no adónde conducía un enlace simbólico.

4027 4111 

4028**Qué hacer:**4112**Qué hacer:**

4029 4113 

4030* Mueva el archivo referenciado dentro del directorio del plugin y apunte la ruta a él con una ruta relativa `./`4114* Si instalaste el plugin y no lo mantienes, informa el mensaje a su autor

4031* Si la ruta es un enlace simbólico a un archivo fuera del plugin, reemplace el enlace simbólico con una copia del archivo4115* Para una ruta que declara el plugin, mueve el archivo referenciado dentro del directorio del plugin y haz que la ruta apunte a él con una ruta relativa `./`

4032* Si el mensaje dice que la ruta contiene una barra invertida, escriba la ruta con barras diagonales, por ejemplo `./commands/deploy.md`4116* Si la ruta, o una carpeta por encima de ella dentro del plugin, es un enlace simbólico que conduce fuera del plugin, reemplaza el enlace simbólico con una copia de aquello a lo que apunta

4117* Si el mensaje dice que una ruta que declara el plugin contiene una barra invertida, escribe la ruta con barras diagonales, por ejemplo `./commands/deploy.md`

4118* Si el mensaje termina con `EACCES`, restaura tu permiso de ejecución en cada directorio que conduce al archivo o carpeta que indica la ruta. Revisa los directorios por encima de la ruta y luego sigue cada enlace simbólico que encuentres y revisa los directorios que conducen a donde apunta. Para cualquier otro código de error, búscalo en las [causas y pasos para una ruta que no se pudo verificar](#path-could-not-be-checked).

4033* Para compartir archivos con otros plugins en el mismo marketplace, vincúlelos con un enlace simbólico dentro del directorio del plugin, siguiendo las [reglas de enlace simbólico](/docs/es/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks)4119* Para compartir archivos con otros plugins en el mismo marketplace, vincúlelos con un enlace simbólico dentro del directorio del plugin, siguiendo las [reglas de enlace simbólico](/docs/es/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks)

4034 4120 

4121### Plugin not loaded: its manifest was not read

4122 

4123Claude Code no pudo confirmar que el [manifiesto](/docs/es/plugins/manifest-reference) de un plugin de marketplace en `.claude-plugin/plugin.json` está dentro del plugin, por lo que no carga nada de ese plugin. Para un plugin en un [marketplace local](/docs/es/plugins/loading#in-place-and-copied-plugins), Claude Code tampoco pudo confirmar que el manifiesto está dentro de ese marketplace. El mensaje aparece en la pestaña **Errors** de `/plugin`, y el motivo al final indica lo que encontró Claude Code.

4124 

4125Por ejemplo, este mensaje corresponde a un plugin en un marketplace local cuya carpeta `.claude-plugin` es un enlace simbólico que conduce fuera del marketplace:

4126 

4127```text theme={null}

4128Plugin not loaded: its manifest /home/user/my-marketplace/my-plugin/.claude-plugin/plugin.json was not read, because it resolves to /home/user/dotfiles/my-plugin/.claude-plugin/plugin.json, outside the plugin directory and its marketplace directory

4129```

4130 

4131**Qué hacer:**

4132 

4133* Si el motivo termina con `EACCES`, restaura tu permiso de ejecución en cada directorio que conduce al manifiesto. Revisa los directorios por encima del manifiesto y luego sigue cada enlace simbólico que encuentres y revisa los directorios que conducen a donde apunta. Para cualquier otro código de error, búscalo en las [causas y pasos para una ruta que no se pudo verificar](#path-could-not-be-checked).

4134* Si mantienes el plugin y el motivo indica dónde se resuelve el manifiesto, la carpeta `.claude-plugin` o el propio `plugin.json` es un enlace simbólico que conduce allí. Reemplaza ese enlace con una copia de aquello a lo que apunta.

4135* Si instalaste el plugin y no lo mantienes, informa el mensaje a su autor

4136 

4035### Path could not be checked4137### Path could not be checked

4036 4138 

4037Claude Code le preguntó al sistema operativo si existe una ruta de plugin y obtuvo un error que no sea "no encontrado", por lo que no carga lo que la ruta nombra. Cuánto del plugin se carga depende de qué ruta falló:4139Claude Code le preguntó al sistema operativo si existe una ruta de plugin y obtuvo un error que no sea "no encontrado", por lo que no carga lo que la ruta nombra. Cuánto del plugin se carga depende de qué ruta falló:


4226 4328 

4227Antes de la v2.1.281, un byte nulo en una ruta de Read, Write, Edit o NotebookEdit terminaba todo el turno con un error que mencionaba `Path contains null bytes`, y la herramienta nunca se ejecutaba.4329Antes de la v2.1.281, un byte nulo en una ruta de Read, Write, Edit o NotebookEdit terminaba todo el turno con un error que mencionaba `Path contains null bytes`, y la herramienta nunca se ejecutaba.

4228 4330 

4331### File is too large to read as an image

4332 

4333Claude intentó leer un archivo como imagen con la [herramienta Read](/docs/es/tools-reference#read-tool-behavior), y el archivo supera los 128 MB, el máximo que Read carga de un archivo de imagen. No se leyó nada, y Claude recibe este error como resultado de la herramienta:

4334 

4335```text wrap theme={null}

4336File is too large to read as an image (the limit is 128MB): <path>. If it is an image, resize it or export a smaller copy, then read that.

4337```

4338 

4339Cuando la ruta es una tubería o un dispositivo en lugar de un archivo normal, Read se detiene en cuanto han llegado más de 128 MB y devuelve en su lugar este error:

4340 

4341```text wrap theme={null}

4342Cannot read this as an image: <path> is a pipe or a device, not a regular file, and it sent more than 128MB without ending.

4343```

4344 

4345**Qué hacer:**

4346 

4347* Si Claude siguió el mensaje `File is too large` y pasó a redimensionar la imagen o a leer una copia más pequeña, no hagas nada

4348* Si Claude se detuvo en el error, exporta tú mismo una copia de menos de 128 MB, por ejemplo con una resolución menor, y dirige a Claude a ese archivo

4349* Si la ruta era una tubería o un dispositivo, dirige a Claude a un archivo de imagen normal en su lugar

4350 

4229### subagent\_type is required4351### subagent\_type is required

4230 4352 

4231```text theme={null}4353```text theme={null}


4316* Ejecuta `claude` en la carpeta que nombra el [registro de depuración](/docs/es/debug-your-config) y acepta el diálogo de confianza. La definición se vuelve a aplicar la próxima vez que Claude Code reactive al compañero de equipo; no necesitas reiniciar la sesión del líder4438* Ejecuta `claude` en la carpeta que nombra el [registro de depuración](/docs/es/debug-your-config) y acepta el diálogo de confianza. La definición se vuelve a aplicar la próxima vez que Claude Code reactive al compañero de equipo; no necesitas reiniciar la sesión del líder

4317* O establece la entrada `hasTrustDialogAccepted` en `true` en `~/.claude.json`, usando exactamente la clave `projects["<path>"]` que muestra el registro de depuración4439* O establece la entrada `hasTrustDialogAccepted` en `true` en `~/.claude.json`, usando exactamente la clave `projects["<path>"]` que muestra el registro de depuración

4318 4440 

4441### Only a teammate can approve a shutdown request

4442 

4443Claude Code rechazó una aprobación de apagado del [equipo de agentes](/docs/es/agent-teams) porque la sesión que la envió no se está ejecutando como compañero de equipo. No se envió nada y nada se apagó. El rechazo aparece en el resultado de la herramienta de la sesión remitente:

4444 

4445```text wrap theme={null}

4446Only a teammate can approve a shutdown request, and this session is not running as one. Nothing was sent. To shut down a teammate, send that teammate a shutdown_request message. The teammate is the one that approves it.

4447```

4448 

4449**Qué hacer:**

4450 

4451* Si el rechazo apareció en tu sesión del líder, primero verifica si el compañero de equipo ya se apagó desde entonces. El rechazo vuelve a Claude con la instrucción de enviar en su lugar un `shutdown_request`, y el turno continúa. En una sesión interactiva del líder, `<name> has shut down.` aparece cuando el compañero de equipo aprueba una solicitud de apagado.

4452* Si el compañero de equipo sigue ejecutándose, pídele al líder en su prompt que apague al compañero, por ejemplo `Ask the researcher teammate to shut down`. Consulta [Apagar compañeros de equipo](/docs/es/agent-teams#shut-down-teammates).

4453* Si un antiguo compañero de equipo que reanudaste tú mismo con `claude --resume` recibió este rechazo, no se envió nada. Para terminar esa sesión, ejecuta `/exit` en su prompt.

4454 

4319### Message too large for cross-session delivery4455### Message too large for cross-session delivery

4320 4456 

4321El [mensaje entre sesiones](/docs/es/cross-session-messaging) de Claude a otra de tus sesiones en esta máquina era demasiado largo para enviarse. Claude Code lo rechazó, y la sesión receptora no recibió nada. El rechazo aparece en el resultado de la herramienta de la sesión remitente, no como un aviso en tu terminal. Nombra ambos tamaños y cómo hacer que el mensaje quepa:4457El [mensaje entre sesiones](/docs/es/cross-session-messaging) de Claude a otra de tus sesiones en esta máquina era demasiado largo para enviarse. Claude Code lo rechazó, y la sesión receptora no recibió nada. El rechazo aparece en el resultado de la herramienta de la sesión remitente, no como un aviso en tu terminal. Nombra ambos tamaños y cómo hacer que el mensaje quepa:


4449 4585 

4450### Disk quota or temp filesystem is full4586### Disk quota or temp filesystem is full

4451 4587 

4452Claude Code guarda la salida de cada comando de Bash y PowerShell en un archivo dentro de su directorio temporal. Cuando un comando termina con un código distinto de cero y sin ninguna salida, Claude Code verifica si el sistema de archivos que contiene ese archivo se quedó sin espacio o sin inodos, o si se agotó tu cuota de disco en él. Si es así, aparece un diagnóstico en el resultado del comando en lugar de la salida vacía:4588Claude Code guarda la salida de cada comando de Bash y PowerShell en un archivo dentro de su directorio temporal. Estos mensajes en el resultado de un comando significan que el sistema de archivos que contiene ese directorio, o tu cuota de disco en él, está lleno.

4589 

4590Si Claude Code no puede crear ese archivo porque el sistema de archivos o tu cuota en él está lleno, tu comando no se inicia, y el resultado dice:

4591 

4592```text wrap theme={null}

4593The command was not started: this computer's disk is full (ENOSPC), so the file that captures command output could not be created. Nothing ran. If this is the user's own computer, tell them before deleting anything to make room.

4594```

4595 

4596Cuando un comando termina con un código distinto de cero y sin ninguna salida, Claude Code verifica el sistema de archivos que contiene el archivo de salida. Si ese sistema de archivos se quedó sin espacio o sin inodos, o si se agotó tu cuota de disco en él, un diagnóstico reemplaza la salida vacía en el resultado del comando:

4453 4597 

4454```text wrap theme={null}4598```text wrap theme={null}

4455Your disk quota is full on the filesystem with Claude Code's temp directory /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks (EDQUOT), so any output this command printed was lost, and it may have failed because it could not write. Delete files you no longer need there, or restart Claude Code with CLAUDE_CODE_TMPDIR set to a directory on another filesystem.4599Your disk quota is full on the filesystem with Claude Code's temp directory /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks (EDQUOT), so any output this command printed was lost, and it may have failed because it could not write. Delete files you no longer need there, or restart Claude Code with CLAUDE_CODE_TMPDIR set to a directory on another filesystem.


4460* `Your disk quota is full ... (EDQUOT)`: se agotó tu propia cuota en ese sistema de archivos. Una cuota puede estar llena mientras el sistema de archivos todavía muestra espacio libre4604* `Your disk quota is full ... (EDQUOT)`: se agotó tu propia cuota en ese sistema de archivos. Una cuota puede estar llena mientras el sistema de archivos todavía muestra espacio libre

4461* `The filesystem with Claude Code's temp directory ..., or your disk quota on it, is full (ENOSPC)`: el sistema de archivos, o tu cuota en él, no tiene espacio disponible4605* `The filesystem with Claude Code's temp directory ..., or your disk quota on it, is full (ENOSPC)`: el sistema de archivos, o tu cuota en él, no tiene espacio disponible

4462* `Command output was lost: the temp filesystem at ... is full` o `... is out of inodes`: al sistema de archivos casi no le queda espacio libre, o se está quedando sin inodos4606* `Command output was lost: the temp filesystem at ... is full` o `... is out of inodes`: al sistema de archivos casi no le queda espacio libre, o se está quedando sin inodos

4607* `The command was not started: this computer's disk is full (ENOSPC)` o `... (EDQUOT)`: el sistema de archivos no tiene espacio disponible para el archivo de salida o, con `EDQUOT`, se agotó tu propia cuota en él

4463 4608 

4464**Qué hacer:**4609**Qué hacer:**

4465 4610 

4466* Elimina los archivos que ya no necesites en el sistema de archivos que contiene el directorio temporal de Claude Code. Para `EDQUOT`, elimina archivos que cuenten para tu propia cuota. Para `out of inodes`, elimina muchos archivos en lugar de unos pocos grandes, ya que cada archivo ocupa un inodo sin importar su tamaño4611* Elimina los archivos que ya no necesites en el sistema de archivos que contiene el directorio temporal de Claude Code. Si tu mensaje no nombra ese directorio, consulta su ubicación predeterminada en la referencia de [`CLAUDE_CODE_TMPDIR`](/docs/es/env-vars). Para `EDQUOT`, elimina archivos que cuenten para tu propia cuota. Para `out of inodes`, elimina muchos archivos en lugar de unos pocos grandes, ya que cada archivo ocupa un inodo sin importar su tamaño

4467* O reinicia Claude Code con [`CLAUDE_CODE_TMPDIR`](/docs/es/env-vars) establecida en un directorio de un sistema de archivos con espacio4612* O reinicia Claude Code con [`CLAUDE_CODE_TMPDIR`](/docs/es/env-vars) establecida en un directorio de un sistema de archivos con espacio

4468* Luego haz que Claude ejecute el comando de nuevo. La salida que imprimió se perdió, no se truncó4613* Luego haz que Claude ejecute el comando de nuevo

4614 

4615Antes de la v2.1.305, un comando que Claude Code no podía iniciar porque el disco estaba lleno devolvía solo el texto de error del sistema operativo. Ese texto decía, por ejemplo, `ENOSPC: no space left on device, open <path>.output`.

4469 4616 

4470### File is not valid UTF-84617### File is not valid UTF-8

4471 4618 


4524* En Windows, para permitir que Claude publique directamente desde el recurso compartido, asígnalo a una letra de unidad y pasa la unidad al iniciar Claude Code. En PowerShell, por ejemplo, ejecuta `net use Z: \\server\share` y luego `claude --add-dir Z:\`. Así Claude puede publicar archivos desde esa unidad. Agregar la unidad a mitad de la sesión con `/add-dir` no es suficiente.4671* En Windows, para permitir que Claude publique directamente desde el recurso compartido, asígnalo a una letra de unidad y pasa la unidad al iniciar Claude Code. En PowerShell, por ejemplo, ejecuta `net use Z: \\server\share` y luego `claude --add-dir Z:\`. Así Claude puede publicar archivos desde esa unidad. Agregar la unidad a mitad de la sesión con `/add-dir` no es suficiente.

4525* En macOS o Linux, monta el recurso compartido en un directorio, como uno dentro de `/mnt` o `/Volumes`, y publica desde esa ruta en lugar de la ruta de montaje automático4672* En macOS o Linux, monta el recurso compartido en un directorio, como uno dentro de `/mnt` o `/Volumes`, y publica desde esa ruta en lugar de la ruta de montaje automático

4526 4673 

4674### Not published: Claude sent the same content again after a newer version of the artifact turned it away

4675 

4676Esta línea roja bajo una llamada a Artifact significa que Claude Code detuvo una publicación repetida: el [artefacto](/docs/es/artifacts) no se actualizó, y no se escribió nada en el archivo desde el que Claude publica. No necesitas hacer nada a menos que Claude se detenga sin publicar.

4677 

4678Antes en la sesión, Claude Code rechazó una publicación porque el artefacto tenía una versión más reciente, por ejemplo una que publicó un [editor](/docs/es/artifacts#let-someone-edit-with-you) u otra de tus sesiones. El final de la línea indica lo que Claude tiene que hacer a continuación:

4679 

4680```text wrap theme={null}

4681Not published: Claude sent the same content again after a newer version of the artifact turned it away. Claude needs to work from that newer version first.

4682Not published: Claude sent the same content again after a newer version of the artifact turned it away. The artifact hasn't changed since, so publishing it once more should go through.

4683Not published: Claude sent its changes again over the same file after a newer version of the artifact turned them away. Claude needs to work from that newer version first.

4684Not published: Claude sent its changes again over the same file after a newer version of the artifact turned them away. The artifact hasn't changed since, so publishing once more should go through.

4685```

4686 

4687**Qué hacer:**

4688 

4689* **Termina con `Claude needs to work from that newer version first`**: si Claude se detuvo ahí, pídele que obtenga la versión actual del artefacto, incorpore sus cambios y publique de nuevo

4690* **Termina con `should go through`**: si Claude se detuvo ahí, pídele que publique de nuevo

4691 

4527### Reading a local file from outside the connected folders in a Cowork session4692### Reading a local file from outside the connected folders in a Cowork session

4528 4693 

4529En una sesión de [Cowork](https://claude.com/docs/cowork/overview) que se ejecuta en tu máquina en la aplicación Claude Desktop, Claude nombró un archivo local para un [artefacto](/docs/es/artifacts). Claude Code no pudo confirmar que el archivo sea un archivo simple dentro de las carpetas conectadas de la sesión: la ruta está fuera de esas carpetas, pasa por un enlace simbólico o está escrita de una forma que puede nombrar un archivo distinto del que parece. Leer un archivo así requiere tu aprobación, y en una sesión que no puede mostrarte la tarjeta de aprobación, como una configurada para omitir todas las aprobaciones, Claude Code rechaza la lectura.4694En una sesión de [Cowork](https://claude.com/docs/cowork/overview) que se ejecuta en tu máquina en la aplicación Claude Desktop, Claude nombró un archivo local para un [artefacto](/docs/es/artifacts). Claude Code no pudo confirmar que el archivo sea un archivo simple dentro de las carpetas conectadas de la sesión: la ruta está fuera de esas carpetas, pasa por un enlace simbólico o está escrita de una forma que puede nombrar un archivo distinto del que parece. Leer un archivo así requiere tu aprobación, y en una sesión que no puede mostrarte la tarjeta de aprobación, como una configurada para omitir todas las aprobaciones, Claude Code rechaza la lectura.


4816* Para continuar el bucle, [responde a la sesión](/docs/es/agent-view#peek-and-reply) e indícalo, por ejemplo `keep the loop running`. Claude lee el aviso junto con tu respuesta y puede programar la siguiente activación4981* Para continuar el bucle, [responde a la sesión](/docs/es/agent-view#peek-and-reply) e indícalo, por ejemplo `keep the loop running`. Claude lee el aviso junto con tu respuesta y puede programar la siguiente activación

4817* Si ya terminaste con el bucle, no hagas nada. Ya se detuvo4982* Si ya terminaste con el bucle, no hagas nada. Ya se detuvo

4818 4983 

4984### No LLM gateway: a gateway set in your shell isn't passed to a session opened from another folder

4985 

4986La [sesión en segundo plano](/docs/es/agent-view) que muestra este mensaje no está usando tu [LLM gateway](/docs/es/llm-gateway): no recibió la dirección del gateway, por lo que sus solicitudes fallan. El mensaje aparece en la conversación en lugar de la respuesta de Claude, con el ID y la carpeta de tu sesión ya completados:

4987 

4988```text wrap theme={null}

4989No LLM gateway: a gateway set in your shell isn't passed to a session opened from another folder. To fix, run `claude respawn abc12345` from ~/project in another terminal where your gateway is set, or set ANTHROPIC_BASE_URL and its API key or token in a settings file's env block.

4990```

4991 

4992Mientras estás conectado a la sesión, el aviso debajo de su prompt muestra la forma corta `No LLM gateway: opened from another folder · respawn from ~/project`.

4993 

4994Enviaste, despertaste o reiniciaste la sesión desde una carpeta distinta a la que nombra el mensaje, mientras `ANTHROPIC_BASE_URL` estaba configurado con tu gateway. Para los casos en los que un gateway exportado en el shell sí llega a una sesión en segundo plano, consulta [LLM gateway](/docs/es/agent-view#llm-gateway).

4995 

4996**Qué hacer:**

4997 

4998* **Usaste agent view en un proyecto cuya configuración define el gateway**: coloca `ANTHROPIC_BASE_URL` y su clave de API o token en [el bloque `env` de un archivo de configuración](/docs/es/llm-gateway-connect#set-in-a-settings-file). Usa `~/.claude/settings.json`, o `.claude/settings.local.json` en el propio proyecto de la sesión, ya que una sesión reiniciada con respawn lee ambos. Luego ejecuta `claude respawn <id>` en tu shell desde cualquier carpeta.

4999* **Exportaste el gateway en tu terminal**: en una terminal donde hayas exportado las variables del gateway, haz `cd` a la carpeta que nombra el mensaje y ejecuta el comando `claude respawn <id>` del mensaje. La sesión se reinicia a partir de su conversación guardada.

5000 * El gateway llega a la sesión solo cuando el propio [supervisor](/docs/es/agent-view#the-supervisor-process) se inició desde un shell que exportó el mismo gateway. Si no fue así, reinicia el supervisor desde esa terminal como describe [Dispatch fails with `Could not resolve authentication method`](/docs/es/agent-view#dispatch-fails-with-could-not-resolve-authentication-method) y luego ejecuta de nuevo el comando de respawn.

5001 

5002Antes de v2.1.302, una sesión en segundo plano en esta situación mostraba en su lugar un error de inicio de sesión como [`Not logged in · Please run /login`](#not-logged-in), sin nombrar la carpeta.

5003 

4819### Errores del lanzador CLAUDE\_CODE\_PROCESS\_WRAPPER5004### Errores del lanzador CLAUDE\_CODE\_PROCESS\_WRAPPER

4820 5005 

4821[`CLAUDE_CODE_PROCESS_WRAPPER`](/docs/es/corporate-launcher) está configurado y su valor no se puede usar, por lo que Claude Code se niega a iniciar el proceso afectado en lugar de ejecutarlo sin el lanzador. Los problemas de configuración se reportan con un mensaje que comienza con el nombre de la variable e indica la razón, por ejemplo:5006[`CLAUDE_CODE_PROCESS_WRAPPER`](/docs/es/corporate-launcher) está configurado y su valor no se puede usar, por lo que Claude Code se niega a iniciar el proceso afectado en lugar de ejecutarlo sin el lanzador. Los problemas de configuración se reportan con un mensaje que comienza con el nombre de la variable e indica la razón, por ejemplo:


5094 5279 

5095## Advertencias de configuración5280## Advertencias de configuración

5096 5281 

5097Claude Code escribe la mayoría de estos mensajes en stderr, no en la conversación, y escribe la mayoría de ellos al iniciar. Una entrada lo indica cuando su mensaje aparece en otro lugar, como en el registro de depuración o como un aviso de inicio en la vista de conversación, o en otro momento, como la [línea de diagnóstico de modelo no reconocido](#unrecognized-model-id-on-a-request) en el momento de la solicitud.5282Para encontrar una advertencia que Claude Code mostró al iniciar en una sesión interactiva, busca primero debajo del banner de inicio y luego en el registro de depuración:

5283 

5284* **Fila debajo del banner de inicio**: algunas advertencias sobre [reglas de permisos](/docs/es/permissions), como [`⚠ Deny rule Bsh matches no tool · check for typos`](#matches-no-tool)

5285* **Registro de depuración**: Claude Code conserva este registro solo en modo de depuración. Para leer las advertencias que contiene, inicia Claude Code desde tu shell con `claude --debug-file <path>` y luego abre el archivo en esa ruta.

5286 

5287En [modo no interactivo](/docs/es/headless) con salida de texto, fuera de una [sesión en segundo plano](/docs/es/agent-view), busca las advertencias de inicio en stderr.

5288 

5289Antes de v2.1.305, busca también en stderr en una sesión interactiva, incluidas las advertencias de reglas de permisos que ahora se muestran como filas debajo del banner.

5098 5290 

5099### Claude Code se cerró después de un error de interfaz irrecuperable5291### Claude Code se cerró después de un error de interfaz irrecuperable

5100 5292 


5214 5406 

5215### El directorio de trabajo es una ruta de red5407### El directorio de trabajo es una ruta de red

5216 5408 

5217Claude Code no agrega rutas de red como directorios de trabajo. Buscar una ruta de red puede contactar al host que nombra, y en Windows ese contacto puede enviar al host sus credenciales, por lo que Claude Code rechaza la ruta sin buscarla. Ve este mensaje cuando ejecuta `/add-dir` con tal ruta, o como una advertencia al iniciar. Cuando aparece al iniciar, Claude Code se inicia sin ese directorio.5409Claude Code no agrega rutas de red como directorios de trabajo. Buscar una ruta de red puede contactar al host que nombra, y en Windows ese contacto puede enviar al host tus credenciales. Por eso Claude Code rechaza la ruta sin buscarla.

5410 

5411Ves este mensaje cuando ejecutas `/add-dir` con una ruta de red:

5218 5412 

5219```text theme={null}5413```text theme={null}

5220\\server\share is a network path, which cannot be added as a working directory. On Windows, map the share to a drive letter and pass it at launch with --add-dir (a drive letter added mid-session does not yet carry remote-read trust).5414\\server\share is a network path, which cannot be added as a working directory. On Windows, map the share to a drive letter and pass it at launch with --add-dir (a drive letter added mid-session does not yet carry remote-read trust).

5221```5415```

5222 5416 

5417Cuando en cambio pasas una al iniciar, con `--add-dir` o en `permissions.additionalDirectories`, Claude Code se inicia sin ese directorio. En una sesión interactiva no ves el mensaje al iniciar, porque va al registro de depuración junto con las demás [advertencias de inicio](#configuration-warnings).

5418 

5223Las rutas que Claude Code rechaza de esta manera incluyen:5419Las rutas que Claude Code rechaza de esta manera incluyen:

5224 5420 

5225* Recursos compartidos UNC como `\\server\share`5421* Recursos compartidos UNC como `\\server\share`


5465 5661 

5466Antes de v2.1.260, Claude Code reportaba una regla con paréntesis sin emparejar como `Mismatched parentheses`.5662Antes de v2.1.260, Claude Code reportaba una regla con paréntesis sin emparejar como `Mismatched parentheses`.

5467 5663 

5468### No coincide con las verificaciones de permiso de archivo5664### Matches no tool · check for typos

5665 

5666Esta fila debajo del banner de inicio nombra una [regla de permisos](/docs/es/permissions) deny o ask cuyo nombre de herramienta Claude Code no reconoce, por lo que la regla no se aplica a la herramienta que querías. Una regla deny escrita como `Bsh` no se aplica a Bash, y tampoco una que usa la etiqueta que muestra una herramienta en la transcripción en lugar de su nombre canónico. La fila repite la regla tal como la escribiste:

5667 

5668```text theme={null}

5669⚠ Deny rule Bsh matches no tool · check for typos

5670```

5469 5671 

5470Claude Code encontró una regla de permiso `Write`, `NotebookEdit`, `MultiEdit` o `Glob` [permission rule](/docs/es/permissions#read-and-edit) con una ruta en uno de sus [archivos de configuración](/docs/es/settings#where-settings-live), en [configuración administrada](/docs/es/managed-settings), o en un valor de bandera `--allowedTools`, `--disallowedTools` o `--settings`. Verifica permisos de archivo solo contra reglas `Edit` y `Read`, por lo que nunca consulta una regla de ruta que nombre una de las otras herramientas de archivo. Mantiene la regla y no cambia nada más; la advertencia nombra la regla, su fuente entre paréntesis, y el reemplazo a escribir:5672En [modo no interactivo](/docs/es/headless) con salida de texto, Claude Code imprime en su lugar la advertencia en stderr en su forma más larga:

5471 5673 

5472```text theme={null}5674```text theme={null}

5473Permission deny rule (.claude/settings.json): Write(docs/**) is not matched by file permission checks — only Edit(path) rules are. Use Edit(docs/**) instead (Edit rules cover all file-editing tools).5675Permission deny rule "Bsh" matches no known tool — check for typos.

5474```5676```

5475 5677 

5476**Qué hacer:**5678**Qué hacer:**

5477 5679 

5680* Corrige el nombre de la herramienta en la regla, por ejemplo `Bash` en lugar de `Bsh`. Consulta los nombres canónicos en la [referencia de herramientas](/docs/es/tools-reference).

5681* Para encontrar dónde está definida la regla, ejecuta `/permissions` en la sesión y selecciona la regla. Sus detalles indican de dónde proviene, como `From project local settings`, o `From CLI argument` para un valor de `--disallowedTools`.

5682* Si los detalles dicen `From enterprise managed settings`, reenvía la fila a quien mantenga tu [configuración administrada](/docs/es/managed-settings), ya que no puedes cambiar esa regla tú mismo.

5683 

5684En una [sesión en segundo plano](/docs/es/agent-view) o con `--output-format json` o `stream-json`, Claude Code escribe la advertencia en el registro de depuración en lugar de en stderr. Ejecuta con `--debug` para capturarla en `~/.claude/debug/<session-id>.txt`.

5685 

5686Antes de v2.1.305, una sesión interactiva imprimía la forma más larga en stderr al iniciar en lugar de mostrar la fila.

5687 

5688### No coincide con las verificaciones de permiso de archivo

5689 

5690Claude Code encontró una [regla de permisos](/docs/es/permissions#read-and-edit) `Write`, `NotebookEdit`, `MultiEdit` o `Glob` con una ruta en uno de tus [archivos de configuración](/docs/es/settings#where-settings-live), en la [configuración administrada](/docs/es/managed-settings), o en el valor de un flag `--allowedTools`, `--disallowedTools` o `--settings`. Claude Code verifica los permisos de archivo solo contra reglas `Edit` y `Read`, por lo que nunca consulta una regla de ruta que nombre una de las otras herramientas de archivo. Mantiene la regla y no cambia nada más.

5691 

5692* **Sesión interactiva**: la advertencia completa va al [registro de depuración](#configuration-warnings), y una regla deny o ask con esta forma también se muestra como esta fila debajo del banner de inicio:

5693 

5694 ```text theme={null}

5695 ⚠ Deny rule Write(docs/**) never matches · use Edit(docs/**)

5696 ```

5697 

5698 Una regla allow con esta forma no genera ninguna fila. Para encontrar dónde está definida la regla, ejecuta `/permissions` en la sesión y selecciona la regla.

5699* **[Modo no interactivo](/docs/es/headless) con salida de texto**: la advertencia completa en stderr nombra la regla, su fuente entre paréntesis y el reemplazo que debes escribir:

5700 

5701 ```text theme={null}

5702 Permission deny rule (.claude/settings.json): Write(docs/**) is not matched by file permission checks — only Edit(path) rules are. Use Edit(docs/**) instead (Edit rules cover all file-editing tools).

5703 ```

5704* **[Sesión en segundo plano](/docs/es/agent-view), o `--output-format json` o `stream-json`**: la advertencia completa va al registro de depuración en lugar de a stderr, para que la salida que leen las máquinas se mantenga limpia. Ejecuta con `--debug` para capturarla en `~/.claude/debug/<session-id>.txt`.

5705 

5706**Qué hacer:**

5707 

5478* Reemplace las reglas `Write(path)`, `NotebookEdit(path)` y `MultiEdit(path)` heredadas con `Edit(path)`. Las reglas `Edit` cubren todas las herramientas de edición de archivos.5708* Reemplace las reglas `Write(path)`, `NotebookEdit(path)` y `MultiEdit(path)` heredadas con `Edit(path)`. Las reglas `Edit` cubren todas las herramientas de edición de archivos.

5479* Excepto en `--allowedTools`, donde Claude Code acepta una regla `Glob` sin advertencia, reemplace las reglas `Glob(path)` con `Read(path)`.5709* Excepto en `--allowedTools`, donde Claude Code acepta una regla `Glob` sin advertencia, reemplace las reglas `Glob(path)` con `Read(path)`.

5480* Corrija la regla en la fuente que nombra la advertencia entre paréntesis: una ruta de archivo de configuración, o la bandera misma para `--allowed-tools` y `--disallowed-tools`. Una ruta `claude-settings-<hash>.json` que no existe en el disco representa un valor `--settings` en línea. Corrija el JSON que pasa a esa bandera.5710* Corrige la regla en su fuente, que la advertencia completa nombra entre paréntesis: una ruta de archivo de configuración, o el propio flag en el caso de `--allowed-tools` y `--disallowed-tools`. Una ruta `claude-settings-<hash>.json` que no existe en el disco representa un valor `--settings` en línea. Corrige el JSON que pasas a ese flag.

5481* Deje las reglas de nombre de herramienta simple como `Write` o `Glob` solas. Claude Code las coincide en el [nivel de herramienta](/docs/es/permissions#match-all-uses-of-a-tool) y no advierte sobre ellas.5711* Deje las reglas de nombre de herramienta simple como `Write` o `Glob` solas. Claude Code las coincide en el [nivel de herramienta](/docs/es/permissions#match-all-uses-of-a-tool) y no advierte sobre ellas.

5482* Si la fuente dice `managed policy settings`, reenvíe la advertencia a quien mantenga su configuración administrada, ya que no puede borrarla usted mismo.5712* Para una regla de la configuración administrada, los paréntesis de la advertencia completa dicen `managed policy settings` y los detalles de la regla en `/permissions` dicen `From enterprise managed settings`. Reenvía esa advertencia a quien mantenga tu configuración administrada, ya que no puedes eliminarla tú mismo.

5483 5713 

5484En una [sesión en segundo plano](/docs/es/agent-view) o con `--output-format json` o `stream-json`, Claude Code escribe la advertencia en el registro de depuración en lugar de stderr, por lo que la salida leída por máquina se mantiene limpia. Ejecute con `--debug` para capturarla en `~/.claude/debug/<session-id>.txt`. Antes de v2.1.210, Claude Code aceptaba estas reglas sin una advertencia.5714Antes de v2.1.210, Claude Code aceptaba estas reglas sin ninguna advertencia. Antes de v2.1.305, una sesión interactiva imprimía la advertencia completa en stderr.

5485 5715 

5486### Tiene un comodín antes del resto del comando5716### Tiene un comodín antes del resto del comando

5487 5717 

5488Claude Code encontró una regla de permiso `Bash` allow cuyo `*` viene antes de una palabra posterior que determina cuál es el comando, como `Bash(git * main)` o `Bash(git -C * status *)`, en uno de sus [archivos de configuración](/docs/es/settings#where-settings-live), en [configuración administrada](/docs/es/managed-settings), o en un valor de bandera `--allowedTools` o `--settings`. El `*` coincide con cualquier texto, incluidas opciones insertadas en esa posición: `Bash(git * main)` también aprueba `git -c core.fsmonitor=<script> diff main`, donde `-c` hace que git ejecute un programa que nombra el comando. [Wildcard patterns](/docs/es/permissions#wildcard-patterns) muestra las reglas de coincidencia.5718Claude Code encontró una regla de permiso `Bash` allow cuyo `*` viene antes de una palabra posterior que determina cuál es el comando, como `Bash(git * main)` o `Bash(git -C * status *)`, en uno de sus [archivos de configuración](/docs/es/settings#where-settings-live), en [configuración administrada](/docs/es/managed-settings), o en un valor de bandera `--allowedTools` o `--settings`. El `*` coincide con cualquier texto, incluidas opciones insertadas en esa posición: `Bash(git * main)` también aprueba `git -c core.fsmonitor=<script> diff main`, donde `-c` hace que git ejecute un programa que nombra el comando. [Wildcard patterns](/docs/es/permissions#wildcard-patterns) muestra las reglas de coincidencia.

5489 5719 

5490La advertencia existe para que pueda estrechar una regla cuyo comodín es más amplio de lo que pretendía. Claude Code mantiene la regla y no cambia nada sobre cómo coincide; la advertencia nombra la regla y su fuente entre paréntesis:5720La advertencia existe para que puedas acotar una regla cuyo comodín es más amplio de lo que pretendías. Claude Code mantiene la regla y no cambia nada de cómo coincide. En [modo no interactivo](/docs/es/headless) con salida de texto, la advertencia en stderr nombra la regla y su fuente entre paréntesis:

5491 5721 

5492```text theme={null}5722```text theme={null}

5493Permission allow rule (.claude/settings.json): Bash(git -C * status *) has a wildcard before the rest of the command, so it also matches any options inserted at that position and approves them without a prompt. For git, options such as -c and --exec-path can run arbitrary commands. Replace that * with the exact value you mean, or only use * after the subcommand (for example Bash(git status *)).5723Permission allow rule (.claude/settings.json): Bash(git -C * status *) has a wildcard before the rest of the command, so it also matches any options inserted at that position and approves them without a prompt. For git, options such as -c and --exec-path can run arbitrary commands. Replace that * with the exact value you mean, or only use * after the subcommand (for example Bash(git status *)).

5494```5724```

5495 5725 

5726En una sesión interactiva, la advertencia completa va al [registro de depuración](#configuration-warnings) y la regla se muestra como esta fila debajo del banner de inicio:

5727 

5728```text theme={null}

5729⚠ Allow rule Bash(git -C * status *) allows any option at its * · use an exact value

5730```

5731 

5732Para encontrar dónde está definida la regla, ejecuta `/permissions` en la sesión y selecciona la regla.

5733 

5496**Qué hacer:**5734**Qué hacer:**

5497 5735 

5498* Reemplace el `*` antes del subcomando con el valor exacto que significa: `Bash(git checkout main)` en lugar de `Bash(git * main)`.5736* Reemplace el `*` antes del subcomando con el valor exacto que significa: `Bash(git checkout main)` en lugar de `Bash(git * main)`.

5499* Mueva cada `*` después del subcomando: `Bash(git status *)` en lugar de `Bash(git -C * status *)`. Escriba una regla por subcomando que desee permitir.5737* Mueva cada `*` después del subcomando: `Bash(git status *)` en lugar de `Bash(git -C * status *)`. Escriba una regla por subcomando que desee permitir.

5500* Corrija la regla en la fuente que nombra la advertencia entre paréntesis: una ruta de archivo de configuración, o la bandera `--allowed-tools` misma. Una ruta `claude-settings-<hash>.json` que no existe en el disco representa un valor `--settings` en línea. Corrija el JSON que pasa a esa bandera.5738* Corrige la regla en su fuente, que la advertencia completa nombra entre paréntesis: una ruta de archivo de configuración, o el propio flag `--allowed-tools`. Una ruta `claude-settings-<hash>.json` que no existe en el disco representa un valor `--settings` en línea. Corrige el JSON que pasas a ese flag.

5501* Si la fuente dice `managed policy settings`, reenvíe la advertencia a quien mantenga su configuración administrada, ya que no puede borrarla usted mismo.5739* Para una regla de la configuración administrada, los paréntesis de la advertencia completa dicen `managed policy settings` y los detalles de la regla en `/permissions` dicen `From enterprise managed settings`. Reenvía esa advertencia a quien mantenga tu configuración administrada, ya que no puedes eliminarla tú mismo.

5502 5740 

5503En una [sesión en segundo plano](/docs/es/agent-view) o con `--output-format json` o `stream-json`, Claude Code escribe la advertencia en el registro de depuración en lugar de stderr, por lo que la salida leída por máquina se mantiene limpia. Ejecute con `--debug` para capturarla en `~/.claude/debug/<session-id>.txt`. Antes de v2.1.246, Claude Code aceptaba estas reglas sin una advertencia.5741En una [sesión en segundo plano](/docs/es/agent-view) o con `--output-format json` o `stream-json`, Claude Code escribe la advertencia en el registro de depuración en lugar de stderr, por lo que la salida leída por máquina se mantiene limpia. Ejecute con `--debug` para capturarla en `~/.claude/debug/<session-id>.txt`. Antes de v2.1.246, Claude Code aceptaba estas reglas sin una advertencia.

5504 5742 

5743Antes de v2.1.305, una sesión interactiva imprimía la advertencia completa en stderr en lugar de mostrar una fila.

5744 

5505### Denying Bash also turns off the PowerShell tool5745### Denying Bash also turns off the PowerShell tool

5506 5746 

5507Eliminaste toda la herramienta Bash, por ejemplo con `--disallowedTools Bash` o con una [regla deny](/docs/es/permissions#match-all-uses-of-a-tool) `Bash` o `Bash(*)` sin más en uno de tus archivos de configuración. En Windows con Git Bash instalado, [denegar Bash también desactiva la herramienta PowerShell](/docs/es/tools-reference#bash-deny-rules-also-turn-off-the-powershell-tool), por lo que la sesión se inicia sin ninguna herramienta de shell. Claude Code imprime esta advertencia al iniciar:5747Eliminaste toda la herramienta Bash, por ejemplo con `--disallowedTools Bash` o con una [regla deny](/docs/es/permissions#match-all-uses-of-a-tool) `Bash` o `Bash(*)` sin más en uno de tus archivos de configuración. En Windows con Git Bash instalado, [denegar Bash también desactiva la herramienta PowerShell](/docs/es/tools-reference#bash-deny-rules-also-turn-off-the-powershell-tool), por lo que la sesión se inicia sin ninguna herramienta de shell.

5748 

5749En [modo no interactivo](/docs/es/headless) con salida de texto, Claude Code imprime esta advertencia en stderr al iniciar, y una sesión interactiva la escribe solo en el [registro de depuración](#configuration-warnings):

5508 5750 

5509```text theme={null}5751```text theme={null}

5510Denying Bash also turns off the PowerShell tool, so Claude has neither. To use PowerShell, set CLAUDE_CODE_USE_POWERSHELL_TOOL=1.5752Denying Bash also turns off the PowerShell tool, so Claude has neither. To use PowerShell, set CLAUDE_CODE_USE_POWERSHELL_TOOL=1.


5517 5759 

5518En una [sesión en segundo plano](/docs/es/agent-view) o con `--output-format json` o `stream-json`, Claude Code escribe la advertencia en el registro de depuración en lugar de stderr. Ejecuta con `--debug` para capturarla en `~/.claude/debug/<session-id>.txt`. Antes de v2.1.287, Claude Code desactivaba la herramienta PowerShell de la misma manera sin imprimir ninguna advertencia.5760En una [sesión en segundo plano](/docs/es/agent-view) o con `--output-format json` o `stream-json`, Claude Code escribe la advertencia en el registro de depuración en lugar de stderr. Ejecuta con `--debug` para capturarla en `~/.claude/debug/<session-id>.txt`. Antes de v2.1.287, Claude Code desactivaba la herramienta PowerShell de la misma manera sin imprimir ninguna advertencia.

5519 5761 

5762Antes de v2.1.305, una sesión interactiva también imprimía la advertencia en stderr al iniciar.

5763 

5520### crossSessionInbound debe ser uno de accept, hold, refuse5764### crossSessionInbound debe ser uno de accept, hold, refuse

5521 5765 

5522Un archivo de configuración establece [`crossSessionInbound`](/docs/es/settings-reference#crosssessioninbound) en un valor que Claude Code no reconoce, como el error tipográfico `"reject"`. La segunda oración de la advertencia depende de qué archivo contiene el valor; en un archivo de usuario, proyecto, local o `--settings` dice:5766Un archivo de configuración establece [`crossSessionInbound`](/docs/es/settings-reference#crosssessioninbound) en un valor que Claude Code no reconoce, como el error tipográfico `"reject"`. La segunda oración de la advertencia depende de qué archivo contiene el valor; en un archivo de usuario, proyecto, local o `--settings` dice:


5566* Si el mensaje nombra un ID de modelo que esta versión no reconoce, ejecute `claude update`. Una versión que reconoce el ID como un modelo de contexto 1M aplica el límite sin configuración adicional.5810* Si el mensaje nombra un ID de modelo que esta versión no reconoce, ejecute `claude update`. Una versión que reconoce el ID como un modelo de contexto 1M aplica el límite sin configuración adicional.

5567* Si desea que la sesión use la ventana completa del modelo en su lugar, desestablezca `CLAUDE_CODE_DISABLE_1M_CONTEXT`; la advertencia reporta solo que el límite de 200K no se aplica5811* Si desea que la sesión use la ventana completa del modelo en su lugar, desestablezca `CLAUDE_CODE_DISABLE_1M_CONTEXT`; la advertencia reporta solo que el límite de 200K no se aplica

5568 5812 

5569En una [sesión en segundo plano](/docs/es/agent-view) o con `--output-format json` o `stream-json`, Claude Code escribe la advertencia en el registro de depuración en lugar de stderr.5813En [modo no interactivo](/docs/es/headless) con salida de texto, esta advertencia aparece en stderr. En una sesión interactiva, una [sesión en segundo plano](/docs/es/agent-view), o con `--output-format json` o `stream-json`, va en su lugar al registro de depuración. Ejecuta con `--debug` para capturarla en `~/.claude/debug/<session-id>.txt`.

5814 

5815Antes de v2.1.305, una sesión interactiva imprimía la advertencia en stderr al iniciar.

5570 5816 

5571### ID de modelo no reconocido en una solicitud5817### ID de modelo no reconocido en una solicitud

5572 5818 


5678Si un error no aparece aquí o la corrección sugerida no ayuda:5924Si un error no aparece aquí o la corrección sugerida no ayuda:

5679 5925 

5680* Ejecute `/feedback` dentro de Claude Code para enviar la transcripción y una descripción a Anthropic. El comando también ofrece abrir un problema de GitHub rellenado previamente. El envío a Anthropic requiere [autenticación](/docs/es/authentication). En Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry y otros proveedores de terceros, o cuando no hay credenciales de Anthropic configuradas, `/feedback` guarda un archivo local que puede enviar a su representante de cuenta de Anthropic en su lugar.5926* Ejecute `/feedback` dentro de Claude Code para enviar la transcripción y una descripción a Anthropic. El comando también ofrece abrir un problema de GitHub rellenado previamente. El envío a Anthropic requiere [autenticación](/docs/es/authentication). En Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry y otros proveedores de terceros, o cuando no hay credenciales de Anthropic configuradas, `/feedback` guarda un archivo local que puede enviar a su representante de cuenta de Anthropic en su lugar.

5927* Si `/feedback` responde que está deshabilitado por la política de tu organización, consulta [la entrada de ese mensaje](#feedback-is-disabled-by-your-organizations-policy)

5681* Ejecute `claude doctor` desde su shell para un diagnóstico de solo lectura de su instalación, o ejecute la verificación `/doctor` dentro de Claude Code para encontrar y solucionar problemas de configuración5928* Ejecute `claude doctor` desde su shell para un diagnóstico de solo lectura de su instalación, o ejecute la verificación `/doctor` dentro de Claude Code para encontrar y solucionar problemas de configuración

5682* Consulte [status.claude.com](https://status.claude.com) para incidentes activos5929* Consulte [status.claude.com](https://status.claude.com) para incidentes activos

5683* Busque [problemas existentes](https://github.com/anthropics/claude-code/issues) en GitHub5930* Busque [problemas existentes](https://github.com/anthropics/claude-code/issues) en GitHub

Details

34 34 

35Estos tienen diferencias específicas del proveedor:35Estos tienen diferencias específicas del proveedor:

36 36 

37* **Servidores MCP**: los [conectores de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai) se cargan solo cuando tu suscripción a claude.ai es el método de autenticación activo. La [búsqueda de herramientas](/docs/es/mcp#configure-tool-search) está desactivada de forma predeterminada cuando `ANTHROPIC_BASE_URL` apunta a un host que no es de primera parte, y no es compatible con modelos de Google Cloud's Agent Platform anteriores a Claude Opus 4.5, Claude Sonnet 4.5 y Claude Haiku 4.5 ni con [despliegues de Microsoft Foundry hospedados en Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)37* **Servidores MCP**: los [conectores de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai) se cargan solo cuando tu suscripción a claude.ai es el método de autenticación activo. La [búsqueda de herramientas](/docs/es/mcp#configure-tool-search) no es compatible con [despliegues de Microsoft Foundry hospedados en Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options). En Google Cloud's Agent Platform, la búsqueda de herramientas no es compatible con modelos anteriores a Claude Opus 4.5, Claude Sonnet 4.5 y Claude Haiku 4.5

38* **Subagentes**: cuando la conversación principal ejecuta Fable, el [subagente Explore integrado](/docs/es/sub-agents#built-in-subagents) se ejecuta en Opus con una suscripción a Claude, una cuenta de la Consola de Anthropic o un [gateway de LLM](/docs/es/llm-gateway) al que se accede mediante `ANTHROPIC_BASE_URL`. En otros proveedores, incluido Claude Platform en AWS, se ejecuta en Fable38* **Subagentes**: cuando la conversación principal ejecuta Fable, el [subagente Explore integrado](/docs/es/sub-agents#built-in-subagents) se ejecuta en Opus con una suscripción a Claude, una cuenta de la Consola de Anthropic o un [gateway de LLM](/docs/es/llm-gateway) al que se accede mediante `ANTHROPIC_BASE_URL`. En otros proveedores, incluido Claude Platform en AWS, se ejecuta en Fable

39* **[Comandos](/docs/es/commands#all-commands)**:39* **[Comandos](/docs/es/commands#all-commands)**:

40 * `/design-sync` e `/import` con su forma de subcomando `claude import` no están disponibles en Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry y Claude Platform en AWS, y a través de una [puerta de enlace de aplicaciones de Claude](/docs/es/claude-apps-gateway#availability-and-limitations)40 * `/design-sync` e `/import` con su forma de subcomando `claude import` no están disponibles en Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry y Claude Platform en AWS, y a través de una [puerta de enlace de aplicaciones de Claude](/docs/es/claude-apps-gateway#availability-and-limitations)


57* [Artifacts](/docs/es/artifacts): planes Pro, Max, Team y Enterprise57* [Artifacts](/docs/es/artifacts): planes Pro, Max, Team y Enterprise

58* [Voice dictation](/docs/es/voice-dictation)58* [Voice dictation](/docs/es/voice-dictation)

59 59 

60Desktop es la excepción parcial: el [enrutamiento de puerta de enlace se puede configurar en la aplicación o por un administrador](/docs/es/llm-gateway-connect#desktop-app), las implementaciones empresariales pueden enrutar Desktop a Google Cloud's Agent Platform o a un proveedor de puerta de enlace a través de [configuración administrada](https://claude.com/docs/third-party/claude-desktop/configuration), y [Claude Desktop en 3P](https://claude.com/docs/third-party/claude-desktop/overview) ejecuta la pestaña de Code en Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry o una puerta de enlace LLM autohospedada. Para la disponibilidad por plan de estas características, consulte [Disponibilidad por plan de suscripción](#availability-by-subscription-plan).60Desktop es la excepción parcial: el [enrutamiento a través de un gateway se puede configurar en la aplicación o lo puede configurar un administrador](/docs/es/llm-gateway-connect#desktop-app). [Claude Desktop en 3P](https://claude.com/docs/third-party/claude-desktop/overview) también ejecuta la pestaña Code en Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry o un gateway de LLM autohospedado. Además, ejecuta la pestaña Code en la [Claude API](https://claude.com/docs/third-party/claude-desktop/claude-api) con una clave de API de la Consola de Anthropic. Para la disponibilidad por plan de estas características, consulta [Disponibilidad por plan de suscripción](#availability-by-subscription-plan).

61 61 

62### Capacidades de CLI que varían por proveedor62### Capacidades de CLI que varían por proveedor

63 63 


287 287 

288Todo en [Capacidades de CLI que varían por proveedor](#cli-capabilities-that-vary-by-provider) está disponible, excepto que el [modo rápido](/docs/es/fast-mode) requiere [acceso aprovisionado](/docs/es/fast-mode#enable-fast-mode-for-your-organization). La [configuración administrada por servidor](/docs/es/server-managed-settings) que configuras en una organización Team o Enterprise de claude.ai no llega a una sesión que se autentica con una clave de API de la Consola. Consulta [Disponibilidad por plataforma](/docs/es/server-managed-settings#platform-availability) para saber cómo cubrir esas sesiones.288Todo en [Capacidades de CLI que varían por proveedor](#cli-capabilities-that-vary-by-provider) está disponible, excepto que el [modo rápido](/docs/es/fast-mode) requiere [acceso aprovisionado](/docs/es/fast-mode#enable-fast-mode-for-your-organization). La [configuración administrada por servidor](/docs/es/server-managed-settings) que configuras en una organización Team o Enterprise de claude.ai no llega a una sesión que se autentica con una clave de API de la Consola. Consulta [Disponibilidad por plataforma](/docs/es/server-managed-settings#platform-availability) para saber cómo cubrir esas sesiones.

289 289 

290**Soporte parcial:**

291 

292* [Desktop](/docs/es/desktop): a través de [Claude Desktop en 3P con la Claude API](https://claude.com/docs/third-party/claude-desktop/claude-api)

293 

290## Disponibilidad por plan de suscripción294## Disponibilidad por plan de suscripción

291 295 

292Si se autentica a través de Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry o una clave API de la Consola de Anthropic, esta sección no se aplica a usted. Cuando inicia sesión con una cuenta de claude.ai, su plan determina cuál de las características a continuación está disponible.296Si se autentica a través de Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry o una clave API de la Consola de Anthropic, esta sección no se aplica a usted. Cuando inicia sesión con una cuenta de claude.ai, su plan determina cuál de las características a continuación está disponible.

Details

148* **Subagents** son trabajadores que Claude genera, cada uno devolviendo un resumen a la conversación que lo generó148* **Subagents** son trabajadores que Claude genera, cada uno devolviendo un resumen a la conversación que lo generó

149* **[Dynamic workflows](/docs/es/workflows)** son scripts que Claude escribe que ejecutan muchos subagents en segundo plano y devuelven un resultado149* **[Dynamic workflows](/docs/es/workflows)** son scripts que Claude escribe que ejecutan muchos subagents en segundo plano y devuelven un resultado

150 150 

151**Use un subagent** cuando necesite un trabajador rápido y enfocado: investigar una pregunta, verificar una afirmación, revisar un archivo. El subagent hace el trabajo y devuelve un resumen, por lo que su conversación principal se mantiene limpia. Los subagents que Claude nombró cuando los generó también pueden [enviarse mensajes entre sí](/docs/es/sub-agents#what-loads-at-startup).151**Usa un subagente** cuando necesites un trabajador rápido y enfocado: investigar una pregunta, verificar una afirmación, revisar un archivo. El subagente hace el trabajo y devuelve un resumen, por lo que tu conversación principal se mantiene limpia. Los subagentes a los que Claude [puso nombre](/docs/es/sub-agents#subagent-names) al generarlos también pueden [enviarse mensajes entre sí](/docs/es/sub-agents#what-loads-at-startup).

152 152 

153**Use un dynamic workflow** cuando un trabajo [crece más allá de un puñado de subagents](/docs/es/workflows#when-to-use-a-workflow), o cuando desea que los hallazgos se verifiquen cruzadamente antes de verlos, como una auditoría de base de código completa, una migración grande o un plan elaborado desde varios ángulos. Para iniciar uno, [pida un flujo de trabajo en su prompt](/docs/es/workflows#ask-for-a-workflow-in-your-prompt).153**Use un dynamic workflow** cuando un trabajo [crece más allá de un puñado de subagents](/docs/es/workflows#when-to-use-a-workflow), o cuando desea que los hallazgos se verifiquen cruzadamente antes de verlos, como una auditoría de base de código completa, una migración grande o un plan elaborado desde varios ángulos. Para iniciar uno, [pida un flujo de trabajo en su prompt](/docs/es/workflows#ask-for-a-workflow-in-your-prompt).

154 154 

fullscreen.md +1 −0

Details

32* Su [modo de permisos](/docs/es/permission-modes) y [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level)32* Su [modo de permisos](/docs/es/permission-modes) y [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level)

33* El modelo que seleccionó por última vez con [`/model`](/docs/es/model-config#setting-your-model)33* El modelo que seleccionó por última vez con [`/model`](/docs/es/model-config#setting-your-model)

34* Reglas que pasó con [`--allowed-tools` o `--disallowed-tools`](/docs/es/cli-reference#cli-flags), y sus banderas `--agent`, `--agents`, `--append-system-prompt`, y `--system-prompt-snapshot`34* Reglas que pasó con [`--allowed-tools` o `--disallowed-tools`](/docs/es/cli-reference#cli-flags), y sus banderas `--agent`, `--agents`, `--append-system-prompt`, y `--system-prompt-snapshot`

35* Una bandera `--chrome` o `--no-chrome` con la que hayas iniciado, para que la [integración con Chrome](/docs/es/chrome) permanezca activada o desactivada según lo elegiste para esta sesión

35 36 

36Claude Code rechaza reiniciarse si la sesión tiene una restricción que no puede pasar al proceso reiniciado. Las restricciones que no puede pasar incluyen:37Claude Code rechaza reiniciarse si la sesión tiene una restricción que no puede pasar al proceso reiniciado. Las restricciones que no puede pasar incluyen:

37 38 

hipaa-setup.md +1 −0

Details

93| :- | :- |93| :- | :- |

94| `api.anthropic.com` | Solicitudes a la API de Claude, telemetría y la política de la organización que le indica a Claude Code que la configuración de HIPAA está activada |94| `api.anthropic.com` | Solicitudes a la API de Claude, telemetría y la política de la organización que le indica a Claude Code que la configuración de HIPAA está activada |

95| `claude.ai`, `claude.com`, `platform.claude.com` | Inicio de sesión y actualización de tokens |95| `claude.ai`, `claude.com`, `platform.claude.com` | Inicio de sesión y actualización de tokens |

96| `sso.claude.com` | Inicio de sesión, cuando tu organización usa el inicio de sesión único |

96| `downloads.claude.ai` | El instalador nativo y sus actualizaciones |97| `downloads.claude.ai` | El instalador nativo y sus actualizaciones |

97| `mcp-proxy.anthropic.com` | [Conectores de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai) |98| `mcp-proxy.anthropic.com` | [Conectores de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai) |

98 99 

hooks.md +12 −6

Details

294| `SessionStart` | cómo comenzó la sesión | `startup`, `resume`, `clear`, `compact`, `fork` |294| `SessionStart` | cómo comenzó la sesión | `startup`, `resume`, `clear`, `compact`, `fork` |

295| `Setup` | qué bandera CLI activó la configuración | `init`, `maintenance` |295| `Setup` | qué bandera CLI activó la configuración | `init`, `maintenance` |

296| `SessionEnd` | por qué terminó la sesión | `clear`, `resume`, `logout`, `prompt_input_exit`, `other` |296| `SessionEnd` | por qué terminó la sesión | `clear`, `resume`, `logout`, `prompt_input_exit`, `other` |

297| `Notification` | tipo de notificación | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_url_dialog`, `elicitation_complete`, `elicitation_response`, `agent_needs_input`, `agent_completed`, `quota_auto_resume_fired`, `quota_auto_resume_stale`, `quota_auto_resume_disabled` |297| `Notification` | tipo de notificación | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_url_dialog`, `elicitation_complete`, `elicitation_response`, `agent_needs_input`, `agent_completed`, `quota_auto_resume_fired`, `quota_auto_resume_stale`, `quota_auto_resume_disabled`, `plugin_notification` |

298| `SubagentStart` | tipo de agente | `general-purpose`, `Explore`, `Plan`, nombres de agentes personalizados, o nombres con alcance de plugin como `^my-plugin:reviewer$` |298| `SubagentStart` | tipo de agente | `general-purpose`, `Explore`, `Plan`, nombres de agentes personalizados, o nombres con alcance de plugin como `^my-plugin:reviewer$` |

299| `PreCompact`, `PostCompact` | qué activó la compactación | `manual`, `auto` |299| `PreCompact`, `PostCompact` | qué activó la compactación | `manual`, `auto` |

300| `PreModelSwitch`, `PostModelSwitch` | nombre canónico del modelo al que cambia la sesión, como se describe en [PreModelSwitch](#premodelswitch) | `claude-opus-5`, `claude-opus-4-6\|claude-opus-5`, `.*opus.*` |300| `PreModelSwitch`, `PostModelSwitch` | nombre canónico del modelo al que cambia la sesión, como se describe en [PreModelSwitch](#premodelswitch) | `claude-opus-5`, `claude-opus-4-6\|claude-opus-5`, `.*opus.*` |


1923 1923 

1924| Campo | Descripción |1924| Campo | Descripción |

1925| :- | :- |1925| :- | :- |

1926| `permissionDecision` | `"allow"` omite la solicitud de permiso, excepto para las [acciones que ningún modo aprueba automáticamente](/docs/es/permission-modes#actions-no-mode-auto-approves) y las [lecturas desde rutas de red](/docs/es/permissions#network-paths). `AskUserQuestion` y `ExitPlanMode` necesitan [`updatedInput` junto con `"allow"`](#allow-with-updatedinput). Para el modo plan, consulta [Aprobaciones de hooks en modo plan](/docs/es/permissions#hook-approvals-in-plan-mode). `"deny"` impide la llamada a herramienta. `"ask"` pide al usuario que confirme. `"defer"` sale de forma ordenada para que la herramienta pueda reanudarse más tarde. Las [reglas de denegación y de pregunta](/docs/es/permissions#manage-permissions) se siguen evaluando independientemente de lo que devuelva el hook |1926| `permissionDecision` | `"allow"` omite la solicitud de permiso, excepto en las [acciones que ningún modo aprueba automáticamente](/docs/es/permission-modes#actions-no-mode-auto-approves) y en las [lecturas desde rutas de red](/docs/es/permissions#network-paths). `AskUserQuestion` y `ExitPlanMode` necesitan [`updatedInput` junto con `"allow"`](#allow-with-updatedinput). Para el modo plan, consulta [Aprobaciones de hooks en modo plan](/docs/es/permissions#hook-approvals-in-plan-mode). `"deny"` impide la llamada a herramienta. `"ask"` le pide al usuario que confirme. `"defer"` termina el turno para que la herramienta pueda reanudarse más tarde, y requiere el [modo no interactivo](#defer-a-tool-call-for-later) con el flag `-p`. Las [reglas de denegación y de preguntar](/docs/es/permissions#manage-permissions) se siguen evaluando independientemente de lo que devuelva el hook |

1927| `permissionDecisionReason` | Para `"ask"`, se muestra al usuario en la solicitud de permiso. Cuando Claude Code [deniega la llamada](/docs/es/headless#turn-off-permission-prompts-in-unattended-runs) en una ejecución `-p` en la que nadie puede responder esa solicitud, Claude lee el motivo en el resultado de la herramienta. Para `"deny"`, se muestra a Claude. Para `"allow"` y `"defer"`, solo se escribe en el [registro de depuración](#debug-hooks) |1927| `permissionDecisionReason` | Para `"ask"`, se muestra al usuario en la solicitud de permiso. Cuando Claude Code [deniega la llamada](/docs/es/headless#turn-off-permission-prompts-in-unattended-runs) en una ejecución `-p` en la que nadie puede responder esa solicitud, Claude lee el motivo en el resultado de la herramienta. Para `"deny"`, se muestra a Claude. Para `"allow"` y `"defer"`, solo se escribe en el [registro de depuración](#debug-hooks) |

1928| `updatedInput` | Modifica los parámetros de entrada de la herramienta antes de la ejecución. Reemplaza el objeto de entrada completo, así que incluye los campos sin cambios junto con los modificados. Claude Code evalúa las reglas de permisos y la [elegibilidad para pasar automáticamente a segundo plano](/docs/es/tools-reference#foreground-commands-that-move-to-the-background) de un comando de Bash con la entrada que devuelve tu hook, no con la entrada que envió Claude. Combínalo con `"allow"` para aprobar automáticamente o con `"ask"` para mostrar la entrada modificada al usuario. Para `"defer"`, se ignora |1928| `updatedInput` | Modifica los parámetros de entrada de la herramienta antes de la ejecución. Reemplaza el objeto de entrada completo, así que incluye los campos sin cambios junto con los modificados. Claude Code evalúa las reglas de permisos y la [elegibilidad para pasar automáticamente a segundo plano](/docs/es/tools-reference#foreground-commands-that-move-to-the-background) de un comando de Bash con la entrada que devuelve tu hook, no con la entrada que envió Claude. Combínalo con `"allow"` para aprobar automáticamente o con `"ask"` para mostrar la entrada modificada al usuario. Para `"defer"`, se ignora |

1929| `additionalContext` | Cadena que se agrega al contexto de Claude junto con el resultado de la herramienta. Se ignora cuando `permissionDecision` es `"defer"`. Consulta [Agregar contexto para Claude](#add-context-for-claude) |1929| `additionalContext` | Cadena que se agrega al contexto de Claude junto con el resultado de la herramienta. Se ignora cuando `permissionDecision` es `"defer"`. Consulta [Agregar contexto para Claude](#add-context-for-claude) |


1997La herramienta `AskUserQuestion` es el caso típico: Claude quiere preguntarle algo al usuario, pero no hay una terminal donde responder. Una ejecución `-p` ofrece `AskUserQuestion` solo cuando tiene un [host de permisos](/docs/es/headless#turn-off-permission-prompts-in-unattended-runs), como una herramienta MCP que pasas con `--permission-prompt-tool`, así que inicia la ejecución con uno. El recorrido completo funciona así:1997La herramienta `AskUserQuestion` es el caso típico: Claude quiere preguntarle algo al usuario, pero no hay una terminal donde responder. Una ejecución `-p` ofrece `AskUserQuestion` solo cuando tiene un [host de permisos](/docs/es/headless#turn-off-permission-prompts-in-unattended-runs), como una herramienta MCP que pasas con `--permission-prompt-tool`, así que inicia la ejecución con uno. El recorrido completo funciona así:

1998 1998 

19991. Claude llama a `AskUserQuestion`. Se dispara el hook `PreToolUse`.19991. Claude llama a `AskUserQuestion`. Se dispara el hook `PreToolUse`.

20002. El hook devuelve `permissionDecision: "defer"`. La herramienta no se ejecuta. El proceso sale con `stop_reason: "tool_deferred"` y la llamada a herramienta pendiente se conserva en la transcripción.20002. El hook devuelve `permissionDecision: "defer"`. La herramienta no se ejecuta. El turno termina con un resultado que lleva `stop_reason: "tool_deferred"`, y la llamada a herramienta pendiente queda en la transcripción.

20013. El proceso llamador lee `deferred_tool_use` del resultado del SDK, muestra la pregunta en su propia interfaz y espera una respuesta.20013. El proceso llamador lee `deferred_tool_use` del resultado del SDK, muestra la pregunta en su propia interfaz y espera una respuesta.

20024. El proceso llamador ejecuta `claude -p --resume <session-id>` con el mismo host de permisos. La misma llamada a herramienta vuelve a disparar `PreToolUse`.20024. El proceso llamador ejecuta `claude -p --resume <session-id>` con el mismo host de permisos. La misma llamada a herramienta vuelve a disparar `PreToolUse`.

20035. El hook devuelve `permissionDecision: "allow"` con la respuesta en `updatedInput`. La herramienta se ejecuta y Claude continúa.20035. El hook devuelve `permissionDecision: "allow"` con la respuesta en `updatedInput`. La herramienta se ejecuta y Claude continúa.


2018}2018}

2019```2019```

2020 2020 

2021No hay tiempo de espera ni límite de reintentos. La sesión permanece en el disco hasta que la reanudes, sujeta a la limpieza de retención de [`cleanupPeriodDays`](/docs/es/settings-reference#cleanupperioddays), que elimina los archivos de sesión después de 30 días de forma predeterminada, según las [reglas de limpieza de retención](/docs/es/claude-directory#cleaned-up-automatically). Si la respuesta no está lista cuando reanudas, el hook puede devolver `"defer"` de nuevo y el proceso sale de la misma manera. El proceso llamador controla cuándo romper el ciclo devolviendo finalmente `"allow"` o `"deny"` desde el hook.2021No hay tiempo de espera ni límite de reintentos. La sesión permanece en disco hasta que la reanudas, sujeta a la limpieza de retención de [`cleanupPeriodDays`](/docs/es/settings-reference#cleanupperioddays), que elimina los archivos de sesión después de 30 días de forma predeterminada, según las [reglas de limpieza de retención](/docs/es/claude-directory#cleaned-up-automatically).

2022 2022 

2023`"defer"` solo funciona cuando Claude hace una única llamada a herramienta en el turno. Si Claude hace varias llamadas a herramientas a la vez, `"defer"` se ignora con una advertencia y la herramienta continúa por el flujo de permisos normal. Esta restricción existe porque la reanudación solo puede volver a ejecutar una herramienta: no hay forma de diferir una llamada de un lote sin dejar las demás sin resolver.2023Si la herramienta diferida ya no está disponible cuando reanudas, el primer resultado de la reanudación tiene `stop_reason: "tool_deferred_unavailable"` e `is_error: true`, y el hook no se dispara. Esto ocurre cuando un servidor MCP que proporcionaba la herramienta no está conectado en la sesión reanudada. El payload `deferred_tool_use` se sigue incluyendo para que puedas identificar qué herramienta falta.

2024 

2025* **Si no enviaste ningún prompt, ni con la reanudación ni después**, la llamada sigue pendiente. Reanuda de nuevo con la herramienta disponible y se ejecutará primero.

2026* **Si enviaste un prompt, con la reanudación o después**, Claude Code lo responde sin el resultado de la herramienta y descarta la llamada diferida. Envía un nuevo prompt cuando la herramienta esté disponible si aún necesitas que se llame.

2024 2027 

2025Si la herramienta diferida ya no está disponible cuando reanudas, el proceso sale con `stop_reason: "tool_deferred_unavailable"` e `is_error: true` antes de que se dispare el hook. Esto ocurre cuando un servidor MCP que proporcionaba la herramienta no está conectado en la sesión reanudada. El payload `deferred_tool_use` se sigue incluyendo para que puedas identificar qué herramienta falta.2028Si la respuesta que esperas no está lista cuando reanudas sin un prompt, el hook puede volver a devolver `"defer"`. Si enviaste un prompt y el hook vuelve a diferir, Claude Code trata el prompt de la misma manera: lo responde sin el resultado de la herramienta y descarta la llamada. Reanuda sin un prompt hasta que el hook devuelva `"allow"` o `"deny"`, que es como el proceso que hace la llamada rompe el bucle.

2029 

2030`"defer"` solo funciona cuando Claude hace una única llamada a herramienta en el turno. Si Claude hace varias llamadas a herramientas a la vez, `"defer"` se ignora con una advertencia y la herramienta continúa por el flujo de permisos normal. Esta restricción existe porque la reanudación solo puede volver a ejecutar una herramienta: no hay forma de diferir una llamada de un lote sin dejar las demás sin resolver.

2026 2031 

2027> [!NOTE]2032> [!NOTE]

2028>2033>


2424| `quota_auto_resume_fired` | Claude Code continúa tu tarea después de que un límite de uso de claude.ai la pausara: en el momento del restablecimiento, o antes cuando algo que haces en Claude Code durante la espera, como agregar créditos de uso, mejorar tu plan o cambiar de modelo, vuelve a hacer disponible el uso, con la [excepción del ajuste de modelo](/docs/es/interactive-mode#wait-for-a-usage-limit-to-reset) |2429| `quota_auto_resume_fired` | Claude Code continúa tu tarea después de que un límite de uso de claude.ai la pausara: en el momento del restablecimiento, o antes cuando algo que haces en Claude Code durante la espera, como agregar créditos de uso, mejorar tu plan o cambiar de modelo, vuelve a hacer disponible el uso, con la [excepción del ajuste de modelo](/docs/es/interactive-mode#wait-for-a-usage-limit-to-reset) |

2425| `quota_auto_resume_stale` | Un límite de uso de claude.ai se restableció mientras tu computadora estuvo suspendida durante más de unos 30 minutos. Claude Code espera a que presiones `Enter` en lugar de continuar. Tras una suspensión más corta, continúa y dispara `quota_auto_resume_fired` en su lugar |2430| `quota_auto_resume_stale` | Un límite de uso de claude.ai se restableció mientras tu computadora estuvo suspendida durante más de unos 30 minutos. Claude Code espera a que presiones `Enter` en lugar de continuar. Tras una suspensión más corta, continúa y dispara `quota_auto_resume_fired` en su lugar |

2426| `quota_auto_resume_disabled` | Claude Code termina su espera por un límite de uso de claude.ai sin continuar tu tarea: [`autoContinueAtUsageLimit`](/docs/es/settings-reference#autocontinueatusagelimit) se desactivó o el restablecimiento se movió a más de 24 horas durante una espera que Claude Code inició por su cuenta, la tarea continuada siguió alcanzando el límite, o la continuación se bloqueó antes de llegar al modelo. No se dispara cuando presionas `Esc` o `Ctrl+C`, o eliges **Don't continue automatically** |2431| `quota_auto_resume_disabled` | Claude Code termina su espera por un límite de uso de claude.ai sin continuar tu tarea: [`autoContinueAtUsageLimit`](/docs/es/settings-reference#autocontinueatusagelimit) se desactivó o el restablecimiento se movió a más de 24 horas durante una espera que Claude Code inició por su cuenta, la tarea continuada siguió alcanzando el límite, o la continuación se bloqueó antes de llegar al modelo. No se dispara cuando presionas `Esc` o `Ctrl+C`, o eliges **Don't continue automatically** |

2432| `plugin_notification` | Un [mod](/docs/es/plugins/mods/api#show-something-without-starting-a-turn) genera una notificación con `$.ui.notify`. El `title` del hook es el nombre del mod, a menos que el mod haya establecido uno |

2427 2433 

2428Los tipos `quota_auto_resume_fired`, `quota_auto_resume_stale` y `quota_auto_resume_disabled` requieren Claude Code v2.1.234 o posterior.2434Los tipos `quota_auto_resume_fired`, `quota_auto_resume_stale` y `quota_auto_resume_disabled` requieren Claude Code v2.1.234 o posterior.

2429 2435 

hooks-guide.md +3 −2

Details

193| `quota_auto_resume_fired` | Claude Code continúa tu tarea después de que un límite de uso de claude.ai la pausó: en el reinicio, o antes cuando algo que haces en Claude Code durante la espera, como añadir créditos de uso, actualizar tu plan o cambiar modelos, hace que el uso esté disponible de nuevo, con la [excepción de configuración de modelo](/docs/es/interactive-mode#wait-for-a-usage-limit-to-reset) |193| `quota_auto_resume_fired` | Claude Code continúa tu tarea después de que un límite de uso de claude.ai la pausó: en el reinicio, o antes cuando algo que haces en Claude Code durante la espera, como añadir créditos de uso, actualizar tu plan o cambiar modelos, hace que el uso esté disponible de nuevo, con la [excepción de configuración de modelo](/docs/es/interactive-mode#wait-for-a-usage-limit-to-reset) |

194| `quota_auto_resume_stale` | Un límite de uso de claude.ai se reinició mientras tu computadora dormía durante más de aproximadamente 30 minutos. Claude Code espera a que presiones `Enter` en lugar de continuar. Después de un sueño más corto continúa y activa `quota_auto_resume_fired` en su lugar |194| `quota_auto_resume_stale` | Un límite de uso de claude.ai se reinició mientras tu computadora dormía durante más de aproximadamente 30 minutos. Claude Code espera a que presiones `Enter` en lugar de continuar. Después de un sueño más corto continúa y activa `quota_auto_resume_fired` en su lugar |

195| `quota_auto_resume_disabled` | Claude Code termina su espera por un límite de uso de claude.ai sin continuar tu tarea: [`autoContinueAtUsageLimit`](/docs/es/settings-reference#autocontinueatusagelimit) se desactivó o el reinicio se movió más de 24 horas durante una espera que Claude Code inició por sí solo, la tarea continuada siguió golpeando el límite, o la continuación fue bloqueada antes de llegar al modelo. No se activa cuando presionas `Esc` o `Ctrl+C`, o seleccionas **No continuar automáticamente** |195| `quota_auto_resume_disabled` | Claude Code termina su espera por un límite de uso de claude.ai sin continuar tu tarea: [`autoContinueAtUsageLimit`](/docs/es/settings-reference#autocontinueatusagelimit) se desactivó o el reinicio se movió más de 24 horas durante una espera que Claude Code inició por sí solo, la tarea continuada siguió golpeando el límite, o la continuación fue bloqueada antes de llegar al modelo. No se activa cuando presionas `Esc` o `Ctrl+C`, o seleccionas **No continuar automáticamente** |

196| `plugin_notification` | Un [mod](/docs/es/plugins/mods/api#show-something-without-starting-a-turn) genera una notificación con `$.ui.notify`. El `title` del hook es el nombre del mod, a menos que el mod haya establecido uno |

196 197 

197Claude Code cronometra `permission_prompt` de manera diferente en una terminal y en Claude Desktop, la extensión de VS Code y otros hosts que responden solicitudes de permiso a través del Agent SDK. Consulta [cuándo se activa cada tipo de notificación](/docs/es/hooks#notification) para ambos tiempos.198Claude Code cronometra `permission_prompt` de manera diferente en una terminal y en Claude Desktop, la extensión de VS Code y otros hosts que responden solicitudes de permiso a través del Agent SDK. Consulta [cuándo se activa cada tipo de notificación](/docs/es/hooks#notification) para ambos tiempos.

198 199 


632 633 

633 Para saber qué hace `"allow"` en modo plan, consulta [Aprobaciones de hooks en modo plan](/docs/es/permissions#hook-approvals-in-plan-mode).634 Para saber qué hace `"allow"` en modo plan, consulta [Aprobaciones de hooks en modo plan](/docs/es/permissions#hook-approvals-in-plan-mode).

634 635 

635Un cuarto valor, `"defer"`, está disponible en [modo no interactivo](/docs/es/headless) con la bandera `-p`. Sale del proceso con la llamada a herramienta preservada para que un envoltorio del SDK del Agente pueda recopilar entrada y reanudar. Consulta [Defer a tool call for later](/docs/es/hooks#defer-a-tool-call-for-later) en la referencia.636Un cuarto valor, `"defer"`, está disponible en [modo no interactivo](/docs/es/headless) con el flag `-p`. Devolverlo termina el turno con la llamada a herramienta preservada, para que un envoltorio del Agent SDK pueda recopilar entrada y reanudar. Consulta [Defer a tool call for later](/docs/es/hooks#defer-a-tool-call-for-later) en la referencia.

636 637 

637Un hook `PreModelSwitch` devuelve el mismo campo `permissionDecision`: `"allow"` permite que un cambio de modelo proceda, y `"deny"` lo cancela. `"ask"` te hace confirmar el cambio cuando ejecutas `/model` en una sesión interactiva; en cualquier otro lugar, Claude Code trata `"ask"` como un rechazo. Consulta [PreModelSwitch decision control](/docs/es/hooks#premodelswitch-decision-control).638Un hook `PreModelSwitch` devuelve el mismo campo `permissionDecision`: `"allow"` permite que un cambio de modelo proceda, y `"deny"` lo cancela. `"ask"` te hace confirmar el cambio cuando ejecutas `/model` en una sesión interactiva; en cualquier otro lugar, Claude Code trata `"ask"` como un rechazo. Consulta [PreModelSwitch decision control](/docs/es/hooks#premodelswitch-decision-control).

638 639 


686| `SessionStart` | cómo comenzó la sesión | `startup`, `resume`, `clear`, `compact`, `fork` |687| `SessionStart` | cómo comenzó la sesión | `startup`, `resume`, `clear`, `compact`, `fork` |

687| `Setup` | qué bandera CLI activó la configuración | `init`, `maintenance` |688| `Setup` | qué bandera CLI activó la configuración | `init`, `maintenance` |

688| `SessionEnd` | por qué terminó la sesión | `clear`, `resume`, `logout`, `prompt_input_exit`, `other` |689| `SessionEnd` | por qué terminó la sesión | `clear`, `resume`, `logout`, `prompt_input_exit`, `other` |

689| `Notification` | tipo de notificación | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_url_dialog`, `elicitation_complete`, `elicitation_response`, `agent_needs_input`, `agent_completed`, `quota_auto_resume_fired`, `quota_auto_resume_stale`, `quota_auto_resume_disabled` |690| `Notification` | tipo de notificación | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_url_dialog`, `elicitation_complete`, `elicitation_response`, `agent_needs_input`, `agent_completed`, `quota_auto_resume_fired`, `quota_auto_resume_stale`, `quota_auto_resume_disabled`, `plugin_notification` |

690| `SubagentStart` | tipo de agente | `general-purpose`, `Explore`, `Plan`, o nombres de agentes personalizados |691| `SubagentStart` | tipo de agente | `general-purpose`, `Explore`, `Plan`, o nombres de agentes personalizados |

691| `PreCompact`, `PostCompact` | qué activó la compactación | `manual`, `auto` |692| `PreCompact`, `PostCompact` | qué activó la compactación | `manual`, `auto` |

692| `PreModelSwitch`, `PostModelSwitch` | nombre canónico del modelo al que la sesión cambia, como se describe en [PreModelSwitch](/docs/es/hooks#premodelswitch) | `claude-opus-5`, `claude-opus-4-6\|claude-opus-5`, `.*opus.*` |693| `PreModelSwitch`, `PostModelSwitch` | nombre canónico del modelo al que la sesión cambia, como se describe en [PreModelSwitch](/docs/es/hooks#premodelswitch) | `claude-opus-5`, `claude-opus-4-6\|claude-opus-5`, `.*opus.*` |

Details

18 18 

19| Atajo | Descripción | Contexto |19| Atajo | Descripción | Contexto |

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

21| `Ctrl+C` | Interrumpir o borrar entrada | Interrumpe una operación en ejecución. Si nada se está ejecutando, la primera pulsación borra la entrada del prompt y una segunda pulsación cierra Claude Code. Presiona `Up` mientras el prompt sigue vacío para recuperar el borrador borrado, lo que requiere Claude Code v2.1.288 o posterior |21| `Ctrl+C` | Interrumpir o borrar entrada | Interrumpe una operación en ejecución. Si nada se está ejecutando, la primera pulsación borra la entrada del prompt y una segunda pulsación cierra Claude Code. Para recuperar un borrador borrado, consulta [Recuperar un borrador borrado](#bring-back-a-cleared-draft) |

22| `Ctrl+X Ctrl+K` | Detener todos los [subagentes en segundo plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background) en esta sesión y desactivar las [respuestas automáticas de artefactos](/docs/es/artifacts#let-claude-reply-to-comments-on-its-own) para el resto de ella. Presiona dos veces en 3 segundos para confirmar. Puedes presionarlo mientras la solicitud de permiso de un subagente en segundo plano está abierta | Control de subagentes |22| `Ctrl+X Ctrl+K` | Detener todos los [subagentes en segundo plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background) en esta sesión y desactivar las [respuestas automáticas de artefactos](/docs/es/artifacts#let-claude-reply-to-comments-on-its-own) para el resto de ella. Presiona dos veces en 3 segundos para confirmar. Puedes presionarlo mientras la solicitud de permiso de un subagente en segundo plano está abierta | Control de subagentes |

23| `Ctrl+D` | Salir de la sesión de Claude Code | La primera pulsación muestra una sugerencia de confirmación y una segunda pulsación dentro de 800 ms cierra. Cuando el símbolo del sistema tiene texto, `Ctrl+D` elimina el carácter después del cursor en su lugar |23| `Ctrl+D` | Salir de la sesión de Claude Code | La primera pulsación muestra una sugerencia de confirmación y una segunda pulsación dentro de 800 ms cierra. Cuando el símbolo del sistema tiene texto, `Ctrl+D` elimina el carácter después del cursor en su lugar |

24| `Ctrl+G` o `Ctrl+X Ctrl+E` | Abrir en el editor de texto predeterminado | Edite su símbolo del sistema o respuesta personalizada en su editor de texto predeterminado. `Ctrl+X Ctrl+E` es el enlace nativo de readline. Active **Mostrar última respuesta en editor externo** en `/config` para anteponer la respuesta anterior de Claude como contexto comentado con `#` arriba de su símbolo del sistema; Claude Code elimina el bloque de comentarios cuando guarda |24| `Ctrl+G` o `Ctrl+X Ctrl+E` | Abrir en el editor de texto predeterminado | Edite su símbolo del sistema o respuesta personalizada en su editor de texto predeterminado. `Ctrl+X Ctrl+E` es el enlace nativo de readline. Active **Mostrar última respuesta en editor externo** en `/config` para anteponer la respuesta anterior de Claude como contexto comentado con `#` arriba de su símbolo del sistema; Claude Code elimina el bloque de comentarios cuando guarda |


262 262 

263El modo visual por bloques con `Ctrl+V` no es compatible.263El modo visual por bloques con `Ctrl+V` no es compatible.

264 264 

265### Cancelar una pregunta en modo vim

266 

267Cuando estás escribiendo tu propia respuesta en la fila `Other` de una [pregunta que Claude hace](/docs/es/tools-reference#askuserquestion-tool-behavior), presiona `Esc` dos veces para cancelar la pregunta.

268 

269Para cancelar con una sola pulsación de tecla, [asigna otra tecla para cancelar la pregunta](/docs/es/keybindings#cancel-a-question-with-one-key-press).

270 

265## Historial de comandos271## Historial de comandos

266 272 

267Claude Code mantiene un historial de los prompts que escribe, y la recuperación con la flecha hacia arriba accede a prompts de sesiones anteriores del mismo proyecto:273Claude Code mantiene un historial de los prompts que escribe, y la recuperación con la flecha hacia arriba accede a prompts de sesiones anteriores del mismo proyecto:


272* Cuando recupera un prompt que incluía texto pegado, Claude Code envía el contenido pegado completo nuevamente cuando lo reenvía. Si el contenido ha sido [limpiado](/docs/es/claude-directory#cleaned-up-automatically), Claude Code no envía la cadena literal `[Pasted text #N]`; consulte [Pegar contenido grande](/docs/es/terminal-config#paste-large-content) para ver qué sucede con el prompt278* Cuando recupera un prompt que incluía texto pegado, Claude Code envía el contenido pegado completo nuevamente cuando lo reenvía. Si el contenido ha sido [limpiado](/docs/es/claude-directory#cleaned-up-automatically), Claude Code no envía la cadena literal `[Pasted text #N]`; consulte [Pegar contenido grande](/docs/es/terminal-config#paste-large-content) para ver qué sucede con el prompt

273* La expansión del historial con `!` está deshabilitada de forma predeterminada279* La expansión del historial con `!` está deshabilitada de forma predeterminada

274 280 

281### Recuperar un borrador borrado

282 

283Para recuperar un borrador que borraste con `Ctrl+C`, presiona `Arriba`, ya sea de inmediato o después de haber enviado un mensaje o comando:

284 

285* **Justo después de borrar el borrador**: presiona `Arriba` una vez mientras el prompt todavía está vacío. Requiere Claude Code v2.1.288 o posterior.

286* **Después de enviar un mensaje o comando**: presiona `Arriba` para retroceder hasta el borrador. Claude Code conserva los diez borradores borrados más recientes de la sesión actual, con su texto pegado e imágenes, y los descarta cuando sales. Requiere Claude Code v2.1.292 o posterior.

287 

275### Búsqueda inversa con Ctrl+R288### Búsqueda inversa con Ctrl+R

276 289 

277Presione `Ctrl+R` para buscar interactivamente en su historial de comandos. En [renderizado a pantalla completa](/docs/es/fullscreen), `Ctrl+R` abre un diálogo de búsqueda en su lugar: escriba para filtrar, presione `Arriba` y `Abajo` para moverse entre coincidencias, y presione `Ctrl+S` para cambiar el alcance entre esta sesión, este proyecto y todos los proyectos. Presione `Intro` o `Tab` para colocar una coincidencia en la entrada del prompt, o `Esc` para cancelar. Los pasos a continuación describen la búsqueda en línea del renderizador clásico:290Presione `Ctrl+R` para buscar interactivamente en su historial de comandos. En [renderizado a pantalla completa](/docs/es/fullscreen), `Ctrl+R` abre un diálogo de búsqueda en su lugar: escriba para filtrar, presione `Arriba` y `Abajo` para moverse entre coincidencias, y presione `Ctrl+S` para cambiar el alcance entre esta sesión, este proyecto y todos los proyectos. Presione `Intro` o `Tab` para colocar una coincidencia en la entrada del prompt, o `Esc` para cancelar. Los pasos a continuación describen la búsqueda en línea del renderizador clásico:


386* [`/effort`](/docs/es/model-config#adjust-effort-level): una vez que confirmes la [advertencia de caché](/docs/es/prompt-caching#changing-effort-level), si Claude Code muestra una, Claude Code aplica tu cambio a la siguiente solicitud que realiza en ese turno399* [`/effort`](/docs/es/model-config#adjust-effort-level): una vez que confirmes la [advertencia de caché](/docs/es/prompt-caching#changing-effort-level), si Claude Code muestra una, Claude Code aplica tu cambio a la siguiente solicitud que realiza en ese turno

387* [`/fast`](/docs/es/fast-mode#toggle-fast-mode): Claude Code mantiene el ajuste de modo rápido que estaba activo cuando el turno comenzó, por lo que tu cambio de velocidad se aplica desde tu siguiente turno. Si tu modelo actual no admite modo rápido, activarlo también [cambia tu modelo](/docs/es/prompt-caching#turning-on-fast-mode), y Claude Code usa el nuevo modelo desde su siguiente solicitud en ese turno400* [`/fast`](/docs/es/fast-mode#toggle-fast-mode): Claude Code mantiene el ajuste de modo rápido que estaba activo cuando el turno comenzó, por lo que tu cambio de velocidad se aplica desde tu siguiente turno. Si tu modelo actual no admite modo rápido, activarlo también [cambia tu modelo](/docs/es/prompt-caching#turning-on-fast-mode), y Claude Code usa el nuevo modelo desde su siguiente solicitud en ese turno

388 401 

402### Enviar al segundo plano una sesión con mensajes encolados

403 

404Cuando la sesión pasa al segundo plano después de que [presionas `←`](/docs/es/agent-view#switch-sessions-without-leaving-the-terminal), los mensajes que tenías encolados se mueven con ella. Claude los lee allí en el orden en que los enviaste.

405 

406Los comandos y los comandos shell `!` no pueden moverse, y tampoco algunos mensajes, como uno con una [selección del IDE](/docs/es/vs-code#the-built-in-ide-mcp-server) adjunta. Si presionas `←` mientras uno de ellos está encolado, la sesión permanece en primer plano y aparece un aviso que comienza con `Cannot open agents`. Para enviar la sesión al segundo plano, saca la entrada de la cola y luego presiona `←` de nuevo:

407 

408* **Comandos y comandos shell `!`**: espera a que se ejecuten al final del turno, o [recupéralos](#take-back-what-you-queued) y borra el cuadro de entrada. Mientras haya cualquier otra cosa encolada, no puedes recuperar los comandos shell `!`, así que espera a que se ejecuten.

409* **Mensajes que no pueden moverse**: espera hasta que Claude los haya leído

410 

389### Recupera lo que encolaste411### Recupera lo que encolaste

390 412 

391Presiona `Up` desde la primera línea del cuadro de entrada para recuperar los mensajes y comandos encolados. Claude Code los elimina de la cola y los coloca en el cuadro de entrada, uno por línea, antes de cualquier texto que hayas escrito. Edita el texto y presiona `Enter` para encolarlo nuevamente como una entrada, o borra el cuadro de entrada para descartarlo.413Presiona `Up` desde la primera línea del cuadro de entrada para recuperar los mensajes y comandos encolados. Claude Code los elimina de la cola y los coloca en el cuadro de entrada, uno por línea, antes de cualquier texto que hayas escrito. Edita el texto y presiona `Enter` para encolarlo nuevamente como una entrada, o borra el cuadro de entrada para descartarlo.

keybindings.md +23 −0

Details

446| :- | :- | :- |446| :- | :- | :- |

447| `settings:search` | / | Entrar en modo de búsqueda |447| `settings:search` | / | Entrar en modo de búsqueda |

448| `settings:retry` | R | Reintentar cargar datos de uso en caso de error |448| `settings:retry` | R | Reintentar cargar datos de uso en caso de error |

449| `settings:fixUsage` | F | Enviar a tu sesión las [recomendaciones de `/usage`](/docs/es/costs#apply-recommendations-with-the-fix-shortcut) que Claude Code puede aplicar, cuando el pie de página de `/usage` ofrece una corrección. Requiere v2.1.305 o posterior |

449| `select:accept` | Enter, Space | Cambiar la configuración seleccionada o abrir su submenú |450| `select:accept` | Enter, Space | Cambiar la configuración seleccionada o abrir su submenú |

450| `confirm:no` | Escape | Cerrar el panel. Los cambios ya están guardados |451| `confirm:no` | Escape | Cerrar el panel. Los cambios ya están guardados |

451 452 


688 689 

689En la fila `Other` de una pregunta que hace Claude, Escape no cancela la pregunta de inmediato en modo vim. Excepto en el [modo de lector de pantalla](/docs/es/accessibility), la fila comienza en modo INSERT cada vez que le das el foco. Cuando presionas Escape en la fila `Other`, la fila cambia a modo NORMAL o descarta un comando de vim escrito a medias, y la pregunta permanece abierta. Presiona Escape de nuevo en modo NORMAL para cancelar la pregunta.690En la fila `Other` de una pregunta que hace Claude, Escape no cancela la pregunta de inmediato en modo vim. Excepto en el [modo de lector de pantalla](/docs/es/accessibility), la fila comienza en modo INSERT cada vez que le das el foco. Cuando presionas Escape en la fila `Other`, la fila cambia a modo NORMAL o descarta un comando de vim escrito a medias, y la pregunta permanece abierta. Presiona Escape de nuevo en modo NORMAL para cancelar la pregunta.

690 691 

692### Cancelar una pregunta con una sola pulsación de tecla

693 

694Para cancelar una pregunta con una sola pulsación de tecla en modo vim, vincula otra tecla a `select:cancel` en el contexto `Select`. Puedes cancelar de esta forma desde la fila `Other` de una pregunta en la que seleccionas una opción. En el [modo de lector de pantalla](/docs/es/accessibility) o en una pregunta en la que puedes seleccionar varias opciones, la tecla vinculada no cancela, así que cancela con Escape en su lugar.

695 

696Elige una tecla que presiones con Ctrl o Alt. Una letra o un dígito sin modificador [va a la fila `Other`](#text-fields) en su lugar y no llega a tus atajos de teclado. Por ejemplo, para vincular `Ctrl+Q`, agrega esto a `~/.claude/keybindings.json`:

697 

698```json theme={null}

699{

700 "bindings": [

701 {

702 "context": "Select",

703 "bindings": {

704 "ctrl+q": "select:cancel"

705 }

706 }

707 ]

708}

709```

710 

711Después de guardar el archivo, presiona `Ctrl+Q` en la fila `Other` de una pregunta en la que seleccionas una opción. La pregunta se cierra tanto si la fila está en modo INSERT como en modo NORMAL.

712 

691## Validación713## Validación

692 714 

693Claude Code valida sus atajos de teclado y escribe una advertencia en el registro de depuración para:715Claude Code valida sus atajos de teclado y escribe una advertencia en el registro de depuración para:

694 716 

695* Errores de análisis (JSON o estructura inválida)717* Errores de análisis (JSON o estructura inválida)

696* Modificadores mal escritos, como `ctl+k`. Claude Code descarta la parte que no reconoce y aplica la vinculación a la pulsación de tecla que permanece, `k` en este ejemplo.718* Modificadores mal escritos, como `ctl+k`. Claude Code descarta la parte que no reconoce y aplica la vinculación a la pulsación de tecla que permanece, `k` en este ejemplo.

719* Un espacio junto a `+` en una cadena de tecla, como `ctrl+ k`. Claude Code interpreta la cadena como un [acorde](#chords) de `ctrl+` seguido de `k`. Ninguna pulsación de tecla coincide con `ctrl+` por sí sola, por lo que la vinculación nunca se activa. Elimina el espacio.

697* Nombres de contexto inválidos720* Nombres de contexto inválidos

698* Valores de acción inválidos, como una acción que no es una cadena o `null`721* Valores de acción inválidos, como una acción que no es una cadena o `null`

699* Nombres de acción desconocidos, como un error tipográfico de una acción registrada. Claude Code omite la vinculación y mantiene cualquier vinculación predeterminada para esa tecla en vigor.722* Nombres de acción desconocidos, como un error tipográfico de una acción registrada. Claude Code omite la vinculación y mantiene cualquier vinculación predeterminada para esa tecla en vigor.

large-codebases.md +17 −17

Details

75 75 

76Una división común es dos niveles:76Una división común es dos niveles:

77 77 

78* **CLAUDE.md raíz**: instrucciones que se aplican en todas partes, como estándares de codificación y convenciones de commit78* **`CLAUDE.md` raíz**: instrucciones que se aplican en todas partes, como estándares de codificación y convenciones de commit

79* **CLAUDE.md por subdirectorio**: convenciones específicas del stack de esa área. En un monorepo eso es uno por paquete. En un árbol único grande es uno por subsistema como `src/db/` o `src/api/`79* **`CLAUDE.md` por subdirectorio**: convenciones específicas del stack de esa área. En un monorepo eso es uno por paquete. En un árbol único grande es uno por subsistema, como `src/db/` o `src/api/`

80 80 

81Comprometa estos archivos al repositorio para que los compañeros de equipo los hereden. El propietario de cada directorio típicamente mantiene su archivo.81Comprometa estos archivos al repositorio para que los compañeros de equipo los hereden. El propietario de cada directorio típicamente mantiene su archivo.

82 82 

83Para recortar un archivo que ya está registrado, ejecute la [verificación `/doctor`](/docs/es/memory#my-claude-md-is-too-large). El CLAUDE.md raíz contiene las reglas que se aplican en cada paquete:83Para recortar un archivo que ya está en el repositorio, ejecuta la [verificación `/doctor`](/docs/es/memory#my-claude-md-is-too-large). El `CLAUDE.md` raíz contiene las reglas que se aplican en cada paquete:

84 84 

85```markdown CLAUDE.md theme={null}85```markdown CLAUDE.md theme={null}

86Ejecute scripts de paquete desde el directorio del paquete, no desde la raíz del monorepo.86Run package scripts from the package directory, not the monorepo root.

87Prefije los asuntos de commit con el nombre del paquete, por ejemplo `api: add rate limiting`.87Prefix commit subjects with the package name, for example `api: add rate limiting`.

88Nunca edite archivos bajo packages/*/generated/. Ejecute `npm run codegen` en el paquete en su lugar.88Never edit files under packages/*/generated/. Run `npm run codegen` in the package instead.

89```89```

90 90 

91El CLAUDE.md de cada subdirectorio, aquí `packages/api/CLAUDE.md`, agrega las convenciones específicas de esa área:91El `CLAUDE.md` de cada subdirectorio, aquí `packages/api/CLAUDE.md`, agrega las convenciones específicas de esa área:

92 92 

93```markdown packages/api/CLAUDE.md theme={null}93```markdown packages/api/CLAUDE.md theme={null}

94Copie `.env.example` a `.env` antes de ejecutar cualquier cosa. Las pruebas y el servidor de desarrollo fallan sin él.94Copy `.env.example` to `.env` before running anything. Tests and the dev server fail without it.

95Escriba consultas de base de datos con el constructor de consultas Knex. Nunca coloque cadenas SQL sin procesar en manejadores de rutas.95Write database queries with the Knex query builder. Never put raw SQL strings in route handlers.

96Nunca edite una migración después de que se haya fusionado. Agregue una nueva migración en su lugar.96Never edit a migration after it has merged. Add a new migration instead.

97```97```

98 98 

99Cuando inicia Claude desde `packages/api/`, carga tanto `packages/api/CLAUDE.md` como el CLAUDE.md raíz. Claude ve las instrucciones locales junto con las reglas de todo el repositorio, sin instrucciones de `packages/web/` en el contexto. Lo mismo se aplica a cualquier subdirectorio en un árbol no monorepo. Para confirmar qué archivos se cargaron, ejecute `/context` y verifique la lista bajo **Memory files**.99Cuando inicias Claude desde `packages/api/`, carga tanto `packages/api/CLAUDE.md` como el `CLAUDE.md` raíz. Claude ve las instrucciones locales junto con las reglas de todo el repositorio, sin instrucciones de `packages/web/` en el contexto. Lo mismo se aplica a cualquier subdirectorio en un árbol que no sea un monorepo. Para confirmar qué archivos se cargaron, ejecuta `/context` y revisa la lista bajo **Memory files**.

100 100 

101Algunas formas de mantener los archivos actuales a medida que el codebase y los modelos cambian:101Algunas formas de mantener los archivos actuales a medida que el codebase y los modelos cambian:

102 102 


141* `"**/packages/legacy-*/**"`: excluye cada paquete cuyo nombre coincida con el glob, incluidas las reglas141* `"**/packages/legacy-*/**"`: excluye cada paquete cuyo nombre coincida con el glob, incluidas las reglas

142* `"/home/user/monorepo/legacy/CLAUDE.md"`: excluye un archivo específico por ruta absoluta142* `"/home/user/monorepo/legacy/CLAUDE.md"`: excluye un archivo específico por ruta absoluta

143 143 

144Los archivos CLAUDE.md de política administrada no pueden excluirse, por lo que las instrucciones de toda la organización siempre se aplican. Puede establecer `claudeMdExcludes` en cualquier [alcance de configuración](/docs/es/settings#where-settings-live): usuario, proyecto, local o administrado. Los arreglos se fusionan entre alcances, por lo que un equipo puede establecer valores predeterminados a nivel de proyecto mientras los individuos agregan anulaciones locales.144Puedes establecer `claudeMdExcludes` en cualquier [alcance de configuración](/docs/es/settings#where-settings-live): usuario, proyecto, local o administrado. Los arreglos se combinan entre alcances, por lo que un equipo puede establecer valores predeterminados a nivel de proyecto mientras cada persona agrega sobrescrituras locales. Si tu organización implementa un [archivo CLAUDE.md administrado](/docs/es/memory#deploy-organization-wide-claude-md), un patrón que coincida con él no lo omite, sin importar qué alcance establezca el patrón.

145 145 

146Para la documentación completa de exclusión, consulte [Excluir archivos CLAUDE.md específicos](/docs/es/memory#exclude-specific-claude-md-files).146Para la documentación completa de exclusión, consulte [Excluir archivos CLAUDE.md específicos](/docs/es/memory#exclude-specific-claude-md-files).

147 147 


321```markdown packages/api/.claude/skills/api-testing/SKILL.md theme={null}321```markdown packages/api/.claude/skills/api-testing/SKILL.md theme={null}

322---322---

323name: api-testing323name: api-testing

324description: Patrones de prueba para el paquete API. Usar cuando escriba o modifique pruebas en packages/api/.324description: Patrones de prueba para el paquete API. Usar cuando escribas o modifiques pruebas en packages/api/.

325---325---

326 326 

327## Estructura de prueba327## Estructura de prueba


342 342 

343## Patrones343## Patrones

344 344 

345- Use `supertest` para aserciones HTTP, no fetch sin procesar345- Usa `supertest` para aserciones HTTP, no fetch sin procesar

346- Siempre envuelva pruebas de base de datos en una transacción que se revierta346- Envuelve siempre las pruebas de base de datos en una transacción que se revierta

347- Simule servicios externos en `src/__tests__/mocks/`347- Simula los servicios externos en `src/__tests__/mocks/`

348```348```

349 349 

350Un subdirectorio diferente contiene diferentes skills de la misma manera: `packages/web/.claude/skills/component-patterns/` describe las convenciones de componentes del frontend en lugar de pruebas. Cuando Claude trabaja en un archivo en `packages/api/`, carga el skill api-testing. Cuando trabaja en `packages/web/`, carga component-patterns en su lugar. Los skills de ningún directorio se cargan durante las tareas del otro.350Un subdirectorio diferente contiene diferentes skills de la misma manera: `packages/web/.claude/skills/component-patterns/` describe las convenciones de componentes del frontend en lugar de pruebas. Cuando Claude trabaja en un archivo en `packages/api/`, carga el skill api-testing. Cuando trabaja en `packages/web/`, carga component-patterns en su lugar. Los skills de ningún directorio se cargan durante las tareas del otro.

351 351 

352También puede limitar un skill por patrón de archivo en lugar de por colocación. El [campo frontmatter `paths`](/docs/es/skills#frontmatter-reference) toma patrones glob, y Claude carga el skill automáticamente solo cuando trabaja con archivos coincidentes. Úselo para un skill que vive en el `.claude/skills/` de la raíz del repositorio pero se aplica solo a ciertos archivos dondequiera que aparezcan, como un skill de migración de base de datos limitado a `**/migrations/**`.352También puedes limitar un skill por patrón de archivo en lugar de por ubicación. El [campo frontmatter `paths`](/docs/es/skills#frontmatter-reference) toma patrones glob, y Claude carga el skill automáticamente solo cuando trabaja con archivos coincidentes. Úsalo para un skill que vive en el `.claude/skills/` de la raíz del repositorio pero se aplica solo a ciertos archivos, como un skill de migración de base de datos limitado a `**/migrations/**`.

353 353 

354Para más información sobre crear y organizar skills, consulte [Skills](/docs/es/skills).354Para más información sobre crear y organizar skills, consulte [Skills](/docs/es/skills).

355 355 

Details

513| `Your apiKeyHelper script is failing`, o `apiKeyHelper failed:` en stderr en modo no interactivo | El comando en la configuración [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper) no produjo una clave utilizable, por lo que las solicitudes llevan una clave de marcador de posición | Ejecute el comando directamente para ver por qué falla, y vuelva a autenticarse con su proveedor de credenciales si reporta una sesión expirada; consulte [la referencia de errores](/docs/es/errors#your-apikeyhelper-script-is-failing) |513| `Your apiKeyHelper script is failing`, o `apiKeyHelper failed:` en stderr en modo no interactivo | El comando en la configuración [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper) no produjo una clave utilizable, por lo que las solicitudes llevan una clave de marcador de posición | Ejecute el comando directamente para ver por qué falla, y vuelva a autenticarse con su proveedor de credenciales si reporta una sesión expirada; consulte [la referencia de errores](/docs/es/errors#your-apikeyhelper-script-is-failing) |

514| `Connection refused — a firewall or proxy may be blocking it (ConnectionRefused)` cuando nada responde en la dirección, o `Can't reach the API server — check your internet or DNS (ENOTFOUND)` cuando el nombre de host no se resuelve, a menudo después de una pausa silenciosa mientras Claude Code [reintenta con retroceso](/docs/es/errors#automatic-retries). El código entre paréntesis varía; [Unable to connect to API](/docs/es/errors#unable-to-connect-to-api) cubre los códigos y la redacción anterior | Nada respondió en la URL base: la dirección es incorrecta, o una VPN o firewall bloquea la ruta a la puerta de enlace | Ejecute la [prueba de curl anterior](#verify-the-connection), que falla inmediatamente con la misma causa, y confirme la URL y la ruta de red con su equipo de puerta de enlace |514| `Connection refused — a firewall or proxy may be blocking it (ConnectionRefused)` cuando nada responde en la dirección, o `Can't reach the API server — check your internet or DNS (ENOTFOUND)` cuando el nombre de host no se resuelve, a menudo después de una pausa silenciosa mientras Claude Code [reintenta con retroceso](/docs/es/errors#automatic-retries). El código entre paréntesis varía; [Unable to connect to API](/docs/es/errors#unable-to-connect-to-api) cubre los códigos y la redacción anterior | Nada respondió en la URL base: la dirección es incorrecta, o una VPN o firewall bloquea la ruta a la puerta de enlace | Ejecute la [prueba de curl anterior](#verify-the-connection), que falla inmediatamente con la misma causa, y confirme la URL y la ruta de red con su equipo de puerta de enlace |

515| `API returned an empty or malformed response (HTTP 200)` | La puerta de enlace o un proxy intermedio devolvió una respuesta que no es de API, a menudo una página de error HTML o de inicio de sesión | Pruebe con la [solicitud de curl anterior](#verify-the-connection); corrija la ruta de puerta de enlace que responde con algo que no sea una respuesta de API de Claude. [La referencia de errores](/docs/es/errors#api-returned-an-empty-or-malformed-response) explica el detalle que el mensaje reporta |515| `API returned an empty or malformed response (HTTP 200)` | La puerta de enlace o un proxy intermedio devolvió una respuesta que no es de API, a menudo una página de error HTML o de inicio de sesión | Pruebe con la [solicitud de curl anterior](#verify-the-connection); corrija la ruta de puerta de enlace que responde con algo que no sea una respuesta de API de Claude. [La referencia de errores](/docs/es/errors#api-returned-an-empty-or-malformed-response) explica el detalle que el mensaje reporta |

516| Errores `400` que nombran `context_management`, `Extra inputs are not permitted`, u otros campos no reconocidos | La puerta de enlace reenvía solicitudes a un upstream que rechaza campos que Claude Code envía a puntos finales en formato de Anthropic | Establezca `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`, que suprime la mayoría de campos de pre-lanzamiento; consulte [paso de características](/docs/es/llm-gateway-protocol#feature-pass-through). Algunos betas no están controlados por esta bandera; para esos, establezca la variable de proveedor `CLAUDE_CODE_USE_*` coincidente para que Claude Code envíe solo lo que ese proveedor acepta |516| Errores `400` que nombran `context_management`, `Extra inputs are not permitted` u otros campos no reconocidos | El gateway reenvía las solicitudes a un upstream que rechaza campos que Claude Code envía a endpoints con formato de Anthropic | Establece `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`, que suprime la mayoría de los campos de versiones preliminares; consulta [paso de funciones](/docs/es/llm-gateway-protocol#feature-pass-through). Algunas betas no están controladas por este flag; para ellas, establece la variable de proveedor `CLAUDE_CODE_USE_*` correspondiente para que Claude Code envíe solo lo que ese proveedor acepta. Para los pasos que dependen del campo que nombra el mensaje, consulta [Extra inputs are not permitted](/docs/es/errors#extra-inputs-are-not-permitted) |

517| Errores `400` que mencionan `thinking` o `adaptive`, como `Input tag 'adaptive' found` | La compilación del modelo upstream no acepta el razonamiento adaptativo, que Claude Code solicita para Claude Opus 4.6, Claude Sonnet 4.6, Claude Haiku 5.5, Claude Fable 5 y modelos posteriores | Actualiza el upstream del gateway. En Opus 4.6 y Sonnet 4.6, `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` funciona como alternativa. Las variables de capacidades de la [configuración de modelos](/docs/es/model-config) se aplican solo a las configuraciones de proveedor, como `CLAUDE_CODE_USE_BEDROCK` y `CLAUDE_CODE_USE_VERTEX`, no detrás de un gateway con `ANTHROPIC_BASE_URL` |517| Errores `400` que mencionan `thinking` o `adaptive`, como `Input tag 'adaptive' found` | La compilación del modelo upstream no acepta el razonamiento adaptativo, que Claude Code solicita para Claude Opus 4.6, Claude Sonnet 4.6, Claude Haiku 5.5, Claude Fable 5 y modelos posteriores | Actualiza el upstream del gateway. En Opus 4.6 y Sonnet 4.6, `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` funciona como alternativa. Las variables de capacidades de la [configuración de modelos](/docs/es/model-config) se aplican solo a las configuraciones de proveedor, como `CLAUDE_CODE_USE_BEDROCK` y `CLAUDE_CODE_USE_VERTEX`, no detrás de un gateway con `ANTHROPIC_BASE_URL` |

518| Errores `400` que indican un contexto o límite de token en las propias palabras de la puerta de enlace, como `ContextWindowExceededError` o `prompt token count of N exceeds the limit of M` | La puerta de enlace aplica un contexto más pequeño que la ventana nativa del modelo y reescribe el error upstream, por lo que Claude Code no lo reconoce como un [error demasiado largo](/docs/es/errors#prompt-is-too-long) y no compacta y reintenta automáticamente | Ejecute `/compact` para recuperar la sesión. Para prevenirlo, establezca `CLAUDE_CODE_AUTO_COMPACT_WINDOW` al límite de la puerta de enlace; Claude Code fija el valor a al menos 100,000 tokens y como máximo la ventana de contexto del modelo, por lo que no puede coincidir con un límite de puerta de enlace por debajo de 100,000, y `/compact` permanece como la recuperación allí. También establezca `CLAUDE_CODE_MAX_OUTPUT_TOKENS` por debajo del límite de salida del modelo de puerta de enlace |518| Errores `400` que indican un contexto o límite de token en las propias palabras de la puerta de enlace, como `ContextWindowExceededError` o `prompt token count of N exceeds the limit of M` | La puerta de enlace aplica un contexto más pequeño que la ventana nativa del modelo y reescribe el error upstream, por lo que Claude Code no lo reconoce como un [error demasiado largo](/docs/es/errors#prompt-is-too-long) y no compacta y reintenta automáticamente | Ejecute `/compact` para recuperar la sesión. Para prevenirlo, establezca `CLAUDE_CODE_AUTO_COMPACT_WINDOW` al límite de la puerta de enlace; Claude Code fija el valor a al menos 100,000 tokens y como máximo la ventana de contexto del modelo, por lo que no puede coincidir con un límite de puerta de enlace por debajo de 100,000, y `/compact` permanece como la recuperación allí. También establezca `CLAUDE_CODE_MAX_OUTPUT_TOKENS` por debajo del límite de salida del modelo de puerta de enlace |

519| Errores `400` en cada solicitud, en las propias palabras de la puerta de enlace rechazando un esquema de entrada de herramienta o su `pattern`, en Claude Code v2.1.265 a v2.1.267 | En un despliegue gradual en esas versiones, el esquema de [herramienta Artifact](/docs/es/artifacts#availability) lleva una expresión regular con clases de caracteres Unicode `\p{...}`. La API de Anthropic la acepta, pero una puerta de enlace o upstream que verifica el `pattern` de cada esquema de herramienta con su propio motor de expresiones regulares rechaza toda la solicitud | Actualice a v2.1.268 o posterior, que no envía la expresión regular. En una versión afectada, [desactive los artefactos](/docs/es/artifacts#disable-artifacts), que elimina la herramienta y su esquema de las solicitudes |519| Errores `400` en cada solicitud, en las propias palabras de la puerta de enlace rechazando un esquema de entrada de herramienta o su `pattern`, en Claude Code v2.1.265 a v2.1.267 | En un despliegue gradual en esas versiones, el esquema de [herramienta Artifact](/docs/es/artifacts#availability) lleva una expresión regular con clases de caracteres Unicode `\p{...}`. La API de Anthropic la acepta, pero una puerta de enlace o upstream que verifica el `pattern` de cada esquema de herramienta con su propio motor de expresiones regulares rechaza toda la solicitud | Actualice a v2.1.268 o posterior, que no envía la expresión regular. En una versión afectada, [desactive los artefactos](/docs/es/artifacts#disable-artifacts), que elimina la herramienta y su esquema de las solicitudes |

Details

100| :- | :- | :- | :- |100| :- | :- | :- | :- |

101| IDs de modelo en solicitudes de forma predeterminada | La forma del proveedor, como `us.anthropic.claude-opus-4-8` en Amazon Bedrock | IDs de Anthropic, como `claude-opus-4-8` | IDs de Anthropic |101| IDs de modelo en solicitudes de forma predeterminada | La forma del proveedor, como `us.anthropic.claude-opus-4-8` en Amazon Bedrock | IDs de Anthropic, como `claude-opus-4-8` | IDs de Anthropic |

102| Valores de `anthropic-beta` enviados | El subconjunto que Amazon Bedrock y Agent Platform aceptan | El conjunto completo descrito en [paso de características](#feature-pass-through), a menos que el desarrollador establezca [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](#disable-pre-release-capabilities) | El subconjunto que Amazon Bedrock y Agent Platform aceptan |102| Valores de `anthropic-beta` enviados | El subconjunto que Amazon Bedrock y Agent Platform aceptan | El conjunto completo descrito en [paso de características](#feature-pass-through), a menos que el desarrollador establezca [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](#disable-pre-release-capabilities) | El subconjunto que Amazon Bedrock y Agent Platform aceptan |

103| Campos de solicitud para un ID de modelo que Claude Code no reconoce, como un alias de gateway | Pensamiento con un presupuesto fijo en lugar de razonamiento adaptativo, y sin campos de gestión de esfuerzo o contexto | Todo lo que los modelos Claude actuales aceptan en la API de Claude, incluido el razonamiento adaptativo, el esfuerzo y la gestión del contexto, que un upstream de Amazon Bedrock o Agent Platform puede rechazar | Igual que el formato de Amazon Bedrock o Agent Platform |103| Campos de solicitud para un ID de modelo que Claude Code no reconoce, como un alias de gateway | Pensamiento con un presupuesto fijo en lugar de razonamiento adaptativo, y sin campos de gestión de esfuerzo o contexto. Claude Code sigue enviando [mensajes del sistema a mitad de la conversación](#feature-pass-through) | Todo lo que los modelos Claude actuales aceptan en la API de Claude, incluido el razonamiento adaptativo, el esfuerzo y la gestión del contexto, que un upstream de Amazon Bedrock o Agent Platform puede rechazar | Igual que el formato de Amazon Bedrock o Agent Platform |

104| [TTL de caché de prompt](/docs/es/prompt-caching#choose-the-ttl-yourself) de una hora cuando un desarrollador opta por participar | Solicitado a través del campo `ttl` en `cache_control`, sin valor beta | Solicitado a través del campo `ttl` más un valor `extended-cache-ttl` en `anthropic-beta`, que debe reenviar | Consulte la tabla de [disponibilidad y limitaciones](/docs/es/claude-apps-gateway#availability-and-limitations) del gateway de aplicaciones Claude |104| [TTL de caché de prompt](/docs/es/prompt-caching#choose-the-ttl-yourself) de una hora cuando un desarrollador opta por participar | Solicitado a través del campo `ttl` en `cache_control`, sin valor beta | Solicitado a través del campo `ttl` más un valor `extended-cache-ttl` en `anthropic-beta`, que debe reenviar | Consulte la tabla de [disponibilidad y limitaciones](/docs/es/claude-apps-gateway#availability-and-limitations) del gateway de aplicaciones Claude |

105| Modelo para [tareas en segundo plano](/docs/es/costs#background-token-usage) a menos que `ANTHROPIC_DEFAULT_HAIKU_MODEL` fije uno | El modelo Sonnet predeterminado, o el modelo principal una vez que se selecciona uno, como describen las páginas de [Amazon Bedrock](/docs/es/amazon-bedrock#4-pin-model-versions) y [Agent Platform](/docs/es/google-vertex-ai#5-pin-model-versions) | El modelo principal, o el modelo Haiku predeterminado cuando `ANTHROPIC_API_KEY` o `apiKeyHelper` proporciona una clave de Anthropic Console y `ANTHROPIC_AUTH_TOKEN` no está establecido | El modelo principal |105| Modelo para [tareas en segundo plano](/docs/es/costs#background-token-usage) a menos que `ANTHROPIC_DEFAULT_HAIKU_MODEL` fije uno | El modelo Sonnet predeterminado, o el modelo principal una vez que se selecciona uno, como describen las páginas de [Amazon Bedrock](/docs/es/amazon-bedrock#4-pin-model-versions) y [Agent Platform](/docs/es/google-vertex-ai#5-pin-model-versions) | El modelo principal, o el modelo Haiku predeterminado cuando `ANTHROPIC_API_KEY` o `apiKeyHelper` proporciona una clave de Anthropic Console y `ANTHROPIC_AUTH_TOKEN` no está establecido | El modelo principal |

106 106 


207 207 

208Claude Code trata una puerta de enlace `ANTHROPIC_BASE_URL` como un punto final con formato Anthropic y le envía los encabezados beta y campos de cuerpo de solicitud que envía a `api.anthropic.com`, excepto un pequeño conjunto de diagnósticos y valores predeterminados reservados para conexiones directas, como el valor predeterminado de transmisión de herramientas de grano fino cubierto a continuación. Ese conjunto varía según la versión, así que no dependa de su contenido.208Claude Code trata una puerta de enlace `ANTHROPIC_BASE_URL` como un punto final con formato Anthropic y le envía los encabezados beta y campos de cuerpo de solicitud que envía a `api.anthropic.com`, excepto un pequeño conjunto de diagnósticos y valores predeterminados reservados para conexiones directas, como el valor predeterminado de transmisión de herramientas de grano fino cubierto a continuación. Ese conjunto varía según la versión, así que no dependa de su contenido.

209 209 

210Las capacidades que agregan campos de cuerpo los emparejan con un encabezado beta, y el par viaja junto. Una puerta de enlace que elimina el encabezado mientras pasa el cuerpo, o reenvía un cuerpo con formato Anthropic a un proveedor ascendente con un esquema diferente, produce errores `400` duros; solo cuando ambas mitades están ausentes juntas la característica se apaga silenciosamente. Una puerta de enlace que reescribe o redacta cuerpos de solicitud para inspección de contenido rompe el emparejamiento de la misma manera que la eliminación, así que inspeccione sin modificar. La tabla señala dónde una característica se desvía del emparejamiento.

211 

212La transmisión de herramientas de grano fino es uno de los valores predeterminados de conexión directa: está desactivada de forma predeterminada siempre que las solicitudes se enruten a través de una URL base personalizada, y una puerta de enlace la recibe cuando los desarrolladores establecen [`CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1`](/docs/es/env-vars).210La transmisión de herramientas de grano fino es uno de los valores predeterminados de conexión directa: está desactivada de forma predeterminada siempre que las solicitudes se enruten a través de una URL base personalizada, y una puerta de enlace la recibe cuando los desarrolladores establecen [`CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1`](/docs/es/env-vars).

213 211 

212### Pares de encabezado beta y campo de cuerpo

213 

214Las capacidades que agregan campos de cuerpo los emparejan con un encabezado beta, y el par viaja junto. Un gateway que elimina el encabezado mientras pasa el cuerpo, o que reenvía un cuerpo con formato Anthropic a un proveedor ascendente con un esquema diferente, produce errores `400`. Cuando ambas mitades están ausentes juntas, la característica se desactiva silenciosamente.

215 

216Un gateway que reescribe o redacta cuerpos de solicitud para inspección de contenido rompe el emparejamiento de la misma manera que la eliminación, así que inspecciona sin modificar. La tabla señala dónde una característica se desvía del emparejamiento.

217 

214| Característica | Encabezado y par de cuerpo | Síntoma cuando se rompe | Remediación |218| Característica | Encabezado y par de cuerpo | Síntoma cuando se rompe | Remediación |

215| :- | :- | :- | :- |219| :- | :- | :- | :- |

216| [Razonamiento adaptativo](/docs/es/model-config#adjust-effort-level) | Sin encabezado beta. Claude Code envía `thinking: {"type": "adaptive"}` para Claude Opus 4.6, Claude Sonnet 4.6, Claude Haiku 5.5, Claude Fable 5 y modelos posteriores, y trata los nombres de modelo que no reconoce, como alias de gateway, como modelos actuales que reciben el campo | `400` que nombra el campo `thinking` o la etiqueta `adaptive` cuando la compilación del modelo ascendente no lo acepta | Actualiza el proveedor ascendente. En Opus 4.6 y Sonnet 4.6, los desarrolladores pueden establecer `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` en su lugar |220| [Razonamiento adaptativo](/docs/es/model-config#adjust-effort-level) | Sin encabezado beta. Claude Code envía `thinking: {"type": "adaptive"}` para Claude Opus 4.6, Claude Sonnet 4.6, Claude Haiku 5.5, Claude Fable 5 y modelos posteriores, y trata los nombres de modelo que no reconoce, como alias de gateway, como modelos actuales que reciben el campo | `400` que nombra el campo `thinking` o la etiqueta `adaptive` cuando la compilación del modelo ascendente no lo acepta | Actualiza el proveedor ascendente. En Opus 4.6 y Sonnet 4.6, los desarrolladores pueden establecer `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` en su lugar |

217| [Gestión de contexto](https://platform.claude.com/docs/en/build-with-claude/context-editing) | El encabezado beta de gestión de contexto se empareja con el campo de cuerpo `context_management` | `400` con `Extra inputs are not permitted`. Común cuando un gateway acepta solicitudes con formato Anthropic pero las reenvía a Amazon Bedrock | Reenvía ambos, o [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |221| [Gestión de contexto](https://platform.claude.com/docs/en/build-with-claude/context-editing) | El encabezado beta de gestión de contexto se empareja con el campo de cuerpo `context_management` | `400` con `Extra inputs are not permitted`. Común cuando un gateway acepta solicitudes con formato Anthropic pero las reenvía a Amazon Bedrock. En v2.1.304 o posterior, Claude Code [reintenta por sí solo sin el par](#automatic-retry-and-error-forwarding) | Reenvía ambos, o [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |

218| [Contexto extendido](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) y [pensamiento intercalado](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | Solo encabezados beta, sin campo de cuerpo | Silenciosamente no disponible cuando se elimina el encabezado; el proveedor ascendente nunca ve la solicitud de capacidad | Reenvíe `anthropic-beta` textualmente |222| [Contexto extendido](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) y [pensamiento intercalado](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | Solo encabezados beta, sin campo de cuerpo | Silenciosamente no disponible cuando se elimina el encabezado; el proveedor ascendente nunca ve la solicitud de capacidad | Reenvíe `anthropic-beta` textualmente |

219| Campos de [herramienta](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) beta | Los encabezados beta relacionados con herramientas se emparejan con campos de esquema de herramienta como `strict` y `defer_loading` | `400` nombrando el campo de esquema de herramienta no reconocido cuando el cuerpo pasa sin su encabezado | Reenvíe ambos, o [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |223| Campos de [herramienta](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) beta | Los encabezados beta relacionados con herramientas se emparejan con campos de esquema de herramienta como `strict` y `defer_loading` | `400` que nombra el campo de esquema de herramienta no reconocido cuando el cuerpo pasa sin su encabezado. Para `defer_loading`, consulta [Reintento sin búsqueda de herramientas](#retry-without-tool-search) | Reenvía ambos, o [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |

220| [Esfuerzo](https://platform.claude.com/docs/en/build-with-claude/effort) y [salidas estructuradas](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | El campo de cuerpo `output_config` lleva el esfuerzo, el formato de salida estructurada y la configuración de presupuesto de tarea; cada uno se empareja con su propio encabezado beta | `400` que nombra `output_config`, a menudo `Extra inputs are not permitted`, en proveedores ascendentes Amazon Bedrock y Agent Platform de Google Cloud | Reenvía el campo y sus encabezados juntos, o haz que los desarrolladores establezcan [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities), que elimina la configuración de formato y de presupuesto de tarea, pero no el esfuerzo. Para eliminar solo el formato, pueden establecer [`CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS=1`](/docs/es/env-vars) en su lugar, lo que requiere v2.1.288 o posterior |224| [Esfuerzo](https://platform.claude.com/docs/en/build-with-claude/effort) y [salidas estructuradas](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | El campo de cuerpo `output_config` lleva el esfuerzo, el formato de salida estructurada y la configuración de presupuesto de tarea; cada uno se empareja con su propio encabezado beta | `400` que nombra `output_config`, a menudo `Extra inputs are not permitted`, en proveedores ascendentes Amazon Bedrock y Agent Platform de Google Cloud | Reenvía el campo y sus encabezados juntos, o haz que los desarrolladores establezcan [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities), que elimina la configuración de formato y de presupuesto de tarea, pero no el esfuerzo. Para eliminar solo el formato, pueden establecer [`CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS=1`](/docs/es/env-vars) en su lugar, lo que requiere v2.1.288 o posterior |

225| Mensajes del sistema a mitad de conversación | Sin encabezado beta. Claude Code envía parte del texto de recordatorios y adjuntos como entradas `role: "system"` en `messages` para Claude Opus 4.8, modelos lanzados después de él e IDs de modelo no reconocidos | `400` como `Unexpected role "system"` | Claude Code [reintenta sin mensajes del sistema](#automatic-retry-and-error-forwarding). Para detener los mensajes del sistema en un alias de un modelo lanzado antes de Claude Opus 4.8, agrega una [entrada `modelOverrides`](#settings-for-unrecognized-model-ids) a la configuración que distribuyes |

226| [Esfuerzo establecido por turno](/docs/es/prompt-caching#changing-effort-level) | En Opus 5.5, Sonnet 5.5, Haiku 5.5 y Fable 5.1, un encabezado beta se empareja con `output_config.effort` en entradas `role: "system"`, ya sea un mensaje del sistema o una entrada con contenido vacío | `400` con `messages.N: system content must contain at least one block` cuando tu gateway elimina el campo de una entrada vacía | Reenvía ambos, o haz que los desarrolladores establezcan [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) para detener el campo y las entradas vacías |

221| [Almacenamiento en caché de solicitudes](/docs/es/prompt-caching) | Sin emparejamiento beta. Claude Code adjunta marcadores `cache_control` a bloques `system` y a entradas `messages`, incluidas entradas `role: "system"` añadidas a mitad de conversación | Sin error: la conversación se factura como entrada sin caché en cada turno, visible como `input_tokens` alto con poca o ninguna actividad de caché en `usage` | Reenvíe `cache_control` sin cambios dondequiera que aparezca, y no convierta bloques de forma `system` o contenido de mensaje a cadenas simples |227| [Almacenamiento en caché de solicitudes](/docs/es/prompt-caching) | Sin emparejamiento beta. Claude Code adjunta marcadores `cache_control` a bloques `system` y a entradas `messages`, incluidas entradas `role: "system"` añadidas a mitad de conversación | Sin error: la conversación se factura como entrada sin caché en cada turno, visible como `input_tokens` alto con poca o ninguna actividad de caché en `usage` | Reenvíe `cache_control` sin cambios dondequiera que aparezca, y no convierta bloques de forma `system` o contenido de mensaje a cadenas simples |

222| [Conteo de tokens](https://platform.claude.com/docs/en/build-with-claude/token-counting) | Sin emparejamiento beta; utiliza el punto final `count_tokens` | Sin error: Claude Code vuelve a un estimado basado en caracteres, así que `/context` muestra conteos aproximados | Exponga el punto final para conteos de tokens exactos |228| [Conteo de tokens](https://platform.claude.com/docs/en/build-with-claude/token-counting) | Sin emparejamiento beta; utiliza el punto final `count_tokens` | Sin error: Claude Code vuelve a un estimado basado en caracteres, así que `/context` muestra conteos aproximados | Exponga el punto final para conteos de tokens exactos |

223 229 


225 231 

226### Reintento automático y reenvío de errores232### Reintento automático y reenvío de errores

227 233 

228Lo que Claude Code hace después de un rechazo ascendente depende de lo que fue rechazado:234Cuando el proveedor ascendente rechaza una de estas capacidades, Claude Code puede reintentar la solicitud por sí solo con la parte rechazada eliminada o modificada:

229 235 

230* Cuando el proveedor ascendente rechaza el campo `thinking`, un mensaje del sistema a mitad de conversación, o el marcador `cache_control` en tal mensaje, Claude Code reintenta la solicitud y deshabilita la capacidad rechazada para el resto de la conversación236* Cuando un `400` indica que el valor `enabled` o `adaptive` de `thinking.type` no es compatible, Claude Code reintenta una vez con el otro tipo y mantiene el campo `thinking`. Las solicitudes posteriores a ese modelo mantienen el tipo cambiado hasta que Claude Code se cierre. Antes de v2.1.121, Claude Code no reintentaba, así que [`thinking.type.enabled is not supported`](/docs/es/errors#thinking-type-enabled-is-not-supported-for-this-model) llegaba al desarrollador

237* Cuando el proveedor ascendente rechaza una entrada `role: "system"` dentro de `messages`, Claude Code reintenta una vez sin esos mensajes del sistema a mitad de conversación y lleva su texto en mensajes de usuario en su lugar. Las solicitudes posteriores de la conversación mantienen esa forma hasta que el desarrollador ejecute `/clear` o la conversación se compacte

238* Cuando el proveedor ascendente rechaza solo el marcador `cache_control` en un mensaje del sistema a mitad de conversación, Claude Code mantiene los mensajes del sistema y reintenta una vez con el marcador movido. El marcador va en la última entrada de `messages` que no sea un mensaje del sistema, en ese reintento y en las solicitudes posteriores hasta que Claude Code se cierre

231* Cuando el proveedor ascendente rechaza una [firma de pensamiento](https://platform.claude.com/docs/en/build-with-claude/extended-thinking), incluido con un `400` cuyo mensaje dice que el bloque está `bound to a different conversation`, Claude Code elimina bloques de pensamiento anteriores de la solicitud, reintenta, y los mantiene fuera de cada solicitud posterior. Las nuevas respuestas aún incluyen pensamiento239* Cuando el proveedor ascendente rechaza una [firma de pensamiento](https://platform.claude.com/docs/en/build-with-claude/extended-thinking), incluido con un `400` cuyo mensaje dice que el bloque está `bound to a different conversation`, Claude Code elimina bloques de pensamiento anteriores de la solicitud, reintenta, y los mantiene fuera de cada solicitud posterior. Las nuevas respuestas aún incluyen pensamiento

232* Cuando la puerta de enlace o su proveedor ascendente rechaza la entrada de [herramienta asesor](/docs/es/advisor) en `tools` como un tipo de herramienta no reconocido, Claude Code reintenta la solicitud una vez sin esa entrada y su valor `anthropic-beta`. Las solicitudes posteriores a esa URL base dejan el asesor fuera hasta que Claude Code se cierre, y `/advisor` no está disponible para el desarrollador durante ese tiempo. Claude Code reconoce este rechazo por una respuesta `400` o `422` cuyo mensaje nombra el tipo de herramienta después de `Input tag`, como `Input tag 'advisor_20260301'`. Antes de v2.1.280, Claude Code no reintentaba este rechazo240* Cuando la puerta de enlace o su proveedor ascendente rechaza la entrada de [herramienta asesor](/docs/es/advisor) en `tools` como un tipo de herramienta no reconocido, Claude Code reintenta la solicitud una vez sin esa entrada y su valor `anthropic-beta`. Las solicitudes posteriores a esa URL base dejan el asesor fuera hasta que Claude Code se cierre, y `/advisor` no está disponible para el desarrollador durante ese tiempo. Claude Code reconoce este rechazo por una respuesta `400` o `422` cuyo mensaje nombra el tipo de herramienta después de `Input tag`, como `Input tag 'advisor_20260301'`. Antes de v2.1.280, Claude Code no reintentaba este rechazo

233* Cuando el proveedor ascendente rechaza `output_config.effort`, Claude Code reintenta la solicitud sin el esfuerzo y lo deja fuera de las solicitudes posteriores a ese modelo hasta que Claude Code se cierre. Claude Code reconoce este rechazo por un `400` cuyo mensaje nombra `output_config.effort` junto con `Extra inputs are not permitted`, o dice que el modelo no admite el parámetro de esfuerzo241* Cuando el proveedor ascendente rechaza `output_config.effort`, Claude Code reintenta la solicitud sin el esfuerzo y lo deja fuera de las solicitudes posteriores a ese modelo hasta que Claude Code se cierre. Claude Code reconoce este rechazo por un `400` cuyo mensaje nombra `output_config.effort` junto con `Extra inputs are not permitted`, o dice que el modelo no admite el parámetro de esfuerzo

234* Claude Code no reintenta rechazos de gestión de contexto o campos de esquema de herramienta, así que esos errores `400` llegan al desarrollador242* Cuando el proveedor ascendente rechaza el campo `context_management` o su valor `anthropic-beta`, el gateway ve la solicitud una vez más sin ellos. Si el gateway vuelve a verlos en una solicitud posterior y el proveedor ascendente los rechaza de nuevo, se produce el mismo reintento. Claude Code reconoce este rechazo por su mensaje, por ejemplo uno que contiene `context_management: Extra inputs are not permitted`. Antes de v2.1.304, Claude Code no reintentaba este rechazo

243* Cuando el proveedor ascendente rechaza un campo de herramienta beta distinto de `defer_loading`, como `strict`, el `400` llega al desarrollador. Antes de que eso ocurra, el gateway puede volver a ver la solicitud [sin los campos de búsqueda de herramientas](#retry-without-tool-search). Para dejar de enviar esos campos, haz que los desarrolladores establezcan [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities)

235 244 

236El rechazo `bound to a different conversation` proviene de la verificación de [pensamiento preservado](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking) de la API, que falla cuando el contenido de `system`, `tools`, o `messages` anteriores difiere de la solicitud que produjo el pensamiento. Una puerta de enlace que reescribe cualquiera de ese contenido puede causar el rechazo en sí; [Bibliotecas, proxies y puertas de enlace](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#libraries-proxies-gateways) cubre qué pasar sin cambios.245El rechazo `bound to a different conversation` proviene de la verificación de [pensamiento preservado](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking) de la API, que falla cuando el contenido de `system`, `tools`, o `messages` anteriores difiere de la solicitud que produjo el pensamiento. Una puerta de enlace que reescribe cualquiera de ese contenido puede causar el rechazo en sí; [Bibliotecas, proxies y puertas de enlace](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#libraries-proxies-gateways) cubre qué pasar sin cambios.

237 246 

238La lógica de reintento coincide con la redacción del error del proveedor ascendente, así que reenvíe cuerpos de respuesta de error sin modificar. Una puerta de enlace que envuelve errores ascendentes en su propio sobre rompe la ruta de recuperación, incluso cuando preserva el código de estado, a menos que el mensaje del sobre lleve un token `capability_rejected:` estable. [La puerta de enlace de aplicaciones Claude sustituye esos tokens por la redacción de error de los proveedores de nube](/docs/es/claude-apps-gateway-config#upstream-error-messages), por ejemplo `capability_rejected: prompt_too_long`.247La mayor parte de esta lógica de reintento se basa en la redacción del error del proveedor ascendente, así que reenvía los cuerpos de respuesta de error sin modificar. Un gateway que envuelve errores ascendentes en su propio sobre rompe la ruta de recuperación, incluso cuando preserva el código de estado, a menos que el mensaje del sobre lleve un token `capability_rejected:` estable. [El gateway de aplicaciones de Claude sustituye la redacción de error de los proveedores de nube por esos tokens](/docs/es/claude-apps-gateway-config#upstream-error-messages), por ejemplo `capability_rejected: prompt_too_long`.

248 

249#### Reintento sin búsqueda de herramientas

250 

251En v2.1.305 o posterior, una solicitud que lleva [campos `defer_loading` y bloques `tool_reference`](/docs/es/mcp#tool-search-through-a-gateway) puede llegar de nuevo sin ellos después de un `400` o `422` cuya causa Claude Code no reconoce. Después de un reintento exitoso, las solicitudes posteriores también los omiten.

252 

253Las solicitudes del desarrollador siguen funcionando sin ningún cambio en el gateway, con sus herramientas MCP cargadas de antemano. Claude Code vuelve a intentar la búsqueda de herramientas más adelante, así que el gateway puede ver otra solicitud rechazada seguida de su reintento. Para mantener los campos fuera de todas las solicitudes, haz que los desarrolladores establezcan `ENABLE_TOOL_SEARCH=false`. Para la búsqueda de herramientas en sí, Claude Code espera que el gateway reenvíe los campos `defer_loading` y los bloques `tool_reference` con su valor `anthropic-beta`.

239 254 

240### Deshabilitar capacidades de pre-lanzamiento255### Deshabilitar capacidades de pre-lanzamiento

241 256 


250La variable no elimina todos los valores `anthropic-beta`. Lo que deja intacto incluye:265La variable no elimina todos los valores `anthropic-beta`. Lo que deja intacto incluye:

251 266 

252* Los valores `anthropic-beta` para contexto extendido, pensamiento intercalado y esfuerzo, que los proveedores de nube también aceptan267* Los valores `anthropic-beta` para contexto extendido, pensamiento intercalado y esfuerzo, que los proveedores de nube también aceptan

253* El campo `output_config.effort`. [Reintento automático y reenvío de errores](#automatic-retry-and-error-forwarding) cubre el caso de un proveedor ascendente que lo rechaza268* El campo `output_config.effort` de nivel superior. [Reintento automático y reenvío de errores](#automatic-retry-and-error-forwarding) cubre el caso de un proveedor ascendente que lo rechaza

254* El campo `thinking` del razonamiento adaptativo, que no tiene encabezado beta269* El campo `thinking` del razonamiento adaptativo, que no tiene encabezado beta

270* Las entradas `role: "system"` que llevan [mensajes del sistema a mitad de conversación](#feature-pass-through)

255* El valor `anthropic-beta` de OAuth que requiere la autenticación por suscripción271* El valor `anthropic-beta` de OAuth que requiere la autenticación por suscripción

256* Los valores de encabezado y campos de cuerpo que los propios desarrolladores agregan mediante [`ANTHROPIC_BETAS`](/docs/es/env-vars) o [`CLAUDE_CODE_EXTRA_BODY`](/docs/es/env-vars)272* Los valores de encabezado y campos de cuerpo que los propios desarrolladores agregan mediante [`ANTHROPIC_BETAS`](/docs/es/env-vars) o [`CLAUDE_CODE_EXTRA_BODY`](/docs/es/env-vars)

257 273 

Details

86 * **En un sandbox de VM completa**: cuando su configuración administrada de Claude Desktop establece [`requireCoworkFullVmSandbox`](https://claude.com/docs/third-party/claude-desktop/configuration#requirecoworkfullvmsandbox), Claude Code se ejecuta dentro de una máquina virtual donde la política MDM del dispositivo y el archivo de configuración administrada no están presentes.86 * **En un sandbox de VM completa**: cuando su configuración administrada de Claude Desktop establece [`requireCoworkFullVmSandbox`](https://claude.com/docs/third-party/claude-desktop/configuration#requirecoworkfullvmsandbox), Claude Code se ejecuta dentro de una máquina virtual donde la política MDM del dispositivo y el archivo de configuración administrada no están presentes.

87 * **Sesiones remotas de Cowork**: se ejecutan en máquinas virtuales administradas por Anthropic, donde Claude Code no tiene política de dispositivo para leer.87 * **Sesiones remotas de Cowork**: se ejecutan en máquinas virtuales administradas por Anthropic, donde Claude Code no tiene política de dispositivo para leer.

88 88 

89 Dondequiera que se ejecute la sesión, claude.ai aplica las listas [`strictKnownMarketplaces`](/docs/es/settings-reference#strictknownmarketplaces) y [`blockedMarketplaces`](/docs/es/settings-reference#blockedmarketplaces) de la consola de administración cuando alguien agrega un marketplace desde un repositorio de git en claude.ai o desde **Personalizar** en la pestaña Cowork. [Cómo funcionan las restricciones](/docs/es/plugins/org#restrict-what-users-can-install) describe esa verificación. La tabla [cobertura de superficie](/docs/es/model-config#surface-coverage) compara Cowork con las otras superficies.89 Dondequiera que se ejecute la sesión, claude.ai aplica por sí mismo las listas [`strictKnownMarketplaces`](/docs/es/settings-reference#strictknownmarketplaces) y [`blockedMarketplaces`](/docs/es/settings-reference#blockedmarketplaces) de la consola de administración cuando alguien agrega un marketplace desde un repositorio de git en claude.ai o desde **Personalizar** en Cowork. [Cómo funcionan las restricciones](/docs/es/plugins/org#restrict-what-users-can-install) describe esa verificación. La tabla [cobertura de superficie](/docs/es/model-config#surface-coverage) compara Cowork con las otras superficies.

90* **Sesiones en ejecución**: la mayoría de los cambios llegan a una sesión en ejecución en el cronograma de la [tabla de mecanismo de entrega](#choose-a-delivery-mechanism), sin un reinicio.90* **Sesiones en ejecución**: la mayoría de los cambios llegan a una sesión en ejecución en el cronograma de la [tabla de mecanismo de entrega](#choose-a-delivery-mechanism), sin un reinicio.

91 * Los cambios a [`forceRemoteSettingsRefresh`](/docs/es/settings-reference#forceremotesettingsrefresh), [`requiredMinimumVersion`](/docs/es/settings-reference#requiredminimumversion) y [algunas claves editables por el usuario](/docs/es/settings#when-edits-take-effect) surten efecto en el próximo inicio de sesión.91 * Los cambios a [`forceRemoteSettingsRefresh`](/docs/es/settings-reference#forceremotesettingsrefresh), [`requiredMinimumVersion`](/docs/es/settings-reference#requiredminimumversion) y [algunas claves editables por el usuario](/docs/es/settings#when-edits-take-effect) surten efecto en el próximo inicio de sesión.

92 * Una entrada [`policyHelper`](/docs/es/settings-reference#policyhelper) nueva o cambiada surte efecto en el próximo lanzamiento. Si la configuración administrada por servidor sombrea el asistente en ese lanzamiento, el asistente se ejecuta tan pronto como una obtención informa que esa configuración se ha eliminado.92 * Una entrada [`policyHelper`](/docs/es/settings-reference#policyhelper) nueva o cambiada surte efecto en el próximo lanzamiento. Si la configuración administrada por servidor sombrea el asistente en ese lanzamiento, el asistente se ejecuta tan pronto como una obtención informa que esa configuración se ha eliminado.

mcp.md +31 −7

Details

302Si tu solicitud necesita herramientas de un servidor que aún se está conectando en segundo plano, Claude espera a ese servidor antes de continuar. Cómo sucede la espera depende de tu configuración:302Si tu solicitud necesita herramientas de un servidor que aún se está conectando en segundo plano, Claude espera a ese servidor antes de continuar. Cómo sucede la espera depende de tu configuración:

303 303 

304* **Con [búsqueda de herramientas](#scale-with-mcp-tool-search), el valor predeterminado**: la espera sucede dentro de la llamada `ToolSearch`.304* **Con [búsqueda de herramientas](#scale-with-mcp-tool-search), el valor predeterminado**: la espera sucede dentro de la llamada `ToolSearch`.

305* **Sin búsqueda de herramientas**: Claude usa la herramienta `WaitForMcpServers` en su lugar. Las configuraciones sin búsqueda de herramientas incluyen un `ANTHROPIC_BASE_URL` personalizado, `ENABLE_TOOL_SEARCH=false`, y un modelo anterior a Claude Opus 4.5, Claude Sonnet 4.5 y Claude Haiku 4.5 en Agent Platform de Google Cloud.305* **Sin búsqueda de herramientas**: Claude usa la herramienta `WaitForMcpServers` en su lugar. Las configuraciones sin búsqueda de herramientas incluyen `ENABLE_TOOL_SEARCH=false` y un modelo anterior a Claude Opus 4.5, Claude Sonnet 4.5 y Claude Haiku 4.5 en Agent Platform de Google Cloud. Para un gateway `ANTHROPIC_BASE_URL`, consulta [Búsqueda de herramientas a través de un gateway de LLM](#tool-search-through-a-gateway).

306* **En un [despliegue de Microsoft Foundry alojado en Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)**: Claude comienza en la ruta de búsqueda de herramientas en lugar de con `WaitForMcpServers`, ya que Claude Code descubre el rechazo del lado del servidor del despliegue solo desde la API. Después de que Claude Code cambie ese despliegue a [carga anticipada](#scale-with-mcp-tool-search), las herramientas de un servidor que termina de conectarse quedan disponibles en la siguiente solicitud de Claude.306* **En un [despliegue de Microsoft Foundry alojado en Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)**: Claude comienza en la ruta de búsqueda de herramientas en lugar de con `WaitForMcpServers`, ya que Claude Code descubre el rechazo del lado del servidor del despliegue solo desde la API. Después de que Claude Code cambie ese despliegue a [carga anticipada](#scale-with-mcp-tool-search), las herramientas de un servidor que termina de conectarse quedan disponibles en la siguiente solicitud de Claude.

307 307 

308Con la búsqueda de herramientas habilitada, cuando un servidor termina de conectarse mientras Claude está trabajando, Claude Code enumera los nombres de herramientas del servidor a Claude en su siguiente solicitud dentro del mismo turno. Claude puede entonces buscar y llamar a esas herramientas sin esperar tu siguiente mensaje.308Con la búsqueda de herramientas habilitada, cuando un servidor termina de conectarse mientras Claude está trabajando, Claude Code enumera los nombres de herramientas del servidor a Claude en su siguiente solicitud dentro del mismo turno. Claude puede entonces buscar y llamar a esas herramientas sin esperar tu siguiente mensaje.


509 509 

510Los servidores de plugins aparecen en `/mcp` con indicadores que muestran que provienen de plugins.510Los servidores de plugins aparecen en `/mcp` con indicadores que muestran que provienen de plugins.

511 511 

512Para un servidor stdio de un plugin, `claude mcp get` imprime `Command: stdio`, una línea `Args:` vacía, y cada variable de entorno como `NAME=[REDACTED]`. Los valores están ocultos porque pueden contener credenciales.512`claude mcp get` oculta los valores configurados para el servidor stdio o WebSocket de un plugin, porque pueden contener credenciales:

513 

514* **Servidor stdio**: imprime `Command: stdio`, una línea `Args:` vacía, y cada variable de entorno como `NAME=[REDACTED]`

515* **Servidor WebSocket**: imprime `URL: ws` y cada encabezado como `<name>: [REDACTED]`, y `claude mcp list` muestra `ws` en lugar de la URL

516 

517Para ver lo que configuró el plugin, [busca el plugin en el disco](/docs/es/plugins/loading#find-plugins-on-disk) y lee su `.mcp.json` o `plugin.json`.

513 518 

514**Nombres de herramientas MCP de plugins**:519**Nombres de herramientas MCP de plugins**:

515 520 


592 597 

593Por razones de seguridad, Claude Code solicita aprobación en sesiones interactivas antes de usar servidores con alcance de proyecto desde archivos `.mcp.json`. Para restablecer esas opciones de aprobación, ejecute `claude mcp reset-project-choices`.598Por razones de seguridad, Claude Code solicita aprobación en sesiones interactivas antes de usar servidores con alcance de proyecto desde archivos `.mcp.json`. Para restablecer esas opciones de aprobación, ejecute `claude mcp reset-project-choices`.

594 599 

595En ejecuciones de `claude -p`, sesiones de [Agent SDK](/docs/es/headless) y [sesiones en la nube](/docs/es/claude-code-on-the-web), Claude Code no puede mostrar ese mensaje: carga servidores con alcance de proyecto sin preguntar. Claude Code también omite el mensaje en una sesión que inicia en modo `bypassPermissions` con [`skipDangerousModePermissionPrompt`](/docs/es/settings-reference#skipdangerousmodepermissionprompt) establecido en su configuración de usuario o en configuración administrada. Para mantener un servidor fuera de todas formas:600En ejecuciones de `claude -p`, sesiones de [Agent SDK](/docs/es/headless) y [sesiones en la nube](/docs/es/claude-code-on-the-web) fuera de un [proyecto](/docs/es/claude-projects#what-threads-pick-up-from-your-repositories), Claude Code no puede mostrar esa solicitud: carga servidores con alcance de proyecto sin preguntar. Claude Code también omite la solicitud en una sesión que inicias en modo `bypassPermissions` con [`skipDangerousModePermissionPrompt`](/docs/es/settings-reference#skipdangerousmodepermissionprompt) establecido en tu configuración de usuario o en configuración administrada. Para mantener un servidor fuera de todas formas:

596 601 

597* Agréguelo a [`disabledMcpjsonServers`](/docs/es/settings-reference#disabledmcpjsonservers), que lo bloquea en cada modo de permiso.602* Agréguelo a [`disabledMcpjsonServers`](/docs/es/settings-reference#disabledmcpjsonservers), que lo bloquea en cada modo de permiso.

598* Excluya la configuración del proyecto completamente con [`--setting-sources`](/docs/es/cli-reference#cli-flags) o la opción `settingSources` del SDK.603* Excluya la configuración del proyecto completamente con [`--setting-sources`](/docs/es/cli-reference#cli-flags) o la opción `settingSources` del SDK.


1483 1488 

1484### Configurar búsqueda de herramientas1489### Configurar búsqueda de herramientas

1485 1490 

1486La búsqueda de herramientas está habilitada de forma predeterminada: las herramientas MCP se difieren y se descubren bajo demanda. Claude Code la deshabilita cuando `ANTHROPIC_BASE_URL` apunta a un host que no es de primera parte, ya que la mayoría de los proxies no reenvían bloques `tool_reference`. Establece `ENABLE_TOOL_SEARCH` explícitamente para sobrescribir ese comportamiento de respaldo.1491La búsqueda de herramientas está habilitada de forma predeterminada: las herramientas MCP se difieren y se descubren bajo demanda.

1487 1492 

1488Configurar [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/es/env-vars) mantiene la búsqueda de herramientas desactivada. No puedes sobrescribirlo configurando `ENABLE_TOOL_SEARCH` tú mismo. En Claude Code v2.1.227 o posterior, tu organización puede mantener la búsqueda de herramientas activada bajo esta variable a través de la [configuración administrada](/docs/es/managed-settings). En una sesión que [obtiene la configuración HIPAA](/docs/es/hipaa-setup#check-how-developers-sign-in-and-connect), la búsqueda de herramientas está desactivada, y ni `ENABLE_TOOL_SEARCH` ni la configuración administrada la vuelven a activar. [Deshabilitar capacidades de pre-lanzamiento](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities) cubre dónde se aplica la sobrescritura y qué elimina la variable.1493Configurar [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/es/env-vars) mantiene la búsqueda de herramientas desactivada. No puedes sobrescribirlo configurando `ENABLE_TOOL_SEARCH` tú mismo. En Claude Code v2.1.227 o posterior, tu organización puede mantener la búsqueda de herramientas activada bajo esta variable a través de la [configuración administrada](/docs/es/managed-settings). En una sesión que [obtiene la configuración HIPAA](/docs/es/hipaa-setup#check-how-developers-sign-in-and-connect), la búsqueda de herramientas está desactivada, y ni `ENABLE_TOOL_SEARCH` ni la configuración administrada la vuelven a activar. [Deshabilitar capacidades de pre-lanzamiento](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities) cubre dónde se aplica la sobrescritura y qué elimina la variable.

1489 1494 


1500 1505 

1501| Valor | Comportamiento |1506| Valor | Comportamiento |

1502| :- | :- |1507| :- | :- |

1503| (sin establecer) | Todas las herramientas MCP diferidas y cargadas bajo demanda. Recurre a la carga por adelantado en modelos anteriores a Opus 4 y Sonnet 4, en modelos de Agent Platform de Google Cloud anteriores a Opus 4.5, Sonnet 4.5 y Haiku 4.5, cuando `ANTHROPIC_BASE_URL` es un host que no es de primera parte, o en un despliegue de Microsoft Foundry alojado en Azure |1508| (sin establecer) | Todas las herramientas MCP diferidas y cargadas bajo demanda. Se cargan por adelantado en modelos anteriores a Opus 4 y Sonnet 4, en los [modelos anteriores de Agent Platform](#configure-tool-search) y en los despliegues de Microsoft Foundry alojados en Azure |

1504| `true` | Las herramientas MCP permanecen diferidas cuando `ANTHROPIC_BASE_URL` es un host que no es de primera parte. Los demás casos de respaldo de (sin establecer) siguen aplicándose. Claude Code envía el encabezado beta a través de proxies, y las solicitudes fallan en proxies que no admiten bloques `tool_reference` |1509| `true` | Herramientas MCP diferidas, con los mismos casos de respaldo que (sin establecer) |

1505| `auto` | Modo de umbral: Claude Code carga por adelantado las herramientas que de otro modo diferiría mientras sus definiciones totalizan menos del 10% de la ventana de contexto, y las difiere todas una vez que las definiciones alcanzan el 10% |1510| `auto` | Modo de umbral. Las herramientas que de otro modo se diferirían se cargan por adelantado mientras sus definiciones totalizan menos del 10% de la ventana de contexto. Al llegar al 10% o más, la búsqueda de herramientas se activa, y esas herramientas pueden [permanecer diferidas](#tools-that-stay-deferred-below-the-threshold) aunque el total baje de nuevo por debajo del 10% |

1506| `auto:N` | Modo de umbral con un porcentaje personalizado, donde `N` es 0-100. Por ejemplo, `auto:5` para 5% |1511| `auto:N` | Modo de umbral con un porcentaje personalizado, donde `N` es 0-100. Por ejemplo, `auto:5` para 5% |

1507| `false` | Todas las herramientas MCP cargadas por adelantado, sin diferimiento |1512| `false` | Todas las herramientas MCP cargadas por adelantado, sin diferimiento |

1508 1513 


1526}1531}

1527```1532```

1528 1533 

1534Si deniegas `ToolSearch` o lo omites de [`--tools`](/docs/es/cli-reference#cli-flags), las herramientas MCP se cargan por adelantado en su lugar, pero una solicitud aún puede llevar una entrada `defer_loading` de marcador de posición. Si un gateway rechaza esa entrada, consulta [Búsqueda de herramientas a través de un gateway de LLM](#tool-search-through-a-gateway).

1535 

1536#### Búsqueda de herramientas a través de un gateway de LLM

1537 

1538> [!NOTE]

1539>

1540> Estos casos se tratan en otros lugares:

1541>

1542> * **Configuraste `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`**: consulta [cómo afecta a la búsqueda de herramientas](#configure-tool-search)

1543> * **Una solicitud falló con un error que menciona `defer_loading` o `tool_reference`**: consulta [Extra inputs are not permitted](/docs/es/errors#extra-inputs-are-not-permitted)

1544 

1545Cuando `ANTHROPIC_BASE_URL` apunta a un gateway, la búsqueda de herramientas está activada de forma predeterminada, por lo que las solicitudes incluyen campos de herramienta `defer_loading` y bloques `tool_reference` para que el gateway los reenvíe. Mientras la búsqueda de herramientas está activada, las herramientas MCP se [difieren](#scale-with-mcp-tool-search). Para cargar todas las herramientas por adelantado en su lugar, establece `ENABLE_TOOL_SEARCH=false` en tu shell o en el [`env` de tu configuración](/docs/es/settings-reference#env). Antes de v2.1.304, la búsqueda de herramientas estaba desactivada detrás de un gateway a menos que `ENABLE_TOOL_SEARCH` fuera `true`, `auto` o `auto:N`.

1546 

1547En v2.1.305 o posterior, Claude Code puede [reintentar una solicitud sin búsqueda de herramientas](/docs/es/llm-gateway-protocol#retry-without-tool-search) después de un `400` o `422` cuya causa no reconoce. Cuando el reintento funciona, no aparece nada en pantalla y no necesitas hacer nada: las herramientas MCP se cargan por adelantado en su lugar. Claude Code vuelve a intentar la búsqueda de herramientas más tarde, a costa de otra solicitud rechazada. Para omitir esas solicitudes, establece `ENABLE_TOOL_SEARCH=false`.

1548 

1549#### Herramientas que permanecen diferidas por debajo del umbral de `ENABLE_TOOL_SEARCH=auto`

1550 

1551Si [`/context`](/docs/es/commands#all-commands) etiqueta herramientas como `(deferred)` o `(loaded on-demand)` aunque sus definiciones totalicen menos que el umbral de `auto`, la búsqueda de herramientas ya estaba activada en esta conversación y siguió activada. El total puede bajar más tarde, por ejemplo mientras los servidores MCP se reconectan después de que reanudas una sesión. No necesitas hacer nada: Claude carga cada una de esas herramientas cuando una tarea la necesita.

1552 

1529### Eximir un servidor del diferimiento1553### Eximir un servidor del diferimiento

1530 1554 

1531Si las herramientas de un servidor siempre deben ser visibles para Claude sin un paso de búsqueda, establece `alwaysLoad` en `true` en la configuración de ese servidor. Las herramientas del servidor se cargan entonces en el contexto independientemente del ajuste `ENABLE_TOOL_SEARCH`. Úsalo para un pequeño número de herramientas que Claude necesita en cada turno, ya que cada herramienta cargada por adelantado consume contexto que de otro modo estaría disponible para tu conversación.1555Si las herramientas de un servidor siempre deben ser visibles para Claude sin un paso de búsqueda, establece `alwaysLoad` en `true` en la configuración de ese servidor. Las herramientas del servidor se cargan entonces en el contexto independientemente del ajuste `ENABLE_TOOL_SEARCH`. Úsalo para un pequeño número de herramientas que Claude necesita en cada turno, ya que cada herramienta cargada por adelantado consume contexto que de otro modo estaría disponible para tu conversación.

Details

278* **Aplicación de escritorio de Claude Code**: agregue servidores a través de la [IU de Conectores](/docs/es/desktop#connect-external-tools).278* **Aplicación de escritorio de Claude Code**: agregue servidores a través de la [IU de Conectores](/docs/es/desktop#connect-external-tools).

279* **Aplicación de chat de Claude Desktop**: una aplicación separada de Claude Code. Para copiar servidores de su `claude_desktop_config.json` en la CLI, ejecute `claude mcp add-from-claude-desktop` en macOS o WSL.279* **Aplicación de chat de Claude Desktop**: una aplicación separada de Claude Code. Para copiar servidores de su `claude_desktop_config.json` en la CLI, ejecute `claude mcp add-from-claude-desktop` en macOS o WSL.

280* **VS Code**: consulte [Conectarse a herramientas externas con MCP](/docs/es/vs-code#connect-to-external-tools-with-mcp).280* **VS Code**: consulte [Conectarse a herramientas externas con MCP](/docs/es/vs-code#connect-to-external-tools-with-mcp).

281* **Sesiones en la nube**: confirme un `.mcp.json` en su repositorio; una sesión con un repositorio lo carga. Consulte [Editar .mcp.json directamente](#edit-mcp-json-directly) y [Qué se transfiere de su configuración](/docs/es/cloud-environments#what-carries-over-from-your-setup).281* **Sesiones en la nube**: fuera de un [proyecto](/docs/es/claude-projects#what-threads-pick-up-from-your-repositories), haz commit de un `.mcp.json` en tu repositorio; una sesión con un repositorio lo carga. Los hilos en la nube de un proyecto usan en su lugar tus conectores de claude.ai. Consulta [Editar .mcp.json directamente](#edit-mcp-json-directly) y [Qué se transfiere de tu configuración](/docs/es/cloud-environments#what-carries-over-from-your-setup).

282* **Claude.ai**: los conectores que agrega en [claude.ai/customize/connectors](https://claude.ai/customize/connectors) se cargan automáticamente en la CLI cuando inicia sesión con esa cuenta. Consulte [Usar servidores MCP desde Claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai).282* **Claude.ai**: los conectores que agrega en [claude.ai/customize/connectors](https://claude.ai/customize/connectors) se cargan automáticamente en la CLI cuando inicia sesión con esa cuenta. Consulte [Usar servidores MCP desde Claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai).

283 283 

284## Solución de problemas284## Solución de problemas

memory.md +10 −5

Details

208 208 

209Las reglas sin un campo `paths` se cargan incondicionalmente y se aplican a todos los archivos. Una regla con alcance de ruta se carga cuando Claude usa la herramienta Read, Write o Edit en un archivo coincidente. También se carga cuando Claude ve un archivo coincidente con un comando de Bash que [cuenta como lectura](/docs/es/tools-reference#edit-tool-behavior), como `cat` o `head` sobre un solo archivo. La coincidencia también funciona cuando Claude llega a un archivo a través de una ruta enlazada simbólicamente al directorio del proyecto, por ejemplo en un checkout enlazado simbólicamente.209Las reglas sin un campo `paths` se cargan incondicionalmente y se aplican a todos los archivos. Una regla con alcance de ruta se carga cuando Claude usa la herramienta Read, Write o Edit en un archivo coincidente. También se carga cuando Claude ve un archivo coincidente con un comando de Bash que [cuenta como lectura](/docs/es/tools-reference#edit-tool-behavior), como `cat` o `head` sobre un solo archivo. La coincidencia también funciona cuando Claude llega a un archivo a través de una ruta enlazada simbólicamente al directorio del proyecto, por ejemplo en un checkout enlazado simbólicamente.

210 210 

211Cada patrón es relativo al directorio base de la regla:

212 

213* **Reglas de proyecto**: el directorio que contiene la carpeta `.claude` de la regla

214* **[Reglas a nivel de usuario](#user-level-rules)**: el [directorio de trabajo principal](/docs/es/permissions#working-directories) de la sesión

215 

216Para que las reglas con alcance de ruta se carguen para archivos en un git worktree hermano, inicia Claude Code en ese worktree o [mueve la sesión allí con `/cd`](/docs/es/permissions#move-the-session-to-another-directory).

217 

211Usa patrones glob en el campo `paths` para hacer coincidir archivos por extensión, directorio o cualquier combinación:218Usa patrones glob en el campo `paths` para hacer coincidir archivos por extensión, directorio o cualquier combinación:

212 219 

213| Patrón | Coincide con |220| Patrón | Coincide con |


279 286 

280#### Implementa un CLAUDE.md para toda la organización287#### Implementa un CLAUDE.md para toda la organización

281 288 

282Las organizaciones pueden implementar un CLAUDE.md administrado centralmente que se aplique a todos los usuarios de una máquina. Este archivo no puede excluirse mediante la configuración individual.289Las organizaciones pueden implementar un CLAUDE.md administrado centralmente que se aplique a todos los usuarios de una máquina. Los desarrolladores pueden [excluir otros archivos CLAUDE.md](#exclude-specific-claude-md-files) con el ajuste `claudeMdExcludes`, pero no este. Si un desarrollador inicia una sesión con la carga de CLAUDE.md desactivada por completo, esa sesión tampoco carga el contenido administrado. Usa el archivo para la orientación y aplica las reglas con la [configuración administrada](/docs/es/managed-settings), como `permissions.deny`.

283 290 

284**1. Crea el archivo en la ubicación de política administrada**291**1. Crea el archivo en la ubicación de política administrada**

285 292 


293 300 

294La clave `claudeMd` te permite poner contenido de CLAUDE.md administrado directamente dentro de `managed-settings.json` en lugar de implementar un archivo separado.301La clave `claudeMd` te permite poner contenido de CLAUDE.md administrado directamente dentro de `managed-settings.json` en lugar de implementar un archivo separado.

295 302 

296**Alcance**: cada sesión de Claude Code en la máquina, en cada repositorio. Para orientación específica de un repositorio, haz commit de un CLAUDE.md de proyecto en su lugar.303**Alcance**: todos los usuarios de la máquina, en cualquier repositorio. Para orientación específica de un repositorio, haz commit de un CLAUDE.md de proyecto en su lugar.

297 304 

298**Precedencia**: la misma que un archivo CLAUDE.md administrado. Se carga antes que los CLAUDE.md de usuario y de proyecto.305**Precedencia**: la misma que un archivo CLAUDE.md administrado. Se carga antes que los CLAUDE.md de usuario y de proyecto.

299 306 


323 330 

324#### Excluye archivos CLAUDE.md específicos331#### Excluye archivos CLAUDE.md específicos

325 332 

326En monorepos grandes, los archivos CLAUDE.md de directorios superiores pueden contener instrucciones que no son relevantes para tu trabajo. El ajuste `claudeMdExcludes` te permite omitir archivos específicos por ruta o patrón glob.333En monorepos grandes, los archivos CLAUDE.md de directorios superiores pueden contener instrucciones que no son relevantes para tu trabajo. El ajuste `claudeMdExcludes` te permite omitir archivos específicos por ruta o patrón glob. No puedes excluir un [archivo CLAUDE.md administrado](#deploy-organization-wide-claude-md) con `claudeMdExcludes`.

327 334 

328Este ejemplo excluye un CLAUDE.md de nivel superior y un directorio de reglas de una carpeta principal. Agrégalo a `.claude/settings.local.json` para que la exclusión se mantenga local en tu máquina:335Este ejemplo excluye un CLAUDE.md de nivel superior y un directorio de reglas de una carpeta principal. Agrégalo a `.claude/settings.local.json` para que la exclusión se mantenga local en tu máquina:

329 336 


340 347 

341Para excluir un archivo de reglas al que llegas a través de un [enlace simbólico](#share-rules-across-projects-with-symlinks), ya sea que el enlace sea el archivo o su directorio, escribe el patrón contra cualquiera de las dos rutas: la ruta del archivo bajo `.claude/rules/` o el destino del enlace. Un patrón que coincida con cualquiera de las dos rutas excluye el archivo. Antes de v2.1.239, solo un patrón que coincidiera con el destino del enlace excluía el archivo.348Para excluir un archivo de reglas al que llegas a través de un [enlace simbólico](#share-rules-across-projects-with-symlinks), ya sea que el enlace sea el archivo o su directorio, escribe el patrón contra cualquiera de las dos rutas: la ruta del archivo bajo `.claude/rules/` o el destino del enlace. Un patrón que coincida con cualquiera de las dos rutas excluye el archivo. Antes de v2.1.239, solo un patrón que coincidiera con el destino del enlace excluía el archivo.

342 349 

343Los archivos CLAUDE.md de política administrada no pueden excluirse. Esto garantiza que las instrucciones de toda la organización siempre se apliquen, independientemente de la configuración individual.

344 

345## AGENTS.md350## AGENTS.md

346 351 

347Claude Code puede leer [`AGENTS.md`](/docs/es/glossary#agents-md) como sus instrucciones de proyecto, por lo que un repositorio ya configurado para otros agentes de codificación funciona sin agregar un `CLAUDE.md`, una importación o una configuración. Esta tabla muestra lo que Claude lee de forma predeterminada para cada combinación de archivos de instrucciones en su repositorio:352Claude Code puede leer [`AGENTS.md`](/docs/es/glossary#agents-md) como sus instrucciones de proyecto, por lo que un repositorio ya configurado para otros agentes de codificación funciona sin agregar un `CLAUDE.md`, una importación o una configuración. Esta tabla muestra lo que Claude lee de forma predeterminada para cada combinación de archivos de instrucciones en su repositorio:

model-config.md +6 −2

Details

441 441 

442Su organización puede limitar el [nivel de esfuerzo](#adjust-effort-level) de dos formas. En un plan Claude Enterprise, los administradores de la organización establecen límites de esfuerzo por rol, descritos a continuación. En cualquier plan y cualquier proveedor, incluidos Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, la configuración administrada [`maxEffortLevel`](/docs/es/settings-reference#maxeffortlevel) limita el esfuerzo en el cliente. Cuando ambos se aplican a un modelo, se aplica el límite más bajo.442Su organización puede limitar el [nivel de esfuerzo](#adjust-effort-level) de dos formas. En un plan Claude Enterprise, los administradores de la organización establecen límites de esfuerzo por rol, descritos a continuación. En cualquier plan y cualquier proveedor, incluidos Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, la configuración administrada [`maxEffortLevel`](/docs/es/settings-reference#maxeffortlevel) limita el esfuerzo en el cliente. Cuando ambos se aplican a un modelo, se aplica el límite más bajo.

443 443 

444Los administradores de la organización en planes Claude Enterprise pueden establecer un [nivel de esfuerzo](#adjust-effort-level) máximo por modelo para cada rol personalizado, junto con [restricciones de modelo de la organización](#organization-model-restrictions) a nivel de rol. Los niveles por encima del límite no se ofrecen en el selector `/effort`, y nombrar un nivel superior con `--effort` o `/effort` se ejecuta en el límite en su lugar. En sesiones interactivas y ejecuciones simples de texto `--print`, una advertencia nombra los niveles solicitados y aplicados; con salida `json` o `stream-json` o en agentes en segundo plano, el límite se aplica silenciosamente. Los límites son por modelo, por lo que cambiar de modelo puede cambiar qué niveles están disponibles. Cuando varios de sus roles otorgan el mismo modelo, se aplica el límite menos restrictivo. Requiere Claude Code v2.1.195 o posterior.444Los administradores de la organización en planes Claude Enterprise pueden establecer un [nivel de esfuerzo](#adjust-effort-level) máximo por modelo para cada rol personalizado, junto con [restricciones de modelo de la organización](#organization-model-restrictions) a nivel de rol. Requiere Claude Code v2.1.195 o posterior.

445 

446* Los niveles por encima del límite no se ofrecen en el selector `/effort`, y si indicas un nivel superior con `--effort` o `/effort`, se ejecuta en el límite en su lugar. Si inicias una ejecución `--print` de texto simple con `--effort` por encima del límite, una advertencia en stderr nombra los niveles solicitados y aplicados. En sesiones interactivas, con salida `json` o `stream-json`, o en agentes en segundo plano, esa advertencia va al [registro de depuración](/docs/es/errors#configuration-warnings) en su lugar.

447* Los límites son por modelo, por lo que cambiar de modelo puede cambiar qué niveles están disponibles.

448* Cuando varios de tus roles otorgan el mismo modelo, se aplica el límite menos restrictivo.

445 449 

446Los límites de esfuerzo se entregan junto con [restricciones de modelo de la organización](#organization-model-restrictions) y llegan a las mismas sesiones.450Los límites de esfuerzo se entregan junto con [restricciones de modelo de la organización](#organization-model-restrictions) y llegan a las mismas sesiones.

447 451 


843* Si Claude Code no puede resolver una grafía de proveedor o personalizada a un modelo que reconoce y el ID no contiene `[1m]`, la variable se aplica directamente y la compactación proactiva continúa en la ventana declarada.847* Si Claude Code no puede resolver una grafía de proveedor o personalizada a un modelo que reconoce y el ID no contiene `[1m]`, la variable se aplica directamente y la compactación proactiva continúa en la ventana declarada.

844* Si Claude Code no puede resolver una grafía de proveedor o personalizada a un modelo que reconoce y el ID contiene `[1m]`, sin distinguir mayúsculas de minúsculas, Claude Code asume una ventana de 1M para él y la variable no se aplica por sí sola. Para corregir la ventana manteniendo la compactación proactiva, establece también [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/es/env-vars). Con esa variable establecida, Claude Code dimensiona el ID como la misma grafía sin `[1m]`, por lo que `CLAUDE_CODE_MAX_CONTEXT_TOKENS` se aplica cuando se aplicaría a esa grafía sin etiquetar.848* Si Claude Code no puede resolver una grafía de proveedor o personalizada a un modelo que reconoce y el ID contiene `[1m]`, sin distinguir mayúsculas de minúsculas, Claude Code asume una ventana de 1M para él y la variable no se aplica por sí sola. Para corregir la ventana manteniendo la compactación proactiva, establece también [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/es/env-vars). Con esa variable establecida, Claude Code dimensiona el ID como la misma grafía sin `[1m]`, por lo que `CLAUDE_CODE_MAX_CONTEXT_TOKENS` se aplica cuando se aplicaría a esa grafía sin etiquetar.

845 849 

846 Con una ventana declarada superior a 200K, Claude Code muestra entonces una [advertencia de inicio](/docs/es/errors#the-200k-limit-isnt-enforced) de que el límite de 200K no se aplica. La advertencia es esperada en esta configuración.850 Con una ventana declarada superior a 200K, la advertencia de que [el límite de 200K no se aplica](/docs/es/errors#the-200k-limit-isnt-enforced) es esperada en esta configuración.

847* Si el ID se resuelve a un modelo que Claude Code reconoce, o el ID es un nombre `claude-` simple sin sufijo que Claude Code deba eliminar, sin distinguir mayúsculas de minúsculas, la variable tiene efecto solo cuando también estableces [`DISABLE_COMPACT`](/docs/es/env-vars), que desactiva toda compactación.851* Si el ID se resuelve a un modelo que Claude Code reconoce, o el ID es un nombre `claude-` simple sin sufijo que Claude Code deba eliminar, sin distinguir mayúsculas de minúsculas, la variable tiene efecto solo cuando también estableces [`DISABLE_COMPACT`](/docs/es/env-vars), que desactiva toda compactación.

848 852 

849 Por ejemplo, un ID que contiene un nombre de modelo Claude que Claude Code conoce, como `anthropic/claude-opus-4-8`, `us.anthropic.claude-…-v1:0`, o el fechado `claude-sonnet-4-5@20250929`, se resuelve a ese modelo. Esto incluye IDs que también contienen `[1m]`: Claude Code resuelve `claude-opus-4-8[1m]` a Opus 4.8 incluso con `CLAUDE_CODE_DISABLE_1M_CONTEXT` establecida.853 Por ejemplo, un ID que contiene un nombre de modelo Claude que Claude Code conoce, como `anthropic/claude-opus-4-8`, `us.anthropic.claude-…-v1:0`, o el fechado `claude-sonnet-4-5@20250929`, se resuelve a ese modelo. Esto incluye IDs que también contienen `[1m]`: Claude Code resuelve `claude-opus-4-8[1m]` a Opus 4.8 incluso con `CLAUDE_CODE_DISABLE_1M_CONTEXT` establecida.

Details

220| `claude.ai` | Autenticación de cuenta de claude.ai |220| `claude.ai` | Autenticación de cuenta de claude.ai |

221| `claude.com` | El inicio de sesión de la cuenta de claude.ai abre una página `claude.com` en el navegador, que redirige a `claude.ai`; las búsquedas de documentación de WebFetch preaprobadas también llegan a este host desde la CLI |221| `claude.com` | El inicio de sesión de la cuenta de claude.ai abre una página `claude.com` en el navegador, que redirige a `claude.ai`; las búsquedas de documentación de WebFetch preaprobadas también llegan a este host desde la CLI |

222| `platform.claude.com` | Autenticación de cuenta de Anthropic Console. El intercambio, actualización y revocación de tokens OAuth también van a este host para cuentas de claude.ai, por lo que tanto los inicios de sesión de Console como de claude.ai lo requieren |222| `platform.claude.com` | Autenticación de cuenta de Anthropic Console. El intercambio, actualización y revocación de tokens OAuth también van a este host para cuentas de claude.ai, por lo que tanto los inicios de sesión de Console como de claude.ai lo requieren |

223| `sso.claude.com` | Parte del flujo de inicio de sesión en el navegador para organizaciones que usan inicio de sesión único (SSO). Si un proxy bloquea este host, esos inicios de sesión pueden fallar |

223| `mcp-proxy.anthropic.com` | [Conectores MCP desde claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai), incluidos los conectores que configura un administrador de la organización. El tráfico de conectores se enruta a través de este proxy; los conectores están habilitados de forma predeterminada para usuarios autenticados en claude.ai. Para evitar que Claude Code los obtenga, establezca [`ENABLE_CLAUDEAI_MCP_SERVERS=false`](/docs/es/env-vars) o la configuración [`disableClaudeAiConnectors`](/docs/es/settings-reference#disableclaudeaiconnectors) |224| `mcp-proxy.anthropic.com` | [Conectores MCP desde claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai), incluidos los conectores que configura un administrador de la organización. El tráfico de conectores se enruta a través de este proxy; los conectores están habilitados de forma predeterminada para usuarios autenticados en claude.ai. Para evitar que Claude Code los obtenga, establezca [`ENABLE_CLAUDEAI_MCP_SERVERS=false`](/docs/es/env-vars) o la configuración [`disableClaudeAiConnectors`](/docs/es/settings-reference#disableclaudeaiconnectors) |

224| `downloads.claude.ai` | Descargas de ejecutables de plugins; instalador nativo, actualizador automático nativo y verificaciones de versión de actualización |225| `downloads.claude.ai` | Descargas de ejecutables de plugins; instalador nativo, actualizador automático nativo y verificaciones de versión de actualización |

225| `storage.googleapis.com` | Recuentos de instalación de plugins y metadatos mostrados en `/plugin` |226| `storage.googleapis.com` | Recuentos de instalación de plugins y metadatos mostrados en `/plugin` |

overview.md +5 −5

Details

22 22 

23**macOS, Linux, WSL:**23**macOS, Linux, WSL:**

24 24 

25```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}25```bash theme={null}

26curl -fsSL https://claude.ai/install.sh | bash26curl -fsSL https://claude.ai/install.sh | bash

27```27```

28 28 


30 30 

31**Windows PowerShell:**31**Windows PowerShell:**

32 32 

33```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}33```powershell theme={null}

34irm https://claude.ai/install.ps1 | iex34irm https://claude.ai/install.ps1 | iex

35```35```

36 36 

37**Windows CMD:**37**Windows CMD:**

38 38 

39```batch theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}39```batch theme={null}

40curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd40curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

41```41```

42 42 


54 54 

55**Homebrew**55**Homebrew**

56 56 

57```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}57```bash theme={null}

58brew install --cask claude-code58brew install --cask claude-code

59```59```

60 60 


66 66 

67**WinGet**67**WinGet**

68 68 

69```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}69```powershell theme={null}

70winget install Anthropic.ClaudeCode70winget install Anthropic.ClaudeCode

71```71```

72 72 

Details

172 172 

173Observa la barra de estado en este clip de una sesión que comenzó en modo automático. Cada vez que presionas `Shift+Tab`, cambia de `auto mode on` a `manual mode on`, `accept edits on`, `plan mode on` y de vuelta a `auto mode on`.173Observa la barra de estado en este clip de una sesión que comenzó en modo automático. Cada vez que presionas `Shift+Tab`, cambia de `auto mode on` a `manual mode on`, `accept edits on`, `plan mode on` y de vuelta a `auto mode on`.

174 174 

175<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/oa7CKjMeIChox26S/images/permission-modes-cycle-light.mp4?fit=max&auto=format&n=oa7CKjMeIChox26S&q=85&s=198ca90aeb2e3675b3d01b7d686aab0b" aria-label="La barra de estado debajo del prompt de Claude Code cambia con cada pulsación de Shift+Tab: auto mode on, manual mode on, accept edits on, plan mode on y luego auto mode on de nuevo." />175<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/tA-x-5L2YsYSVdee/images/permission-modes-cycle-light.mp4?fit=max&auto=format&n=tA-x-5L2YsYSVdee&q=85&s=3927dd62d59b01efd81b3578f2a6f971" aria-label="La barra de estado debajo del prompt de Claude Code cambia con cada pulsación de Shift+Tab: auto mode on, manual mode on, accept edits on, plan mode on y luego auto mode on de nuevo." />

176 176 

177No todos los modos están en el ciclo predeterminado:177No todos los modos están en el ciclo predeterminado:

178 178 


236* **Auto**: aparece cuando [modo automático está disponible](#eliminate-prompts-with-auto-mode)236* **Auto**: aparece cuando [modo automático está disponible](#eliminate-prompts-with-auto-mode)

237* **Omitir permisos**: requiere el toggle **Allow bypass permissions mode** en la configuración de Desktop en planes Pro y Max; en planes Team y Enterprise, la política de la organización lo controla en su lugar237* **Omitir permisos**: requiere el toggle **Allow bypass permissions mode** en la configuración de Desktop en planes Pro y Max; en planes Team y Enterprise, la política de la organización lo controla en su lugar

238 238 

239La pestaña Cowork no utiliza estos modos. Cowork tiene sus propios modos de permisos, habilitados por separado, y la pestaña Cowork no muestra ningún selector de modo en absoluto hasta que un modo más allá de su predeterminado está habilitado para su cuenta. Consulte la [documentación de Cowork](https://claude.com/docs/cowork/overview).239Cowork no utiliza estos modos. Tiene sus propios modos de permisos, habilitados por separado, y no muestra ningún selector de modo en absoluto hasta que se habilita para tu cuenta un modo distinto de su predeterminado. Consulta la [documentación de Cowork](https://claude.com/docs/cowork/overview).

240 240 

241Para detalles específicos de desktop, consulte [Elegir un modo de permisos](/docs/es/desktop#choose-a-permission-mode) en la guía de Desktop.241Para detalles específicos de desktop, consulte [Elegir un modo de permisos](/docs/es/desktop#choose-a-permission-mode) en la guía de Desktop.

242 242 


579>579>

580> Un [mod](/docs/es/plugins/mods/overview) que instales y que gestione `tool.check` también puede aprobar una acción. Para los casos en que su aprobación no supera tus reglas y hooks, consulta [Extender permisos con hooks](/docs/es/permissions#precedence-among-rules-hooks-and-mods).580> Un [mod](/docs/es/plugins/mods/overview) que instales y que gestione `tool.check` también puede aprobar una acción. Para los casos en que su aprobación no supera tus reglas y hooks, consulta [Extender permisos con hooks](/docs/es/permissions#precedence-among-rules-hooks-and-mods).

581>581>

582> En la extensión de VS Code, la forma en que se aprueban las acciones del navegador de [Claude in Chrome](/docs/es/chrome) depende de cómo se conectó la sesión al navegador: consulta [Solicitudes de permiso en sesiones de VS Code](/docs/es/chrome#permission-prompts-in-vs-code-sessions).582> Para saber cómo se aprueban las acciones del navegador de [Claude in Chrome](/docs/es/chrome) en la extensión de VS Code, consulta [Solicitudes de permiso en sesiones de VS Code](/docs/es/chrome#permission-prompts-in-vs-code-sessions).

583>583>

584> Al entrar en modo automático, se descartan las reglas de permitir amplias que otorgan ejecución de código arbitrario:584> Al entrar en modo automático, se descartan las reglas de permitir amplias que otorgan ejecución de código arbitrario:

585>585>


667* **Si acepta**: Claude Code establece `skipDangerousModePermissionPrompt` en `true` en `~/.claude/settings.json`, por lo que las sesiones posteriores omiten el diálogo. Para ver el diálogo nuevamente, elimine la clave de ese archivo o establézcala en `false`. La [referencia `skipDangerousModePermissionPrompt`](/docs/es/settings-reference#skipdangerousmodepermissionprompt) enumera los otros archivos de configuración donde usted u su organización pueden establecerla.667* **Si acepta**: Claude Code establece `skipDangerousModePermissionPrompt` en `true` en `~/.claude/settings.json`, por lo que las sesiones posteriores omiten el diálogo. Para ver el diálogo nuevamente, elimine la clave de ese archivo o establézcala en `false`. La [referencia `skipDangerousModePermissionPrompt`](/docs/es/settings-reference#skipdangerousmodepermissionprompt) enumera los otros archivos de configuración donde usted u su organización pueden establecerla.

668* **Si rechaza**: Claude Code sale.668* **Si rechaza**: Claude Code sale.

669 669 

670En [modo no interactivo](/docs/es/headless) no se muestra ningún diálogo. Una [sesión en segundo plano](/docs/es/agent-view) respeta tu aceptación cuando está registrada en la configuración de usuario o en la configuración administrada:670En [modo no interactivo](/docs/es/headless) no se muestra ningún diálogo.

671 

672Una [sesión en segundo plano](/docs/es/agent-view) respeta tu aceptación cuando está registrada en la configuración de usuario o en la configuración administrada:

673 

674* Si no hay ninguna aceptación registrada, `claude --bg --permission-mode bypassPermissions` se rechaza. Acepta primero el diálogo en una sesión interactiva.

675* Si `skipDangerousModePermissionPrompt` está establecido solo en `.claude/settings.local.json`, la sesión en segundo plano se inicia con [la solicitud de omisión ignorada](#bypass-permissions-ignored-in-a-background-session):

671 676 

672* Si no hay ninguna aceptación registrada, `claude --bg --permission-mode bypassPermissions` se rechaza hasta que aceptes el diálogo en una sesión interactiva.

673* Si `skipDangerousModePermissionPrompt` está establecido solo en `.claude/settings.local.json`, la sesión en segundo plano se inicia ignorando la solicitud de omisión y fija el aviso `Bypass permissions was requested at launch and ignored · if that was you, ~/.claude/settings.json needs "skipDangerousModePermissionPrompt": true`. Agrega esa clave a `~/.claude/settings.json` y luego inicia una nueva sesión en segundo plano. La sesión que muestra el aviso sigue ejecutándose:

674 * Si se ignora `--allow-dangerously-skip-permissions`, `bypassPermissions` queda fuera de su ciclo de `Shift+Tab`.677 * Si se ignora `--allow-dangerously-skip-permissions`, `bypassPermissions` queda fuera de su ciclo de `Shift+Tab`.

675 * Si se ignora `--permission-mode bypassPermissions` o `--dangerously-skip-permissions`, la sesión se inicia en modo Manual en su lugar.678 * Si se ignora `--permission-mode bypassPermissions` o `--dangerously-skip-permissions`, la sesión se inicia en modo Manual en su lugar.

676 679 

680 Agrega `"skipDangerousModePermissionPrompt": true` a `~/.claude/settings.json` y luego inicia una nueva sesión en segundo plano.

681 

677En Linux y macOS, Claude Code se niega a iniciarse en modo `bypassPermissions` cuando se ejecuta como root o bajo `sudo`:682En Linux y macOS, Claude Code se niega a iniciarse en modo `bypassPermissions` cuando se ejecuta como root o bajo `sudo`:

678 683 

679```text theme={null}684```text theme={null}


688>693>

689> `bypassPermissions` no ofrece protección contra inyección de solicitudes o acciones no intencionadas. Para comprobaciones de seguridad de fondo con muchos menos avisos de permisos, use [modo automático](#eliminate-prompts-with-auto-mode) en su lugar. Los administradores pueden bloquear este modo estableciendo `permissions.disableBypassPermissionsMode` en `"disable"` en [configuración administrada](/docs/es/managed-settings).694> `bypassPermissions` no ofrece protección contra inyección de solicitudes o acciones no intencionadas. Para comprobaciones de seguridad de fondo con muchos menos avisos de permisos, use [modo automático](#eliminate-prompts-with-auto-mode) en su lugar. Los administradores pueden bloquear este modo estableciendo `permissions.disableBypassPermissionsMode` en `"disable"` en [configuración administrada](/docs/es/managed-settings).

690 695 

696### Omisión de permisos ignorada en una sesión en segundo plano

697 

698Este aviso significa que la [sesión en segundo plano](/docs/es/agent-view) no encontró tu aceptación de la [advertencia de omisión de permisos](#bypass-permissions-acceptance) en la configuración de usuario ni en la configuración administrada, por lo que ignoró la solicitud de omisión hecha al inicio:

699 

700```text theme={null}

701Bypass permissions was requested at launch and ignored · if that was you, ~/.claude/settings.json needs "skipDangerousModePermissionPrompt": true

702```

703 

704Agrega `"skipDangerousModePermissionPrompt": true` a `~/.claude/settings.json` y luego inicia una nueva sesión en segundo plano.

705 

706### `claude agents` muestra la advertencia de omisión de permisos que las sesiones interactivas omiten

707 

708Si [`claude agents`](/docs/es/agent-view#dispatch-defaults) muestra la [advertencia de omisión de permisos](#bypass-permissions-acceptance) aunque tus sesiones interactivas la omiten, comprueba si `skipDangerousModePermissionPrompt` está establecido en `.claude/settings.local.json` o en un archivo de `--settings`. Las sesiones interactivas cuentan la clave en esos archivos como tu aceptación de la advertencia, y `claude agents` no. Tanto si la encuentras allí como si no, acepta la advertencia para agregar la clave a `~/.claude/settings.json`, donde `claude agents` la busca.

709 

691## Rutas protegidas710## Rutas protegidas

692 711 

693Las escrituras en un pequeño conjunto de rutas nunca se aprueban automáticamente, excepto en modo `bypassPermissions` y en sesiones de terminal interactivas en modo plan con [permisos de omisión](#skip-all-checks-with-bypasspermissions-mode) disponibles. Esto previene la corrupción accidental del estado del repositorio y la configuración de Claude.712Las escrituras en un pequeño conjunto de rutas nunca se aprueban automáticamente, excepto en modo `bypassPermissions` y en sesiones de terminal interactivas en modo plan con [permisos de omisión](#skip-all-checks-with-bypasspermissions-mode) disponibles. Esto previene la corrupción accidental del estado del repositorio y la configuración de Claude.

permissions.md +29 −6

Details

202}202}

203```203```

204 204 

205Las reglas de permiso aceptan comodines de nombre de herramienta solo después de un prefijo literal `mcp__<server>__`. El segmento del servidor debe estar libre de comodines para que la regla nombre un servidor específico que haya configurado. `mcp__puppeteer__*` coincide con todas las herramientas del servidor `puppeteer`, y `mcp__github__get_*` coincide con sus herramientas `get_`. Un comodín de permiso sin ancla como `"*"`, `"B*"`, o `"mcp__*"` se omite con una advertencia y no aprueba automáticamente nada.205Las reglas de permiso aceptan comodines de nombre de herramienta solo después de un prefijo literal `mcp__<server>__`. El segmento del servidor debe estar libre de comodines para que la regla nombre un servidor específico que hayas configurado. `mcp__puppeteer__*` coincide con todas las herramientas del servidor `puppeteer`, y `mcp__github__get_*` coincide con sus herramientas `get_`. Un comodín de permiso sin ancla como `"*"`, `"B*"`, o `"mcp__*"` se omite y no aprueba automáticamente nada.

206 206 

207Una 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, y también lo están los nombres de herramientas que Claude Code ha eliminado, como `TaskOutput`.207Una regla de denegación o solicitud cuyo nombre de herramienta no coincide con ninguna herramienta conocida produce una [advertencia de inicio](/docs/es/errors#matches-no-tool) para detectar errores tipográficos. Los nombres de herramientas que contienen `_` o `*` están exentos de la verificación, y también lo están los nombres de herramientas que Claude Code ha eliminado, como `TaskOutput`.

208 208 

209La 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).209La 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).

210 210 


241Una regla de prefijo como `Bash(watch *)` o `Bash(find *)` no puede aprobar automáticamente los siguientes comandos, por lo que en modo Manual piden confirmación:241Una regla de prefijo como `Bash(watch *)` o `Bash(find *)` no puede aprobar automáticamente los siguientes comandos, por lo que en modo Manual piden confirmación:

242 242 

243* **Envoltorios Exec**: como `watch`, `setsid`, `ionice` y `flock`243* **Envoltorios Exec**: como `watch`, `setsid`, `ionice` y `flock`

244* **`find`**: con una acción que ejecuta comandos, elimina archivos o escribe archivos, como `-exec`, `-delete` o `-fprint`, o con `-files0-from`, que toma de un archivo las rutas en las que buscar244* **`find`**: con una acción que ejecuta comandos, elimina archivos o escribe archivos, como `-exec`, `-delete`, `-rm` o `-fprint`, o con `-files0-from`, que toma de un archivo las rutas en las que buscar

245 245 

246Para aprobar una invocación específica que no contiene `*`, escribe una regla de coincidencia exacta para la cadena de comando completa, como `Bash(find build -type f -delete)`.246Para aprobar una invocación específica que no contiene `*`, escribe una regla de coincidencia exacta para la cadena de comando completa, como `Bash(find build -type f -delete)`.

247 247 


460 460 

461Grep y Glob buscan en el directorio al que se resuelve el argumento `path`. Claude Code aplica las reglas de negación `Read` a ese directorio.461Grep y Glob buscan en el directorio al que se resuelve el argumento `path`. Claude Code aplica las reglas de negación `Read` a ese directorio.

462 462 

463##### Adjuntos a través de un enlace simbólico

464 

465Una regla de negación `Read` también cubre estos adjuntos, y compara cada uno tanto con la ruta indicada como con el archivo al que se resuelve. Claude Code deja un adjunto fuera de la conversación cuando una regla coincide con él:

466 

467* **Menciones con `@`**: un archivo o directorio que mencionas en tu prompt. Un archivo rechazado no deja nada en la conversación, y el [listado de un directorio](#read-and-edit) omite los nombres que cubre una regla.

468* **Imágenes pegadas**: una imagen cuya ruta pegas o arrastras al prompt en la terminal

469* **Archivos modificados**: un archivo que Claude Code vuelve a leer después de que cambia en el disco

470* **Contexto del IDE**: la selección y el contexto de archivos abiertos que comparte un IDE conectado

471 

472Con [`permissions.blockReadsOutsideWorkingDirectories`](/docs/es/settings-reference#permissions-blockreadsoutsideworkingdirectories) activado, o en una sesión [`--restricted`](/docs/es/cli-reference#cli-flags), estos adjuntos también se omiten cuando provienen de una ruta en la que ese ajuste o flag rechaza las lecturas de archivos de Claude.

473 

474Esta línea en lugar de un archivo que mencionaste con `@` significa que Claude Code no pudo determinar a dónde lleva la ruta, por ejemplo porque sus enlaces simbólicos forman un bucle:

475 

476```text theme={null}

477Referenced <path> (not read: could not be examined)

478```

479 

480Se le indica a Claude que lea la ruta con sus herramientas de archivos en su lugar, lo que puede funcionar cuando a Claude Code solo se le agotó el tiempo para examinar la ruta.

481 

482Cuando los enlaces simbólicos de la ruta no se resuelven, esa lectura también se [rechaza](/docs/es/errors#refusing-after-a-symlink-changed), así que corrige el enlace en el disco o menciona el archivo con `@` mediante una ruta que se resuelva.

483 

463##### Escrituras a través de un enlace simbólico484##### Escrituras a través de un enlace simbólico

464 485 

465Si la ruta que Claude pide editar o escribir es en sí misma un enlace simbólico, las herramientas Edit y Write [rechazan la escritura y dirigen a Claude al destino del enlace](/docs/es/errors#refusing-after-a-symlink-changed).486Si la ruta que Claude pide editar o escribir es en sí misma un enlace simbólico, las herramientas Edit y Write [rechazan la escritura y dirigen a Claude al destino del enlace](/docs/es/errors#refusing-after-a-symlink-changed).


489 510 

490Para leer archivos en un recurso compartido de red sin esta solicitud, primero asígnale al recurso compartido una ruta local:511Para leer archivos en un recurso compartido de red sin esta solicitud, primero asígnale al recurso compartido una ruta local:

491 512 

492* **Windows**: asigna el recurso compartido a una letra de unidad y pasa la unidad con `--add-dir` al iniciar Claude Code, como se describe en [Directorios de trabajo](#working-directories)513* **Windows**: asigna el recurso compartido a una letra de unidad y pasa la unidad con `--add-dir` al iniciar Claude Code, como se describe en [Directorios de trabajo](#working-directories). Las lecturas bajo una unidad que agregas más tarde con `/add-dir`, o que incluyes en `additionalDirectories` en un archivo de configuración, aún piden confirmación. Para detener esas solicitudes para un recurso compartido asignado a `Z:`, inicia una nueva sesión en PowerShell con `claude --add-dir Z:\`.

493* **macOS y Linux**: monta el recurso compartido en una ruta local, como un directorio bajo `/mnt` o `/Volumes`, y lee los archivos desde allí, como se describe en [El directorio de trabajo es una ruta de red](/docs/es/errors#working-directory-is-a-network-path)514* **macOS y Linux**: monta el recurso compartido en una ruta local, como un directorio bajo `/mnt` o `/Volumes`, y lee los archivos desde allí, como se describe en [El directorio de trabajo es una ruta de red](/docs/es/errors#working-directory-is-a-network-path)

494 515 

495### WebFetch516### WebFetch


545 566 

546* **Nombres con caracteres como `.` o espacios**: esos caracteres se convierten en `_`, así que para un servidor que configuraste como `my.server`, escribe `mcp__my_server__*`567* **Nombres con caracteres como `.` o espacios**: esos caracteres se convierten en `_`, así que para un servidor que configuraste como `my.server`, escribe `mcp__my_server__*`

547* **Servidores que proporciona un plugin**: `<server>` toma la [forma con ámbito de plugin](/docs/es/mcp#plugin-provided-mcp-servers), así que para el servidor `database-tools` de un plugin llamado `my-plugin`, escribe `mcp__plugin_my-plugin_database-tools__*`568* **Servidores que proporciona un plugin**: `<server>` toma la [forma con ámbito de plugin](/docs/es/mcp#plugin-provided-mcp-servers), así que para el servidor `database-tools` de un plugin llamado `my-plugin`, escribe `mcp__plugin_my-plugin_database-tools__*`

548* **Un `<server>` que contiene `__` o termina en `_`**: escribe la forma con comodín, `mcp__<server>__*`, con el nombre completo. Para un servidor llamado `reports__v2`, escribe `mcp__reports__v2__*`. El `mcp__reports__v2` sin comodín y el más corto `mcp__reports` no coinciden con sus herramientas como reglas de permiso, porque Claude Code interpreta ambos como reglas para un servidor llamado `reports`569* **Un `<server>` que contiene `__` o termina en `_`**: escribe la forma con comodín, `mcp__<server>__*`, con el nombre completo. Para un servidor llamado `reports__v2`, escribe `mcp__reports__v2__*`. El `mcp__reports__v2` sin comodín y el más corto `mcp__reports` no coinciden con sus herramientas como reglas de permiso, porque Claude Code interpreta ambos como reglas para un servidor llamado `reports`.

570 

571 Sin embargo, como regla de negación o solicitud, cada uno de esos dos nombres también cubre todas las herramientas del servidor `reports__v2`. Para cubrir solo un servidor llamado `reports`, escribe una regla por herramienta con la forma `mcp__reports__<tool>`, o cambia el nombre de uno de los servidores.

549 572 

550Si tu organización ha configurado una herramienta de un [conector de claude.ai](/docs/es/mcp#organization-controls-on-connector-tools) en `ask` y esa configuración llega a Claude Code en tu sesión, las reglas de permiso para esa herramienta no tienen efecto: Claude Code pide confirmación en cada llamada, incluso en los modos `auto` y `bypassPermissions`. En el modo `dontAsk`, que nunca pide confirmación, Claude Code niega la llamada en su lugar. Las herramientas de los conectores que Claude Code obtiene por sí mismo aparecen como `mcp__claude_ai_<server>__<tool>`.573Si tu organización ha configurado una herramienta de un [conector de claude.ai](/docs/es/mcp#organization-controls-on-connector-tools) en `ask` y esa configuración llega a Claude Code en tu sesión, las reglas de permiso para esa herramienta no tienen efecto: Claude Code pide confirmación en cada llamada, incluso en los modos `auto` y `bypassPermissions`. En el modo `dontAsk`, que nunca pide confirmación, Claude Code niega la llamada en su lugar. Las herramientas de los conectores que Claude Code obtiene por sí mismo aparecen como `mcp__claude_ai_<server>__<tool>`.

551 574 


593 616 

594Las decisiones del hook PreToolUse no omiten las reglas de permisos. Claude Code evalúa las reglas de negación y solicitud independientemente de lo que devuelva un hook PreToolUse: una regla de negación coincidente bloquea la llamada, y una regla de solicitud coincidente aún solicita incluso cuando el hook devolvió `"allow"` u `"ask"`. Esto preserva la precedencia de negación primero descrita en [Administrar permisos](#manage-permissions), incluyendo reglas de negación establecidas en configuración administrada.617Las decisiones del hook PreToolUse no omiten las reglas de permisos. Claude Code evalúa las reglas de negación y solicitud independientemente de lo que devuelva un hook PreToolUse: una regla de negación coincidente bloquea la llamada, y una regla de solicitud coincidente aún solicita incluso cuando el hook devolvió `"allow"` u `"ask"`. Esto preserva la precedencia de negación primero descrita en [Administrar permisos](#manage-permissions), incluyendo reglas de negación establecidas en configuración administrada.

595 618 

596Esa precedencia cubre los hooks en archivos de configuración y en el archivo `hooks/hooks.json` de un plugin. Un [mod](/docs/es/plugins/mods/overview) que instales y que maneje el evento [`tool.check`](/docs/es/plugins/mods/events#approve-or-refuse-a-tool-call-before-the-user-is-asked) da su respuesta después de que las reglas de permisos y los hooks `PreToolUse` hayan decidido. Con [configuración administrada](/docs/es/settings#check-what-your-organization-enforces) en la máquina, o un [`/login`](/docs/es/authentication#authentication-precedence) de Team o Enterprise como credencial de la sesión, estos resultados se mantienen de forma predeterminada cuando el mod aprueba una llamada:619Esa precedencia cubre los hooks en archivos de configuración y en el archivo `hooks/hooks.json` de un plugin. Un [mod](/docs/es/plugins/mods/overview) que instales y que maneje el evento [`tool.check`](/docs/es/plugins/mods/events#approve-or-refuse-a-tool-call-before-the-user-is-asked) da su respuesta después de que se hayan ejecutado los hooks `PreToolUse`. Con [configuración administrada](/docs/es/settings#check-what-your-organization-enforces) en la máquina, o un [`/login`](/docs/es/authentication#authentication-precedence) de Team o Enterprise como credencial de la sesión, estos resultados se mantienen de forma predeterminada cuando el mod aprueba una llamada:

597 620 

598* Una llamada que una regla de negación rechaza sigue rechazada, y tu organización puede cambiar eso.621* Una llamada que una regla de negación rechaza sigue rechazada, y tu organización puede cambiar eso.

599* Una llamada para la que una regla de solicitud pediría confirmación te sigue pidiendo confirmación.622* Una llamada para la que una regla de solicitud pediría confirmación te sigue pidiendo confirmación.

Details

211| `$.ui.status(text)` | Una línea debajo del prompt que permanece hasta que la cambies. Comienza con `⚠` y el nombre del mod, como en `⚠ my-mod: checks: 3 passing`. |211| `$.ui.status(text)` | Una línea debajo del prompt que permanece hasta que la cambies. Comienza con `⚠` y el nombre del mod, como en `⚠ my-mod: checks: 3 passing`. |

212| `$.ui.toast(text)` | Una notificación emergente con el nombre del mod que desaparece después de unos segundos. Es un cuadro en la parte superior derecha en el [renderizado de pantalla completa](/docs/es/fullscreen), y una línea a la derecha debajo del prompt en el renderizador clásico. |212| `$.ui.toast(text)` | Una notificación emergente con el nombre del mod que desaparece después de unos segundos. Es un cuadro en la parte superior derecha en el [renderizado de pantalla completa](/docs/es/fullscreen), y una línea a la derecha debajo del prompt en el renderizador clásico. |

213| `$.ui.log(text)` | Una línea atenuada en la transcripción que Claude no lee. Comienza con `●` y el nombre del mod, como en `● my-mod: build finished`. |213| `$.ui.log(text)` | Una línea atenuada en la transcripción que Claude no lee. Comienza con `●` y el nombre del mod, como en `● my-mod: build finished`. |

214| `$.ui.notify(text)` | Una notificación de su terminal, fuera de Claude Code, enviada de la forma que indica su ajuste [`preferredNotifChannel`](/docs/es/settings-reference#preferrednotifchannel). El nombre del mod es su título, a menos que pases un `{ title }` no vacío, que se muestra tal como lo indicas. |

215 

216`$.ui.notify` es la única de estas llamadas que responde. Se resuelve con `{ isSent: true, channel }` cuando el canal del usuario escribió la notificación en su terminal. `channel` es el valor del ajuste que la envió, como `kitty` o `terminal_bell`. El canal `terminal_bell` hace sonar la campana y no muestra ni tu texto ni el título.

217 

218De lo contrario, la llamada se resuelve con `{ isSent: false, reason }`:

219 

220| `reason` | Significado |

221| :- | :- |

222| `disabled` | El usuario estableció `preferredNotifChannel` en `notifications_disabled` |

223| `no-channel` | El ajuste es `auto` y su terminal no tiene ninguna notificación que Claude Code pueda enviar |

224| `no-surface` | La sesión no tiene terminal, como en una ejecución con `-p`, el Agent SDK, la aplicación de escritorio, la extensión de VS Code o una sesión en la nube. También es la respuesta a una llamada hecha antes de que se inicie la sesión, mientras tu mod se está cargando, y a una llamada hecha mientras Claude Code se está cerrando |

225| `refused` | El hook de otro mod sobre `ui.notify` respondió en lugar de Claude Code sin enviarla |

226 

227La llamada se rechaza en lugar de resolverse cuando `text` no es una cadena, cuando el hook de otro mod sobre `ui.notify` devuelve `{ deny }`, o cuando falla la escritura en la terminal.

228 

229Tu mod no puede elegir el canal, y Claude Code no limita la frecuencia con la que un mod envía notificaciones. El ajuste del usuario es el único interruptor.

230 

231Cuando la llamada llega a una sesión en ejecución, se ejecutan los [hooks de `Notification`](/docs/es/hooks#notification) del usuario con el tipo `plugin_notification`. Se ejecutan incluso cuando la respuesta es `disabled`, y en una sesión sin terminal, donde la respuesta es `no-surface`. No se ejecuta ningún hook para una llamada hecha antes de que se inicie la sesión o mientras Claude Code se está cerrando. El hook desde el que tu mod llamó a `$.ui.notify` queda fuera de esa ejecución, por lo que un hook `classic.Notification` que envía notificaciones no se vuelve a llamar para su propia notificación.

232 

233Una terminal no informa si mostró la notificación, así que `isSent: true` significa que se envió, no que el usuario la vio.

234 

235Este ejemplo envía una notificación cuando el turno de la conversación principal termina sin una interrupción, y recurre a una notificación emergente cuando no salió ninguna notificación con texto. No espera a la notificación antes de pasar el evento, porque los hooks de `Notification` del usuario se ejecutan primero y pueden tardar un poco:

236 

237```javascript theme={null}

238on('turn.complete', ($, e, next) => {

239 const isMainTurn = e.agentId === undefined && !e.isAborted

240 const fallBack = () => $.ui.toast('Turn finished')

241 if (isMainTurn) {

242 $.ui.notify('Turn finished').then(sent => {

243 const hasText = sent.isSent && sent.channel !== 'terminal_bell'

244 if (!hasText) fallBack()

245 }, fallBack)

246 }

247 return next(e)

248})

249```

214 250 

215En la [extensión de VS Code](/docs/es/plugins/mods/interface#draw-in-the-vs-code-extension), las líneas de estado y las notificaciones emergentes se muestran encima del cuadro del prompt, y las líneas de registro, en la conversación.251En la [extensión de VS Code](/docs/es/plugins/mods/interface#draw-in-the-vs-code-extension), las líneas de estado y las notificaciones emergentes se muestran encima del cuadro del prompt, y las líneas de registro, en la conversación.

216 252 

Details

181 181 

182#### Aprobar o rechazar una llamada a herramienta antes de preguntarle al usuario182#### Aprobar o rechazar una llamada a herramienta antes de preguntarle al usuario

183 183 

184Para decidir si una llamada a herramienta puede ejecutarse, maneja [`tool.check`](/docs/es/plugins/mods/reference#tools), el evento en el que Claude Code toma esa decisión. Se dispara después de que las reglas de permisos y los hooks de configuración han decidido, y `next(e)` se resuelve con su decisión: `allow`, `ask` o `deny`. Tu hook devuelve esa decisión u otra diferente. `e.input` contiene los argumentos de la herramienta, como `command` para Bash.184Para decidir si una llamada a herramienta puede ejecutarse, maneja [`tool.check`](/docs/es/plugins/mods/reference#tools), el evento en el que Claude Code toma esa decisión.

185 185 

186Para un comando o una ruta fijos, usa una [regla de permisos](/docs/es/permissions#permission-rule-syntax) como `Bash(npm test)`, que no requiere código. Maneja `tool.check` cuando la decisión depende de lo que es cierto en ese momento, como la rama de Git actual o un valor que otro hook registró.186Para un comando o una ruta fijos, usa una [regla de permisos](/docs/es/permissions#permission-rule-syntax) como `Bash(npm test)`, que no requiere código. Maneja `tool.check` cuando la decisión depende de lo que es cierto en ese momento, como la rama de Git actual o un valor que otro hook registró.

187 187 

188* **Qué devolver**: para decidir tú mismo la llamada, devuelve un objeto propio, como `{ decision: 'allow' }` o `{ decision: 'deny', reason }`. Para no modificar la decisión, devuelve lo que te da `await next(e)`.

189* **Lo que te da `await next(e)`**: la propia decisión de Claude Code, como un objeto cuyo `decision` es `allow`, `ask` o `deny`. No aparece ninguna solicitud de permiso mientras se ejecuta `next(e)`.

190* **Argumentos**: `e.input` contiene los argumentos de la herramienta, como `command` para Bash

191* **Cuándo se dispara `tool.check`**: después de que se ejecutan los [hooks `PreToolUse`](/docs/es/hooks#pretooluse), y antes de la solicitud de permiso, del clasificador del [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) o de un hook [`PermissionRequest`](/docs/es/hooks#permissionrequest)

192 

188Este hook rechaza `git push` mientras la rama actual sea `main`:193Este hook rechaza `git push` mientras la rama actual sea `main`:

189 194 

190```javascript theme={null}195```javascript theme={null}

191on('tool.check', { tool: 'Bash' }, async ($, e, next) => {196on('tool.check', { tool: 'Bash' }, async ($, e, next) => {

192 // What the permission rules and settings hooks decided: 'allow', 'ask', or 'deny'197 // Claude Code's own decision

193 const decided = await next(e)198 const decided = await next(e)

194 if (!e.input.command.includes('git push')) return decided199 if (!e.input.command.includes('git push')) return decided

195 const branch = await $.process.run(['git', 'branch', '--show-current'])200 const branch = await $.process.run(['git', 'branch', '--show-current'])


209>214>

210> Un hook `tool.check` también puede devolver `allow` o `ask`. En [modo plan](/docs/es/permissions#hook-approvals-in-plan-mode), para una llamada que no es de solo lectura, como la edición de un archivo, tu hook puede endurecer la decisión que devuelve `next(e)`, pero no puede flexibilizarla. Para conocer las reglas de permisos y las decisiones de hooks `PreToolUse` que el `allow` de tu hook no puede reemplazar, consulta [Extender permisos con hooks](/docs/es/permissions#precedence-among-rules-hooks-and-mods).215> Un hook `tool.check` también puede devolver `allow` o `ask`. En [modo plan](/docs/es/permissions#hook-approvals-in-plan-mode), para una llamada que no es de solo lectura, como la edición de un archivo, tu hook puede endurecer la decisión que devuelve `next(e)`, pero no puede flexibilizarla. Para conocer las reglas de permisos y las decisiones de hooks `PreToolUse` que el `allow` de tu hook no puede reemplazar, consulta [Extender permisos con hooks](/docs/es/permissions#precedence-among-rules-hooks-and-mods).

211 216 

217#### Comprobar si una llamada a herramienta es de solo lectura

218 

219En un hook [`tool.check`](#approve-or-refuse-a-tool-call-before-the-user-is-asked), `e.isReadOnly` es `true` cuando la herramienta informa que la llamada es de solo lectura. En caso contrario, el campo no está presente, en lugar de ser `false`. `e.isReadOnly` requiere Claude Code v2.1.304 o posterior.

220 

221Algunas herramientas, como Read, Grep, Glob y WebSearch, informan que todas sus llamadas son de solo lectura. Bash y las herramientas MCP informan que una llamada es de solo lectura en estos casos:

222 

223* **Bash**: el comando supera la [verificación de comandos de solo lectura](/docs/es/permissions#read-only-commands) integrada de Claude Code

224* **Una herramienta MCP**: el servidor establece la anotación `readOnlyHint` de la herramienta en `true`

225 

226El valor es lo que informa la propia herramienta, así que no apruebes una llamada basándote solo en este campo. Por ejemplo, las llamadas a WebFetch y Agent se informan como de solo lectura, aunque [WebFetch](/docs/es/tools-reference#webfetch-tool-behavior) solicita una URL y [Agent](/docs/es/tools-reference#agent-tool-behavior) inicia un subagente que ejecuta sus propias herramientas.

227 

228Este hook devuelve un `ask` para cada llamada `mcp__github__` que no es de solo lectura y que no se denegó previamente:

229 

230```javascript theme={null}

231on('tool.check', { tool: /^mcp__github__/ }, async ($, e, next) => {

232 const decided = await next(e)

233 // Read-only calls and denied calls pass through unchanged

234 if (e.isReadOnly || decided.decision === 'deny') return decided

235 return { decision: 'ask', reason: 'This tool can change the GitHub repository' }

236})

237```

238 

239#### Filtrar un hook `tool.check` según si la llamada es de solo lectura

240 

241Para limitar qué llamadas maneja tu hook según [`e.isReadOnly`](#check-whether-a-tool-call-is-read-only), usa el [matcher](#filter-which-events-a-hook-handles) para las llamadas de solo lectura y el cuerpo del hook para el resto:

242 

243* **Solo llamadas de solo lectura**: agrega `isReadOnly: true` al matcher, como en `on('tool.check', { tool: 'Bash', isReadOnly: true }, hook)`

244* **Llamadas que no son de solo lectura**: comprueba `e.isReadOnly` en el cuerpo del hook, como hace el [ejemplo de `mcp__github__`](#check-whether-a-tool-call-is-read-only). Si pones `isReadOnly: false` en un matcher, tu hook nunca se ejecuta.

245 

212### Reescribir o agregar contenido a un prompt246### Reescribir o agregar contenido a un prompt

213 247 

214Un hook `prompt.submit` ve cada prompt antes de que comience el turno, así que puede reescribir el texto o agregarle contenido. `e.text` es lo que se escribió.248Un hook `prompt.submit` ve cada prompt antes de que comience el turno, así que puede reescribir el texto o agregarle contenido. `e.text` es lo que se escribió.


312* **Hooks `PreToolUse` de la configuración administrada**: se ejecutan antes del hook `tool.call` del primer mod. Cuando un hook administrado bloquea la llamada, no se ejecuta el hook `tool.call` de ningún mod para esa llamada.346* **Hooks `PreToolUse` de la configuración administrada**: se ejecutan antes del hook `tool.call` del primer mod. Cuando un hook administrado bloquea la llamada, no se ejecuta el hook `tool.call` de ningún mod para esa llamada.

313* **Hooks `PreToolUse` de cualquier otro archivo de configuración y del `hooks/hooks.json` de los plugins**: se ejecutan después de que el último mod llama a `next`, como parte del comportamiento propio de Claude Code. Un mod que responde a `tool.call` sin llamar a `next` impide que se ejecuten, y un mod que llama a `next` ve su decisión en el resultado que devuelve.347* **Hooks `PreToolUse` de cualquier otro archivo de configuración y del `hooks/hooks.json` de los plugins**: se ejecutan después de que el último mod llama a `next`, como parte del comportamiento propio de Claude Code. Un mod que responde a `tool.call` sin llamar a `next` impide que se ejecuten, y un mod que llama a `next` ve su decisión en el resultado que devuelve.

314 348 

315[`tool.check`](#approve-or-refuse-a-tool-call-before-the-user-is-asked) se activa después de que las reglas de permisos y ambos grupos de hooks `PreToolUse` hayan decidido. Para saber cuáles de esas decisiones no puede reemplazar el `allow` de un hook `tool.check`, consulta [Ampliar los permisos con hooks](/docs/es/permissions#precedence-among-rules-hooks-and-mods).349[`tool.check`](#approve-or-refuse-a-tool-call-before-the-user-is-asked) se activa después de que se hayan ejecutado los hooks `PreToolUse`. Para conocer las reglas de permisos y las decisiones de hooks `PreToolUse` que el `allow` de un hook `tool.check` no puede reemplazar, consulta [Ampliar los permisos con hooks](/docs/es/permissions#precedence-among-rules-hooks-and-mods).

316 350 

317### Manejar un hook que falla351### Manejar un hook que falla

318 352 

Details

306| `closeOnEscape` | Hace que Esc cierre el panel |306| `closeOnEscape` | Hace que Esc cierre el panel |

307| `holdToasts` | En la terminal, retiene los toasts mientras este panel es el que se muestra. Consulta [Retén los toasts detrás de un diálogo](#hold-toasts-behind-a-dialog). |307| `holdToasts` | En la terminal, retiene los toasts mientras este panel es el que se muestra. Consulta [Retén los toasts detrás de un diálogo](#hold-toasts-behind-a-dialog). |

308| `rows` | La altura que se solicita cuando el panel está encima del prompt. El valor predeterminado es un tercio del espacio. |308| `rows` | La altura que se solicita cuando el panel está encima del prompt. El valor predeterminado es un tercio del espacio. |

309| `columns` | El ancho que se solicita cuando el panel está junto a la transcripción |309| `columns` | El ancho que se solicita cuando el panel está junto a la transcripción, como máximo el 45% del ancho de la terminal. Una vez que el usuario ha cambiado el tamaño de un panel junto a la transcripción, en esta sesión o en una anterior, los paneles se abren ahí con el ancho que estableció. El mismo límite del 45% se aplica a ese ancho. |

310 310 

311La [extensión de VS Code](#draw-in-the-vs-code-extension) ignora `rows` y `columns` y ajusta el tamaño del panel por sí misma.311La [extensión de VS Code](#draw-in-the-vs-code-extension) ignora `rows` y `columns` y ajusta el tamaño del panel por sí misma.

312 312 


537| Enter | Pulsa el `Button` con el foco, envía el `Input` con el foco o elige en un `Select` |537| Enter | Pulsa el `Button` con el foco, envía el `Input` con el foco o elige en un `Select` |

538| La tecla de acceso rápido de un botón | Pulsa ese botón. Mientras un `Input` tiene el foco, toda tecla imprimible va al campo. |538| La tecla de acceso rápido de un botón | Pulsa ese botón. Mientras un `Input` tiene el foco, toda tecla imprimible va al campo. |

539| Re Pág, Av Pág, Inicio y Fin | Desplazan tu panel o banda cuando tiene más filas de las que puede mostrar |539| Re Pág, Av Pág, Inicio y Fin | Desplazan tu panel o banda cuando tiene más filas de las que puede mostrar |

540| Ctrl+X y luego una flecha | Cambia el tamaño de tu panel. Izquierda o Arriba le da más espacio, y Derecha o Abajo lo devuelve. |540| Ctrl+X y luego una flecha | Cambia el tamaño de tu panel. Izquierda o Arriba le da más espacio, y Derecha o Abajo lo devuelve. Un panel junto a la transcripción deja de ensancharse al 45 % del ancho de la terminal. |

541| Ctrl+X y luego X | Cierra tu panel, incluso mientras uno de sus campos tiene el foco |541| Ctrl+X y luego X | Cierra tu panel, incluso mientras uno de sus campos tiene el foco |

542| Esc | Devuelve el foco del teclado al prompt. Con `closeOnEscape: true`, también cierra el panel. |542| Esc | Devuelve el foco del teclado al prompt. Con `closeOnEscape: true`, también cierra el panel. |

543 543 

Details

56| Evento | Se dispara cuando | Un hook puede devolver |56| Evento | Se dispara cuando | Un hook puede devolver |

57| :- | :- | :- |57| :- | :- | :- |

58| [`tool.call`](/docs/es/plugins/mods/events#guard-or-change-a-tool-call) | Una herramienta está a punto de ejecutarse | `next(e)`, `{ deny: reason }` o `{ result }` |58| [`tool.call`](/docs/es/plugins/mods/events#guard-or-change-a-tool-call) | Una herramienta está a punto de ejecutarse | `next(e)`, `{ deny: reason }` o `{ result }` |

59| [`tool.check`](/docs/es/plugins/mods/events#where-settings-hooks-run-in-the-order) | Claude Code decide si una llamada a herramienta puede ejecutarse, después de los hooks `tool.call` y `PreToolUse`. `next(e)` se resuelve en la decisión a la que llegaron las reglas, el modo de permisos y esos hooks. | `{ decision }`, que es `allow`, `ask` o `deny` |59| [`tool.check`](/docs/es/plugins/mods/events#where-settings-hooks-run-in-the-order) | Claude Code decide si una llamada a herramienta puede ejecutarse, después de los hooks `tool.call` y `PreToolUse`. `next(e)` se resuelve en la decisión a la que llegaron las reglas, el modo de permisos y esos hooks. | `next(e)` o `{ decision }`, con `decision` establecido en `allow`, `ask` o `deny` y un `reason` opcional |

60| `tool.describe` | Una vez por cada herramienta, cuando su descripción se envía por primera vez a Claude. Una segunda vez para una herramienta MCP cuando Claude la carga mediante la [búsqueda de herramientas](/docs/es/mcp#scale-with-mcp-tool-search), con `e.description` establecido en el texto que lee Claude para la herramienta cargada. | `{ description }`, opcionalmente con `isDeferred` establecido en `true` para poner la herramienta detrás de la búsqueda de herramientas o en `false` para cargarla desde el inicio |60| `tool.describe` | Una vez por cada herramienta, cuando su descripción se envía por primera vez a Claude. Una segunda vez para una herramienta MCP cuando Claude la carga mediante la [búsqueda de herramientas](/docs/es/mcp#scale-with-mcp-tool-search), con `e.description` establecido en el texto que lee Claude para la herramienta cargada. | `{ description }`, opcionalmente con `isDeferred` establecido en `true` para poner la herramienta detrás de la búsqueda de herramientas o en `false` para cargarla desde el inicio |

61 61 

62#### Campos de agente y organización en `tool.check`62#### Campos de agente y organización en `tool.check`


68 68 

69En `tool.check`, `e.agentId` y `e.ceiling` requieren Claude Code v2.1.290 o posterior.69En `tool.check`, `e.agentId` y `e.ceiling` requieren Claude Code v2.1.290 o posterior.

70 70 

71#### El campo `e.isReadOnly` en `tool.check`

72 

73En un hook de `tool.check`, `e.isReadOnly` es `true` cuando la herramienta informa que esta llamada es de solo lectura. En caso contrario, el campo está ausente, no es `false`. El valor es el propio informe de la herramienta, así que lee [Comprobar si una llamada a herramienta es de solo lectura](/docs/es/plugins/mods/events#check-whether-a-tool-call-is-read-only) antes de aprobar una llamada basándote solo en este campo.

74 

75En `tool.check`, `e.isReadOnly` requiere Claude Code v2.1.304 o posterior.

76 

71### Prompts y lo que lee Claude77### Prompts y lo que lee Claude

72 78 

73Los eventos de prompt abarcan el texto que escribe el usuario y el texto que Claude Code envía a Claude por su cuenta, como el prompt del sistema y los recordatorios:79Los eventos de prompt abarcan el texto que escribe el usuario y el texto que Claude Code envía a Claude por su cuenta, como el prompt del sistema y los recordatorios:


196| Espacio de nombres | Métodos |202| Espacio de nombres | Métodos |

197| :- | :- |203| :- | :- |

198| `$.plugin` | `name`, `root`: el nombre y el directorio de este plugin |204| `$.plugin` | `name`, `root`: el nombre y el directorio de este plugin |

199| [`$.ui`](/docs/es/plugins/mods/interface#pick-where-to-draw) | `resolve`, `invalidate`, `open`, `close`, `panes`, `focus`, `scroll`, `toast`, `status`, `log`, `notice`, `ask`, `copy`, `selection`, `blit` |205| [`$.ui`](/docs/es/plugins/mods/interface#pick-where-to-draw) | `resolve`, `invalidate`, `open`, `close`, `panes`, `focus`, `scroll`, `toast`, `notify`, `status`, `log`, `notice`, `ask`, `copy`, `selection`, `blit` |

200| [`$.command`](/docs/es/plugins/mods/api#add-a-command) | `register`, `run`, `list` |206| [`$.command`](/docs/es/plugins/mods/api#add-a-command) | `register`, `run`, `list` |

201| [`$.tool`](/docs/es/plugins/mods/api#add-a-tool) | `register`, `call`, `check`, `list` |207| [`$.tool`](/docs/es/plugins/mods/api#add-a-tool) | `register`, `call`, `check`, `list` |

202| `$.agent` | `register`, `spawn`, `list`. `list()` devuelve los subagentes y compañeros de equipo de esta sesión, cada uno con un `status` de `pending`, `running`, `waiting`, `idle`, `completed`, `failed` o `killed`, donde `idle` y `waiting` requieren Claude Code v2.1.289 o posterior. |208| `$.agent` | `register`, `spawn`, `list`. `list()` devuelve los subagentes y compañeros de equipo de esta sesión, cada uno con un `status` de `pending`, `running`, `waiting`, `idle`, `completed`, `failed` o `killed`, donde `idle` y `waiting` requieren Claude Code v2.1.289 o posterior. |


266| `Svg` | Un documento SVG, hasta 131,072 caracteres | | ✓ | ✓ |272| `Svg` | Un documento SVG, hasta 131,072 caracteres | | ✓ | ✓ |

267| [`Client`](/docs/es/plugins/mods/interface#build-a-tree-from-elements) | `module`, `key` | ✓ | ✓ | |273| [`Client`](/docs/es/plugins/mods/interface#build-a-tree-from-elements) | `module`, `key` | ✓ | ✓ | |

268| [`Raster`](/docs/es/plugins/mods/interface#draw-a-grid-of-colored-cells) | `key`, `columns` hasta 512, `rows` hasta 256, `cells`. Consulta [Dibuja una cuadrícula de celdas de colores](/docs/es/plugins/mods/interface#draw-a-grid-of-colored-cells). | ✓ | | |274| [`Raster`](/docs/es/plugins/mods/interface#draw-a-grid-of-colored-cells) | `key`, `columns` hasta 512, `rows` hasta 256, `cells`. Consulta [Dibuja una cuadrícula de celdas de colores](/docs/es/plugins/mods/interface#draw-a-grid-of-colored-cells). | ✓ | | |

269| `Image` | Bytes PNG o RGBA de hasta 2 MiB, o una ruta de archivo, `columns` y `rows` hasta 255, y texto `alt`. | ✓ | | |275| `Image` | Bytes PNG o RGBA de hasta 2 MiB, o una ruta de archivo, `columns` y `rows` hasta 255, y texto `alt`. Consulta [qué terminales lo dibujan](/docs/es/plugins/mods/gallery#image-and-client). | ✓ | | |

270 276 

271Más reglas de `Button`: `action` nombra una de las propias [acciones de atajos de teclado](/docs/es/keybindings) de Claude Code, y el atajo del usuario para ella presiona el botón cuando ese atajo es un acorde o una tecla con modificador. Un `hotkey` de dígito en un botón de la banda también se activa cuando el usuario escribe solo ese dígito en un prompt vacío y hace una pausa. Cuando dos botones de un mismo dibujo nombran el mismo `hotkey`, el último se queda con él. `autoFocus` solo acepta `true` en cualquier control, así que omite la prop para dejarla desactivada.277Más reglas de `Button`: `action` nombra una de las propias [acciones de atajos de teclado](/docs/es/keybindings) de Claude Code, y el atajo del usuario para ella presiona el botón cuando ese atajo es un acorde o una tecla con modificador. Un `hotkey` de dígito en un botón de la banda también se activa cuando el usuario escribe solo ese dígito en un prompt vacío y hace una pausa. Cuando dos botones de un mismo dibujo nombran el mismo `hotkey`, el último se queda con él. `autoFocus` solo acepta `true` en cualquier control, así que omite la prop para dejarla desactivada.

272 278 

Details

187| `prompt.fill` | `() => ({ isFilled: true })` |187| `prompt.fill` | `() => ({ isFilled: true })` |

188| `$.prompt.read` | `() => ({ value: { text: '...', cursor: 0 } })` |188| `$.prompt.read` | `() => ({ value: { text: '...', cursor: 0 } })` |

189| `$.ui.copy` | `() => ({ value: { isCopied: true } })` |189| `$.ui.copy` | `() => ({ value: { isCopied: true } })` |

190| `$.ui.notify` | `() => ({ value: { isSent: true, channel: 'terminal_bell' } })`. El texto es `e.text` y el título es `e.title`. |

190| `$.session.messages` | `() => ({ value: [{ role: 'assistant', text: '...', toolUses: [] }] })` |191| `$.session.messages` | `() => ({ value: [{ role: 'assistant', text: '...', toolUses: [] }] })` |

191| `$.session.id`, `$.agent.list` | `() => ({ value: 'abc123' })`, `() => ({ value: [] })` |192| `$.session.id`, `$.agent.list` | `() => ({ value: 'abc123' })`, `() => ({ value: [] })` |

192| `session.send` | `() => ({ isDelivered: true })`. `e.to` llega como una cadena incluso cuando tu mod pasó `{ sessionId }`. |193| `session.send` | `() => ({ isDelivered: true })`. `e.to` llega como una cadena incluso cuando tu mod pasó `{ sessionId }`. |

Details

830 830 

831* **`Failed to load hooks from <path>: <reason>`**: `hooks/hooks.json` no es JSON válido o falla el esquema de hooks. La razón nombra el error de análisis o validación. Corrija el archivo. Para detectar un problema de sintaxis JSON en `hooks/hooks.json` antes de publicar el plugin, ejecute `claude plugin validate <plugin-directory>` en su shell831* **`Failed to load hooks from <path>: <reason>`**: `hooks/hooks.json` no es JSON válido o falla el esquema de hooks. La razón nombra el error de análisis o validación. Corrija el archivo. Para detectar un problema de sintaxis JSON en `hooks/hooks.json` antes de publicar el plugin, ejecute `claude plugin validate <plugin-directory>` en su shell

832* **`hooks path not found: <path>`**: el campo `hooks` del manifiesto nombra un archivo que no existe en esa ruta relativa a la raíz del plugin. Corrija la ruta o agregue el archivo832* **`hooks path not found: <path>`**: el campo `hooks` del manifiesto nombra un archivo que no existe en esa ruta relativa a la raíz del plugin. Corrija la ruta o agregue el archivo

833* **`hooks path escapes plugin directory: <path>`**: consulta [La ruta sale del directorio del plugin](/docs/es/errors#path-escapes-plugin-directory)

833 834 

834#### `hook error` notices in the transcript835#### `hook error` notices in the transcript

835 836 


948 949 

949Claude Code resolvió una ruta de tu `plugin.json` o de tu entrada del marketplace respecto a la raíz del plugin y no encontró nada allí. La ruta del mensaje es la ruta absoluta que verificó, así que compárala con lo que hay en el disco. Corrige la ruta o crea el directorio y luego ejecuta `/reload-plugins`.950Claude Code resolvió una ruta de tu `plugin.json` o de tu entrada del marketplace respecto a la raíz del plugin y no encontró nada allí. La ruta del mensaje es la ruta absoluta que verificó, así que compárala con lo que hay en el disco. Corrige la ruta o crea el directorio y luego ejecuta `/reload-plugins`.

950 951 

952> [!NOTE]

953>

954> Antes de la v2.1.299, este mensaje podía aparecer al iniciar en una fila etiquetada con una etiqueta como `synced[0]`. Esa fila corresponde a un plugin [sincronizado desde claude.ai](/docs/es/plugins/loading#synced-plugins). Aparecía cuando otra sesión de Claude Code en tu máquina había actualizado el plugin momentos antes y había movido sus archivos. Para cargar el plugin, reinicia Claude Code. Para evitar que el mensaje aparezca por este motivo, actualiza a la v2.1.299 o posterior.

955 

951Las rutas del manifiesto son relativas a la raíz del plugin y comienzan con `./`. Una ruta que se resuelve fuera de la raíz del plugin se informa como `<component> path escapes plugin directory` y se descarta.956Las rutas del manifiesto son relativas a la raíz del plugin y comienzan con `./`. Una ruta que se resuelve fuera de la raíz del plugin se informa como `<component> path escapes plugin directory` y se descarta.

952 957 

953### `--plugin-dir` en la raíz de un marketplace no carga los plugins de `plugins/`958### `--plugin-dir` en la raíz de un marketplace no carga los plugins de `plugins/`

Details

55Cuando tus solicitudes pasan por un [LLM gateway](/docs/es/llm-gateway), un `ANTHROPIC_BASE_URL` personalizado o una sobrescritura de URL base del proveedor de nube como [`ANTHROPIC_BEDROCK_BASE_URL`](/docs/es/env-vars), lo que permanece en caché depende de cómo el gateway maneje los [marcadores de `cache_control`](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#explicit-cache-breakpoints) que envía Claude Code:55Cuando tus solicitudes pasan por un [LLM gateway](/docs/es/llm-gateway), un `ANTHROPIC_BASE_URL` personalizado o una sobrescritura de URL base del proveedor de nube como [`ANTHROPIC_BEDROCK_BASE_URL`](/docs/es/env-vars), lo que permanece en caché depende de cómo el gateway maneje los [marcadores de `cache_control`](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#explicit-cache-breakpoints) que envía Claude Code:

56 56 

57* **Los reenvía sin cambios**: el bloque y tu conversación se almacenan en caché de la misma manera que en el endpoint propio del proveedor.57* **Los reenvía sin cambios**: el bloque y tu conversación se almacenan en caché de la misma manera que en el endpoint propio del proveedor.

58* **Rechaza la solicitud marcada con un error `400` que menciona `cache_control`**: Claude Code reenvía la solicitud con el marcador movido fuera del bloque y hacia tu último mensaje de la conversación, y lo mantiene allí durante el resto de la conversación. El bloque se factura como entrada sin caché; tu conversación permanece en caché.58* **Rechaza la solicitud marcada con un error `400` que menciona `cache_control`**: Claude Code reenvía la solicitud con el marcador movido fuera del bloque y hacia tu último mensaje de la conversación, y lo mantiene allí hasta que Claude Code se cierra. El bloque se factura como entrada sin caché; tu conversación permanece en caché.

59* **Elimina los marcadores mientras devuelve éxito**: todo tu historial de conversación se factura como entrada sin caché en cada turno. Un gateway que convierte el contenido del sistema en forma de bloque a una cadena simple elimina el marcador de la misma manera.59* **Elimina los marcadores mientras devuelve éxito**: todo tu historial de conversación se factura como entrada sin caché en cada turno. Un gateway que convierte el contenido del sistema en forma de bloque a una cadena simple elimina el marcador de la misma manera.

60 60 

61Para saber qué almacena y procesa cada proveedor, consulta [uso de datos](/docs/es/data-usage). Dondequiera que viva la caché, las entradas expiran después de un período de inactividad, y [Duración de la caché](#cache-lifetime) a continuación cubre el TTL y cómo extenderlo.61Para saber qué almacena y procesa cada proveedor, consulta [uso de datos](/docs/es/data-usage). Dondequiera que viva la caché, las entradas expiran después de un período de inactividad, y [Duración de la caché](#cache-lifetime) a continuación cubre el TTL y cómo extenderlo.


109Las definiciones de herramientas se encuentran en la capa del prompt del sistema, por lo que la caché se invalida cuando el conjunto de definiciones de herramientas en la solicitud cambia entre turnos. Activar o desactivar la [herramienta de asesor](/docs/es/advisor) es una excepción: su definición se encuentra después del punto de ruptura de caché, por lo que habilitar o deshabilitar `/advisor` mantiene intacto el prefijo almacenado en caché. Que un cambio de [servidor MCP](/docs/es/mcp) haga esto depende de si [la búsqueda de herramientas](/docs/es/mcp#scale-with-mcp-tool-search) difiere las herramientas MCP de la sesión, el valor predeterminado en modelos compatibles:109Las definiciones de herramientas se encuentran en la capa del prompt del sistema, por lo que la caché se invalida cuando el conjunto de definiciones de herramientas en la solicitud cambia entre turnos. Activar o desactivar la [herramienta de asesor](/docs/es/advisor) es una excepción: su definición se encuentra después del punto de ruptura de caché, por lo que habilitar o deshabilitar `/advisor` mantiene intacto el prefijo almacenado en caché. Que un cambio de [servidor MCP](/docs/es/mcp) haga esto depende de si [la búsqueda de herramientas](/docs/es/mcp#scale-with-mcp-tool-search) difiere las herramientas MCP de la sesión, el valor predeterminado en modelos compatibles:

110 110 

111* **Herramientas diferidas**: Claude Code mantiene la lista de herramientas de la primera solicitud de la conversación durante toda la conversación, por lo que un servidor que se conecta o desconecta a mitad de sesión no perturba nada ya almacenado en caché. Un servidor que termina de conectarse después de la primera solicitud proporciona sus herramientas como definiciones diferidas que Claude carga bajo demanda.111* **Herramientas diferidas**: Claude Code mantiene la lista de herramientas de la primera solicitud de la conversación durante toda la conversación, por lo que un servidor que se conecta o desconecta a mitad de sesión no perturba nada ya almacenado en caché. Un servidor que termina de conectarse después de la primera solicitud proporciona sus herramientas como definiciones diferidas que Claude carga bajo demanda.

112* **Herramientas cargadas por adelantado**: agregar una definición invalida la caché, y lo mismo ocurre al eliminar una a propósito. Esto se aplica cuando la búsqueda de herramientas está [por debajo de su umbral `auto`, deshabilitada o no disponible](/docs/es/mcp#configure-tool-search), como en los modelos de Agent Platform de Google Cloud anteriores a Opus 4.5, Sonnet 4.5 y Haiku 4.5, con un gateway `ANTHROPIC_BASE_URL` personalizado, o en un [despliegue alojado en Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options) de Microsoft Foundry una vez que Claude Code detecta que el despliegue rechaza la búsqueda de herramientas.112* **Herramientas cargadas por adelantado**: agregar una definición invalida la caché, y lo mismo ocurre al eliminar una a propósito. Esto se aplica cuando la búsqueda de herramientas está [desactivada o no disponible](/docs/es/mcp#configure-tool-search), como en:

113 * Los modelos de Agent Platform de Google Cloud anteriores a Opus 4.5, Sonnet 4.5 y Haiku 4.5

114 * Un [despliegue alojado en Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options) de Microsoft Foundry una vez que Claude Code detecta que el despliegue rechaza la búsqueda de herramientas

113 115 

114Sin búsqueda de herramientas, que un cambio de servidor a mitad de sesión invalide la caché depende de qué cambió. Para cada cambio, esta tabla indica si la caché se mantiene y qué sucede con las definiciones de herramientas en la siguiente solicitud.116Sin búsqueda de herramientas, que un cambio de servidor a mitad de sesión invalide la caché depende de qué cambió. Para cada cambio, esta tabla indica si la caché se mantiene y qué sucede con las definiciones de herramientas en la siguiente solicitud.

115 117 


169 171 

170### Compactar la conversación172### Compactar la conversación

171 173 

172[La compactación](/docs/es/context-window#what-survives-compaction) reemplaza tu historial de mensajes con un resumen. Por diseño, esto invalida la capa de conversación, ya que la siguiente solicitud tiene un historial nuevo y más corto que no comparte un prefijo con el anterior. Claude Code reutiliza la capa del prompt del sistema a menos que la conversación se [haya reanudado manteniendo un prompt del sistema que de otro modo habría cambiado](#resuming-a-session); en ese caso, la primera compactación cambia al prompt actual y esa capa se reconstruye una vez. Recarga el contexto del proyecto desde el disco, que solo obtiene aciertos de caché si CLAUDE.md y la memoria no han cambiado desde que comenzó la sesión.174[La compactación](/docs/es/context-window#what-survives-compaction) reemplaza tu historial de mensajes con un resumen. Por diseño, esto invalida la capa de conversación: la siguiente solicitud tiene un historial nuevo y más corto que no comparte un prefijo con el anterior. Las capas del prompt del sistema y del contexto del proyecto pueden permanecer en caché:

173 175 

174Para producir el resumen, Claude Code envía una solicitud separada con el mismo prompt del sistema, herramientas e historial que tu conversación, más una instrucción de resumen anexada como mensaje final del usuario. Mientras la caché está activa, esa solicitud lee tu prefijo desde la caché, por lo que un `/compact` a mitad de sesión cuesta una fracción de lo que sugiere el tamaño del contexto y pasa la mayor parte de su tiempo generando el resumen.176* **Prompt del sistema**: la siguiente solicitud lee esta capa desde la caché, a menos que una [conversación reanudada](#resuming-a-session) haya mantenido un prompt del sistema que ahora está desactualizado. La primera vez que esa conversación se compacta, Claude Code la cambia al prompt actual, y la siguiente solicitud reconstruye la caché de esta capa una vez.

177* **Contexto del proyecto**: Claude Code recarga esta capa desde el disco. La siguiente solicitud la lee desde la caché solo si CLAUDE.md y la memoria no han cambiado desde que comenzó la sesión.

175 178 

176Después de una pausa más larga que la [duración de caché](#cache-lifetime), no queda caché para leer, por lo que la solicitud de resumen reprocesa el historial completo como entrada sin caché. Por eso `/compact` cuesta más cuando [reanudas una sesión antigua](/docs/es/sessions#resume-a-session). Tanto con la caché activa como con la caché expirada, el turno después de la compactación reconstruye la caché de conversación solo para el resumen, mucho más corto, por lo que ese turno no es la parte lenta.179Para producir el resumen, Claude Code envía una solicitud separada. La solicitud repite el prompt del sistema, las herramientas y el historial que se está resumiendo de tu conversación. Termina con una instrucción de resumen. Mientras la caché está activa, esa solicitud lee tu prefijo desde la caché. Así, un `/compact` a mitad de sesión cuesta una fracción de lo que sugiere el tamaño del contexto y pasa la mayor parte de su tiempo generando el resumen.

180 

181Después de una pausa más larga que la [duración de caché](#cache-lifetime), no queda caché para leer, por lo que la solicitud de resumen reprocesa ese historial como entrada sin caché. Por eso `/compact` cuesta más cuando [reanudas una sesión antigua](/docs/es/sessions#resume-a-session). Tanto con la caché activa como con la caché expirada, el turno después de la compactación reconstruye la caché de conversación solo para el resumen, mucho más corto, por lo que ese turno no es la parte lenta.

177 182 

178> [!TIP]183> [!TIP]

179>184>

Details

26Antes de usar Remote Control, confirme que su entorno cumple con estas condiciones:26Antes de usar Remote Control, confirme que su entorno cumple con estas condiciones:

27 27 

28* **Suscripción**: disponible en planes Pro, Max, Team y Enterprise. Las claves API no son compatibles. En Team y Enterprise, un propietario debe habilitar primero el botón de alternancia de Remote Control en [configuración de administración de Claude Code](https://claude.ai/admin-settings/claude-code).28* **Suscripción**: disponible en planes Pro, Max, Team y Enterprise. Las claves API no son compatibles. En Team y Enterprise, un propietario debe habilitar primero el botón de alternancia de Remote Control en [configuración de administración de Claude Code](https://claude.ai/admin-settings/claude-code).

29* **Roles personalizados**: si tu organización Enterprise administra tu acceso con [roles personalizados](https://support.claude.com/en/articles/13930452), tus roles deben otorgarte tanto el permiso de sesiones en la nube como el permiso **Claude Code remote control**. Si falta alguno de los dos, al iniciar Remote Control se muestra [`Remote Control is disabled by your organization's policy`](#remote-control-is-disabled-by-your-organizations-policy). Pide a un propietario que revise tus roles y agregue lo que falta en [**Organization settings > Roles**](https://claude.ai/admin-settings/roles).

29* **Autenticación**: ejecute `claude` y use `/login` para iniciar sesión a través de claude.ai si aún no lo ha hecho. Sin un inicio de sesión elegible, `claude remote-control` se cierra con un error, mientras que `claude --remote-control` aún inicia una sesión interactiva y muestra una notificación de fallo de Remote Control poco después del lanzamiento.30* **Autenticación**: ejecute `claude` y use `/login` para iniciar sesión a través de claude.ai si aún no lo ha hecho. Sin un inicio de sesión elegible, `claude remote-control` se cierra con un error, mientras que `claude --remote-control` aún inicia una sesión interactiva y muestra una notificación de fallo de Remote Control poco después del lanzamiento.

30* **Punto final de API**: no disponible en ninguna de estas configuraciones:31* **Punto final de API**: no disponible en ninguna de estas configuraciones:

31 * Utiliza Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry.32 * Utiliza Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry.

32 * Apunta [`ANTHROPIC_BASE_URL`](/docs/es/env-vars) a un host distinto de `api.anthropic.com`, como una [puerta de enlace LLM](/docs/es/llm-gateway) o proxy. Desactive la variable para usar Remote Control.33 * Apunta [`ANTHROPIC_BASE_URL`](/docs/es/env-vars) a un host distinto de `api.anthropic.com`, como una [puerta de enlace LLM](/docs/es/llm-gateway) o proxy. Desactive la variable para usar Remote Control.

33 * Inicia sesión a través de una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) empresarial.34 * Inicia sesión a través de una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) empresarial.

34* **Evaluación de indicadores de características**: si establece una [variable de entorno que desactiva la evaluación de indicadores de características](/docs/es/env-vars#features-that-need-feature-flag-fetching), la disponibilidad de Remote Control depende de cuál sea:35* **Evaluación de indicadores de características**: si estableces una [variable de entorno que desactiva la evaluación de indicadores de características](/docs/es/env-vars#features-that-need-feature-flag-fetching), la disponibilidad de Remote Control depende de cuál sea:

35 * Si establece `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` o `DISABLE_GROWTHBOOK`, Remote Control no está disponible. Desactive la variable dondequiera que esté configurada, en su entorno de shell o en el bloque `env` de un [archivo `settings.json`](/docs/es/settings-reference#all-settings), para usar Remote Control.36 * Si estableces `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` o `DISABLE_GROWTHBOOK`, Remote Control no está disponible. Elimina la variable dondequiera que esté configurada, en tu entorno de shell o en el bloque `env` de un [archivo `settings.json`](/docs/es/settings-reference#all-settings), para usar Remote Control.

36 * Si establece solo `DISABLE_TELEMETRY` o `DO_NOT_TRACK`, Remote Control permanece disponible a menos que su organización requiera [Dispositivos de confianza](#trusted-devices). Si es así, desactive la variable para usar Remote Control. El uso de Remote Control con cualquiera de estas variables establecidas requiere Claude Code v2.1.283 o posterior.37 * Si estableces solo `DISABLE_TELEMETRY` o `DO_NOT_TRACK`, Remote Control permanece disponible a menos que tu organización requiera [Dispositivos de confianza](#trusted-devices). Si es así, elimina la variable para usar Remote Control. El uso de Remote Control con cualquiera de estas variables establecidas requiere Claude Code v2.1.283 o posterior, o v2.1.304 o posterior en la aplicación Claude Desktop.

37* **Confianza del espacio de trabajo**: en un directorio que aún no ha confiado, `claude remote-control` imprime lo que confiar en él activa y pregunta `Trust <directory>? [y/N]` antes de iniciarse. Responder `y` guarda la opción, excepto en su directorio de inicio, donde la confianza nunca se guarda y la pregunta vuelve en cada ejecución. Cuando su entrada o salida estándar no es una terminal, el comando no puede preguntar y se cierra con un error [`Workspace not trusted`](/docs/es/errors#workspace-not-trusted-when-starting-remote-control).38* **Confianza del espacio de trabajo**: en un directorio que aún no ha confiado, `claude remote-control` imprime lo que confiar en él activa y pregunta `Trust <directory>? [y/N]` antes de iniciarse. Responder `y` guarda la opción, excepto en su directorio de inicio, donde la confianza nunca se guarda y la pregunta vuelve en cada ejecución. Cuando su entrada o salida estándar no es una terminal, el comando no puede preguntar y se cierra con un error [`Workspace not trusted`](/docs/es/errors#workspace-not-trusted-when-starting-remote-control).

38 39 

39## Inicie una sesión de Remote Control40## Inicie una sesión de Remote Control


60| `--remote-control-session-name-prefix <prefix>` | Prefijo para nombres de sesión generados automáticamente cuando no se establece un nombre explícito. El valor predeterminado es el nombre de host de su máquina, produciendo nombres como `myhost-graceful-unicorn`. Establezca `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` para el mismo efecto. |61| `--remote-control-session-name-prefix <prefix>` | Prefijo para nombres de sesión generados automáticamente cuando no se establece un nombre explícito. El valor predeterminado es el nombre de host de su máquina, produciendo nombres como `myhost-graceful-unicorn`. Establezca `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` para el mismo efecto. |

61| `-c`, `--continue` | Reanude la sesión que el último servidor en este directorio inició, en lugar de crear una nueva. Consulte [Reanude sesiones después de detener el servidor](#resume-sessions-after-stopping-the-server). No se puede combinar con `--session-id`, `--spawn`, `--capacity`, o `--create-session-in-dir`. Requiere Claude Code v2.1.200 o posterior. |62| `-c`, `--continue` | Reanude la sesión que el último servidor en este directorio inició, en lugar de crear una nueva. Consulte [Reanude sesiones después de detener el servidor](#resume-sessions-after-stopping-the-server). No se puede combinar con `--session-id`, `--spawn`, `--capacity`, o `--create-session-in-dir`. Requiere Claude Code v2.1.200 o posterior. |

62| `--session-id <id>` | Reanude una sesión por su ID. Consulte [Reanude sesiones después de detener el servidor](#resume-sessions-after-stopping-the-server). No se puede combinar con `--continue`, `--spawn`, `--capacity`, o `--create-session-in-dir`. Requiere Claude Code v2.1.200 o posterior. |63| `--session-id <id>` | Reanude una sesión por su ID. Consulte [Reanude sesiones después de detener el servidor](#resume-sessions-after-stopping-the-server). No se puede combinar con `--continue`, `--spawn`, `--capacity`, o `--create-session-in-dir`. Requiere Claude Code v2.1.200 o posterior. |

63| `--spawn <mode>` | Cómo el servidor crea sesiones. • `same-dir` (predeterminado): todas las sesiones comparten el directorio de trabajo actual, por lo que pueden entrar en conflicto si editan los mismos archivos. • `worktree`: cada sesión bajo demanda obtiene su propio [git worktree](/docs/es/worktrees). Requiere un repositorio git o un [hook `WorktreeCreate`](/docs/es/hooks#worktreecreate). • `session`: modo de sesión única. Sirve exactamente una sesión y rechaza conexiones adicionales. Se establece solo al inicio. Presiona `w` en tiempo de ejecución para alternar entre `same-dir` y `worktree`. |64| `--spawn <mode>` | Cómo el servidor crea sesiones. • `same-dir` (predeterminado cuando no hay ningún modo guardado): todas las sesiones comparten el directorio de trabajo actual, por lo que pueden entrar en conflicto si editan los mismos archivos. • `worktree`: cada sesión bajo demanda obtiene su propio [git worktree](/docs/es/worktrees). Requiere un repositorio git o un [hook `WorktreeCreate`](/docs/es/hooks#worktreecreate). • `session`: modo de sesión única. Sirve exactamente una sesión y rechaza conexiones adicionales. Se establece solo al inicio. Presiona `w` en tiempo de ejecución para alternar entre `same-dir` y `worktree`. El modo al que cambies se convierte en el [predeterminado para este proyecto](#set-the-default-spawn-mode-for-a-project). |

64| `--capacity <N>` | Número máximo de sesiones concurrentes. El valor predeterminado es 32. No se puede usar con `--spawn=session`. |65| `--capacity <N>` | Número máximo de sesiones concurrentes. El valor predeterminado es 32. No se puede usar con `--spawn=session`. |

65| `--[no-]create-session-in-dir` | Pre-crear una sesión en el directorio actual cuando el servidor se inicia, para que tenga un lugar donde escribir inmediatamente. En modo `worktree` esta sesión permanece en el directorio actual mientras las sesiones bajo demanda obtienen worktrees aislados. Habilitado de forma predeterminada. Si pasa `--no-create-session-in-dir` para comenzar sin ninguno, Claude Code archiva las sesiones del servidor cuando lo detiene, por lo que no hay nada que [reanudar](#resume-sessions-after-stopping-the-server). |66| `--[no-]create-session-in-dir` | Pre-crear una sesión en el directorio actual cuando el servidor se inicia, para que tenga un lugar donde escribir inmediatamente. En modo `worktree` esta sesión permanece en el directorio actual mientras las sesiones bajo demanda obtienen worktrees aislados. Habilitado de forma predeterminada. Si pasa `--no-create-session-in-dir` para comenzar sin ninguno, Claude Code archiva las sesiones del servidor cuando lo detiene, por lo que no hay nada que [reanudar](#resume-sessions-after-stopping-the-server). |

66| `--permission-mode <mode>` | Establezca el [modo de permiso](/docs/es/permission-modes) inicial para las sesiones del servidor, como `acceptEdits`. Acepta `manual` como alias para `default`; un modo no reconocido detiene el servidor al inicio y enumera los modos válidos. |67| `--permission-mode <mode>` | Establezca el [modo de permiso](/docs/es/permission-modes) inicial para las sesiones del servidor, como `acceptEdits`. Acepta `manual` como alias para `default`; un modo no reconocido detiene el servidor al inicio y enumera los modos válidos. |


203 204 

204Si solo tienes establecido `DISABLE_TELEMETRY` o `DO_NOT_TRACK`, tus sesiones no se conectan automáticamente a través del valor predeterminado del administrador de tu organización ni del propio valor predeterminado de Claude Code. Si otra cosa hace que Remote Control no esté disponible para ti, como `DISABLE_GROWTHBOOK` o un gateway de LLM, empieza por [Requisitos](#requirements).205Si solo tienes establecido `DISABLE_TELEMETRY` o `DO_NOT_TRACK`, tus sesiones no se conectan automáticamente a través del valor predeterminado del administrador de tu organización ni del propio valor predeterminado de Claude Code. Si otra cosa hace que Remote Control no esté disponible para ti, como `DISABLE_GROWTHBOOK` o un gateway de LLM, empieza por [Requisitos](#requirements).

205 206 

206Activar la conexión automática con solo `DISABLE_TELEMETRY` o `DO_NOT_TRACK` establecidos requiere Claude Code v2.1.283 o posterior. Para conectarte automáticamente, comprueba si tu organización requiere [Trusted Devices](#trusted-devices):207Antes de activar la conexión automática con solo `DISABLE_TELEMETRY` o `DO_NOT_TRACK` establecidos, confirma que tu versión de Claude Code cumple el [requisito para estas variables](#requirements). Luego comprueba si tu organización requiere [Trusted Devices](#trusted-devices):

207 208 

208* **No requerido**: establece **Enable Remote Control for all sessions** en `true` en `/config`.209* **No requerido**: establece **Enable Remote Control for all sessions** en `true` en `/config`.

209* **Requerido**: Remote Control no está disponible mientras `DISABLE_TELEMETRY` o `DO_NOT_TRACK` esté establecido. Elimina la variable que hayas establecido de las dos. Si tus sesiones siguen sin conectarse automáticamente, establece **Enable Remote Control for all sessions** en `true` en `/config`.210* **Requerido**: Remote Control no está disponible mientras `DISABLE_TELEMETRY` o `DO_NOT_TRACK` esté establecido. Elimina la variable que hayas establecido de las dos. Si tus sesiones siguen sin conectarse automáticamente, establece **Enable Remote Control for all sessions** en `true` en `/config`.


224 225 

225Cuando reanuda una conversación en Claude Desktop o una extensión de IDE que tenía Remote Control activado, Claude Code lo vuelve a adjuntar a la sesión de claude.ai existente en lugar de agregar una nueva a la lista de sesiones.226Cuando reanuda una conversación en Claude Desktop o una extensión de IDE que tenía Remote Control activado, Claude Code lo vuelve a adjuntar a la sesión de claude.ai existente en lugar de agregar una nueva a la lista de sesiones.

226 227 

228### Establece el modo de creación predeterminado para un proyecto

229 

230Si `claude remote-control` imprime `Spawn mode: <mode> (saved for this folder; press w to change)` al iniciarse, el servidor se está iniciando en un modo de creación guardado previamente para este proyecto.

231 

232El modo guardado proviene de una elección que hiciste en tu propia terminal. Si `claude remote-control` preguntó `Spawn mode for this project:` allí, Claude Code conservó lo que respondiste: `1` para `same-dir` o `2` para `worktree`. Si presionaste `w` mientras se ejecutaba, Claude Code conservó el modo al que cambiaste, incluso en una ejecución que iniciaste con `--spawn same-dir` o `--spawn worktree`.

233 

234* Mientras el servidor se ejecuta en modo `same-dir` o `worktree`, presiona `w` en la terminal del servidor para cambiar al otro. Cambiar requiere un repositorio git o un hook `WorktreeCreate`.

235* Para usar un modo diferente en una sola ejecución, pasa `--spawn <mode>`.

236 

227## Conexión y seguridad237## Conexión y seguridad

228 238 

229Su sesión local de Claude Code realiza solo solicitudes HTTPS salientes y nunca abre puertos entrantes en su máquina. Cuando inicia Remote Control, se registra con la API de Anthropic y sondea el trabajo. Cuando se conecta desde otro dispositivo, el servidor enruta mensajes entre el cliente web o móvil y su sesión local a través de una conexión de transmisión.239Su sesión local de Claude Code realiza solo solicitudes HTTPS salientes y nunca abre puertos entrantes en su máquina. Cuando inicia Remote Control, se registra con la API de Anthropic y sondea el trabajo. Cuando se conecta desde otro dispositivo, el servidor enruta mensajes entre el cliente web o móvil y su sesión local a través de una conexión de transmisión.


426Una [variable de entorno](/docs/es/env-vars#features-that-need-feature-flag-fetching) que desactiva la evaluación de indicadores de características está configurada, y el mensaje completo menciona la variable que Claude Code encontró. En versiones anteriores a 2.1.154, la misma configuración produce "Remote Control is not yet enabled for your account" en su lugar. Lo que debes hacer depende de la variable que menciona el mensaje:436Una [variable de entorno](/docs/es/env-vars#features-that-need-feature-flag-fetching) que desactiva la evaluación de indicadores de características está configurada, y el mensaje completo menciona la variable que Claude Code encontró. En versiones anteriores a 2.1.154, la misma configuración produce "Remote Control is not yet enabled for your account" en su lugar. Lo que debes hacer depende de la variable que menciona el mensaje:

427 437 

428* **`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` o `DISABLE_GROWTHBOOK`**: desactiva la variable dondequiera que esté configurada, en tu entorno de shell o en el bloque `env` de un [archivo `settings.json`](/docs/es/settings-reference#all-settings).438* **`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` o `DISABLE_GROWTHBOOK`**: desactiva la variable dondequiera que esté configurada, en tu entorno de shell o en el bloque `env` de un [archivo `settings.json`](/docs/es/settings-reference#all-settings).

429* **`DISABLE_TELEMETRY` o `DO_NOT_TRACK`**: en un plan Pro, Max, Team o Enterprise con `DISABLE_GROWTHBOOK` desactivado, estas variables dejan Remote Control disponible a menos que tu organización requiera [Dispositivos de confianza](#trusted-devices). Si tu organización los requiere, desactiva la variable dondequiera que esté configurada para usar Remote Control. De v2.1.154 a v2.1.282, cualquiera de las variables produjo este mensaje, por lo que actualiza Claude Code a v2.1.283 o posterior.439* **`DISABLE_TELEMETRY` o `DO_NOT_TRACK`**: en un plan Pro, Max, Team o Enterprise con `DISABLE_GROWTHBOOK` desactivado, estas variables dejan Remote Control disponible a menos que tu organización requiera [Dispositivos de confianza](#trusted-devices). Si tu organización los requiere, desactiva la variable dondequiera que esté configurada para usar Remote Control. De v2.1.154 a v2.1.282, ves este mensaje con cualquiera de las variables configurada, por lo que actualiza Claude Code a una versión que cumpla el [requisito para estas variables](#requirements).

430 440 

431### "Remote Control is only available when using Claude via api.anthropic.com"441### "Remote Control is only available when using Claude via api.anthropic.com"

432 442 


441* **El error menciona `disableRemoteControl`**: tu administrador de TI ha deshabilitado Remote Control en este dispositivo a través de la [configuración administrada](/docs/es/managed-settings), independientemente del conmutador de toda la organización y de cómo hayas iniciado sesión.451* **El error menciona `disableRemoteControl`**: tu administrador de TI ha deshabilitado Remote Control en este dispositivo a través de la [configuración administrada](/docs/es/managed-settings), independientemente del conmutador de toda la organización y de cómo hayas iniciado sesión.

442* **Tu plan de claude.ai es Pro o Max**: Claude Code aún tiene la sesión iniciada bajo una organización de Team o Enterprise de un inicio de sesión anterior, por lo que verifica la política de Remote Control de esa organización. Ejecuta `/status` para ver qué plan y organización utiliza tu inicio de sesión. Ejecuta `claude auth logout` y luego `claude auth login` para iniciar sesión nuevamente bajo tu plan actual.452* **Tu plan de claude.ai es Pro o Max**: Claude Code aún tiene la sesión iniciada bajo una organización de Team o Enterprise de un inicio de sesión anterior, por lo que verifica la política de Remote Control de esa organización. Ejecuta `/status` para ver qué plan y organización utiliza tu inicio de sesión. Ejecuta `claude auth logout` y luego `claude auth login` para iniciar sesión nuevamente bajo tu plan actual.

443* **El mensaje no dice que contactes al administrador de tu organización**: tu organización tiene aplicada la [configuración HIPAA](/docs/es/hipaa-setup), que desactiva Remote Control. Para confirmarlo, ejecuta `/status` y busca `HIPAA` en la línea `Organization configuration`. Un propietario ve el conmutador **Remote Control** atenuado en la [configuración de administración](https://claude.ai/admin-settings/claude-code) y no puede activarlo. Si tienes preguntas sobre la configuración, consulta a un propietario, quien puede ponerse en contacto con el equipo de cuenta de Anthropic de tu organización. Antes de v2.1.267, este caso mostraba "Remote Control isn't available for your organization due to its compliance policy" en su lugar.453* **El mensaje no dice que contactes al administrador de tu organización**: tu organización tiene aplicada la [configuración HIPAA](/docs/es/hipaa-setup), que desactiva Remote Control. Para confirmarlo, ejecuta `/status` y busca `HIPAA` en la línea `Organization configuration`. Un propietario ve el conmutador **Remote Control** atenuado en la [configuración de administración](https://claude.ai/admin-settings/claude-code) y no puede activarlo. Si tienes preguntas sobre la configuración, consulta a un propietario, quien puede ponerse en contacto con el equipo de cuenta de Anthropic de tu organización. Antes de v2.1.267, este caso mostraba "Remote Control isn't available for your organization due to its compliance policy" en su lugar.

454* **Remote Control funciona para otros miembros de tu organización pero no para ti**: si tu organización Enterprise administra tu acceso con [roles personalizados](https://support.claude.com/en/articles/13930452), tus roles pueden ser la causa. Remote Control necesita tanto el permiso de sesiones en la nube como el permiso **Claude Code remote control**. Pide a un propietario que verifique si tus roles incluyen ambos y que agregue lo que falte en [**Organization settings > Roles**](https://claude.ai/admin-settings/roles).

444* **De lo contrario, un propietario no lo ha habilitado para tu organización**: Remote Control está desactivado de forma predeterminada en planes de Team y Enterprise. Un propietario puede habilitarlo en [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) activando el conmutador **Remote Control**. Este conmutador es un ajuste de organización del lado del servidor.455* **De lo contrario, un propietario no lo ha habilitado para tu organización**: Remote Control está desactivado de forma predeterminada en planes de Team y Enterprise. Un propietario puede habilitarlo en [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) activando el conmutador **Remote Control**. Este conmutador es un ajuste de organización del lado del servidor.

445 456 

446Antes de v2.1.281, este mensaje también aparecía cuando Claude Code no había cargado la política de tu organización en esta máquina, por ejemplo después de iniciar sin conexión. Las versiones posteriores informan ese estado como [`Couldn't verify your organization's policy for remote control`](#couldnt-verify-your-organizations-policy-for-remote-control) en su lugar.457Antes de v2.1.281, este mensaje también aparecía cuando Claude Code no había cargado la política de tu organización en esta máquina, por ejemplo después de iniciar sin conexión. Las versiones posteriores informan ese estado como [`Couldn't verify your organization's policy for remote control`](#couldnt-verify-your-organizations-policy-for-remote-control) en su lugar.

routines.md +10 −9

Details

33 33 

34Los Owners de Team y Enterprise pueden desactivar las tareas programadas para todos los miembros con el interruptor **Scheduled tasks (Was Routines)** en [**Organization settings > Capabilities > Remote sessions**](https://claude.ai/admin-settings/capabilities). Cuando el interruptor está desactivado, las tareas programadas existentes dejan de ejecutarse y los miembros no pueden crear nuevas.34Los Owners de Team y Enterprise pueden desactivar las tareas programadas para todos los miembros con el interruptor **Scheduled tasks (Was Routines)** en [**Organization settings > Capabilities > Remote sessions**](https://claude.ai/admin-settings/capabilities). Cuando el interruptor está desactivado, las tareas programadas existentes dejan de ejecutarse y los miembros no pueden crear nuevas.

35 35 

36Si tu organización Enterprise administra tu acceso con [roles personalizados](https://support.claude.com/en/articles/13930452), también necesitas un rol que incluya el permiso de tareas programadas. Un Owner puede agregarlo en la sección **Remote sessions** de un rol en [**Organization settings > Roles**](https://claude.ai/admin-settings/roles).

37 

36## Casos de uso de ejemplo38## Casos de uso de ejemplo

37 39 

38Cada ejemplo combina un tipo de disparador con el tipo de trabajo para el que las tareas programadas son adecuadas: desatendido, repetible y vinculado a un resultado claro.40Cada ejemplo combina un tipo de disparador con el tipo de trabajo para el que las tareas programadas son adecuadas: desatendido, repetible y vinculado a un resultado claro.


48 50 

49Crea una tarea programada desde la web en [claude.ai/code/routines](https://claude.ai/code/routines), desde la aplicación de escritorio o desde la CLI. Las tres superficies escriben en la misma cuenta en la nube, por lo que una tarea programada que creas en una aparece en las otras de inmediato. En la pestaña **Code** de la aplicación de escritorio, haz clic en **Scheduled** en la barra lateral o en el menú **More** de la barra lateral, luego en **New task**, y continúa con [Crear desde la web](#create-from-the-web).51Crea una tarea programada desde la web en [claude.ai/code/routines](https://claude.ai/code/routines), desde la aplicación de escritorio o desde la CLI. Las tres superficies escriben en la misma cuenta en la nube, por lo que una tarea programada que creas en una aparece en las otras de inmediato. En la pestaña **Code** de la aplicación de escritorio, haz clic en **Scheduled** en la barra lateral o en el menú **More** de la barra lateral, luego en **New task**, y continúa con [Crear desde la web](#create-from-the-web).

50 52 

51Las tareas programadas se ejecutan de forma autónoma como sesiones completas de Claude Code en la nube. No eliges un modo de permisos. La sesión ejecuta comandos de shell, usa los [skills](/docs/es/skills) incluidos en commits del repositorio clonado y llama a cualquier conector que incluyas, todo sin detenerse a pedir aprobación, salvo en algunas [acciones de artefactos](#when-a-run-publishes-an-artifact-without-asking).53Las tareas programadas se ejecutan de forma autónoma como sesiones completas de Claude Code en la nube. No eliges un modo de permisos. La sesión ejecuta comandos de shell, usa [skills](/docs/es/skills) y llama a cualquier conector que incluyas, todo sin detenerse a pedir aprobación, salvo en algunas [acciones de artefactos](#when-a-run-publishes-an-artifact-without-asking). Fuera de un [proyecto](/docs/es/claude-projects#what-threads-pick-up-from-your-repositories), esos skills incluyen los que están en commits del repositorio clonado.

52 54 

53Lo que una tarea programada puede alcanzar está determinado por:55Lo que una tarea programada puede alcanzar está determinado por:

54 56 


116 118 

117Haz clic en **Create**. El diálogo se cierra y se abre la página de detalles de la nueva tarea. La tarea se ejecuta la próxima vez que uno de sus disparadores coincida. Para iniciar una ejecución de inmediato, haz clic en **Run now** en la página de detalles.119Haz clic en **Create**. El diálogo se cierra y se abre la página de detalles de la nueva tarea. La tarea se ejecuta la próxima vez que uno de sus disparadores coincida. Para iniciar una ejecución de inmediato, haz clic en **Run now** en la página de detalles.

118 120 

119Cada ejecución crea una nueva sesión junto a tus otras sesiones, donde puedes ver qué hizo Claude, revisar los cambios y crear un pull request.121Para ver qué hizo una ejecución, haz clic en ella en la lista **History** de la página de detalles. La ejecución [se abre como una sesión completa](#view-and-interact-with-runs), una nueva para cada ejecución, donde puedes ver qué hizo Claude, revisar los cambios y crear un pull request.

120 122 

121#### Diálogo con Repositories y Environment en la vista principal123#### Diálogo con Repositories y Environment en la vista principal

122 124 


147 149 

148Un disparador de horario ejecuta la tarea con una cadencia recurrente, o una sola vez en un momento futuro específico. En el diálogo de creación o edición de la tarea en la web, elige una frecuencia preestablecida, como cada hora, diaria o semanal:150Un disparador de horario ejecuta la tarea con una cadencia recurrente, o una sola vez en un momento futuro específico. En el diálogo de creación o edición de la tarea en la web, elige una frecuencia preestablecida, como cada hora, diaria o semanal:

149 151 

150* **Zona horaria**: las horas se ingresan en tu zona local y se convierten automáticamente, por lo que la tarea se ejecuta a esa hora de reloj independientemente de dónde se encuentre la infraestructura en la nube.

151* **Ejecuciones en punto**: si programas una ejecución exactamente en punto, como a las 9:00, puede comenzar varios minutos tarde. Para comenzar cerca de la hora programada, elige unos minutos después de la hora, por ejemplo 9:07.152* **Ejecuciones en punto**: si programas una ejecución exactamente en punto, como a las 9:00, puede comenzar varios minutos tarde. Para comenzar cerca de la hora programada, elige unos minutos después de la hora, por ejemplo 9:07.

152* **Intervalos personalizados**: para un intervalo personalizado, como cada dos horas, elige el preestablecido más cercano en el diálogo y luego ejecuta `/schedule update` en la CLI para establecer una expresión cron específica. El intervalo mínimo es de una hora; las expresiones que se ejecutan con más frecuencia se rechazan.153* **Intervalos personalizados**: para una cadencia que no ofrecen los preestablecidos, crea la tarea y selecciona **Custom** en su [diálogo de edición](#edit-and-control-scheduled-tasks). Luego ingresa una expresión cron, como `0 */2 * * *` para cada dos horas. Para establecer una desde la CLI, ejecuta [`/schedule update`](#manage-scheduled-tasks-from-the-cli). Las expresiones que se ejecutan con más frecuencia que una vez por hora se rechazan.

154* **Zona horaria**: cuando elijas una frecuencia preestablecida, ingresa la hora en tu zona horaria local.

153 155 

154#### Programar una ejecución única156#### Programar una ejecución única

155 157 


159* Abrir un PR de limpieza después de que termine un despliegue gradual161* Abrir un PR de limpieza después de que termine un despliegue gradual

160* Iniciar trabajo de seguimiento después de que se publique un cambio upstream162* Iniciar trabajo de seguimiento después de que se publique un cambio upstream

161 163 

162Después de que la tarea se ejecuta, se desactiva sola y la interfaz web la marca como **Completed**. Para ejecutarla de nuevo, abre el diálogo de edición de la tarea en la web, que ofrece **One-time** para una tarea única, y establece una nueva hora.164Después de que la tarea se ejecuta, se desactiva sola y la interfaz web la marca como **Completed**. Para ejecutarla de nuevo, abre el [diálogo de edición](#edit-and-control-scheduled-tasks) de la tarea en la web y selecciona **One-time** u **Once**, según la etiqueta que muestre tu diálogo. Luego establece una nueva fecha y hora en tu zona horaria local y guarda.

163 165 

164Crea una ejecución única desde la CLI describiendo la hora en lenguaje natural. Claude interpreta la frase en relación con la hora actual y confirma la marca de tiempo absoluta antes de guardar.166Crea una ejecución única desde la CLI describiendo la hora en lenguaje natural. Claude interpreta la frase en relación con la hora actual y confirma la marca de tiempo absoluta antes de guardar.

165 167 


171/schedule in 2 weeks, open a cleanup PR that removes the feature flag173/schedule in 2 weeks, open a cleanup PR that removes the feature flag

172```174```

173 175 

174La misma conversión de zona local a UTC que en las programaciones recurrentes se aplica a las marcas de tiempo únicas.

175 

176Las ejecuciones únicas cuentan contra el mismo límite por hora que otras ejecuciones programadas. Consulta [Uso y límites](#usage-and-limits) para obtener detalles.176Las ejecuciones únicas cuentan contra el mismo límite por hora que otras ejecuciones programadas. Consulta [Uso y límites](#usage-and-limits) para obtener detalles.

177 177 

178### Agregar un disparador de API178### Agregar un disparador de API


356Los conectores son las [integraciones de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai) de tu cuenta. Los servidores MCP que agregaste localmente en la CLI con `claude mcp add` se almacenan en tu máquina y no en tu cuenta de claude.ai, por lo que no aparecen en la lista de conectores. Para usar uno de esos servidores en una tarea programada:356Los conectores son las [integraciones de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai) de tu cuenta. Los servidores MCP que agregaste localmente en la CLI con `claude mcp add` se almacenan en tu máquina y no en tu cuenta de claude.ai, por lo que no aparecen en la lista de conectores. Para usar uno de esos servidores en una tarea programada:

357 357 

358* **Como conector**: agrégalo como conector en [claude.ai/customize/connectors](https://claude.ai/customize/connectors)358* **Como conector**: agrégalo como conector en [claude.ai/customize/connectors](https://claude.ai/customize/connectors)

359* **En el repositorio**: para una tarea programada con un solo repositorio, puedes en cambio declarar el servidor en un [`.mcp.json`](/docs/es/mcp#project-scope) incluido en un commit para que forme parte del repositorio clonado359* **En el repositorio**: para una tarea programada con un solo repositorio fuera de un [proyecto](/docs/es/claude-projects#what-threads-pick-up-from-your-repositories), puedes en cambio declarar el servidor en un [`.mcp.json`](/docs/es/mcp#project-scope) incluido en un commit. Una tarea programada en un proyecto no carga `.mcp.json`, así que agrega el servidor como conector

360 360 

361Cuando creas una tarea programada, todos tus conectores conectados actualmente se incluyen de forma predeterminada. Elimina los que no sean necesarios para limitar a qué herramientas tiene acceso Claude durante la ejecución. También puedes agregar conectores directamente desde el diálogo de creación o edición de la tarea.361Cuando creas una tarea programada, todos tus conectores conectados actualmente se incluyen de forma predeterminada. Elimina los que no sean necesarios para limitar a qué herramientas tiene acceso Claude durante la ejecución. También puedes agregar conectores directamente desde el diálogo de creación o edición de la tarea.

362 362 


452* Estás dentro de una sesión en la nube, donde enviar `/schedule` responde que el comando no está disponible en ese entorno. Administra las tareas programadas desde la [interfaz web](https://claude.ai/code/routines) en su lugar452* Estás dentro de una sesión en la nube, donde enviar `/schedule` responde que el comando no está disponible en ese entorno. Administra las tareas programadas desde la [interfaz web](https://claude.ai/code/routines) en su lugar

453* La política de tu organización desactiva las [sesiones en la nube](/docs/es/claude-code-on-the-web), que las tareas programadas requieren. En este caso, enviar `/schedule` responde [`Cloud sessions are disabled by your organization's policy`](/docs/es/errors#cloud-sessions-are-disabled-by-your-organizations-policy) en su lugar. Antes de v2.1.268, devolvía `Unknown command: /schedule`453* La política de tu organización desactiva las [sesiones en la nube](/docs/es/claude-code-on-the-web), que las tareas programadas requieren. En este caso, enviar `/schedule` responde [`Cloud sessions are disabled by your organization's policy`](/docs/es/errors#cloud-sessions-are-disabled-by-your-organizations-policy) en su lugar. Antes de v2.1.268, devolvía `Unknown command: /schedule`

454* Un Owner [desactivó las tareas programadas](#routines-are-disabled-by-your-organizations-policy) para tu organización de Team o Enterprise. Antes de v2.1.227, el comando seguía apareciendo en este caso, y claude.ai rechazaba la tarea cuando Claude intentaba crearla o ejecutarla454* Un Owner [desactivó las tareas programadas](#routines-are-disabled-by-your-organizations-policy) para tu organización de Team o Enterprise. Antes de v2.1.227, el comando seguía apareciendo en este caso, y claude.ai rechazaba la tarea cuando Claude intentaba crearla o ejecutarla

455* Tu organización de Enterprise administra tu acceso con [roles personalizados](https://support.claude.com/en/articles/13930452), y ninguno de tus roles incluye el permiso de tareas programadas en **Remote sessions**. Pídele a un Owner que lo agregue a uno de tus roles

455 456 

456A menos que la política de tu organización desactive las tareas programadas o las sesiones en la nube, puedes crear y administrar tareas programadas en [claude.ai/code/routines](https://claude.ai/code/routines) sin importar cómo esté configurada la CLI.457Si la causa es el inicio de sesión de tu CLI o estar dentro de una sesión en la nube, aún puedes crear y administrar tareas programadas en [claude.ai/code/routines](https://claude.ai/code/routines). Ahí necesitas una cuenta Pro, Max, Team o Enterprise. Si las tareas programadas o las sesiones en la nube están desactivadas para tu organización o no figuran en tus roles, tampoco puedes crearlas en la web.

457 458 

458### "Routines are disabled by your organization's policy"459### "Routines are disabled by your organization's policy"

459 460 

sandboxing.md +16 −2

Details

546 546 

547Si `git merge` o `git checkout` falla con `unable to unlink old` en una de estas rutas, consulta [Un comando de git falla con `unable to unlink old`](#a-git-command-fails-with-unable-to-unlink-old).547Si `git merge` o `git checkout` falla con `unable to unlink old` en una de estas rutas, consulta [Un comando de git falla con `unable to unlink old`](#a-git-command-fails-with-unable-to-unlink-old).

548 548 

549#### Rutas denegadas que pasan por un enlace simbólico

550 

551En macOS, cuando una ruta denegada pasa por un enlace simbólico, como un `~/.claude` que es un enlace a un repositorio de dotfiles, el sandbox también deniega la ubicación real de la ruta. Esto abarca las denegaciones propias del sandbox y tus entradas literales de `denyWrite` y `denyRead`.

552 

549### Aislamiento de red553### Aislamiento de red

550 554 

551Un comando en el sandbox no tiene una ruta directa a la red:555Un comando en el sandbox no tiene una ruta directa a la red:


974✗ Sandbox settings not changed: /home/you/project/.claude/settings.local.json couldn't be updated (EACCES). Start Claude Code in a project folder you can write to.978✗ Sandbox settings not changed: /home/you/project/.claude/settings.local.json couldn't be updated (EACCES). Start Claude Code in a project folder you can write to.

975```979```

976 980 

977Si el motivo entre paréntesis es `EACCES`, `EPERM` o `EROFS`, inicia Claude Code en una carpeta de proyecto en la que puedas escribir y luego ejecuta `/sandbox` de nuevo en esa sesión.981Si el motivo entre paréntesis es `EACCES`, `EPERM` o `EROFS`, inicia Claude Code en una carpeta de proyecto en la que puedas escribir y luego ejecuta `/sandbox` de nuevo en esa sesión. Si el motivo comienza con `Invalid JSON syntax in settings file`, corrige el JSON en el archivo `.claude/settings.local.json` de tu proyecto y luego ejecuta `/sandbox` de nuevo.

982 

983Si no tienes disponible ninguna carpeta de proyecto en la que puedas escribir, activa el sandbox desde tu configuración de usuario. Agrega esto a `~/.claude/settings.json`:

984 

985```json theme={null}

986{

987 "sandbox": {

988 "enabled": true

989 }

990}

991```

978 992 

979Si el motivo comienza con `Invalid JSON syntax in settings file`, corrige el JSON en el archivo `.claude/settings.local.json` de tu proyecto y luego ejecuta `/sandbox` de nuevo.993Esto activa el [modo de permiso automático](#sandbox-modes). Para el modo de permisos normal, establece también [`sandbox.autoAllowBashIfSandboxed`](/docs/es/settings-reference#sandbox-autoallowbashifsandboxed) en `false`. El cambio surte efecto en tu sesión en curso con el siguiente comando de shell que ejecute Claude, y la pestaña **Mode** de `/sandbox` marca entonces el modo vigente.

980 994 

981## Limitaciones995## Limitaciones

982 996 

Details

30| Acceso a archivos locales | No (clon nuevo) | Sí | Sí |30| Acceso a archivos locales | No (clon nuevo) | Sí | Sí |

31| Servidores MCP | Conectores configurados por tarea | [Archivos de configuración](/docs/es/mcp) y conectores | Heredado de la sesión |31| Servidores MCP | Conectores configurados por tarea | [Archivos de configuración](/docs/es/mcp) y conectores | Heredado de la sesión |

32| Solicitudes de permiso | No (se ejecuta de forma autónoma) | Configurable por tarea | Heredado de la sesión |32| Solicitudes de permiso | No (se ejecuta de forma autónoma) | Configurable por tarea | Heredado de la sesión |

33| Programación personalizable | A través de `/schedule` en la CLI | Sí | Sí |33| Programación personalizable | Sí | Sí | Sí |

34| Intervalo mínimo | 1 hora | 1 minuto | 1 minuto |34| Intervalo mínimo | 1 hora | 1 minuto cuando Claude lo establece, [1 hora en los formularios](/docs/es/desktop-scheduled-tasks#schedule-options) | 1 minuto |

35 35 

36> [!TIP]36> [!TIP]

37>37>


124 124 

125### Detener un bucle125### Detener un bucle

126 126 

127Para detener un [bucle `/loop` de ritmo propio](#let-claude-choose-the-interval) mientras espera la siguiente iteración, presione `Esc`. Esto borra el despertar pendiente para que el bucle no se ejecute nuevamente. Las tareas que programó [pidiendo a Claude directamente](#manage-scheduled-tasks) no se ven afectadas por `Esc` y permanecen en su lugar hasta que las elimine.127* **[Bucle de ritmo propio](#let-claude-choose-the-interval)**: mientras el bucle espera su siguiente iteración, presiona `Esc` para detenerlo. También puedes detenerlo con `Ctrl+C` mientras Claude está inactivo, excepto en una [sesión en segundo plano a la que te hayas adjuntado](#detach-without-stopping-a-loop). Un aviso `Pending wakeup cancelled` confirma que el bucle no volverá a ejecutarse.

128* **[Bucle de intervalo fijo](#run-on-a-fixed-interval)**: para detener un bucle como `/loop 5m`, pídele a Claude que lo cancele, por ejemplo `cancel the deploy check loop`. `Esc` y `Ctrl+C` no lo detienen, ni tampoco ninguna tarea que hayas [programado pidiéndoselo a Claude directamente](#manage-scheduled-tasks). Un bucle que no canceles termina cuando [transcurren siete días](#seven-day-expiry).

128 129 

129En [modo de ritmo propio](#let-claude-choose-the-interval), Claude también puede terminar el bucle por su cuenta una vez que la tarea se complete. Claude llama a la herramienta [`ScheduleWakeup`](/docs/es/tools-reference) con `stop: true`, que cancela el despertar pendiente inmediatamente. Si una iteración termina sin reprogramar ni detener, Claude Code programa un despertar de respaldo aproximadamente 20 minutos después y termina el bucle cuando esa iteración tampoco se reprograma.130En [modo de ritmo propio](#let-claude-choose-the-interval), Claude también puede terminar el bucle por su cuenta una vez que la tarea se complete. Claude llama a la herramienta [`ScheduleWakeup`](/docs/es/tools-reference) con `stop: true`, que cancela el despertar pendiente inmediatamente. Si una iteración termina sin reprogramar ni detener, Claude Code programa un despertar de respaldo aproximadamente 20 minutos después y termina el bucle cuando esa iteración tampoco se reprograma.

130 131 

131Los bucles en un intervalo fijo siguen ejecutándose hasta que los detenga [como cualquier otra tarea programada](#manage-scheduled-tasks) o [transcurran siete días](#seven-day-expiry).132#### Desconectarse sin detener un bucle

133 

134Cuando estás [adjuntado a una sesión en segundo plano](/docs/es/agent-view#attach-to-a-session) y Claude está inactivo, presiona `Ctrl+C` dos veces en un prompt vacío para desconectarte. Un bucle de ritmo propio que esté esperando allí su siguiente iteración sigue ejecutándose, y esa iteración comienza según lo programado. Para detener el bucle en su lugar, presiona `Esc` antes de desconectarte. Desconectarse con `Ctrl+C` sin detener el bucle requiere Claude Code v2.1.295 o posterior.

132 135 

133## Establecer un recordatorio único136## Establecer un recordatorio único

134 137 


232 235 

233* Las tareas solo se ejecutan mientras Claude Code está ejecutándose e inactivo. Cerrar la terminal o dejar que la sesión salga detiene su ejecución. [Poner la sesión en segundo plano](/docs/es/agent-view#from-inside-a-session) traslada las tareas `/loop` a una sesión en segundo plano, que sigue ejecutándose sin una terminal.236* Las tareas solo se ejecutan mientras Claude Code está ejecutándose e inactivo. Cerrar la terminal o dejar que la sesión salga detiene su ejecución. [Poner la sesión en segundo plano](/docs/es/agent-view#from-inside-a-session) traslada las tareas `/loop` a una sesión en segundo plano, que sigue ejecutándose sin una terminal.

234* Sin recuperación de disparos perdidos. Si el tiempo programado de una tarea pasa mientras Claude está ocupado en una solicitud de larga duración, se ejecuta una vez cuando Claude queda inactivo, no una vez por intervalo perdido.237* Sin recuperación de disparos perdidos. Si el tiempo programado de una tarea pasa mientras Claude está ocupado en una solicitud de larga duración, se ejecuta una vez cuando Claude queda inactivo, no una vez por intervalo perdido.

235* Cuando reanuda una sesión con `claude --resume` o `claude --continue`, Claude Code restaura las tareas programadas con `CronCreate`, excepto las tareas recurrentes que han [expirado](#seven-day-expiry) y las tareas únicas cuyo tiempo programado ha pasado. Un [`/loop` autorrítmico](#let-claude-choose-the-interval) no se restaura, así que ejecute `/loop` nuevamente para reiniciarlo. Las tareas de Bash de fondo y monitor nunca se restauran al reanudar.238* En una [sesión en segundo plano](/docs/es/agent-view#from-inside-a-session), un [loop autorrítmico](#let-claude-choose-the-interval) se detiene si su próxima activación vence mientras el proceso de la sesión no se está ejecutando, por ejemplo después de un fallo. Cuando el proceso se inicia de nuevo, la transcripción muestra un [aviso de que la activación no se ejecutará](/docs/es/errors#restarted-after-its-next-loop-wakeup-was-due). Para continuar el loop, [responde a la sesión](/docs/es/agent-view#peek-and-reply) y pídele a Claude que lo mantenga en ejecución.

239* Cuando reanudas una sesión con `claude --resume` o `claude --continue`, Claude Code restaura las tareas programadas con `CronCreate`, excepto las tareas recurrentes que han [expirado](#seven-day-expiry) y las tareas únicas cuyo tiempo programado ha pasado. Un [`/loop` autorrítmico](#let-claude-choose-the-interval) no se restaura, así que ejecuta `/loop` nuevamente para reiniciarlo.

240* Una tarea recurrente restaurada no se ejecuta para las ejecuciones que perdió mientras la sesión no estaba en ejecución. Su próxima ejecución es la primera que vence después de reanudar, y a esa ejecución se le aplica [jitter](#jitter).

241* Cuando reanudas con `claude --resume` o `claude --continue`, Claude Code no reinicia los comandos de Bash en segundo plano ni los monitores que se estaban ejecutando cuando terminó la sesión. Si todavía necesitas alguno, pídele a Claude que lo inicie de nuevo.

236* Con [obtención de banderas de características desactivada](/docs/es/env-vars#features-that-need-feature-flag-fetching), Claude Code almacena una tarea que solicitó mantener entre sesiones en el archivo `.claude/scheduled_tasks.json` del proyecto. Cuando el directorio `.claude` o ese archivo es un enlace simbólico, Claude Code devuelve un error en lugar de programar la tarea. Una tarea guardada se ejecuta solo en la carpeta del proyecto donde la creó. Si copia el archivo en otra carpeta, como un nuevo worktree, las sesiones allí enumeran las tareas copiadas pero no las ejecutan, así que cree la tarea nuevamente en esa carpeta.242* Con [obtención de banderas de características desactivada](/docs/es/env-vars#features-that-need-feature-flag-fetching), Claude Code almacena una tarea que solicitó mantener entre sesiones en el archivo `.claude/scheduled_tasks.json` del proyecto. Cuando el directorio `.claude` o ese archivo es un enlace simbólico, Claude Code devuelve un error en lugar de programar la tarea. Una tarea guardada se ejecuta solo en la carpeta del proyecto donde la creó. Si copia el archivo en otra carpeta, como un nuevo worktree, las sesiones allí enumeran las tareas copiadas pero no las ejecutan, así que cree la tarea nuevamente en esa carpeta.

237 243 

238Para la automatización impulsada por cron que necesita ejecutarse sin supervisión:244Para la automatización impulsada por cron que necesita ejecutarse sin supervisión:

Details

281| `CLAUDE_RUNNER_ATTEMPT` | Un contador por sesión para usar en el registro. No es un recuento de reintentos ni un recuento de solicitudes. `0` para solicitudes de precalentamiento, aunque una solicitud para una sesión también puede llevar `0`. |281| `CLAUDE_RUNNER_ATTEMPT` | Un contador por sesión para usar en el registro. No es un recuento de reintentos ni un recuento de solicitudes. `0` para solicitudes de precalentamiento, aunque una solicitud para una sesión también puede llevar `0`. |

282| `CLAUDE_RUNNER_ORDER_SERVER_TIME` | Hora del servidor del encabezado HTTP `Date` de la respuesta de sondeo. Cuando el hook verifica el `exp` del JWT de orden de trabajo, compare contra este valor en lugar del reloj local para tolerar sesgo. Vacío cuando la puerta de enlace omitió el encabezado. |282| `CLAUDE_RUNNER_ORDER_SERVER_TIME` | Hora del servidor del encabezado HTTP `Date` de la respuesta de sondeo. Cuando el hook verifica el `exp` del JWT de orden de trabajo, compare contra este valor en lugar del reloj local para tolerar sesgo. Vacío cuando la puerta de enlace omitió el encabezado. |

283| `CLAUDE_RUNNER_POOL_ID` | El ID del entorno al que el nuevo ejecutor debe unirse, en forma `ccpool_...` |283| `CLAUDE_RUNNER_POOL_ID` | El ID del entorno al que el nuevo ejecutor debe unirse, en forma `ccpool_...` |

284| `CLAUDE_RUNNER_ACCOUNT_ID` | ID etiquetado de la cuenta que encoló la sesión, para enrutamiento por cuenta, cuota o contracargo. Vacío cuando no está disponible, y siempre vacío para sesiones de canal Claude Tag, que ninguna cuenta encola. |284| `CLAUDE_RUNNER_ACCOUNT_ID` | ID etiquetado de la cuenta que encoló la sesión. Úsalo para enrutamiento por cuenta, cuota o contracargo, no como clave de deduplicación. Vacío cuando no está disponible, y siempre vacío para sesiones de canal Claude Tag, que ninguna cuenta encola. |

285| `CLAUDE_RUNNER_ACCOUNT_EMAIL` | Correo electrónico de la cuenta que encoló la sesión. Vacío cuando no está disponible. Trate el correo electrónico como información de identificación personal y no lo registre. |285| `CLAUDE_RUNNER_ACCOUNT_EMAIL` | Correo electrónico de la cuenta que encoló la sesión. Vacío cuando no está disponible. Trate el correo electrónico como información de identificación personal y no lo registre. |

286| `CLAUDE_RUNNER_PRIMARY_REPO_URL` | URL de la primera fuente git de la sesión, para enrutamiento a un ejecutor con ese repositorio precalentado. Vacío cuando la sesión no tiene fuentes git. |286| `CLAUDE_RUNNER_PRIMARY_REPO_URL` | URL de la primera fuente git de la sesión, para enrutamiento a un ejecutor con ese repositorio precalentado. Vacío cuando la sesión no tiene fuentes git. |

287| `CLAUDE_RUNNER_PRIMARY_REPO_REVISION` | Revisión de la primera fuente git de la sesión: rama, SHA, etiqueta o nombre de referencia completo. Vacío cuando no se especifica. |287| `CLAUDE_RUNNER_PRIMARY_REPO_REVISION` | Revisión de la primera fuente git de la sesión: rama, SHA, etiqueta o nombre de referencia completo. Vacío cuando no se especifica. |


306 * **Salida 1, o si sigue en ejecución cuando termina `--hook-timeout`**: fallo reintentable. La sesión espera un tiempo y se vuelve a ofrecer.306 * **Salida 1, o si sigue en ejecución cuando termina `--hook-timeout`**: fallo reintentable. La sesión espera un tiempo y se vuelve a ofrecer.

307 * **Salida 2 o superior**: fallo no reintentable. La sesión queda bloqueada para generar nuevamente hasta que un usuario le envíe un mensaje nuevo o un [Propietario](/docs/es/cloud-environments#organization-shared-environments) seleccione **Retry** en ella en la pestaña **Activity** del entorno.307 * **Salida 2 o superior**: fallo no reintentable. La sesión queda bloqueada para generar nuevamente hasta que un usuario le envíe un mensaje nuevo o un [Propietario](/docs/es/cloud-environments#organization-shared-environments) seleccione **Retry** en ella en la pestaña **Activity** del entorno.

308 308 

309 En una salida distinta de cero, el final del stderr del hook aparece en la pestaña **Activity** como la razón del fallo, así que escribe el error procesable en stderr y nunca escribas secretos allí. En un hook de shell, [mantén los fallos transitorios reintentables](#keep-transient-failures-retryable-in-a-shell-hook).309 Mientras una sesión espera para reintentar, aparece como **Queued** en la pestaña **Activity** sin error de generación, así que lee la salida del hook en el registro del orquestador. Una vez bloqueada, la sesión aparece como **Failed**. Expándela para leer el error de generación, tomado de los últimos 512 caracteres del stderr del hook. Escribe un error procesable en stderr, y ningún secreto. En un hook de shell, [mantén los fallos transitorios reintentables](#keep-transient-failures-retryable-in-a-shell-hook).

310 310 

311 Una solicitud de precalentamiento no tiene sesión que pueda fallar: el orquestador registra una salida distinta de cero solo localmente, y el servidor vuelve a solicitar la generación después de que expira el arrendamiento de `--expected-spawn-seconds`.311 Una solicitud de precalentamiento no tiene sesión que pueda fallar: el orquestador registra una salida distinta de cero solo localmente, y el servidor vuelve a solicitar la generación después de que expira el arrendamiento de `--expected-spawn-seconds`.

3124. **Establece `--expected-spawn-seconds` en al menos tu tiempo p99 desde la solicitud de generación hasta el registro del ejecutor.** Mide desde el momento en que el orquestador recibe la solicitud de generación, e incluye cualquier espera de capacidad en tu plataforma además del tiempo de arranque. Este valor es el arrendamiento del lado del servidor, y la orden de trabajo expira con él, por lo que un ejecutor cuya carga de trabajo tarde más no puede registrarse. Todas las réplicas del orquestador deben usar el mismo valor.3124. **Establece `--expected-spawn-seconds` en al menos tu tiempo p99 desde la solicitud de generación hasta el registro del ejecutor.** Mide desde el momento en que el orquestador recibe la solicitud de generación, e incluye cualquier espera de capacidad en tu plataforma además del tiempo de arranque. Este valor es el arrendamiento del lado del servidor, y la orden de trabajo expira con él, por lo que un ejecutor cuya carga de trabajo tarde más no puede registrarse. Todas las réplicas del orquestador deben usar el mismo valor.


327 327 

328Elimina la carga de trabajo cuando el ejecutor salga, por ejemplo, estableciendo `ttlSecondsAfterFinished` en un Job de Kubernetes o haciendo que el script de inicio de la VM elimine la VM después.328Elimina la carga de trabajo cuando el ejecutor salga, por ejemplo, estableciendo `ttlSecondsAfterFinished` en un Job de Kubernetes o haciendo que el script de inicio de la VM elimine la VM después.

329 329 

330#### Envía la salida de un proceso en segundo plano a un archivo

331 

332Si tu hook `spawn-runner` deja un proceso ejecutándose en segundo plano, envía la salida de ese proceso a un archivo que el usuario del hook pueda crear. Por ejemplo, agrega `>> "$HOME/claude-runner.log" 2>&1` al comando que inicia el proceso, antes de cualquier `&`. Esta línea del hook muestra dónde va la redirección, con `your-background-command` en lugar del comando que tu hook ejecuta en segundo plano:

333 

334```bash theme={null}

335your-background-command >> "$HOME/claude-runner.log" 2>&1 &

336```

337 

338Sin la redirección, el proceso escribe en el stdout y el stderr del hook:

339 

340* Aproximadamente un segundo después de que el hook sale, el orquestador registra `exited, but a process it started still has the hook's stdout or stderr open`. A partir de esa línea, registra hasta 64 KB más de esa salida bajo `[runner:hook:spawn-runner:after-exit jti=<order id>]` y luego descarta el resto.

341* Una vez que el orquestador sale, las escrituras del proceso allí fallan.

342 

343Un ejecutor que tu hook inicia por sí mismo ejecuta sesiones en el host del orquestador, que contiene el [secreto del entorno](/docs/es/self-hosted-environments-deploy#harden-your-deployment).

344 

345Antes de la v2.1.305, un hook que ya había salido seguía alcanzando [`--hook-timeout`](/docs/es/self-hosted-environments-reference#orchestrator-cli-flags) mientras un proceso que había iniciado tuviera abierto el stdout o el stderr del hook, lo que se mostraba como:

346 

347* **Pestaña Activity**, en el error de generación de una sesión fallida: `spawn-runner hook timed out after 60000ms`, o las últimas líneas del stderr del hook.

348* **Registro del orquestador**: `timed out after 60000ms, sending SIGTERM to process tree`.

349 

330#### Mantén los fallos transitorios reintentables en un hook de shell350#### Mantén los fallos transitorios reintentables en un hook de shell

331 351 

332En un hook de shell que usa `set -e`, un fallo que un reintento podría haber resuelto puede bloquear la sesión. El hook se detiene en el comando que falla y sale con el estado propio de ese comando, y el orquestador aplica el contrato de código de salida a ese estado. Muchos fallos devuelven un estado de 2 o superior, como `127` cuando un comando no está instalado y `22` de `curl --fail` ante un error HTTP, por lo que bloquean la sesión en su primer fallo.352En un hook de shell que usa `set -e`, un fallo que un reintento podría haber resuelto puede bloquear la sesión. El hook se detiene en el comando que falla y sale con el estado propio de ese comando, y el orquestador aplica el contrato de código de salida a ese estado. Muchos fallos devuelven un estado de 2 o superior, como `127` cuando un comando no está instalado y `22` de `curl --fail` ante un error HTTP, por lo que bloquean la sesión en su primer fallo.


350 ```bash theme={null}370 ```bash theme={null}

351 trap 'rc=$?; your-cleanup-command || true; [ "$rc" -eq 0 ] || [ -n "${PERMANENT:-}" ] || exit 1' EXIT371 trap 'rc=$?; your-cleanup-command || true; [ "$rc" -eq 0 ] || [ -n "${PERMANENT:-}" ] || exit 1' EXIT

352 ```372 ```

353* **Comandos a los que se les permite fallar**: si el hook no usaba `set -e` antes, ahora se detiene en el primer comando que devuelve un valor distinto de cero, como una búsqueda que no encuentra nada o un envío duplicado que tu plataforma rechaza. Si el hook actúa según el resultado, convierte ese comando en la condición de un `if`. Si ignora el resultado, añade `|| true` después del comando.373* **Comandos a los que se les permite fallar**: si el hook no usaba `set -e` antes, ahora se detiene en el primer comando que devuelve un valor distinto de cero, como una búsqueda que no encuentra nada. Si el hook actúa según el resultado, convierte ese comando en la condición de un `if`. Si ignora el resultado, añade `|| true` después del comando.

374* **El comando que envía la carga de trabajo**: no le añadas `|| true` después. Con `|| true`, el hook sale con 0 incluso cuando tu plataforma rechaza el envío, por ejemplo por exceder la cuota, y la sesión espera a un ejecutor que nunca se inició.

375 

376 Nombra la carga de trabajo según `CLAUDE_RUNNER_ORDER_ID`, como indica [la primera regla del hook](#the-spawn-runner-hook). Así, una respuesta de que ya existe es una reentrega de la misma solicitud, por lo que solo esa respuesta debe tratarse como éxito. Para cualquier otra, imprime la respuesta en stderr y sal con 1, o llama a `permanent` si ningún reintento puede corregirlo. Este ejemplo lo hace para `kubectl create`, con un `job.yaml` que contiene solo la carga de trabajo:

377 

378 ```bash theme={null}

379 if ! out=$(kubectl create -f job.yaml 2>&1); then

380 case "$out" in

381 *AlreadyExists*) ;;

382 *) printf '%s\n' "${out:-kubectl create failed}" >&2; exit 1 ;;

383 esac

384 fi

385 ```

386 

387 El registro del orquestador muestra entonces ese mensaje. Si el hook crea otros objetos, nombra cada uno según el ID de orden, dale su propio comando y trata su respuesta de que ya existe como éxito de la misma manera. Para un objeto que contiene un secreto, imprime un mensaje fijo en lugar de la salida del comando.

354 388 

355Para confirmar que el trap funciona, agrega justo debajo de la línea `trap` una línea que llame a un comando que no existe, como `no-such-command`. Ejecuta el archivo del hook desde tu shell y comprueba que `echo $?` imprima `1`; luego elimina la línea.389Para confirmar que el trap funciona, agrega justo debajo de la línea `trap` una línea que llame a un comando que no existe, como `no-such-command`. Ejecuta el archivo del hook desde tu shell y comprueba que `echo $?` imprima `1`; luego elimina la línea.

356 390 


457 491 

458* El [archivo MCP administrado](/docs/es/managed-mcp) de alcance empresarial en su ruta estándar del sistema: `/etc/claude-code/managed-mcp.json` en hosts de runner Linux, `/Library/Application Support/ClaudeCode/managed-mcp.json` en hosts macOS. Úsalo para flotas restringidas donde solo pueden cargarse los servidores que indica el administrador. Consulta [control exclusivo con managed-mcp.json](/docs/es/managed-mcp#exclusive-control-with-managed-mcp-json) para conocer las reglas de precedencia. Cuando este archivo está en el host del runner, Claude Code omite los servidores MCP que el plano de control de Anthropic entrega a una sesión, incluidos los conectores de claude.ai, y los nombra en una advertencia en el stderr del proceso hijo de la sesión, que el runner registra en el nivel de registro `debug`. Antes de la v2.1.229, esas sesiones terminaban al iniciar con `You cannot dynamically configure MCP servers when an enterprise MCP config is present`.492* El [archivo MCP administrado](/docs/es/managed-mcp) de alcance empresarial en su ruta estándar del sistema: `/etc/claude-code/managed-mcp.json` en hosts de runner Linux, `/Library/Application Support/ClaudeCode/managed-mcp.json` en hosts macOS. Úsalo para flotas restringidas donde solo pueden cargarse los servidores que indica el administrador. Consulta [control exclusivo con managed-mcp.json](/docs/es/managed-mcp#exclusive-control-with-managed-mcp-json) para conocer las reglas de precedencia. Cuando este archivo está en el host del runner, Claude Code omite los servidores MCP que el plano de control de Anthropic entrega a una sesión, incluidos los conectores de claude.ai, y los nombra en una advertencia en el stderr del proceso hijo de la sesión, que el runner registra en el nivel de registro `debug`. Antes de la v2.1.229, esas sesiones terminaban al iniciar con `You cannot dynamically configure MCP servers when an enterprise MCP config is present`.

459* La clave [`managedMcpServers`](/docs/es/settings-reference#managedmcpservers) en la [configuración administrada](/docs/es/managed-settings) del host del runner: proporciona servidores HTTP y SSE sin tomar el control exclusivo, por lo que los servidores de las demás fuentes se siguen cargando. Requiere Claude Code v2.1.259 o posterior.493* La clave [`managedMcpServers`](/docs/es/settings-reference#managedmcpservers) en la [configuración administrada](/docs/es/managed-settings) del host del runner: proporciona servidores HTTP y SSE sin tomar el control exclusivo, por lo que los servidores de las demás fuentes se siguen cargando. Requiere Claude Code v2.1.259 o posterior.

460* `<repo>/.mcp.json`: alcance de proyecto. Haz commit del archivo en el repositorio; sus servidores se aprueban automáticamente en las sesiones en la nube. En una sesión con varios repositorios, [se carga como máximo el archivo de un repositorio](#repository-settings-in-sessions-with-several-repositories).494* `<repo>/.mcp.json`: alcance de proyecto. Fuera de un hilo de [proyecto](/docs/es/claude-projects#what-threads-pick-up-from-your-repositories), haz commit del archivo en el repositorio y sus servidores se aprueban automáticamente en las sesiones en la nube. En una sesión con varios repositorios, [se carga como máximo el archivo de un repositorio](#repository-settings-in-sessions-with-several-repositories).

461* Un archivo [`--mcp-config`](/docs/es/cli-reference#cli-flags) desde tu script contenedor: agrega el flag después de `"$@"`, como en `exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@" --mcp-config /etc/claude/mcp.json`. Para que los servidores de ese archivo sigan ejecutándose cuando los servidores entregados a la sesión se actualicen a mitad de la sesión, haz que tu script contenedor pase el [entorno completo](#wrapper-scripts) al proceso hijo, como hace `exec`. Antes de la v2.1.299, los servidores stdio, HTTP y SSE de ese archivo se cerraban en la primera actualización de ese tipo que no los nombraba.495* Un archivo [`--mcp-config`](/docs/es/cli-reference#cli-flags) desde tu script contenedor: agrega el flag después de `"$@"`, como en `exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@" --mcp-config /etc/claude/mcp.json`. Para que los servidores de ese archivo sigan ejecutándose cuando los servidores entregados a la sesión se actualicen a mitad de la sesión, haz que tu script contenedor pase el [entorno completo](#wrapper-scripts) al proceso hijo, como hace `exec`. Antes de la v2.1.299, los servidores stdio, HTTP y SSE de ese archivo se cerraban en la primera actualización de ese tipo que no los nombraba.

462 496 

463Cuando la entrega de conectores está habilitada para tu organización, el plano de control de Anthropic entrega los conectores que configuraste en claude.ai a las sesiones creadas de forma interactiva mediante configuración MCP proporcionada por el servidor, enrutada a través de `api.anthropic.com`. Las sesiones creadas de forma programática, como los [envíos desde la CLI](/docs/es/self-hosted-environments-testing#run-the-test-loop), no reciben la entrega de conectores; en su lugar, proporciónales servidores MCP mediante cualquiera de las otras fuentes que enumera esta sección. El token OAuth del proceso hijo no incluye un alcance para obtener conectores directamente, así que el proceso hijo no intenta obtenerlos por sí mismo; la entrega la gestiona el servidor.497Cuando la entrega de conectores está habilitada para tu organización, el plano de control de Anthropic entrega los conectores que configuraste en claude.ai a las sesiones creadas de forma interactiva mediante configuración MCP proporcionada por el servidor, enrutada a través de `api.anthropic.com`. Las sesiones creadas de forma programática, como los [envíos desde la CLI](/docs/es/self-hosted-environments-testing#run-the-test-loop), no reciben la entrega de conectores; en su lugar, proporciónales servidores MCP mediante cualquiera de las otras fuentes que enumera esta sección. El token OAuth del proceso hijo no incluye un alcance para obtener conectores directamente, así que el proceso hijo no intenta obtenerlos por sí mismo; la entrega la gestiona el servidor.

464 498 

499> [!NOTE]

500>

501> En una sesión que recibió un conector, no se conecta un servidor con el mismo nombre procedente del `.claude.json` del host o del `.mcp.json` de un repositorio. Para usar ambos, dale a tu servidor un nombre diferente.

502 

465`settings.json` no incluye definiciones de servidores MCP, y no existe un campo `mcpServers` de nivel superior en el esquema de configuración. En la configuración administrada, proporciona los servidores con la clave [`managedMcpServers`](/docs/es/settings-reference#managedmcpservers).503`settings.json` no incluye definiciones de servidores MCP, y no existe un campo `mcpServers` de nivel superior en el esquema de configuración. En la configuración administrada, proporciona los servidores con la clave [`managedMcpServers`](/docs/es/settings-reference#managedmcpservers).

466 504 

467Las sesiones heredan el entorno del runner, así que define [`ENABLE_TOOL_SEARCH`](/docs/es/mcp#scale-with-mcp-tool-search) allí para controlar la búsqueda de herramientas MCP en cada sesión que inicie un runner; la página de MCP describe los valores.505Las sesiones heredan el entorno del runner, así que define [`ENABLE_TOOL_SEARCH`](/docs/es/mcp#scale-with-mcp-tool-search) allí para controlar la búsqueda de herramientas MCP en cada sesión que inicie un runner; la página de MCP describe los valores.


635 673 

636Las sesiones también leen estos archivos de configuración:674Las sesiones también leen estos archivos de configuración:

637 675 

638* **Configuración del proyecto**: un `.claude/settings.json` confirmado en el repositorio se superpone a la línea de base a nivel de usuario. En una sesión con varios repositorios, [como máximo tiene efecto el archivo de un solo repositorio](#repository-settings-in-sessions-with-several-repositories).676* **Configuración del proyecto**: fuera de un hilo de un [proyecto](/docs/es/claude-projects#what-threads-pick-up-from-your-repositories), un `.claude/settings.json` incluido mediante commit en el repositorio se superpone a la línea base a nivel de usuario. En una sesión con varios repositorios, [como máximo tiene efecto el archivo de un solo repositorio](#repository-settings-in-sessions-with-several-repositories).

639* **Configuración administrada**: las sesiones leen [`managed-settings.json`](/docs/es/settings#where-settings-live) desde la ruta estándar del sistema en tu imagen del ejecutor. Para saber si sus claves se aplican junto con la [configuración administrada por el servidor](/docs/es/server-managed-settings), consulta [cómo Claude Code combina las fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources).677* **Configuración administrada**: las sesiones leen [`managed-settings.json`](/docs/es/settings#where-settings-live) desde la ruta estándar del sistema en tu imagen del ejecutor. Para saber si sus claves se aplican junto con la [configuración administrada por el servidor](/docs/es/server-managed-settings), consulta [cómo Claude Code combina las fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources).

640 678 

641Para conocer el orden en que se aplican estas fuentes, consulta [precedencia de configuración](/docs/es/settings#settings-precedence).679Para conocer el orden en que se aplican estas fuentes, consulta [precedencia de configuración](/docs/es/settings#settings-precedence).


646* **Quién los autor**: el plano de control puebla los scripts desde constantes fijas en su propia implementación, nunca desde entrada por sesión o de terceros.684* **Quién los autor**: el plano de control puebla los scripts desde constantes fijas en su propia implementación, nunca desde entrada por sesión o de terceros.

647* **Qué aún los rige**: los hooks entregados a través de `--settings` entran en la configuración de hook ordinaria fusionada, no en el nivel administrado, por lo que su configuración administrada aún se aplica. `disableAllHooks` los deshabilita, y no están entre las categorías que [`allowManagedHooksOnly`](/docs/es/settings-reference#allowmanagedhooksonly) mantiene cargadas.685* **Qué aún los rige**: los hooks entregados a través de `--settings` entran en la configuración de hook ordinaria fusionada, no en el nivel administrado, por lo que su configuración administrada aún se aplica. `disableAllHooks` los deshabilita, y no están entre las categorías que [`allowManagedHooksOnly`](/docs/es/settings-reference#allowmanagedhooksonly) mantiene cargadas.

648 686 

649Cuando una persona inicia su propia sesión, Claude Code también descarga los [skills habilitados para su cuenta de claude.ai](/docs/es/skills#skills-in-cowork-and-cloud-sessions) en el directorio de configuración de esa sesión. Una ejecución de una [tarea programada en la nube](/docs/es/routines) no recibe los skills de su propietario, y una sesión que [envía solicitudes de modelo a Bedrock o Agent Platform](#send-model-requests-to-bedrock-or-agent-platform) no descarga ninguno. Para un skill que esas sesiones necesiten, haz commit de él en el `.claude/skills/` del repositorio o agrégalo a tu imagen del ejecutor.687Cuando una persona inicia su propia sesión, Claude Code también descarga los [skills habilitados para su cuenta de claude.ai](/docs/es/skills#skills-in-cowork-and-cloud-sessions) en el directorio de configuración de esa sesión. Una ejecución de una [tarea programada en la nube](/docs/es/routines) no recibe los skills de su propietario, y una sesión que [envía solicitudes de modelo a Bedrock o Agent Platform](#send-model-requests-to-bedrock-or-agent-platform) no descarga ninguno. Para un skill que esas sesiones necesiten, agrégalo a tu imagen del ejecutor o, fuera de un [proyecto](/docs/es/claude-projects#what-threads-pick-up-from-your-repositories), haz commit de él en el `.claude/skills/` del repositorio.

650 688 

651Fuera de las sesiones de [Claude Tag](https://claude.com/docs/claude-tag/overview), una sesión en un entorno autohospedado se ejecuta con la [memoria automática](/docs/es/memory#auto-memory) desactivada de forma predeterminada. Para instrucciones que deban mantenerse entre sesiones, usa el `CLAUDE.md` de tu imagen del ejecutor o del repositorio.689Fuera de las sesiones de [Claude Tag](https://claude.com/docs/claude-tag/overview), una sesión en un entorno autohospedado se ejecuta con la [memoria automática](/docs/es/memory#auto-memory) desactivada de forma predeterminada. Para instrucciones que deban mantenerse entre sesiones, usa el `CLAUDE.md` de tu imagen del ejecutor o del repositorio.

652 690 


654 692 

655### Configuración de repositorios en sesiones con varios repositorios693### Configuración de repositorios en sesiones con varios repositorios

656 694 

657En una sesión con varios repositorios, Claude Code lee la configuración del proyecto desde el directorio en el que se inicia la sesión, por lo que como máximo el `.claude/settings.json` de un solo repositorio tiene efecto como configuración del proyecto. Un hook definido en el archivo de otro repositorio no se ejecuta, una regla de denegación en él no se aplica y su `env` no se establece.695En un hilo de un [proyecto](/docs/es/claude-projects#what-threads-pick-up-from-your-repositories), ningún `.claude/settings.json` de repositorio tiene efecto como configuración del proyecto y no se carga ningún `.mcp.json` ni ningún skill de repositorio, dondequiera que se inicie el hilo. Para dar un skill a esos hilos, agrégalo a tu imagen del ejecutor.

696 

697En cualquier otra sesión con varios repositorios, Claude Code lee la configuración del proyecto desde el directorio en el que se inicia la sesión, por lo que como máximo el `.claude/settings.json` de un solo repositorio tiene efecto como configuración del proyecto. Un hook definido en el archivo de otro repositorio no se ejecuta, una regla de denegación en él no se aplica y su `env` no se establece.

658 698 

659* **`--capacity 1`, el valor predeterminado, con el checkout integrado**: la sesión se inicia en el primer repositorio de su lista de repositorios. El `.claude/settings.json` de ese repositorio tiene efecto como configuración del proyecto y su `.mcp.json` se carga, y los de los demás repositorios no.699* **`--capacity 1`, el valor predeterminado, con el checkout integrado**: la sesión se inicia en el primer repositorio de su lista de repositorios. El `.claude/settings.json` de ese repositorio tiene efecto como configuración del proyecto y su `.mcp.json` se carga, y los de los demás repositorios no.

660* **Un `--capacity` mayor que uno, o un [hook `checkout`](#checkout)**: la sesión se inicia en un directorio por sesión que contiene los checkouts. Ningún `.claude/settings.json` de repositorio tiene efecto como configuración del proyecto, ningún `.mcp.json` de repositorio se carga, y [`$CLAUDE_PROJECT_DIR`](/docs/es/hooks#reference-scripts-by-path) en un comando de hook es ese directorio, no un checkout.700* **Un `--capacity` mayor que uno, o un [hook `checkout`](#checkout)**: la sesión se inicia en un directorio por sesión que contiene los checkouts. Ningún `.claude/settings.json` de repositorio tiene efecto como configuración del proyecto, ningún `.mcp.json` de repositorio se carga, y [`$CLAUDE_PROJECT_DIR`](/docs/es/hooks#reference-scripts-by-path) en un comando de hook es ese directorio, no un checkout.

661 701 

662El `CLAUDE.md` y los skills de cada repositorio se cargan dondequiera que se inicie la sesión. El ejecutor pasa cada repositorio a Claude Code como un [directorio adicional](/docs/es/permissions#additional-directories-grant-file-access-not-configuration), por lo que Claude Code también lee las claves `enabledPlugins` y `extraKnownMarketplaces` del `.claude/settings.json` de cada repositorio.702El `CLAUDE.md` de cada repositorio se carga dondequiera que se inicie la sesión. Fuera de un hilo de un proyecto, sus skills también se cargan. El ejecutor pasa cada repositorio a Claude Code como un [directorio adicional](/docs/es/permissions#additional-directories-grant-file-access-not-configuration), por lo que Claude Code también lee las claves `enabledPlugins` y `extraKnownMarketplaces` del `.claude/settings.json` de cada repositorio.

663 703 

664Para ejecutar un hook o aplicar una regla de permisos en todas las sesiones, colócalo en `~/.claude/settings.json` en el host del ejecutor. El ejecutor [siembra el archivo del host en todas las sesiones](#how-each-session’s-config-is-assembled), dondequiera que se inicie la sesión. Escribe la ruta en una regla `Read` o `Edit` como un [patrón](/docs/es/permissions#read-and-edit) absoluto con `//` o relativo al directorio personal con `~/`, porque los demás patrones se anclan a la fuente de configuración o al directorio actual.704Para ejecutar un hook o aplicar una regla de permisos en todas las sesiones, colócalo en `~/.claude/settings.json` en el host del ejecutor. El ejecutor [siembra el archivo del host en todas las sesiones](#how-each-session’s-config-is-assembled), dondequiera que se inicie la sesión. Escribe la ruta en una regla `Read` o `Edit` como un [patrón](/docs/es/permissions#read-and-edit) absoluto con `//` o relativo al directorio personal con `~/`, porque los demás patrones se anclan a la fuente de configuración o al directorio actual.

665 705 

Details

80Estos flujos del lado del host sí alcanzan `claude.ai`, así que ejecútalos desde un host cuya salida lo permita en lugar de ampliar la salida del contenedor de sesión:80Estos flujos del lado del host sí alcanzan `claude.ai`, así que ejecútalos desde un host cuya salida lo permita en lugar de ampliar la salida del contenedor de sesión:

81 81 

82* **El instalador de una línea**: obtiene `install.sh` de `claude.ai` en el momento de la instalación.82* **El instalador de una línea**: obtiene `install.sh` de `claude.ai` en el momento de la instalación.

83* **`claude auth login` interactivo**: inicia sesión a través de `claude.ai`, `claude.com` y `platform.claude.com`. La [configuración guiada](/docs/es/self-hosted-environments-quickstart#run-the-guided-setup), el modo con sesión iniciada de `doctor` y el [envío desde CI](/docs/es/self-hosted-environments-testing#authenticate-from-ci) lo usan. El navegador con el que inicias sesión también carga las verificaciones de navegador de la página de inicio de sesión de claude.ai desde `hcaptcha.com`, `*.hcaptcha.com` y `challenges.cloudflare.com`.83* **`claude auth login` interactivo**: inicia sesión a través de `claude.ai`, `claude.com` y `platform.claude.com`. La [configuración guiada](/docs/es/self-hosted-environments-quickstart#run-the-guided-setup), el modo con sesión iniciada de `doctor` y el [envío desde CI](/docs/es/self-hosted-environments-testing#authenticate-from-ci) lo usan. El navegador con el que inicias sesión también carga las verificaciones de navegador de la página de inicio de sesión de claude.ai desde `hcaptcha.com`, `*.hcaptcha.com` y `challenges.cloudflare.com`. Si tu organización usa inicio de sesión único, ese navegador también puede ser redirigido a través de `sso.claude.com`.

84 84 

85### Salida de negación predeterminada85### Salida de negación predeterminada

86 86 


654* **El runner se cierra al inicio con `RegisterRunner failed:` y un error de certificado TLS**: el error puede ser `self signed certificate in certificate chain`, por ejemplo. El runner no confía en la autoridad de certificación (CA) detrás del certificado que recibió, como ocurre detrás de un proxy que inspecciona TLS. Establece [`NODE_EXTRA_CA_CERTS`](/docs/es/network-config#custom-ca-certificates) en el entorno del runner con un archivo PEM que contenga la CA raíz del proxy.654* **El runner se cierra al inicio con `RegisterRunner failed:` y un error de certificado TLS**: el error puede ser `self signed certificate in certificate chain`, por ejemplo. El runner no confía en la autoridad de certificación (CA) detrás del certificado que recibió, como ocurre detrás de un proxy que inspecciona TLS. Establece [`NODE_EXTRA_CA_CERTS`](/docs/es/network-config#custom-ca-certificates) en el entorno del runner con un archivo PEM que contenga la CA raíz del proxy.

655 655 

656 No necesitas establecerla de nuevo para las sesiones, que la heredan. Git no la lee: para clonar a través de ese proxy, establece también [`GIT_SSL_CAINFO`](#trust-a-private-certificate-authority-with-anthropic-managed-git).656 No necesitas establecerla de nuevo para las sesiones, que la heredan. Git no la lee: para clonar a través de ese proxy, establece también [`GIT_SSL_CAINFO`](#trust-a-private-certificate-authority-with-anthropic-managed-git).

657* **Tu script de inicio imprime un error de escritura que contiene `Resource temporarily unavailable` y se cierra**: tu script comparte su stdout o stderr con el proceso `claude self-hosted-runner` u [orquestador](/docs/es/self-hosted-environments-configuration#on-demand-runners) que inicia, el cual ha cambiado esa tubería o socket compartido al modo no bloqueante. Cuando la tubería está llena, una escritura de tu script falla con este error del sistema operativo en lugar de esperar, y con `set -e` el script se cierra.

658 

659 Para evitar el error, envía la salida del runner o del orquestador a un archivo que el usuario de tu script pueda crear. Agrega `>> "$HOME/claude-runner.log" 2>&1` al comando que lo inicia, antes de cualquier `&` que lo envíe a segundo plano:

660 

661 ```bash theme={null}

662 claude self-hosted-runner --environment-secret-file /etc/claude/environment-secret >> "$HOME/claude-runner.log" 2>&1

663 ```

664 

665 La salida propia de tu script sigue yendo adonde iba antes, mientras que lo que el runner escribe en stdout y stderr, incluidos sus errores de inicio, va a ese archivo. Usa esta redirección del shell en lugar de solo [`--log-file`](/docs/es/self-hosted-environments-reference#runner-cli-flags), que replica el registro en un archivo mientras el runner sigue escribiendo en stdout y stderr. Si ya pasas `--log-file`, mantenlo también, porque la redirección no cambia lo que recibe ese archivo.

657* **El orquestador registra `poll failed:` con un error de certificado TLS y sigue reintentando**: el orquestador no confía en la CA detrás del certificado que recibió, como ocurre detrás de un proxy que inspecciona TLS. Establece [`NODE_EXTRA_CA_CERTS`](/docs/es/network-config#custom-ca-certificates) en el entorno del orquestador con un archivo PEM que contenga la CA raíz del proxy. Establécela también para los runners que inicia tu hook `spawn-runner`.666* **El orquestador registra `poll failed:` con un error de certificado TLS y sigue reintentando**: el orquestador no confía en la CA detrás del certificado que recibió, como ocurre detrás de un proxy que inspecciona TLS. Establece [`NODE_EXTRA_CA_CERTS`](/docs/es/network-config#custom-ca-certificates) en el entorno del orquestador con un archivo PEM que contenga la CA raíz del proxy. Establécela también para los runners que inicia tu hook `spawn-runner`.

658 667 

659 Por ejemplo, una línea puede terminar en `poll failed: self signed certificate in certificate chain — retrying in 1s`, con las palabras de la biblioteca TLS entre los dos puntos y el guion. Para confirmar la corrección, comprueba que `connected` sea `true` en el cuerpo de [`/healthz`](/docs/es/self-hosted-environments-reference#health-endpoint) del orquestador.668 Por ejemplo, una línea puede terminar en `poll failed: self signed certificate in certificate chain — retrying in 1s`, con las palabras de la biblioteca TLS entre los dos puntos y el guion. Para confirmar la corrección, comprueba que `connected` sea `true` en el cuerpo de [`/healthz`](/docs/es/self-hosted-environments-reference#health-endpoint) del orquestador.

Details

321* **Token OAuth**: genera un token con [`claude setup-token`](/docs/es/authentication#generate-a-long-lived-token), autorízalo para tu organización Team o Enterprise y establécelo como `CLAUDE_CODE_OAUTH_TOKEN` en el entorno del trabajo. Elimina de ese entorno cualquier credencial que [tenga precedencia](/docs/es/authentication#authentication-precedence) sobre el token, como `ANTHROPIC_API_KEY`.321* **Token OAuth**: genera un token con [`claude setup-token`](/docs/es/authentication#generate-a-long-lived-token), autorízalo para tu organización Team o Enterprise y establécelo como `CLAUDE_CODE_OAUTH_TOKEN` en el entorno del trabajo. Elimina de ese entorno cualquier credencial que [tenga precedencia](/docs/es/authentication#authentication-precedence) sobre el token, como `ANTHROPIC_API_KEY`.

322* **Configuración administrada por endpoint**: despliega un [archivo de configuración administrada](/docs/es/managed-settings#delivery-mechanisms) en la máquina que ejecuta el trabajo.322* **Configuración administrada por endpoint**: despliega un [archivo de configuración administrada](/docs/es/managed-settings#delivery-mechanisms) en la máquina que ejecuta el trabajo.

323 323 

324En una sesión de [Cowork](https://claude.com/docs/cowork/overview) en la aplicación Claude Desktop, Claude Code no obtiene la configuración administrada por servidor de la consola de administración de claude.ai, incluso cuando el usuario inicia sesión con una cuenta de Team o Enterprise. [Dónde y cuándo se aplica una política](/docs/es/managed-settings#where-and-when-a-policy-applies) cubre qué política llega a las sesiones de Cowork en la máquina del usuario y las sesiones remotas de Cowork. claude.ai sigue aplicando sus listas [`strictKnownMarketplaces`](/docs/es/settings-reference#strictknownmarketplaces) y [`blockedMarketplaces`](/docs/es/settings-reference#blockedmarketplaces) cuando un usuario de Cowork agrega un marketplace desde un repositorio git en claude.ai o desde **Customize** en la pestaña Cowork. [Cómo funcionan las restricciones](/docs/es/plugins/org#restrict-what-users-can-install) describe esa verificación.324En una sesión de [Cowork](https://claude.com/docs/cowork/overview) en la aplicación Claude Desktop, Claude Code no obtiene la configuración administrada por servidor de la consola de administración de claude.ai, incluso cuando el usuario inicia sesión con una cuenta de Team o Enterprise. [Dónde y cuándo se aplica una política](/docs/es/managed-settings#where-and-when-a-policy-applies) cubre qué política llega a las sesiones de Cowork en la máquina del usuario y las sesiones remotas de Cowork. claude.ai sigue aplicando por sí mismo tus listas [`strictKnownMarketplaces`](/docs/es/settings-reference#strictknownmarketplaces) y [`blockedMarketplaces`](/docs/es/settings-reference#blockedmarketplaces) cuando un usuario de Cowork agrega un marketplace desde un repositorio git en claude.ai o desde **Customize** en Cowork. [Cómo funcionan las restricciones](/docs/es/plugins/org#restrict-what-users-can-install) describe esa verificación.

325 325 

326Si exporta una variable de proveedor `CLAUDE_CODE_USE_*` o una `ANTHROPIC_BASE_URL` no predeterminada en su shell, Claude Code omite la búsqueda de configuración para sus sesiones. [`claude doctor` y `/status` informan sobre la búsqueda omitida y su causa](#verify-settings-delivery).326Si exporta una variable de proveedor `CLAUDE_CODE_USE_*` o una `ANTHROPIC_BASE_URL` no predeterminada en su shell, Claude Code omite la búsqueda de configuración para sus sesiones. [`claude doctor` y `/status` informan sobre la búsqueda omitida y su causa](#verify-settings-delivery).

327 327 

settings.md +4 −2

Details

321 321 

322Una [sesión en la nube](/docs/es/claude-code-on-the-web) se ejecuta en un [entorno en la nube](/docs/es/cloud-environments) en un clon fresco de su repositorio, no en su máquina. Eso cambia qué configuraciones lo alcanzan:322Una [sesión en la nube](/docs/es/claude-code-on-the-web) se ejecuta en un [entorno en la nube](/docs/es/cloud-environments) en un clon fresco de su repositorio, no en su máquina. Eso cambia qué configuraciones lo alcanzan:

323 323 

324* **Configuraciones compartidas de proyecto** (`.claude/settings.json`): se leen en una sesión con un repositorio, porque el archivo es parte del clon y la sesión comienza dentro de él. Haz commit de un ajuste allí para aplicarlo en esas sesiones. En un entorno alojado por Anthropic, una sesión con varios repositorios comienza por encima de los clones y lee solo las claves `enabledPlugins` y `extraKnownMarketplaces` del `.claude/settings.json` de cada repositorio, no reglas de permisos, hooks, `env` u otras claves. Los marketplaces y plugins que esas dos claves declaran aún [no se cargan en una sesión en la nube](/docs/es/cloud-environments#what-carries-over-from-your-setup). Para un entorno autohospedado, consulta [qué configuración del repositorio se aplica](/docs/es/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories).324* **Hilos en la nube en un proyecto**: en un hilo en la nube en un [proyecto](/docs/es/claude-projects#what-threads-pick-up-from-your-repositories), no se aplica ninguna de las reglas de permisos, hooks ni `env` del `.claude/settings.json` de un repositorio, sin importar cuántos repositorios tenga el proyecto. [Lo que los hilos toman de tus repositorios](/docs/es/claude-projects#what-threads-pick-up-from-your-repositories) enumera qué usar en su lugar.

325* **Configuraciones compartidas de proyecto** (`.claude/settings.json`): se leen en una sesión con un repositorio fuera de un proyecto, porque el archivo es parte del clon y la sesión comienza dentro de él. Haz commit de un ajuste allí para aplicarlo en esas sesiones.

326* **Configuraciones compartidas de proyecto con varios repositorios**: en un entorno alojado por Anthropic, una sesión con varios repositorios comienza por encima de los clones y lee solo las claves `enabledPlugins` y `extraKnownMarketplaces` del `.claude/settings.json` de cada repositorio, no reglas de permisos, hooks, `env` u otras claves. Los marketplaces y plugins que esas dos claves declaran aún [no se cargan en una sesión en la nube](/docs/es/cloud-environments#what-carries-over-from-your-setup). Para un entorno autohospedado, consulta [qué configuración del repositorio se aplica](/docs/es/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories).

325* **Configuraciones de usuario y proyecto local** (`~/.claude/settings.json` y `.claude/settings.local.json`): no se leen. Ambas permanecen en su máquina, y el archivo local no está en el clon.327* **Configuraciones de usuario y proyecto local** (`~/.claude/settings.json` y `.claude/settings.local.json`): no se leen. Ambas permanecen en su máquina, y el archivo local no está en el clon.

326* **Configuraciones administradas**: un archivo `managed-settings.json` o perfil MDM en su dispositivo no alcanza una sesión en la nube. Las [configuraciones administradas por servidor](/docs/es/server-managed-settings) de su organización sí; [cobertura de superficie](/docs/es/model-config#surface-coverage) enumera qué sesiones en la nube las reciben. Un [entorno autohospedado](/docs/es/self-hosted-environments) también lee el archivo de configuraciones administradas en su imagen de ejecutor. [Cómo Claude Code combina fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources) dice cuándo se aplica ese archivo.328* **Configuraciones administradas**: un archivo `managed-settings.json` o perfil MDM en su dispositivo no alcanza una sesión en la nube. Las [configuraciones administradas por servidor](/docs/es/server-managed-settings) de su organización sí; [cobertura de superficie](/docs/es/model-config#surface-coverage) enumera qué sesiones en la nube las reciben. Un [entorno autohospedado](/docs/es/self-hosted-environments) también lee el archivo de configuraciones administradas en su imagen de ejecutor. [Cómo Claude Code combina fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources) dice cuándo se aplica ese archivo.

327* **`/config`**: en su navegador en claude.ai/code, abre la sección Claude Code de su configuración de claude.ai en lugar de cambiar un valor. Para cambiar una configuración para una sesión en la nube, establezca una [variable de entorno](/docs/es/cloud-environments#set-environment-variables) en el entorno, o en una sesión con un repositorio, confirme la clave en el `.claude/settings.json` de ese repositorio.329* **`/config`**: en tu navegador en claude.ai/code, abre la sección Claude Code de tu configuración de claude.ai en lugar de cambiar un valor. Para cambiar un ajuste para una sesión en la nube, establece una [variable de entorno](/docs/es/cloud-environments#set-environment-variables) en el entorno. En una sesión con un repositorio fuera de un proyecto, en su lugar puedes hacer commit de la clave en el `.claude/settings.json` de ese repositorio.

328 330 

329[Lo que se transfiere de su configuración](/docs/es/cloud-environments#what-carries-over-from-your-setup) enumera el resto: `CLAUDE.md`, skills, servidores MCP, plugins y credenciales.331[Lo que se transfiere de su configuración](/docs/es/cloud-environments#what-carries-over-from-your-setup) enumera el resto: `CLAUDE.md`, skills, servidores MCP, plugins y credenciales.

330 332 

Details

94 94 

95La configuración compartida de un equipo, confirmada en el repositorio para que todos los que lo clonan obtengan los mismos permisos, hooks y marketplace de plugins. Guarde un archivo como este en `.claude/settings.json` en la parte superior del repositorio. Lo que debe saber antes de confirmar uno:95La configuración compartida de un equipo, confirmada en el repositorio para que todos los que lo clonan obtengan los mismos permisos, hooks y marketplace de plugins. Guarde un archivo como este en `.claude/settings.json` en la parte superior del repositorio. Lo que debe saber antes de confirmar uno:

96 96 

97* **Las sesiones en la nube también lo leen.** Una [sesión en la nube](/docs/es/settings#settings-in-cloud-sessions) comienza desde un clon del repositorio, por lo que el archivo confirmado también se aplica allí.97* **Las sesiones en la nube fuera de un [proyecto](/docs/es/claude-projects#what-threads-pick-up-from-your-repositories) también lo leen.** Una [sesión en la nube](/docs/es/settings#settings-in-cloud-sessions) con un solo repositorio comienza dentro del clon, por lo que el archivo incluido en el commit también se aplica allí.

98* **La telemetría va en configuración administrada o personal.** Claude Code ignora las [variables del exportador de OpenTelemetry](/docs/es/settings-reference#variables-claude-code-ignores-in-env) en los archivos de configuración de un repositorio, aparte de algunos valores que desactivan la telemetría. Configúrelas en [configuración administrada](/docs/es/monitoring-usage#administrator-configuration) para su organización, o en el archivo `~/.claude/settings.json` de cada persona.98* **La telemetría va en configuración administrada o personal.** Claude Code ignora las [variables del exportador de OpenTelemetry](/docs/es/settings-reference#variables-claude-code-ignores-in-env) en los archivos de configuración de un repositorio, aparte de algunos valores que desactivan la telemetría. Configúrelas en [configuración administrada](/docs/es/monitoring-usage#administrator-configuration) para su organización, o en el archivo `~/.claude/settings.json` de cada persona.

99* **Las reglas de permiso esperan confianza.** Las reglas de permiso y las entradas de `extraKnownMarketplaces` entran en vigor después de que cada persona [confía en esta carpeta misma](/docs/es/permissions#project-allow-rules-and-workspace-trust), no solo en una carpeta principal; las reglas de denegación y pregunta se aplican en cada sesión, confiable o no.99* **Las reglas de permiso esperan confianza.** Las reglas de permiso y las entradas de `extraKnownMarketplaces` entran en vigor después de que cada persona [confía en esta carpeta misma](/docs/es/permissions#project-allow-rules-and-workspace-trust), no solo en una carpeta principal; las reglas de denegación y pregunta se aplican en cada sesión, confiable o no.

100* **El hook es un script en el repositorio.** El hook de este archivo ejecuta `.claude/hooks/block-rm.sh`; [Cómo se resuelve un hook](/docs/es/hooks#how-a-hook-resolves) explica cómo escribirlo.100* **El hook es un script en el repositorio.** El hook de este archivo ejecuta `.claude/hooks/block-rm.sh`; [Cómo se resuelve un hook](/docs/es/hooks#how-a-hook-resolves) explica cómo escribirlo.

Details

14 14 

15Cada clave a continuación enlaza a su entrada. El alcance enumera los [archivos](/docs/es/settings#settings-files-and-who-they-affect) en los que puede ir: `User` es `~/.claude/settings.json`, `Project` es `.claude/settings.json`, `Local` es `.claude/settings.local.json`, y `Managed` es [lo que tu organización implementa](/docs/es/managed-settings). `Any file` significa los cuatro, y `Global config` significa [`~/.claude.json`](#global-config-settings).15Cada clave a continuación enlaza a su entrada. El alcance enumera los [archivos](/docs/es/settings#settings-files-and-who-they-affect) en los que puede ir: `User` es `~/.claude/settings.json`, `Project` es `.claude/settings.json`, `Local` es `.claude/settings.local.json`, y `Managed` es [lo que tu organización implementa](/docs/es/managed-settings). `Any file` significa los cuatro, y `Global config` significa [`~/.claude.json`](#global-config-settings).

16 16 

17| Clave | Descripción | Tema | Alcance |17| Key | Description | Topic | Scope |

18| :- | :- | :- | :- |18| :- | :- | :- | :- |

19| [`advisorModel`](#advisormodel) | Elige qué modelo responde cuando Claude consulta la [herramienta asesor](/docs/es/advisor) | Modelo y respuestas | Any file |19| [`advisorModel`](#advisormodel) | Elige qué modelo responde cuando Claude consulta la [herramienta asesor](/docs/es/advisor) | Modelo y respuestas | Any file |

20| [`agent`](#agent) | Inicia cada sesión como un [subagente](/docs/es/sub-agents) con nombre, con su prompt, herramientas y modelo | Agentes, sesiones y worktrees | Any file |20| [`agent`](#agent) | Inicia cada sesión como un [subagente](/docs/es/sub-agents) con nombre, con su prompt, herramientas y modelo | Agentes, sesiones y worktrees | Any file |


725 725 

726### `showThinkingSummaries`726### `showThinkingSummaries`

727 727 

728Vea resúmenes del [pensamiento extendido](/docs/es/model-config#extended-thinking) de Claude en sesiones interactivas. Establézcalo si desea los resúmenes completos cuando expande el pensamiento con `Ctrl+O`. Cuando no está establecido o es `false`, la API de Anthropic redacta bloques de pensamiento y Claude Code muestra un resumen contraído; los proveedores de terceros no redactan.728Ve resúmenes del [pensamiento extendido](/docs/es/model-config#extended-thinking) de Claude en sesiones interactivas. Establécelo si quieres los resúmenes completos cuando expandes el pensamiento con `Ctrl+O`. Cuando no está establecido o es `false`, la API de Anthropic oculta el contenido de los bloques de pensamiento y Claude Code muestra un resumen contraído.

729 729 

730* **Alcance**: [`Cualquier archivo`](#scopes)730* **Alcance**: [`Cualquier archivo`](#scopes)

731* **Tipo**: Booleano731* **Tipo**: Booleano


1370* **`allowWrite` y `denyWrite`**: en macOS, los comodines funcionan. En Linux y WSL2, el sandbox monta rutas concretas, por lo que Claude Code omite una entrada que contiene `*`, `?` o `[` una vez eliminado el `/**` final, y esa entrada no tiene efecto. Claude Code agrega a estas listas las rutas de tus reglas de permisos `Edit`, por lo que el mismo límite se aplica a ellas, y la pestaña **Config** de `/sandbox` advierte sobre las reglas de permisos `Edit` y `Read` que contienen comodines.1370* **`allowWrite` y `denyWrite`**: en macOS, los comodines funcionan. En Linux y WSL2, el sandbox monta rutas concretas, por lo que Claude Code omite una entrada que contiene `*`, `?` o `[` una vez eliminado el `/**` final, y esa entrada no tiene efecto. Claude Code agrega a estas listas las rutas de tus reglas de permisos `Edit`, por lo que el mismo límite se aplica a ellas, y la pestaña **Config** de `/sandbox` advierte sobre las reglas de permisos `Edit` y `Read` que contienen comodines.

1371* **`denyRead` y `allowRead`**: los comodines funcionan en todas las plataformas. En Linux y WSL2, Claude Code expande una entrada de lectura a las rutas concretas con las que coincide, algo que no hace con las listas de escritura.1371* **`denyRead` y `allowRead`**: los comodines funcionan en todas las plataformas. En Linux y WSL2, Claude Code expande una entrada de lectura a las rutas concretas con las que coincide, algo que no hace con las listas de escritura.

1372 1372 

1373Las llaves coinciden como caracteres normales dentro de un nombre, por lo que `~/data/{keys,tokens}` cubre un directorio llamado literalmente `{keys,tokens}`, no dos alternativas. Para cubrir `~/data/keys` y `~/data/tokens`, agrega cada una como una entrada independiente.

1374 

1373### `sandbox.filesystem.allowWrite`1375### `sandbox.filesystem.allowWrite`

1374 1376 

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


2321 2323 

2322 Ignorar este grupo en la configuración del proyecto y local requiere Claude Code v2.1.282 o posterior.2324 Ignorar este grupo en la configuración del proyecto y local requiere Claude Code v2.1.282 o posterior.

2323 * Variables que cambian cómo Claude Code se inicia o se sincroniza, como `CLAUDE_CODE_PROCESS_WRAPPER`, `CLAUDE_CODE_SYNC_SKILLS`, `CLAUDE_CODE_SYNC_PLUGINS`, `CLAUDE_CODE_PLUGIN_CACHE_DIR` y `CLAUDE_CODE_PLUGIN_SEED_DIR`.2325 * Variables que cambian cómo Claude Code se inicia o se sincroniza, como `CLAUDE_CODE_PROCESS_WRAPPER`, `CLAUDE_CODE_SYNC_SKILLS`, `CLAUDE_CODE_SYNC_PLUGINS`, `CLAUDE_CODE_PLUGIN_CACHE_DIR` y `CLAUDE_CODE_PLUGIN_SEED_DIR`.

2324 * Variables que establecen los temporizadores de un diálogo sin respuesta: [`CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS`, `CLAUDE_AFK_TIMEOUT_MS` y `CLAUDE_AFK_COUNTDOWN_MS`](/docs/es/env-vars#variables).2326 * [`CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS`](/docs/es/env-vars#variables), que establece el temporizador de un diálogo sin respuesta.

2325 * [`CLAUDE_CODE_DISABLE_ATTACHMENTS`](/docs/es/env-vars#variables), que desactiva el procesamiento de archivos adjuntos.2327 * [`CLAUDE_CODE_DISABLE_ATTACHMENTS`](/docs/es/env-vars#variables), que desactiva el procesamiento de archivos adjuntos.

2326 * [`CLAUDE_CODE_DISABLE_FILE_MENTIONS`](/docs/es/env-vars#variables), que impide que Claude Code expanda las menciones con `@` de archivos y directorios.2328 * [`CLAUDE_CODE_DISABLE_FILE_MENTIONS`](/docs/es/env-vars#variables), que impide que Claude Code expanda las menciones con `@` de archivos y directorios.

2327 2329 


2470* **Scope**: [`User or managed`](#scopes)2472* **Scope**: [`User or managed`](#scopes)

2471* **Type**: string, uno de `"60s"`, `"5m"`, `"10m"`, o `"never"`2473* **Type**: string, uno de `"60s"`, `"5m"`, `"10m"`, o `"never"`

2472* **Default**: `"never"`2474* **Default**: `"never"`

2473* **Per-session overrides**: [`CLAUDE_AFK_TIMEOUT_MS`](/docs/es/env-vars) tiene precedencia sobre esta clave para una sesión

2474 2475 

2475```json settings.json theme={null}2476```json settings.json theme={null}

2476{2477{


4854 4855 

4855### `preferredNotifChannel`4856### `preferredNotifChannel`

4856 4857 

4857Elija cómo Claude Code lo notifica cuando una tarea se completa o un prompt de permiso está esperando. Aparece en `/config` como **Notificaciones locales**.4858Elige cómo te notifica Claude Code cuando una tarea se completa o una solicitud de permiso está esperando. Las [notificaciones de un mod](/docs/es/plugins/mods/api#show-something-without-starting-a-turn) usan el mismo ajuste. Aparece en `/config` como **Notificaciones locales**.

4858 4859 

4859* **Scope**: [`Any file`](#scopes). Claude Code también lee un valor dejado en `~/.claude.json` por versiones anteriores.4860* **Scope**: [`Any file`](#scopes). Claude Code también lee un valor dejado en `~/.claude.json` por versiones anteriores.

4860* **Type**: cadena, una de:4861* **Type**: cadena, una de:

setup.md +1 −1

Details

200 200 

201Claude Code busca actualizaciones al iniciar y periódicamente mientras se ejecuta. Las actualizaciones se descargan e instalan en segundo plano y luego surten efecto la próxima vez que inicie Claude Code.201Claude Code busca actualizaciones al iniciar y periódicamente mientras se ejecuta. Las actualizaciones se descargan e instalan en segundo plano y luego surten efecto la próxima vez que inicie Claude Code.

202 202 

203Ejecute `claude doctor` para ver el resultado del intento de actualización más reciente.203Ejecuta `claude doctor` en tu shell para ver el resultado del último intento de actualización que registró Claude Code. En una instalación nativa, si informa de un intento fallido, consulta [`Auto-update failed` en el pie de la sesión](/docs/es/troubleshoot-install#auto-update-failed) para saber qué hacer a continuación.

204 204 

205En macOS y Linux, el instalador nativo gestiona el lanzador en `~/.local/bin/claude` como un enlace simbólico en `~/.local/share/claude/versions/`. Si reemplazas ese lanzador con tu propio script o enlace simbólico, la actualización automática y `claude update` lo dejan en su lugar: las nuevas versiones aún se instalan en el directorio `versions/`, y tu lanzador decide qué versión se ejecuta.205En macOS y Linux, el instalador nativo gestiona el lanzador en `~/.local/bin/claude` como un enlace simbólico en `~/.local/share/claude/versions/`. Si reemplazas ese lanzador con tu propio script o enlace simbólico, la actualización automática y `claude update` lo dejan en su lugar: las nuevas versiones aún se instalan en el directorio `versions/`, y tu lanzador decide qué versión se ejecuta.

206 206 

skills.md +10 −7

Details

42* **Extensiones**: skills, servidores MCP y plugins sin usar comparados con su costo de contexto, y [hooks](/docs/es/hooks) lentos42* **Extensiones**: skills, servidores MCP y plugins sin usar comparados con su costo de contexto, y [hooks](/docs/es/hooks) lentos

43* **Archivos `CLAUDE.md`**: archivos `CLAUDE.md` locales que duplican los que están en el repositorio, [contenido de `CLAUDE.md` en el repositorio que Claude podría derivar de la base de código](/docs/es/memory#my-claude-md-is-too-large), y la guía que siempre se carga y que queda, que Claude ofrece migrar a skills y a archivos `CLAUDE.md` anidados que se cargan bajo demanda43* **Archivos `CLAUDE.md`**: archivos `CLAUDE.md` locales que duplican los que están en el repositorio, [contenido de `CLAUDE.md` en el repositorio que Claude podría derivar de la base de código](/docs/es/memory#my-claude-md-is-too-large), y la guía que siempre se carga y que queda, que Claude ofrece migrar a skills y a archivos `CLAUDE.md` anidados que se cargan bajo demanda

44* **Permisos**: una oferta para hacer del [modo automático](/docs/es/permissions#permission-modes) tu modo de permisos predeterminado y para [aprobar previamente](/docs/es/permissions) comandos de solo lectura que deniegas con frecuencia44* **Permisos**: una oferta para hacer del [modo automático](/docs/es/permissions#permission-modes) tu modo de permisos predeterminado y para [aprobar previamente](/docs/es/permissions) comandos de solo lectura que deniegas con frecuencia

45* **Uso**: en un plan Pro, Max, Team o Enterprise, los [cambios que recomienda `/usage`](/docs/es/costs#plan-usage-breakdown) para reducir el uso de tu plan, medido durante los últimos 7 días. Claude propone los cambios que puede hacer por sí mismo e informa el resto como consejos, por ejemplo un comando para que lo ejecutes. La comprobación de uso requiere Claude Code v2.1.305 o posterior, y `/doctor` la omite mientras [Remote Control](/docs/es/remote-control) está conectado.

45 46 

46Para obtener diagnósticos de instalación de solo lectura sin iniciar una sesión, ejecuta `claude doctor` en tu terminal.47Para obtener diagnósticos de instalación de solo lectura sin iniciar una sesión, ejecuta `claude doctor` en tu terminal.

47 48 


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

84| `migrate` | Actualice su código existente de Claude API a un modelo más nuevo | Anterior a v2.1.221 |85| `migrate` | Actualice su código existente de Claude API a un modelo más nuevo | Anterior a v2.1.221 |

85| `upgrade` | Mueva la dependencia del SDK de Anthropic de su proyecto a través de una versión principal, actualmente el paquete `anthropic` de Python de 0.x a 1.x | v2.1.236 o posterior |86| `upgrade` | Mueva la dependencia del SDK de Anthropic de su proyecto a través de una versión principal, actualmente el paquete `anthropic` de Python de 0.x a 1.x | v2.1.236 o posterior |

87| `api-version` | Actualiza tu código de Claude API para una [versión de la API](https://platform.claude.com/docs/en/api/versioning) más nueva y luego cambia tus solicitudes a esa versión | v2.1.307 o posterior |

86| `managed-agents-onboard` | Recorra la creación de un nuevo Managed Agent | Anterior a v2.1.221 |88| `managed-agents-onboard` | Recorra la creación de un nuevo Managed Agent | Anterior a v2.1.221 |

87| `managed-agents-onboard <url>` | Crea el Managed Agent que describe la página en la URL, como una página de la [documentación de Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) | v2.1.290 o posterior |89| `managed-agents-onboard <url>` | Crea el Managed Agent que describe la página en la URL, como una página de la [documentación de Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) | v2.1.290 o posterior |

88| `managed-agents-onboard <quickstart-name>` | Crea una de las plantillas de inicio rápido de la Console, como `deep-researcher`. Si escribes una palabra que no es un nombre de plantilla, Claude enumera los nombres válidos | v2.1.290 o posterior |90| `managed-agents-onboard <quickstart-name>` | Crea una de las plantillas de inicio rápido de la Console, como `deep-researcher`. Si escribes una palabra que no es un nombre de plantilla, Claude enumera los nombres válidos | v2.1.290 o posterior |


155| :- | :- | :- |157| :- | :- | :- |

156| Enterprise | `.claude/skills/<skill-name>/SKILL.md` en el [directorio de configuración administrada](/docs/es/managed-settings#delivery-mechanisms) | Todos los usuarios en máquinas donde tu organización la implementa |158| Enterprise | `.claude/skills/<skill-name>/SKILL.md` en el [directorio de configuración administrada](/docs/es/managed-settings#delivery-mechanisms) | Todos los usuarios en máquinas donde tu organización la implementa |

157| Personal | `~/.claude/skills/<skill-name>/SKILL.md` | Todos tus proyectos en esta máquina, pero no en [sesiones de Cowork o en la nube](#skills-in-cowork-and-cloud-sessions) |159| Personal | `~/.claude/skills/<skill-name>/SKILL.md` | Todos tus proyectos en esta máquina, pero no en [sesiones de Cowork o en la nube](#skills-in-cowork-and-cloud-sessions) |

158| Proyecto | `.claude/skills/<skill-name>/SKILL.md` | Sesiones en este repositorio. Confirma su cambio para que tu equipo también la obtenga |160| Proyecto | `.claude/skills/<skill-name>/SKILL.md` | Sesiones en este repositorio, pero no en [hilos en la nube de un proyecto](/docs/es/claude-projects#what-threads-pick-up-from-your-repositories). Haz commit de él para que tu equipo también lo obtenga |

159| Anidada | `<subdir>/.claude/skills/<skill-name>/SKILL.md` | Sesiones iniciadas en o debajo de `<subdir>`. Una sesión iniciada por encima de ella carga la skill una vez que Claude trabaja en archivos allí. Consulta [monorepos y subdirectorios](#discovery-from-parent-and-nested-directories) |161| Anidado | `<subdir>/.claude/skills/<skill-name>/SKILL.md` | Sesiones iniciadas en o debajo de `<subdir>`, pero no en hilos en la nube de un proyecto. Fuera de esos hilos, una sesión iniciada por encima de él carga el skill una vez que Claude trabaja en archivos allí. Consulta [monorepos y subdirectorios](#discovery-from-parent-and-nested-directories) |

160| Directorio adicional | `.claude/skills/<skill-name>/SKILL.md` en un directorio que pasas con `--add-dir` | Esa sesión. Consulta [directorios fuera del proyecto](#skills-from-additional-directories) |162| Directorio adicional | `.claude/skills/<skill-name>/SKILL.md` en un directorio que pasas con `--add-dir` | Esa sesión. Consulta [directorios fuera del proyecto](#skills-from-additional-directories) |

161| Plugin | `<plugin>/skills/<skill-name>/SKILL.md` | Dondequiera que el [plugin](/docs/es/plugins/overview) esté habilitado, como `/plugin-name:skill-name` |163| Plugin | `<plugin>/skills/<skill-name>/SKILL.md` | Dondequiera que el [plugin](/docs/es/plugins/overview) esté habilitado, como `/plugin-name:skill-name` |

162| Cuenta claude.ai | Skills habilitadas para tu cuenta claude.ai | Sesiones de Cowork, sesiones en la nube y sesiones de terminal donde inicias sesión con esa cuenta. Consulta [Skills sincronizadas desde claude.ai](#how-synced-skills-behave) |164| Cuenta claude.ai | Skills habilitadas para tu cuenta claude.ai | Sesiones de Cowork, sesiones en la nube y sesiones de terminal donde inicias sesión con esa cuenta. Consulta [Skills sincronizadas desde claude.ai](#how-synced-skills-behave) |


207 209 

208### Usa skills en sesiones de Cowork y en la nube210### Usa skills en sesiones de Cowork y en la nube

209 211 

210Las sesiones de [Cowork](https://claude.com/product/cowork) y las [sesiones en la nube](/docs/es/cloud-environments#what-carries-over-from-your-setup), incluidas las [tareas programadas en la nube](/docs/es/routines), no leen `~/.claude/skills/` en tu máquina. Tanto las sesiones de Cowork interactivas como las programadas cargan los skills habilitados para tu cuenta de claude.ai, sincronizados al inicio de la sesión. Adminístralos desde **Customize** en la barra lateral de la aplicación de escritorio o desde la configuración de skills en claude.ai. Las sesiones en la nube cargan además los skills de proyecto con commit en el `.claude/skills/` del repositorio clonado.212Las sesiones de [Cowork](https://claude.com/product/cowork) y las [sesiones en la nube](/docs/es/cloud-environments#what-carries-over-from-your-setup), incluidas las [tareas programadas en la nube](/docs/es/routines), no leen `~/.claude/skills/` en tu máquina. Tanto las sesiones de Cowork interactivas como las programadas cargan los skills habilitados para tu cuenta de claude.ai, sincronizados al inicio de la sesión. Adminístralos desde **Customize** en la barra lateral de la aplicación de escritorio o desde la configuración de skills en claude.ai.

211 213 

212Si un skill existe solo en `~/.claude/skills/` en tu máquina, Claude Code informa que el skill no se encontró cuando una [tarea programada en la nube](/docs/es/routines) lo invoca. Esto ocurre porque cada ejecución comienza como una sesión en la nube nueva. Para que un skill personal esté disponible en estas sesiones:214Si un skill existe solo en `~/.claude/skills/` en tu máquina, Claude Code informa que el skill no se encontró cuando una [tarea programada en la nube](/docs/es/routines) lo invoca. Esto ocurre porque cada ejecución comienza como una sesión en la nube nueva. Para que un skill personal esté disponible en estas sesiones:

213 215 

214* Para sesiones de Cowork y en la nube, habilita el skill para tu cuenta de claude.ai. [Algunas sesiones en un entorno autoalojado](/docs/es/self-hosted-environments-configuration#how-each-session’s-config-is-assembled) no cargan los skills de tu cuenta.216* Para sesiones de Cowork, sesiones en la nube e hilos en la nube de un [proyecto](/docs/es/claude-projects#what-threads-pick-up-from-your-repositories), habilita el skill para tu cuenta de claude.ai. En el hilo en la nube de un proyecto, los skills con commit en el `.claude/skills/` de un repositorio no están disponibles. [Algunas sesiones en un entorno autoalojado](/docs/es/self-hosted-environments-configuration#how-each-session’s-config-is-assembled) no cargan los skills de tu cuenta.

215* Para sesiones en la nube, puedes en su lugar confirmar la skill en el `.claude/skills/` del repositorio. Los plugins declarados en el `.claude/settings.json` del repositorio y los plugins habilitados solo en tu configuración de usuario [no cargan en sesiones en la nube](/docs/es/cloud-environments#what-carries-over-from-your-setup).217* Para sesiones en la nube distintas de los hilos de proyecto, puedes en su lugar hacer commit del skill en el `.claude/skills/` del repositorio. Los plugins declarados en el `.claude/settings.json` del repositorio y los plugins habilitados solo en tu configuración de usuario [no cargan en sesiones en la nube](/docs/es/cloud-environments#what-carries-over-from-your-setup).

216 218 

217Las [tareas programadas de escritorio](/docs/es/desktop-scheduled-tasks) se ejecutan localmente en tu máquina, por lo que sí cargan `~/.claude/skills/`.219Las [tareas programadas de escritorio](/docs/es/desktop-scheduled-tasks) se ejecutan localmente en tu máquina, por lo que sí cargan `~/.claude/skills/`.

218 220 


398| `agent` | No | Qué tipo de subagente usar cuando `context: fork` está establecido. |400| `agent` | No | Qué tipo de subagente usar cuando `context: fork` está establecido. |

399| `background` | No | Solo se aplica con `context: fork`. Establece en `false` para esperar el resultado del subagente bifurcado en el turno que invocó el skill, en lugar de [ejecutarlo en segundo plano](#run-skills-in-a-subagent). Por defecto: `true`. Requiere Claude Code v2.1.218 o posterior. |401| `background` | No | Solo se aplica con `context: fork`. Establece en `false` para esperar el resultado del subagente bifurcado en el turno que invocó el skill, en lugar de [ejecutarlo en segundo plano](#run-skills-in-a-subagent). Por defecto: `true`. Requiere Claude Code v2.1.218 o posterior. |

400| `hooks` | No | Hooks que Claude Code registra cuando se invoca el skill y mantiene ejecutándose por el resto de la sesión. Consulta [Hooks en skills y agentes](/docs/es/hooks#hooks-in-skills-and-agents) para el formato de configuración y la opción `once`. |402| `hooks` | No | Hooks que Claude Code registra cuando se invoca el skill y mantiene ejecutándose por el resto de la sesión. Consulta [Hooks en skills y agentes](/docs/es/hooks#hooks-in-skills-and-agents) para el formato de configuración y la opción `once`. |

401| `paths` | No | Patrones Glob que limitan cuándo se activa este skill. Acepta una cadena separada por comas o una lista YAML. Cuando se establece, Claude carga el skill automáticamente solo cuando trabaja con archivos que coinciden con los patrones. Usa el mismo formato que [reglas específicas de ruta](/docs/es/memory#path-specific-rules). |403| `paths` | No | Patrones Glob que limitan cuándo se activa este skill. Acepta una cadena separada por comas o una lista YAML. Cuando se establece, Claude carga el skill automáticamente solo cuando trabaja con archivos que coinciden con los patrones. Los patrones son relativos al directorio de trabajo actual de Claude, y los archivos fuera de ese directorio no coinciden. Usa el mismo formato glob que [reglas específicas de ruta](/docs/es/memory#path-specific-rules). |

402| `shell` | No | Shell a usar para `` !`command` `` y bloques ` ```! ` en este skill. Acepta `bash` (por defecto) o `powershell`. Establecer `powershell` ejecuta comandos shell en línea a través de PowerShell cuando la [herramienta PowerShell](/es/tools-reference#powershell-tool) está habilitada: está activada por defecto en Windows sin Git Bash, activada por defecto con Git Bash para cuentas de claude.ai y Console, y necesita `CLAUDE_CODE_USE_POWERSHELL_TOOL=1` en sesiones de Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry y en macOS, Linux y WSL. Establécelo en `0` para desactivar la herramienta. |404| `shell` | No | Shell a usar para `` !`command` `` y bloques ` ```! ` en este skill. Acepta `bash` (por defecto) o `powershell`. Establecer `powershell` ejecuta comandos shell en línea a través de PowerShell cuando la [herramienta PowerShell](/es/tools-reference#powershell-tool) está habilitada: está activada por defecto en Windows sin Git Bash, activada por defecto con Git Bash para cuentas de claude.ai y Console, y necesita `CLAUDE_CODE_USE_POWERSHELL_TOOL=1` en sesiones de Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry y en macOS, Linux y WSL. Establécelo en `0` para desactivar la herramienta. |

403| `metadata` | No | Mapa YAML de forma libre para tus propios datos clave-valor, como campos de derechos o catálogo, leídos por tu propia herramienta desde `SKILL.md`. Claude Code no actúa sobre su contenido y descarta un valor que no sea un mapa. No reutilices nombres de campos de frontmatter como `paths` como claves. |405| `metadata` | No | Mapa YAML de forma libre para tus propios datos clave-valor, como campos de derechos o catálogo, leídos por tu propia herramienta desde `SKILL.md`. Claude Code no actúa sobre su contenido y descarta un valor que no sea un mapa. No reutilices nombres de campos de frontmatter como `paths` como claves. |

404| `license` | No | Licencia que cubre el skill. Parte de la especificación [Agent Skills](https://agentskills.io); consulta [Usar frontmatter de skill fuera de Claude Code](#using-skill-frontmatter-outside-claude-code). Claude Code acepta el campo pero no actúa sobre él. |406| `license` | No | Licencia que cubre el skill. Parte de la especificación [Agent Skills](https://agentskills.io); consulta [Usar frontmatter de skill fuera de Claude Code](#using-skill-frontmatter-outside-claude-code). Claude Code acepta el campo pero no actúa sobre él. |


755Qué comandos obtienen la excepción depende del shell:757Qué comandos obtienen la excepción depende del shell:

756 758 

757* Shell `bash` predeterminado: los comandos enumerados en [Output limits](/docs/es/tools-reference#output-limits)759* Shell `bash` predeterminado: los comandos enumerados en [Output limits](/docs/es/tools-reference#output-limits)

758* `shell: powershell`, cuando la herramienta PowerShell está habilitada: un [conjunto diferente](/docs/es/tools-reference#shell-selection-in-settings-hooks-and-skills) que incluye `grep` y `git diff` pero no `find` o `diff`760* `shell: powershell`, cuando la herramienta PowerShell está habilitada: un [conjunto diferente](/docs/es/tools-reference#exit-code-1-from-searches-and-git-diff-in-powershell) que incluye `grep` y `git diff` pero no `find` ni `diff`

759 761 

760Con el shell `bash` predeterminado, agregue `|| true` a cualquier otro comando que espere que salga con un código distinto de cero. Un script de verificación que sale con 1 cuando encuentra problemas es un ejemplo.762Con el shell `bash` predeterminado, agregue `|| true` a cualquier otro comando que espere que salga con un código distinto de cero. Un script de verificación que sale con 1 cuando encuentra problemas es un ejemplo.

761 763 


11773. Intente reformular su solicitud para que coincida más estrechamente con la descripción11793. Intente reformular su solicitud para que coincida más estrechamente con la descripción

11784. Invóquelo directamente con `/skill-name` si el skill es invocable por el usuario11804. Invóquelo directamente con `/skill-name` si el skill es invocable por el usuario

11795. Si `/skill-name` tampoco se reconoce, verifica si Claude Code [rechazó el nombre del skill](#characters-a-skill-name-cant-hold)11815. Si `/skill-name` tampoco se reconoce, verifica si Claude Code [rechazó el nombre del skill](#characters-a-skill-name-cant-hold)

11826. Si el skill define `paths`, verifica que los archivos que Claude lee, edita o escribe estén dentro del directorio de trabajo actual de Claude. El skill no se activa para archivos fuera de él, como los de un worktree de git hermano, incluso uno que hayas agregado con `/add-dir`. Para que el skill se active para esos archivos, inicia Claude Code en ese worktree o [mueve la sesión allí con `/cd`](/docs/es/permissions#move-the-session-to-another-directory).

1180 1183 

1181Si el YAML del frontmatter está mal formado, Claude Code carga el cuerpo del skill con metadatos vacíos, por lo que `/skill-name` sigue funcionando pero Claude no puede comparar contra su `description`. Ejecute con `--debug` para ver el error de análisis.1184Si el YAML del frontmatter está mal formado, Claude Code carga el cuerpo del skill con metadatos vacíos, por lo que `/skill-name` sigue funcionando pero Claude no puede comparar contra su `description`. Ejecute con `--debug` para ver el error de análisis.

1182 1185 

sub-agents.md +25 −2

Details

489 489 

490Una entrada `disallowedTools` con un especificador, como `Bash(git push *)`, aún elimina la herramienta completa del subagente, no solo los comandos coincidentes. Para mantener Bash y bloquear comandos específicos, agregue una [regla de negación de Bash](/docs/es/permissions#bash) como `Bash(git push *)` a `permissions.deny` en su configuración. La regla se aplica a la conversación principal y a los subagentes.490Una entrada `disallowedTools` con un especificador, como `Bash(git push *)`, aún elimina la herramienta completa del subagente, no solo los comandos coincidentes. Para mantener Bash y bloquear comandos específicos, agregue una [regla de negación de Bash](/docs/es/permissions#bash) como `Bash(git push *)` a `permissions.deny` en su configuración. La regla se aplica a la conversación principal y a los subagentes.

491 491 

492##### Nombres de servidores MCP que contienen un doble guion bajo

493 

494Si un subagente no obtiene ninguna de las herramientas de un servidor MCP cuyo nombre contiene `__`, como `reports__v2`, revisa las entradas `mcp__` del subagente:

495 

496* **En `tools`**: escribe `mcp__` seguido del [nombre completo del servidor](/docs/es/permissions#mcp) y `__*`, como en `mcp__reports__v2__*`. Sin el `__*` final, `mcp__reports__v2` no coincide con ninguna de las herramientas de ese servidor.

497* **En `disallowedTools`**: busca `mcp__reports` o `mcp__reports__*`, las entradas que retienen un servidor llamado `reports`. Con cualquiera de las dos entradas, el subagente también pierde todas las herramientas de `reports__v2`, porque esos nombres de herramientas también comienzan con `mcp__reports__`. Para retener solo las herramientas del servidor `reports`, enuméralas una por una, como `mcp__reports__run_query`.

498 

492#### Restringir qué subagentes pueden ser generados499#### Restringir qué subagentes pueden ser generados

493 500 

494Cuando un agente se ejecuta como el hilo principal con `claude --agent`, puede generar subagentes usando la herramienta Agent. Para restringir qué tipos de subagentes puede generar, use la sintaxis `Agent(agent_type)` en el campo `tools`.501Cuando un agente se ejecuta como el hilo principal con `claude --agent`, puede generar subagentes usando la herramienta Agent. Para restringir qué tipos de subagentes puede generar, use la sintaxis `Agent(agent_type)` en el campo `tools`.


955 962 

956### Nombres de subagentes963### Nombres de subagentes

957 964 

958Claude puede dar a un subagente un nombre pasando un parámetro `name` en la llamada a la herramienta Agent, y puede hacerlo por su cuenta, sin preguntarte primero. El nombre hace que el subagente sea direccionable: Claude puede [enviarle un mensaje o reanudarlo por nombre](#resume-subagents) después de que termine.965Si inicias una sesión con [equipos de agentes](/docs/es/agent-teams#enable-agent-teams) habilitados, Claude puede dar un nombre a un subagente pasando un parámetro `name` en la llamada a la herramienta Agent. Puede hacerlo por su cuenta, sin preguntarte primero. El nombre hace que el subagente sea direccionable: Claude puede [enviarle un mensaje o reanudarlo por nombre](#resume-subagents) después de que termine.

959 966 

960En una sesión interactiva con [equipos de agentes](/docs/es/agent-teams) habilitados, un subagente que Claude genera desde la conversación principal con un `name` se lanza como compañero en su lugar, a menos que la llamada sea un [fork](#fork-the-current-conversation) o pase `isolation` en la llamada misma. Un valor `isolation` en el frontmatter del subagente no lo previene, y el compañero entonces se ejecuta en el directorio de trabajo de la sesión principal. Consulta [Cómo Claude inicia equipos de agentes](/docs/es/agent-teams#how-claude-starts-agent-teams).967En una sesión interactiva con [equipos de agentes](/docs/es/agent-teams) habilitados, un subagente que Claude genera desde la conversación principal con un `name` se lanza como compañero en su lugar, a menos que la llamada sea un [fork](#fork-the-current-conversation) o pase `isolation` en la llamada misma. Un valor `isolation` en el frontmatter del subagente no lo previene, y el compañero entonces se ejecuta en el directorio de trabajo de la sesión principal. Consulta [Cómo Claude inicia equipos de agentes](/docs/es/agent-teams#how-claude-starts-agent-teams).

961 968 


968* **Primer plano**: si un rate limit, sobrecarga o error de servidor corta un subagente que ya produjo salida de texto, la herramienta Agent devuelve esa salida parcial con una nota de que el subagente fue cortado y no completó su tarea. Un subagente que no produjo nada, o cuya única salida fueron llamadas a herramientas, falla con [`Agent terminated early due to an API error`](/docs/es/errors#agent-terminated-early-due-to-an-api-error), seguido del detalle del error.975* **Primer plano**: si un rate limit, sobrecarga o error de servidor corta un subagente que ya produjo salida de texto, la herramienta Agent devuelve esa salida parcial con una nota de que el subagente fue cortado y no completó su tarea. Un subagente que no produjo nada, o cuya única salida fueron llamadas a herramientas, falla con [`Agent terminated early due to an API error`](/docs/es/errors#agent-terminated-early-due-to-an-api-error), seguido del detalle del error.

969* **Segundo plano**: el subagente se marca como fallido, y el mensaje que Claude recibe cuando termina nombra el error de API e incluye la última salida del subagente, por lo que el trabajo parcial no se pierde.976* **Segundo plano**: el subagente se marca como fallido, y el mensaje que Claude recibe cuando termina nombra el error de API e incluye la última salida del subagente, por lo que el trabajo parcial no se pierde.

970 977 

978Si el informe de un subagente comienza con la siguiente línea, el subagente terminó en un modelo de respaldo:

979 

980```text theme={null}

981⚠ This agent switched to <model> because its earlier model could not be used.

982```

983 

971Cuando configuras una [cadena de modelos de respaldo](/docs/es/model-config#fallback-model-chains) y un subagente encuentra una falla que la cadena cubre, como que su modelo no esté disponible, Claude Code cambia el subagente al primer modelo en la cadena que acepta la solicitud. El subagente continúa trabajando en lugar de terminar en el error.984Cuando configuras una [cadena de modelos de respaldo](/docs/es/model-config#fallback-model-chains) y un subagente encuentra una falla que la cadena cubre, como que su modelo no esté disponible, Claude Code cambia el subagente al primer modelo en la cadena que acepta la solicitud. El subagente continúa trabajando en lugar de terminar en el error.

972 985 

973Una vez que el error de API subyacente se resuelve, pide a Claude que reintente la tarea o [reanude el subagente](#resume-subagents).986Una vez que el error de API subyacente se resuelve, pide a Claude que reintente la tarea o [reanude el subagente](#resume-subagents).


1114 1127 

1115Cada invocación de subagente crea una nueva instancia en lugar de continuar una anterior. Para continuar el trabajo de un subagente existente en lugar de comenzar de nuevo, pide a Claude que lo reanude.1128Cada invocación de subagente crea una nueva instancia en lugar de continuar una anterior. Para continuar el trabajo de un subagente existente en lugar de comenzar de nuevo, pide a Claude que lo reanude.

1116 1129 

1117Los subagentes reanudados retienen su historial de conversación completo, incluyendo todas las llamadas a herramientas anteriores, resultados y razonamiento. Si el subagente generó [subagentes en segundo plano propios](#let-subagents-spawn-their-own-subagents), ese historial incluye los resultados que entregaron mientras se ejecutaba. El subagente continúa exactamente donde se detuvo en lugar de comenzar de nuevo.1130Los subagentes reanudados retienen su historial de conversación completo, incluyendo todas las llamadas a herramientas anteriores, resultados y razonamiento. Si el subagente generó [subagentes en segundo plano propios](#let-subagents-spawn-their-own-subagents), ese historial incluye los resultados que entregaron mientras se ejecutaba. Antes de v2.1.304, un subagente al que Claude enviaba un mensaje o reanudaba justo después de que terminara podía olvidar su trabajo más reciente.

1118 1131 

1119* Cuando un subagente se completa, Claude recibe su ID de agente.1132* Cuando un subagente se completa, Claude recibe su ID de agente.

1120* Los agentes integrados Explore y Plan son de una sola vez y no devuelven un ID de agente, por lo que Claude no puede reanudarlos. Usa `general-purpose` o un subagente personalizado cuando necesites continuar el trabajo.1133* Los agentes integrados Explore y Plan son de una sola vez y no devuelven un ID de agente, por lo que Claude no puede reanudarlos. Usa `general-purpose` o un subagente personalizado cuando necesites continuar el trabajo.


1154* **Persistencia de sesión**: las transcripciones de subagentes persisten dentro de su sesión. Puedes [reanudar un subagente](#resume-subagents) después de reiniciar Claude Code reanudando la misma sesión.1167* **Persistencia de sesión**: las transcripciones de subagentes persisten dentro de su sesión. Puedes [reanudar un subagente](#resume-subagents) después de reiniciar Claude Code reanudando la misma sesión.

1155* **Limpieza automática**: Claude Code elimina las transcripciones de subagentes después del período de retención `cleanupPeriodDays`, 30 días por defecto, siguiendo las [reglas de barrido de retención](/docs/es/claude-directory#cleaned-up-automatically).1168* **Limpieza automática**: Claude Code elimina las transcripciones de subagentes después del período de retención `cleanupPeriodDays`, 30 días por defecto, siguiendo las [reglas de barrido de retención](/docs/es/claude-directory#cleaned-up-automatically).

1156 1169 

1170##### Enviar un mensaje a un subagente por nombre después de un reinicio

1171 

1172> [!NOTE]

1173>

1174> Para un subagente que se lanzó como compañero, consulta las [limitaciones de los equipos de agentes](/docs/es/agent-teams#limitations) en su lugar.

1175 

1176Si Claude no puede enviar un mensaje a un subagente por nombre después de que reinicias Claude Code y reanudas la sesión, dale a Claude el ID de agente del subagente en su lugar. Los nombres que Claude asignó desde la conversación principal desde su última [compactación](/docs/es/context-window#what-survives-compaction) sobreviven al reinicio. Un nombre de antes de esa compactación no. Para encontrar el ID de un nombre, busca ese nombre en los archivos `agent-{agentId}.meta.json` en `~/.claude/projects/{project}/{sessionId}/subagents/`.

1177 

1178Después de un mensaje por ID, el nombre del subagente vuelve a funcionar, a menos que un agente más nuevo haya tomado ese nombre. Antes de v2.1.299, ningún nombre sobrevivía a un reinicio, y un envío por nombre se rechazaba incluso cuando el ID de agente aún funcionaba.

1179 

1157#### Compactación automática1180#### Compactación automática

1158 1181 

1159Los subagentes soportan compactación automática. La compactación se dispara a medida que se llena la propia ventana de contexto del subagente, y `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` se aplica a subagentes también. Consulta [variables de entorno](/docs/es/env-vars) para saber cuándo entra en vigor la sobrescritura.1182Los subagentes soportan compactación automática. La compactación se dispara a medida que se llena la propia ventana de contexto del subagente, y `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` se aplica a subagentes también. Consulta [variables de entorno](/docs/es/env-vars) para saber cuándo entra en vigor la sobrescritura.

Details

476 476 

477Los comandos de PowerShell también reciben las variables que los hooks persisten mediante `CLAUDE_ENV_FILE`, en las condiciones descritas en [Variables persistidas en comandos de PowerShell](/docs/es/hooks#persisted-variables-in-powershell-commands). Requiere Claude Code v2.1.296 o posterior.477Los comandos de PowerShell también reciben las variables que los hooks persisten mediante `CLAUDE_ENV_FILE`, en las condiciones descritas en [Variables persistidas en comandos de PowerShell](/docs/es/hooks#persisted-variables-in-powershell-commands). Requiere Claude Code v2.1.296 o posterior.

478 478 

479El código de salida 1 de `grep`, `rg`, `egrep`, `fgrep`, `findstr` y `git grep` significa que no hay coincidencias. El código de salida 1 de `git diff` significa que existen diferencias. Ninguno de estos resultados se reporta a Claude como un error de comando. Para `robocopy`, los códigos de salida de 0 a 7 son resultados informativos, como archivos copiados o archivos adicionales detectados. Los códigos de salida de 8 o superior cuentan como errores.479### Código de salida 1 de búsquedas y `git diff` en PowerShell

480 

481Si una búsqueda con `grep` o `rg` que no encuentra coincidencias muestra `Error: Exit code 1` cuando Claude la ejecuta en la herramienta PowerShell, la búsqueda no falló. No necesitas hacer nada. El error puede aparecer cuando la búsqueda forma parte de un comando más largo. Por ejemplo, cuando `rg` termina con el código 1, `rg foo | Out-Null` muestra el error y `rg foo` no.

482 

483La herramienta PowerShell puede contar el código de salida 1 como un resultado normal de `grep`, `rg`, `egrep`, `fgrep`, `findstr`, `git grep` y `git diff`. Las búsquedas usan el código de salida 1 para indicar que no hay coincidencias. En `git diff`, el código de salida 1 significa que los archivos difieren. Un comando que muestra el error cuando Claude lo ejecuta [cuenta como fallido](/docs/es/skills#when-an-injected-command-fails) en un skill con `shell: powershell`.

480 484 

481### Codificación de Windows y códigos de salida485### Codificación de Windows y códigos de salida

482 486 


484* Claude Code codifica el texto canalizando a la entrada estándar de un comando nativo como UTF-8488* Claude Code codifica el texto canalizando a la entrada estándar de un comando nativo como UTF-8

485* Claude Code captura la salida de error sin secuencias de escape ANSI489* Claude Code captura la salida de error sin secuencias de escape ANSI

486* Un comando cuyo proceso secundario espera en la entrada estándar recibe fin de archivo en lugar de colgarse490* Un comando cuyo proceso secundario espera en la entrada estándar recibe fin de archivo en lugar de colgarse

487* El código de salida 1 de `where.exe` significa que no hay coincidencia, y de `fc.exe` y `diff.exe` significa que los archivos difieren, por lo que cuando el comando produce salida, Claude Code trata ese código de salida como una respuesta negativa válida en lugar de un error de comando. Claude Code aún reporta una forma silenciada, como `where.exe /Q` o una redirección a `$null`, como un error en el código de salida 1491* Si `where.exe` no encuentra coincidencias, o `fc.exe` o `diff.exe` determinan que los archivos difieren, el resultado puede mostrar `Error: Exit code 1` aunque el comando no haya fallado. No necesitas hacer nada.

492* Si un código de salida de `robocopy` del 1 al 7 se muestra como error, la copia no falló y no necesitas hacer nada. `robocopy` termina con un código del 0 al 7 para informar un resultado, como archivos copiados, y con 8 o superior cuando falla.

488 493 

489### Limitaciones de vista previa494### Limitaciones de vista previa

490 495 


504* **Imágenes**: los archivos PNG, JPEG, GIF y WebP se devuelven como contenido visual que Claude puede ver, no como bytes sin procesar. Claude Code redimensiona y recomprime imágenes grandes para que se ajusten a los límites de tamaño de imagen del modelo antes de enviarlas, por lo que Claude puede ver una versión reducida de una captura de pantalla grande.509* **Imágenes**: los archivos PNG, JPEG, GIF y WebP se devuelven como contenido visual que Claude puede ver, no como bytes sin procesar. Claude Code redimensiona y recomprime imágenes grandes para que se ajusten a los límites de tamaño de imagen del modelo antes de enviarlas, por lo que Claude puede ver una versión reducida de una captura de pantalla grande.

505 510 

506 Si Claude pierde detalles a nivel de píxel fino en una imagen grande, pídele que recorte la región que te interesa, por ejemplo con ImageMagick a través de Bash, y que luego lea el recorte.511 Si Claude pierde detalles a nivel de píxel fino en una imagen grande, pídele que recorte la región que te interesa, por ejemplo con ImageMagick a través de Bash, y que luego lea el recorte.

512 

513 Read rechaza un archivo de imagen de más de 128 MB con un error que le indica a Claude que redimensione la imagen o exporte una copia más pequeña, y que luego lea esa copia. Si Claude se detiene en el error en lugar de hacerlo, consulta [File is too large to read as an image](/docs/es/errors#file-is-too-large-to-read-as-an-image).

507* **PDFs**: Claude lee archivos `.pdf` cortos completos. Para PDFs más largos que 10 páginas, lee en rangos con un parámetro `pages`, como `"1-5"`, hasta 20 páginas a la vez. Las lecturas de rango de páginas renderizan páginas con `pdftoppm` de poppler-utils, así que instálelo con `brew install poppler` en macOS o `apt-get install poppler-utils` en Debian y Ubuntu. En Windows y otras plataformas, instale una compilación de poppler que ponga `pdftoppm` en su `PATH`. Sin él, una lectura de rango de páginas falla con `pdftoppm is not installed`.514* **PDFs**: Claude lee archivos `.pdf` cortos completos. Para PDFs más largos que 10 páginas, lee en rangos con un parámetro `pages`, como `"1-5"`, hasta 20 páginas a la vez. Las lecturas de rango de páginas renderizan páginas con `pdftoppm` de poppler-utils, así que instálelo con `brew install poppler` en macOS o `apt-get install poppler-utils` en Debian y Ubuntu. En Windows y otras plataformas, instale una compilación de poppler que ponga `pdftoppm` en su `PATH`. Sin él, una lectura de rango de páginas falla con `pdftoppm is not installed`.

508* **Cuadernos Jupyter**: Los archivos `.ipynb` devuelven todas las celdas con sus salidas, incluido código, markdown y visualizaciones. Un cuaderno cuyas celdas suman más de 256 KB, o más del [límite de tokens](#large-files), devuelve un error en su lugar. Claude Code se niega a leer un archivo de cuaderno de más de 100 MB; el error le indica a Claude cómo leer una porción del cuaderno en su lugar, como un segmento de celdas, con un comando de shell.515* **Cuadernos Jupyter**: Los archivos `.ipynb` devuelven todas las celdas con sus salidas, incluido código, markdown y visualizaciones. Un cuaderno cuyas celdas suman más de 256 KB, o más del [límite de tokens](#large-files), devuelve un error en su lugar. Claude Code se niega a leer un archivo de cuaderno de más de 100 MB; el error le indica a Claude cómo leer una porción del cuaderno en su lugar, como un segmento de celdas, con un comando de shell.

509 516 


558 565 

559Claude Code mantiene su directorio de trabajo en el borrador local para poder encontrar la transcripción, y no envía el directorio.566Claude Code mantiene su directorio de trabajo en el borrador local para poder encontrar la transcripción, y no envía el directorio.

560 567 

561En [organizaciones con retención de datos cero](/docs/es/zero-data-retention#features-disabled-under-zdr), y en organizaciones con la [configuración HIPAA](/docs/es/hipaa-setup) aplicada, Claude Code deja la herramienta fuera, como lo hace para `/feedback`. Si una sesión en una organización con retención de datos cero aún ofrece la herramienta, los borradores permanecen en tu máquina, y el envío falla con `Feedback collection is not available for organizations with custom data retention policies.`568En [organizaciones con retención de datos cero](/docs/es/zero-data-retention#features-disabled-under-zdr), y en organizaciones con la [configuración HIPAA](/docs/es/hipaa-setup) aplicada, Claude Code deja la herramienta SendFeedback fuera de tus sesiones. Si una sesión en una organización con retención de datos cero aún ofrece la herramienta, los borradores permanecen en tu máquina, y el envío falla con `Feedback collection is not available for organizations with custom data retention policies.`

562 569 

563### Descartar o mantener un borrador570### Descartar o mantener un borrador

564 571 


665* **Esperar la recarga**: en Claude Code v2.1.290 o posterior, el límite de una sesión interactiva de terminal se recarga a razón de unas 100 llamadas por hora. Para cambiar la tasa, establece [`CLAUDE_CODE_WEB_SEARCH_REFILLS_PER_HOUR`](/docs/es/env-vars#variables) en un número de llamadas por hora, como `50`.672* **Esperar la recarga**: en Claude Code v2.1.290 o posterior, el límite de una sesión interactiva de terminal se recarga a razón de unas 100 llamadas por hora. Para cambiar la tasa, establece [`CLAUDE_CODE_WEB_SEARCH_REFILLS_PER_HOUR`](/docs/es/env-vars#variables) en un número de llamadas por hora, como `50`.

666* **Iniciar una nueva conversación**: ejecutar [`/clear`](/docs/es/commands#all-commands) en el prompt de Claude Code también reinicia el contador. Si el trabajo que aún puede generar subagentes sobrevive al borrado, como un flujo de trabajo en ejecución, el contador se mantiene en su lugar.673* **Iniciar una nueva conversación**: ejecutar [`/clear`](/docs/es/commands#all-commands) en el prompt de Claude Code también reinicia el contador. Si el trabajo que aún puede generar subagentes sobrevive al borrado, como un flujo de trabajo en ejecución, el contador se mantiene en su lugar.

667 674 

675En el [modo no interactivo](/docs/es/headless) con `-p` y en el [Agent SDK](/docs/es/agent-sdk/overview), el límite se aplica por turno, no por sesión. Un turno dura desde un mensaje que envías hasta que Claude termina de responder. El límite se reinicia cuando envías el siguiente mensaje después de eso o inicias una nueva ejecución de `claude -p`, incluso con [`--continue` o `--resume`](/docs/es/headless#continue-conversations). Para obtener más búsquedas, aumenta [`CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION`](/docs/es/env-vars#variables) o establece una tasa de recarga con [`CLAUDE_CODE_WEB_SEARCH_REFILLS_PER_HOUR`](/docs/es/env-vars#variables).

676 

668## Comportamiento de la herramienta Write677## Comportamiento de la herramienta Write

669 678 

670La herramienta Write crea un archivo nuevo o sobrescribe uno existente con el contenido completo proporcionado. No añade ni fusiona. Write también sobrescribe un archivo existente cuyos bytes no se pueden decodificar y guarda el nuevo contenido como UTF-8, como se describe en [archivos que no son UTF-8](#non-utf-8-files).679La herramienta Write crea un archivo nuevo o sobrescribe uno existente con el contenido completo proporcionado. No añade ni fusiona. Write también sobrescribe un archivo existente cuyos bytes no se pueden decodificar y guarda el nuevo contenido como UTF-8, como se describe en [archivos que no son UTF-8](#non-utf-8-files).

Details

31| `CRYPT_E_NO_REVOCATION_CHECK` o `CRYPT_E_REVOCATION_OFFLINE` | [Soluciona las verificaciones de revocación bloqueadas](#tls-or-ssl-connection-errors) |31| `CRYPT_E_NO_REVOCATION_CHECK` o `CRYPT_E_REVOCATION_OFFLINE` | [Soluciona las verificaciones de revocación bloqueadas](#tls-or-ssl-connection-errors) |

32| `Failed to fetch version` o no puedes alcanzar el servidor de descarga | [Verifica la configuración de red y proxy](#check-network-connectivity) |32| `Failed to fetch version` o no puedes alcanzar el servidor de descarga | [Verifica la configuración de red y proxy](#check-network-connectivity) |

33| `The connection dropped while downloading the update` o `Download timed out: exceeded the total deadline` | [Vuelve a ejecutar la actualización o configura tu proxy](#the-connection-dropped-while-downloading-the-update) |33| `The connection dropped while downloading the update` o `Download timed out: exceeded the total deadline` | [Vuelve a ejecutar la actualización o configura tu proxy](#the-connection-dropped-while-downloading-the-update) |

34| `Release verification failed for Claude Code` | [Vuelve a ejecutar `claude update` o `claude install`](#release-verification-failed) |

35| `Auto-update failed · Run claude doctor` en rojo en el pie de la sesión | [Ejecuta `claude update` desde tu shell](#auto-update-failed) |

34| `irm is not recognized` o `The token '&&' is not a valid statement separator` | [Usa el comando correcto para tu shell](#wrong-install-command-on-windows) |36| `irm is not recognized` o `The token '&&' is not a valid statement separator` | [Usa el comando correcto para tu shell](#wrong-install-command-on-windows) |

35| `Cask 'claude-code' is unavailable: No Cask with this name exists` | [Actualiza Homebrew](#homebrew-cask-unavailable-or-outdated) |37| `Cask 'claude-code' is unavailable: No Cask with this name exists` | [Actualiza Homebrew](#homebrew-cask-unavailable-or-outdated) |

36| `Cask 'claude-code@latest' is not installed` | [Actualiza el cask que instalaste](#cask-is-not-installed) |38| `Cask 'claude-code@latest' is not installed` | [Actualiza el cask que instalaste](#cask-is-not-installed) |


631* Si un proxy corporativo sigue cerrando la transferencia, pide a tu equipo de redes que permita la descarga completa desde `downloads.claude.ai`. Consulta [Requisitos de acceso a la red](/docs/es/network-config#network-access-requirements).633* Si un proxy corporativo sigue cerrando la transferencia, pide a tu equipo de redes que permita la descarga completa desde `downloads.claude.ai`. Consulta [Requisitos de acceso a la red](/docs/es/network-config#network-access-requirements).

632* Ejecuta `claude doctor` desde tu shell para obtener diagnósticos de la instalación634* Ejecuta `claude doctor` desde tu shell para obtener diagnósticos de la instalación

633 635 

636### Release verification failed for Claude Code

637 

638Este mensaje de `claude update` o `claude install` significa que Claude Code no pudo confirmar que la versión que estaba a punto de instalar es auténtica, por lo que no instaló nada. Cualquier versión que ya tengas sigue funcionando.

639 

640```text theme={null}

641Release verification failed for Claude Code <version> (<reason>). The update was not installed.

642```

643 

644Sigue el paso que corresponda al valor entre paréntesis de tu mensaje:

645 

646* **Un valor que comienza con `sidecar_fetch_`**: ejecuta el mismo comando nuevamente desde tu shell. `claude update` tuvo éxito si imprime una línea que comienza con `Successfully updated from`, y `claude install` tuvo éxito si imprime `Claude Code successfully installed!`.

647* **Cualquier otro valor**: intenta el mismo comando nuevamente más tarde

648 

649Con cualquier valor, si el mensaje se repite, [reporta el problema](#still-stuck) e incluye el mensaje completo.

650 

651### `Auto-update failed · Run claude doctor` en el pie de la sesión

652 

653Esta línea roja significa que Claude Code intentó actualizarse en segundo plano y la actualización no se instaló. Puedes seguir trabajando sin hacer nada.

654 

655La línea te remite a `claude doctor`, cuya línea `Last update attempt: failed (install_failed)` da una fecha pero no una causa. Para terminar la actualización o ver por qué falló, ejecuta `claude update` en tu shell en su lugar. Si esa instalación también falla, busca el error que imprime `claude update` en [Encuentra tu error](#find-your-error).

656 

634### Comando de instalación incorrecto en Windows657### Comando de instalación incorrecto en Windows

635 658 

636Si ves `'irm' is not recognized`, `The token '&&' is not a valid statement separator`, `A parameter cannot be found that matches parameter name 'fsSL'` o `'bash' is not recognized as the name of a cmdlet`, copiaste el comando de instalación para un shell o sistema operativo diferente. Si el comando imprime el texto del script en lugar de instalar algo, ejecutaste solo una parte del comando.659Si ves `'irm' is not recognized`, `The token '&&' is not a valid statement separator`, `A parameter cannot be found that matches parameter name 'fsSL'` o `'bash' is not recognized as the name of a cmdlet`, copiaste el comando de instalación para un shell o sistema operativo diferente. Si el comando imprime el texto del script en lugar de instalar algo, ejecutaste solo una parte del comando.

Details

12| :- | :- |12| :- | :- |

13| `command not found`, falla de instalación, problemas de PATH, `EACCES`, errores de TLS | [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install) |13| `command not found`, falla de instalación, problemas de PATH, `EACCES`, errores de TLS | [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install) |

14| Actualización o falla de descarga de instalación con `The connection dropped while downloading the update` o `aborted` | [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |14| Actualización o falla de descarga de instalación con `The connection dropped while downloading the update` o `aborted` | [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |

15| La actualización o la instalación falla con `Release verification failed for Claude Code` | [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install#release-verification-failed) |

16| El pie de la sesión muestra `Auto-update failed · Run claude doctor` en rojo | [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install#auto-update-failed) |

15| Bucles de inicio de sesión, errores de OAuth, `403 Forbidden`, "organización deshabilitada", credenciales de Amazon Bedrock, Google Cloud's Agent Platform, o Microsoft Foundry | [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install#login-and-authentication) |17| Bucles de inicio de sesión, errores de OAuth, `403 Forbidden`, "organización deshabilitada", credenciales de Amazon Bedrock, Google Cloud's Agent Platform, o Microsoft Foundry | [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install#login-and-authentication) |

16| La configuración no se aplica, hooks no se disparan, servidores MCP no se cargan | [Depurar tu configuración](/docs/es/debug-your-config) |18| La configuración no se aplica, hooks no se disparan, servidores MCP no se cargan | [Depurar tu configuración](/docs/es/debug-your-config) |

17| Sesión iniciada en modo automático, o Claude edita archivos y ejecuta comandos sin preguntar | [En qué modo se inicia una sesión](/docs/es/permission-modes#which-mode-a-session-starts-in) |19| Sesión iniciada en modo automático, o Claude edita archivos y ejecuta comandos sin preguntar | [En qué modo se inicia una sesión](/docs/es/permission-modes#which-mode-a-session-starts-in) |

vs-code.md +16 −3

Details

174* **Marcadores**: pasa el cursor sobre una respuesta y haz clic en **Bookmark response** para guardarla, o haz clic en **Remove bookmark** en una respuesta guardada para quitarla.174* **Marcadores**: pasa el cursor sobre una respuesta y haz clic en **Bookmark response** para guardarla, o haz clic en **Remove bookmark** en una respuesta guardada para quitarla.

175 175 

176 Para revisar las respuestas guardadas, abre el panel Bookmarks. Puedes hacer clic en el icono de marcador en la parte superior del panel de Claude Code, seleccionar **Bookmarks** en la sección Context del menú de comandos, o escribir `/bookmarks`. Requiere Claude Code v2.1.286 o posterior.176 Para revisar las respuestas guardadas, abre el panel Bookmarks. Puedes hacer clic en el icono de marcador en la parte superior del panel de Claude Code, seleccionar **Bookmarks** en la sección Context del menú de comandos, o escribir `/bookmarks`. Requiere Claude Code v2.1.286 o posterior.

177* **Archivos que Claude te envía**: cuando la sesión está conectada a [Remote Control](/docs/es/remote-control#start-a-remote-control-session) y Claude te envía archivos con la [herramienta `SendUserFile`](/docs/es/tools-reference), la conversación muestra una fila como **Sent report.md, chart.png**. Haz clic en el nombre de un archivo para abrirlo en el editor.177* **Archivos que Claude te envía**: cuando la sesión está conectada a [Remote Control](/docs/es/remote-control#start-a-remote-control-session) y Claude te envía archivos con la [herramienta `SendUserFile`](/docs/es/tools-reference), la conversación muestra una fila como **Sent report.md, chart.png**. Haz clic en el nombre de un archivo para abrirlo en el editor. La fila sigue visible en Focus view. Requiere Claude Code v2.1.295 o posterior.

178 

179 Un archivo aparece como una ruta completa en la que no puedes hacer clic, como `\\server\share\report.md`, cuando su ruta nombra un host de red. Claude Code no enlaza ese archivo porque abrirlo contactaría a ese host y, en Windows, [podría enviar tus credenciales de Windows a ese host](/docs/es/permissions#read-only-commands).

178* **Indicador de contexto**: el cuadro de prompt muestra cuánto de la ventana de contexto de Claude estás usando. Claude compacta automáticamente cuando es necesario, o puedes ejecutar `/compact` manualmente.180* **Indicador de contexto**: el cuadro de prompt muestra cuánto de la ventana de contexto de Claude estás usando. Claude compacta automáticamente cuando es necesario, o puedes ejecutar `/compact` manualmente.

179* **Reloj de la caché de prompts**: un icono de reloj junto al indicador de contexto estima cuánto tiempo le queda a la [caché de prompts](/docs/es/prompt-caching) de la conversación antes de expirar. Hace una cuenta regresiva desde la [duración](/docs/es/prompt-caching#cache-lifetime) de cinco minutos o una hora de la caché, y cada respuesta que usa la caché reinicia la cuenta regresiva. Aparte de la compactación, las [acciones que invalidan la caché](/docs/es/prompt-caching#actions-that-invalidate-the-cache) no reinician el reloj, por lo que aún puede mostrar minutos restantes después de cambiar de modelo.181* **Reloj de la caché de prompts**: un icono de reloj junto al indicador de contexto estima cuánto tiempo le queda a la [caché de prompts](/docs/es/prompt-caching) de la conversación antes de expirar. Hace una cuenta regresiva desde la [duración](/docs/es/prompt-caching#cache-lifetime) de cinco minutos o una hora de la caché, y cada respuesta que usa la caché reinicia la cuenta regresiva. Aparte de la compactación, las [acciones que invalidan la caché](/docs/es/prompt-caching#actions-that-invalidate-the-cache) no reinician el reloj, por lo que aún puede mostrar minutos restantes después de cambiar de modelo.

180 * Hasta que termina la cuenta regresiva, el icono muestra los minutos restantes, como **12m**.182 * Hasta que termina la cuenta regresiva, el icono muestra los minutos restantes, como **12m**.


252 254 

253* **Títulos de sesión**: las sesiones nuevas reciben títulos generados por IA a partir de tu primer mensaje.255* **Títulos de sesión**: las sesiones nuevas reciben títulos generados por IA a partir de tu primer mensaje.

254* **Renombrar y archivar**: pasa el cursor sobre una sesión para mostrar estas acciones. Renómbrala para darle un título descriptivo, o archívala para moverla al grupo **Archived sessions** al final de la lista.256* **Renombrar y archivar**: pasa el cursor sobre una sesión para mostrar estas acciones. Renómbrala para darle un título descriptivo, o archívala para moverla al grupo **Archived sessions** al final de la lista.

257* **Conversaciones que faltan con [`claudeProcessWrapper`](#extension-settings) configurado**: actualiza la extensión a la versión 2.1.304 o posterior. Entonces la lista incluye las conversaciones que faltaban, junto con las sesiones que `claude -p` o el [Agent SDK](/docs/es/agent-sdk/overview) iniciaron en este espacio de trabajo.

255 258 

256Si la conversación está abierta en otro proceso de Claude Code, como `claude` en una terminal u otra ventana de VS Code, aparece este aviso en lugar del cuadro de prompt:259Si la conversación está abierta en otro proceso de Claude Code, como `claude` en una terminal u otra ventana de VS Code, aparece este aviso en lugar del cuadro de prompt:

257 260 


308 311 

309* **Plan de claude.ai**: barras de uso para los límites de tu plan, como la sesión actual y la semana. Cada barra muestra cuánto falta para que se restablezca su límite.312* **Plan de claude.ai**: barras de uso para los límites de tu plan, como la sesión actual y la semana. Cada barra muestra cuánto falta para que se restablezca su límite.

310 313 

311 El cuadro de diálogo también desglosa qué contribuye a los límites de tu plan. Señala los comportamientos que representan el 10 % o más del uso reciente, como los fallos de caché, el contexto largo y las sesiones con muchos subagentes o muy paralelas. Cada comportamiento señalado incluye un consejo para reducirlo. Las tablas de atribución muestran cuánto uso provino de cada skill, subagente, plugin y servidor MCP.314 El cuadro de diálogo también desglosa qué contribuye a los límites de tu plan:

315 

316 * **Recomendaciones**: cambios que reducen tu uso, uno por fila con la proporción del uso reciente que abordan, como `Trim ~/code/api/CLAUDE.md · 49k tokens per request`

317 * **Botón de corrección**: para que Claude Code aplique las recomendaciones que pueda, haz clic en el botón que aparece debajo de ellas, como **Fix both**. Para saber sobre qué filas actúa el botón y qué ocurre después en tu sesión, consulta [Aplicar recomendaciones con el atajo de corrección](/docs/es/costs#apply-recommendations-with-the-fix-shortcut). Requiere Claude Code v2.1.305 o posterior.

318 

319 El botón no se muestra mientras [Remote Control](/docs/es/remote-control) está conectado. Si aparece una advertencia que dice `The usage fix wasn’t fully sent. Open usage and try again.` después de que Remote Control se conectara, [desconecta Remote Control](/docs/es/remote-control#check-connection-status) antes de volver a intentarlo.

320 * **Atribución**: tablas que muestran cuánto uso provino de cada skill, subagente, plugin y servidor MCP

312 321 

313 Usa el selector Day y Week para alternar entre las últimas 24 horas y los últimos 7 días. Las cifras son aproximadas y se calculan a partir de las sesiones locales en esta máquina, por lo que no se incluye el uso desde otros dispositivos ni desde claude.ai.322 Usa el selector Day y Week para alternar entre las últimas 24 horas y los últimos 7 días. Las cifras son aproximadas y se calculan a partir de las sesiones locales en esta máquina, por lo que no se incluye el uso desde otros dispositivos ni desde claude.ai.

314* **Otros inicios de sesión**: cuando los límites del plan no se aplican a tu inicio de sesión, como con un [proveedor externo](#use-third-party-providers) o con una clave de API, la sección Usage muestra en su lugar el costo y el uso de tokens de la propia sesión. El `/usage` de la CLI muestra los mismos totales en su [bloque Session](/docs/es/costs#track-your-costs). La lista de sesiones de la barra de actividad también muestra los totales de la sesión activa bajo su encabezado **Account & usage**. Requiere Claude Code v2.1.277 o posterior.323* **Otros inicios de sesión**: cuando los límites del plan no se aplican a tu inicio de sesión, como con un [proveedor externo](#use-third-party-providers) o con una clave de API, la sección Usage muestra en su lugar el costo y el uso de tokens de la propia sesión. El `/usage` de la CLI muestra los mismos totales en su [bloque Session](/docs/es/costs#track-your-costs). La lista de sesiones de la barra de actividad también muestra los totales de la sesión activa bajo su encabezado **Account & usage**. Requiere Claude Code v2.1.277 o posterior.


573 582 

574Para un comando de shell en segundo plano, o un [monitor](/docs/es/tools-reference#monitor-tool) que ejecuta un comando, la tarjeta también muestra la salida más reciente del comando y la actualiza mientras el comando se ejecuta.583Para un comando de shell en segundo plano, o un [monitor](/docs/es/tools-reference#monitor-tool) que ejecuta un comando, la tarjeta también muestra la salida más reciente del comando y la actualiza mientras el comando se ejecuta.

575 584 

585#### Ver las llamadas a herramientas de un subagente en segundo plano

586 

587Cuando un subagente aparece como una sola línea de estado sin llamadas a herramientas, escribe `/tasks` en el cuadro de prompt para abrir el [mapa de agentes](#use-the-prompt-box) y haz clic en el subagente allí. El subagente se está [ejecutando en segundo plano](#the-run-in-background-action-is-missing-under-a-subagent), y su tarjeta muestra sus llamadas a herramientas y un botón que abre su transcripción.

588 

576## Comandos y atajos de VS Code589## Comandos y atajos de VS Code

577 590 

578Para abrir la Paleta de comandos, presiona `Cmd+Shift+P` en Mac o `Ctrl+Shift+P` en Windows/Linux. Escribe "Claude Code" allí para ver todos los comandos de VS Code disponibles para la extensión de Claude Code.591Para abrir la Paleta de comandos, presiona `Cmd+Shift+P` en Mac o `Ctrl+Shift+P` en Windows/Linux. Escribe "Claude Code" allí para ver todos los comandos de VS Code disponibles para la extensión de Claude Code.


726 739 

727* **Las respuestas de Claude**: la extensión anuncia cada respuesta una sola vez, cuando está completa, y permanece en silencio mientras el texto se transmite. Tu lector de pantalla lee los bloques de código como un resumen con el número de líneas, lee los enlaces por su etiqueta y lee las tablas celda por celda; la respuesta completa sigue disponible para leer en la transcripción.740* **Las respuestas de Claude**: la extensión anuncia cada respuesta una sola vez, cuando está completa, y permanece en silencio mientras el texto se transmite. Tu lector de pantalla lee los bloques de código como un resumen con el número de líneas, lee los enlaces por su etiqueta y lee las tablas celda por celda; la respuesta completa sigue disponible para leer en la transcripción.

728* **Solicitudes de permiso y preguntas**: la extensión anuncia una solicitud cuando aparece su solicitud de permiso, indicando la herramienta que Claude quiere usar. Anuncia de la misma manera cuando Claude te hace una pregunta y cuando Claude termina un plan y espera tu revisión.741* **Solicitudes de permiso y preguntas**: la extensión anuncia una solicitud cuando aparece su solicitud de permiso, indicando la herramienta que Claude quiere usar. Anuncia de la misma manera cuando Claude te hace una pregunta y cuando Claude termina un plan y espera tu revisión.

729* **Cambios de estado**: la extensión anuncia cuando Claude empieza a trabajar, cuando Claude está listo para tu entrada y cuando Claude Code empieza a compactar la conversación.742* **Cambios de estado**: la extensión anuncia cuando Claude empieza a trabajar, cuando Claude está listo para tu entrada y cuando Claude Code empieza a compactar la conversación. Si envías un prompt mientras los hooks [SessionStart](/docs/es/hooks#sessionstart) de la sesión todavía se están ejecutando, tu lector de pantalla también dice "Running start-up hooks."

730* **Mensajes en cola**: cuando envías un mensaje mientras Claude está trabajando, la extensión anuncia "Message queued." para ese mensaje.743* **Mensajes en cola**: cuando envías un mensaje mientras Claude está trabajando, la extensión anuncia "Message queued." para ese mensaje.

731* **Errores y solicitudes del modelo**: la extensión anuncia los errores en la conversación y anuncia cuando aparece la [solicitud de consentimiento de créditos de uso](/docs/es/model-config#fable-and-usage-credits) o la [solicitud de una solicitud marcada](/docs/es/model-config#ask-before-switching).744* **Errores y solicitudes del modelo**: la extensión anuncia los errores en la conversación y anuncia cuando aparece la [solicitud de consentimiento de créditos de uso](/docs/es/model-config#fable-and-usage-credits) o la [solicitud de una solicitud marcada](/docs/es/model-config#ask-before-switching).

732 745 

workflows.md +4 −2

Details

373 373 

374#### Qué agentes se ejecutan de nuevo374#### Qué agentes se ejecutan de nuevo

375 375 

376Claude Code reproduce la ejecución en el orden en que los agentes comenzaron, y cada agente devuelve su resultado guardado o se ejecuta de nuevo:376Claude Code reproduce la ejecución en el orden en que los agentes comienzan, y cada agente devuelve su resultado guardado o se ejecuta de nuevo:

377 377 

378* **Completado**: devuelve su resultado guardado. El primer agente cuyo prompt difiere de la ejecución anterior, porque editó el script o un agente anterior devolvió algo diferente, se ejecuta de nuevo, y también lo hace cada agente después de él, incluso los que se completaron.378* **Completado**: devuelve su resultado guardado. El primer agente cuyo prompt difiere de la ejecución anterior, porque editó el script o un agente anterior devolvió algo diferente, se ejecuta de nuevo, y también lo hace cada agente después de él, incluso los que se completaron.

379 

380 Antes de v2.1.305, los agentes completados también podían ejecutarse de nuevo cuando relanzabas un script sin editar cuyos elementos de `pipeline()` o tareas de `parallel()` ejecutaban más de un agente cada uno. Para evitar esas reejecuciones en las nuevas ejecuciones, actualiza Claude Code.

379* **Aún en ejecución cuando detuvo**: comienza de nuevo. Detener toda la ejecución no cuenta ningún agente como fallido.381* **Aún en ejecución cuando detuvo**: comienza de nuevo. Detener toda la ejecución no cuenta ningún agente como fallido.

380* **Fallido**: se ejecuta de nuevo, y también lo hace cada agente que comenzó después de él, incluso los que se completaron. Detener un solo agente, seleccionándolo en [`/workflows`](#watch-the-run) y presionando `x`, cuenta como fallido.382* **Fallido**: se ejecuta de nuevo, y también lo hace cada agente que el script inicia después de él, incluso los que se completaron. Detener un solo agente, seleccionándolo en [`/workflows`](#watch-the-run) y presionando `x`, cuenta como fallido.

381 383 

382Ese último caso significa que una falla en el medio de un fan-out reejecutará trabajo que ya se completó. Si un script inicia A, B, C y D en ese orden y B falla, relanzar devuelve A del caché y ejecuta B, C y D de nuevo.384Ese último caso significa que una falla en el medio de un fan-out reejecutará trabajo que ya se completó. Si un script inicia A, B, C y D en ese orden y B falla, relanzar devuelve A del caché y ejecuta B, C y D de nuevo.

383 385 

worktrees.md +1 −0

Details

58 58 

59* **El worktree está limpio**: para una sesión sin nombre, Claude elimina el worktree y su rama automáticamente. Una sesión [nombrada](/docs/es/sessions#name-your-sessions) le solicita primero para que pueda mantener el worktree para más tarde59* **El worktree está limpio**: para una sesión sin nombre, Claude elimina el worktree y su rama automáticamente. Una sesión [nombrada](/docs/es/sessions#name-your-sessions) le solicita primero para que pueda mantener el worktree para más tarde

60* **El worktree tiene trabajo en él**: Claude le solicita que mantenga o elimine el worktree. Mantener preserva el directorio y la rama. Para regresar más tarde, ejecute el comando `claude --worktree <name> --resume` que Claude Code imprime al salir. Eliminar borra el directorio del worktree y su rama, junto con todo el trabajo en ellos60* **El worktree tiene trabajo en él**: Claude le solicita que mantenga o elimine el worktree. Mantener preserva el directorio y la rama. Para regresar más tarde, ejecute el comando `claude --worktree <name> --resume` que Claude Code imprime al salir. Eliminar borra el directorio del worktree y su rama, junto con todo el trabajo en ellos

61* **Hay otra rama extraída**: si el worktree está en una rama distinta de la suya propia que tiene commits posteriores al commit inicial del worktree, Claude te pide que mantengas o elimines el worktree. Con cualquiera de las dos respuestas se conservan esa otra rama y sus commits. Eliminar borra el directorio del worktree y la rama propia del worktree, la que Claude creó junto con él

61* **El estado del worktree no se puede verificar**: cuando Claude Code no puede contar los cambios del worktree o no puede inspeccionar los checkouts de sus submódulos, le solicita en lugar de eliminar el worktree automáticamente. La solicitud nombra lo que no pudo verificar62* **El estado del worktree no se puede verificar**: cuando Claude Code no puede contar los cambios del worktree o no puede inspeccionar los checkouts de sus submódulos, le solicita en lugar de eliminar el worktree automáticamente. La solicitud nombra lo que no pudo verificar

62 63 

63Las ejecuciones no interactivas con `-p` no tienen solicitud de salida, por lo que Claude no limpia sus worktrees, y Claude Code deja el bloqueo que tomó en cada uno en la creación en su lugar hasta que una [limpieza de bloqueo obsoleto](#clean-up-subagent-and-background-session-worktrees) posterior lo libere. Para eliminar uno, ejecute `git worktree remove`; si git se niega porque el worktree está bloqueado, ejecute `git worktree unlock` en él primero.64Las ejecuciones no interactivas con `-p` no tienen solicitud de salida, por lo que Claude no limpia sus worktrees, y Claude Code deja el bloqueo que tomó en cada uno en la creación en su lugar hasta que una [limpieza de bloqueo obsoleto](#clean-up-subagent-and-background-session-worktrees) posterior lo libere. Para eliminar uno, ejecute `git worktree remove`; si git se niega porque el worktree está bloqueado, ejecute `git worktree unlock` en él primero.