SpyBara
Go Premium

Documentation 2026-10-18 22:59 UTC to 2026-10-19 23:58 UTC

63 files changed +1,115 −559. 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
Details

291| :- | :- | :- |291| :- | :- | :- |

292| **Prompt del sistema** | Cada solicitud | Costo fijo pequeño, siempre presente |292| **Prompt del sistema** | Cada solicitud | Costo fijo pequeño, siempre presente |

293| **Archivos CLAUDE.md** | Inicio de sesión, a través de [`settingSources`](/docs/es/agent-sdk/claude-code-features) | Contenido completo en cada solicitud (pero almacenado en caché de prompt, así que solo la primera solicitud paga el costo completo) |293| **Archivos CLAUDE.md** | Inicio de sesión, a través de [`settingSources`](/docs/es/agent-sdk/claude-code-features) | Contenido completo en cada solicitud (pero almacenado en caché de prompt, así que solo la primera solicitud paga el costo completo) |

294| **Definiciones de herramientas** | Cada solicitud; esquemas MCP diferidos por defecto | Los esquemas de herramientas integradas se cargan en cada solicitud. [Búsqueda de herramientas](/docs/es/agent-sdk/mcp#mcp-tool-search) difiere esquemas de herramientas MCP por defecto, retrocediendo a carga anticipada en modelos no compatibles y ciertas plataformas. Vea [Configurar búsqueda de herramientas](/docs/es/agent-sdk/tool-search#configure-tool-search) para la matriz completa |294| **Definiciones de herramientas** | Cada solicitud para las herramientas integradas principales como Bash, Read y Edit; bajo demanda para las herramientas MCP y otras herramientas integradas, que la [búsqueda de herramientas](/docs/es/agent-sdk/mcp#mcp-tool-search) difiere por defecto | Todos los esquemas se cargan por adelantado en los casos descritos en [Configurar búsqueda de herramientas](/docs/es/agent-sdk/tool-search#configure-tool-search) |

295| **Historial de conversación** | Se acumula en turnos | Crece con cada turno: prompts, respuestas, entradas de herramientas, salidas de herramientas |295| **Historial de conversación** | Se acumula en turnos | Crece con cada turno: prompts, respuestas, entradas de herramientas, salidas de herramientas |

296| **Descripciones de skills** | Inicio de sesión, a través de fuentes de configuración | Resúmenes cortos; el contenido completo se carga solo cuando se invoca |296| **Descripciones de skills** | Inicio de sesión, a través de fuentes de configuración | Resúmenes cortos; el contenido completo se carga solo cuando se invoca |

297 297 


331 331 

332Algunas estrategias para agentes de larga duración:332Algunas estrategias para agentes de larga duración:

333 333 

334* **Usa subagentes para subtareas.** Cada subagente comienza con una conversación nueva (sin historial de mensajes anterior, aunque carga su propio prompt del sistema y contexto a nivel de proyecto como CLAUDE.md). No ve los turnos del padre, y solo su respuesta final regresa al padre. El contexto del agente principal crece por ese resumen, no por la transcripción completa de la subtarea. Consulta [Qué heredan los subagentes](/docs/es/agent-sdk/subagents#what-subagents-inherit) para más detalles.334* **Usa subagentes para subtareas.** Un subagente devuelve solo su respuesta final, así que el contexto de tu agente principal crece por un resumen, no por la transcripción de la subtarea.

335* **Sea selectivo con herramientas.** Cada definición de herramienta toma espacio de contexto. Use el campo `tools` en [`AgentDefinition`](/docs/es/agent-sdk/subagents#agentdefinition-configuration) para limitar subagentes al conjunto mínimo que necesitan.335* **Sea selectivo con herramientas.** Cada definición de herramienta toma espacio de contexto. Use el campo `tools` en [`AgentDefinition`](/docs/es/agent-sdk/subagents#agentdefinition-configuration) para limitar subagentes al conjunto mínimo que necesitan.

336* **Observe costos de servidor MCP.** [Búsqueda de herramientas MCP](/docs/es/agent-sdk/mcp#mcp-tool-search) difiere esquemas de herramientas MCP por defecto y los carga bajo demanda. Cuando la búsqueda de herramientas está desactivada o ha retrocedido a carga anticipada, cada servidor MCP agrega todos sus esquemas de herramientas a cada solicitud, así que algunos servidores con muchas herramientas pueden consumir contexto significativo antes de que el agente haga ningún trabajo. Vea [Configurar búsqueda de herramientas](/docs/es/agent-sdk/tool-search#configure-tool-search) para las configuraciones donde se aplica el retroceso.336* **Observe costos de servidor MCP.** [Búsqueda de herramientas MCP](/docs/es/agent-sdk/mcp#mcp-tool-search) difiere esquemas de herramientas MCP por defecto y los carga bajo demanda. Cuando la búsqueda de herramientas está desactivada o ha retrocedido a carga anticipada, cada servidor MCP agrega todos sus esquemas de herramientas a cada solicitud, así que algunos servidores con muchas herramientas pueden consumir contexto significativo antes de que el agente haga ningún trabajo. Vea [Configurar búsqueda de herramientas](/docs/es/agent-sdk/tool-search#configure-tool-search) para las configuraciones donde se aplica el retroceso.

337* **Use esfuerzo más bajo para tareas rutinarias.** Establezca [esfuerzo](#effort-level) a `"low"` para agentes que solo necesitan leer archivos o listar directorios. Esto reduce el uso de tokens y el costo.337* **Use esfuerzo más bajo para tareas rutinarias.** Establezca [esfuerzo](#effort-level) a `"low"` para agentes que solo necesitan leer archivos o listar directorios. Esto reduce el uso de tokens y el costo.

Details

212* **Modelo de precios**: facturación por segundo, por solicitud u horaria plana. Los precios por segundo se adaptan bien a cargas de trabajo efímeras intermitentes. Los precios por hora se adaptan a sesiones de larga duración.212* **Modelo de precios**: facturación por segundo, por solicitud u horaria plana. Los precios por segundo se adaptan bien a cargas de trabajo efímeras intermitentes. Los precios por hora se adaptan a sesiones de larga duración.

213* **Redes**: soporte para reglas de salida personalizadas, proxies de salida y emparejamiento privado de VPC para entornos regulados.213* **Redes**: soporte para reglas de salida personalizadas, proxies de salida y emparejamiento privado de VPC para entornos regulados.

214 214 

215Para opciones autohospedadas como Docker, gVisor y Firecracker, y configuración de aislamiento detallada, consulte [Isolation Technologies](/docs/es/agent-sdk/secure-deployment#isolation-technologies).215Para opciones autohospedadas como Docker, gVisor y Firecracker, y configuración de aislamiento detallada, consulte [Tecnologías de aislamiento](/docs/es/agent-sdk/secure-deployment#isolation-technologies).

216 216 

217<h3 id="runtime-dependencies">217<h3 id="runtime-dependencies">

218 Dependencias de tiempo de ejecución218 Dependencias de tiempo de ejecución


229 Recursos229 Recursos

230</h3>230</h3>

231 231 

2321 GiB de RAM, 5 GiB de disco y 1 CPU por agente es un punto de partida razonable para una instancia recién iniciada. El uso de memoria crece con la duración de la sesión y la actividad de herramientas, por lo que dimensione para las duraciones de sesión y concurrencia que realmente necesita en lugar de la línea de base inactiva. Consulte [Scaling and concurrency](#scaling-and-concurrency) para saber cómo calcular agentes por host.2321 GiB de RAM, 5 GiB de disco y 1 CPU por agente es un punto de partida razonable para una instancia recién iniciada. El uso de memoria crece con la duración de la sesión y la actividad de herramientas, por lo que dimensione para las duraciones de sesión y concurrencia que realmente necesita en lugar de la línea de base inactiva. Consulte [Escalado y concurrencia](#scaling-and-concurrency) para saber cómo calcular agentes por host.

233 233 

234<h3 id="network">234<h3 id="network">

235 Red235 Red

236</h3>236</h3>

237 237 

238El SDK necesita HTTPS de salida a `api.anthropic.com`, o al punto de conexión regional de su proveedor cuando se ejecuta en Amazon Bedrock o en la plataforma de agentes de Google Cloud. Si sus agentes utilizan [MCP servers](/docs/es/agent-sdk/mcp) o herramientas externas, también necesitan acceso de salida a esos puntos de conexión. Para producción, enrute el tráfico de salida a través de un proxy de salida que aplique listas de permitidos de dominio, inyecte credenciales y registre solicitudes. Consulte [Secure Deployment](/docs/es/agent-sdk/secure-deployment) para el patrón completo.238El SDK necesita HTTPS de salida a `api.anthropic.com`, o al punto de conexión regional de su proveedor cuando se ejecuta en Amazon Bedrock o en la plataforma de agentes de Google Cloud. Si sus agentes utilizan [servidores MCP](/docs/es/agent-sdk/mcp) o herramientas externas, también necesitan acceso de salida a esos puntos de conexión. Para producción, enrute el tráfico de salida a través de un proxy de salida que aplique listas de permitidos de dominio, inyecte credenciales y registre solicitudes. Consulte [Implementación segura](/docs/es/agent-sdk/secure-deployment) para el patrón completo.

239 239 

240Para el tráfico de entrada, exponga un puerto HTTP o WebSocket en el contenedor. Su aplicación maneja las solicitudes del cliente en ese puerto y llama al SDK internamente; el subproceso en sí no escucha en la red.240Para el tráfico de entrada, exponga un puerto HTTP o WebSocket en el contenedor. Su aplicación maneja las solicitudes del cliente en ese puerto y llama al SDK internamente; el subproceso en sí no escucha en la red.

241 241 

Details

123 123 

124Los modos de permisos proporcionan control global sobre cómo Claude utiliza las herramientas. Puede establecer el modo de permisos al llamar a `query()` o cambiarlo dinámicamente durante sesiones de transmisión.124Los modos de permisos proporcionan control global sobre cómo Claude utiliza las herramientas. Puede establecer el modo de permisos al llamar a `query()` o cambiarlo dinámicamente durante sesiones de transmisión.

125 125 

126Si no establece uno, Claude Code elige el modo de permisos inicial según las reglas en [Qué modo inicia una sesión](/docs/es/permission-modes#which-mode-a-session-starts-in):126Con Claude Code v2.1.302 o posterior, tu aplicación comienza en modo `default` a menos que establezcas un modo de permisos o la aplicación obtenga uno de [`permissions.defaultMode`](/docs/es/settings-reference#permissions-defaultmode) en sus archivos de configuración. En modo `default`, Claude Code deniega cualquier llamada a herramienta que necesite aprobación, a menos que la apruebes mediante una regla de permiso, un hook, una devolución de llamada `canUseTool` o una herramienta de solicitud de permisos. Si se deniegan llamadas a herramientas, consulta [Llamadas a herramientas denegadas en ejecuciones de `claude -p` y del Agent SDK](/docs/es/permission-modes#which-mode-a-non-interactive-run-starts-in).

127 

128* Un `permissions.defaultMode` de los [archivos de configuración](/docs/es/settings#where-settings-live) de la sesión cuando uno se aplica

129* De lo contrario, el valor predeterminado integrado, que puede ser [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode)

130 

131Una sesión que comienza en modo automático descarta reglas de permiso amplias como una entrada `Bash` simple, como [Cómo el modo automático evalúa acciones](/docs/es/permission-modes#how-auto-mode-evaluates-actions) describe. Si su aplicación depende del modo `default` o de tal regla, pase `default` explícitamente.

132 

133Antes de TypeScript Agent SDK v0.3.286, omitir `permissionMode` era lo mismo que pasar `default`.

134 127 

135<h3 id="available-modes">128<h3 id="available-modes">

136 Modos disponibles129 Modos disponibles

Details

1035)1035)

1036```1036```

1037 1037 

1038* `API_TIMEOUT_MS`: tiempo de espera por solicitud en el cliente de Anthropic, en milisegundos. Predeterminado `600000`. Se aplica al bucle principal y a todos los subagentes.1038* [`API_TIMEOUT_MS`](/docs/es/env-vars): cuánto tiempo puede esperar cada intento de solicitud los encabezados de la respuesta, en milisegundos. No limita cuánto dura una respuesta en streaming después de que llegan los encabezados. Predeterminado `600000`. Se aplica al bucle principal y a todos los subagentes.

1039* `CLAUDE_CODE_MAX_RETRIES`: máximo de reintentos de la API. Predeterminado `10`, limitado a `15`. Cada reintento obtiene su propia ventana de `API_TIMEOUT_MS`.1039* `CLAUDE_CODE_MAX_RETRIES`: máximo de reintentos de la API. Predeterminado `10`, limitado a `15`. Cada reintento obtiene su propia ventana de `API_TIMEOUT_MS`.

1040 1040 

1041 Para ejecuciones desatendidas que necesitan esperar durante interrupciones más largas, establece [`CLAUDE_CODE_RETRY_WATCHDOG=1`](/docs/es/errors#tune-retry-behavior): reintenta indefinidamente los errores transitorios de capacidad y, en Claude Code v2.1.199 o posterior, eleva el predeterminado para otros errores transitorios a `300` y elimina el límite de esta variable.1041 Para ejecuciones desatendidas que necesitan esperar durante interrupciones más largas, establece [`CLAUDE_CODE_RETRY_WATCHDOG=1`](/docs/es/errors#tune-retry-behavior): reintenta indefinidamente los errores transitorios de capacidad y, en Claude Code v2.1.199 o posterior, eleva el predeterminado para otros errores transitorios a `300` y elimina el límite de esta variable.

Details

172 172 

173En el SDK de Python, los nombres de campo de varias palabras como `disallowedTools` y `mcpServers` mantienen su ortografía camelCase para coincidir con el formato de cable en lugar de seguir la convención snake\_case de Python. Consulte la [referencia de `AgentDefinition`](/docs/es/agent-sdk/python#agentdefinition) para obtener más detalles.173En el SDK de Python, los nombres de campo de varias palabras como `disallowedTools` y `mcpServers` mantienen su ortografía camelCase para coincidir con el formato de cable en lugar de seguir la convención snake\_case de Python. Consulte la [referencia de `AgentDefinition`](/docs/es/agent-sdk/python#agentdefinition) para obtener más detalles.

174 174 

175Los subagentes se ejecutan en segundo plano de forma predeterminada. Una llamada a la herramienta Agent que omite la entrada [`run_in_background`](/docs/es/sub-agents#run-subagents-in-foreground-or-background) inicia un subagente en segundo plano, y Claude establece `run_in_background: false` cuando necesita el resultado antes de continuar. Establezca el campo `background` en `true` para forzar la ejecución en segundo plano para un agente específico independientemente de lo que Claude solicite. Antes de Claude Code v2.1.198, el valor predeterminado de fondo se estaba implementando gradualmente, y una llamada a la herramienta Agent que omitía `run_in_background` podría ejecutar el subagente de forma síncrona.175<h4 id="choose-whether-claude-waits-for-subagents">

176 Elegir si Claude espera a los subagentes

177</h4>

176 178 

177Los subagentes también pueden generar subagentes propios. Para limitar qué tan profundo es ese anidamiento, cuántos subagentes se ejecutan a la vez y cuánto gasta una consulta, consulte [Limitar profundidad, concurrencia y gasto de subagentes](#cap-subagent-depth-concurrency-and-spend).179De forma predeterminada, un subagente que genera tu agente principal [se ejecuta en segundo plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background). El resultado de la herramienta Agent tiene `status: "async_launched"`, y el informe llega en un turno posterior.

180 

181Claude espera cuando su siguiente acción necesita el informe: la llamada se bloquea y devuelve `status: "completed"`. Para tomar esa decisión tú mismo:

182 

183* **En tu prompt**: pídele a Claude que espere, por ejemplo "ejecuta el agente test-runner y espéralo"

184* **En la definición**: establece `background` en `true` para mantener ese agente en segundo plano

178 185 

179<h3 id="filesystem-based-definition-alternative">186<h3 id="filesystem-based-definition-alternative">

180 Definición basada en sistema de archivos (alternativa)187 Definición basada en sistema de archivos (alternativa)


242 249 

243Esto omite la coincidencia automática e invoca directamente el subagente nombrado.250Esto omite la coincidencia automática e invoca directamente el subagente nombrado.

244 251 

252<h3 id="forked-subagents">

253 Subagentes bifurcados

254</h3>

255 

256Una [bifurcación](/docs/es/sub-agents#fork-the-current-conversation) es un subagente que copia la conversación hasta el momento en lugar de empezar desde cero. A partir de Claude Code v2.1.302, Claude puede iniciar bifurcaciones en tu aplicación sin ninguna configuración, llamando a la herramienta Agent con `subagent_type: "fork"`.

257 

258Para evitar que Claude inicie bifurcaciones, agrega una [regla de denegación `Agent(fork)`](/docs/es/agent-sdk/permissions#allow-and-deny-rules):

259 

260<CodeGroup>

261 ```python Python theme={null}

262 options = ClaudeAgentOptions(

263 # Deny only the fork subagent type; other subagents still run

264 disallowed_tools=["Agent(fork)"],

265 )

266 ```

267 

268 ```typescript TypeScript theme={null}

269 const options = {

270 // Deny only the fork subagent type; other subagents still run

271 disallowedTools: ["Agent(fork)"]

272 };

273 ```

274</CodeGroup>

275 

245<h3 id="dynamic-agent-configuration">276<h3 id="dynamic-agent-configuration">

246 Configuración dinámica de agentes277 Configuración dinámica de agentes

247</h3>278</h3>

Details

610| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | Define el formato de salida para los resultados del agente. Consulta [Salidas estructuradas](/docs/es/agent-sdk/structured-outputs) para más detalles |610| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | Define el formato de salida para los resultados del agente. Consulta [Salidas estructuradas](/docs/es/agent-sdk/structured-outputs) para más detalles |

611| `outputStyle` | `string` | `undefined` | No es un campo de `Options`. En su lugar, establece `outputStyle` en el objeto [`settings`](/docs/es/settings) en línea o en un archivo de configuración. Consulta [Activar un estilo de salida](/docs/es/agent-sdk/modifying-system-prompts#activate-an-output-style) |611| `outputStyle` | `string` | `undefined` | No es un campo de `Options`. En su lugar, establece `outputStyle` en el objeto [`settings`](/docs/es/settings) en línea o en un archivo de configuración. Consulta [Activar un estilo de salida](/docs/es/agent-sdk/modifying-system-prompts#activate-an-output-style) |

612| `pathToClaudeCodeExecutable` | `string` | Resuelto automáticamente a partir del binario nativo incluido | Ruta al ejecutable de Claude Code. Solo es necesaria si se omitieron las dependencias opcionales durante la instalación o si tu plataforma no está en el conjunto compatible |612| `pathToClaudeCodeExecutable` | `string` | Resuelto automáticamente a partir del binario nativo incluido | Ruta al ejecutable de Claude Code. Solo es necesaria si se omitieron las dependencias opcionales durante la instalación o si tu plataforma no está en el conjunto compatible |

613| `permissionMode` | [`PermissionMode`](#permissionmode) | `undefined` | Modo de permisos para la sesión. Si lo omites, la sesión puede iniciarse en modo automático. Consulta [Modos de permisos](/docs/es/agent-sdk/permissions#permission-modes) para ver cómo Claude Code elige el modo de permisos inicial |613| `permissionMode` | [`PermissionMode`](#permissionmode) | `undefined` | Modo de permisos para la sesión. Si lo omites y nada más establece un modo de permisos, como un ajuste [`permissions.defaultMode`](/docs/es/settings-reference#permissions-defaultmode), la sesión comienza en `default`. Consulta [Modos de permisos](/docs/es/agent-sdk/permissions#permission-modes) |

614| `permissionPromptToolName` | `string` | `undefined` | Nombre de la herramienta MCP para las solicitudes de permiso |614| `permissionPromptToolName` | `string` | `undefined` | Nombre de la herramienta MCP para las solicitudes de permiso |

615| `permissionPrompts` | `'host' \| 'none'` | `'host'` | Quién responde a las solicitudes de permiso: `'host'` las dirige a tu callback [`canUseTool`](#canusetool) o a la herramienta `permissionPromptToolName`, y `'none'` [deniega las llamadas que habrían pedido permiso](/docs/es/agent-sdk/permissions#how-permissions-are-evaluated). Requiere Claude Code v2.1.259 o posterior |615| `permissionPrompts` | `'host' \| 'none'` | `'host'` | Quién responde a las solicitudes de permiso: `'host'` las dirige a tu callback [`canUseTool`](#canusetool) o a la herramienta `permissionPromptToolName`, y `'none'` [deniega las llamadas que habrían pedido permiso](/docs/es/agent-sdk/permissions#how-permissions-are-evaluated). Requiere Claude Code v2.1.259 o posterior |

616| `persistSession` | `boolean` | `true` | Cuando es `false`, desactiva la persistencia de la sesión en disco. Las sesiones no se pueden reanudar después |616| `persistSession` | `boolean` | `true` | Cuando es `false`, desactiva la persistencia de la sesión en disco. Las sesiones no se pueden reanudar después |


662});662});

663```663```

664 664 

665* `API_TIMEOUT_MS`: tiempo de espera por solicitud en el cliente de Anthropic, en milisegundos. Valor predeterminado `600000`. Se aplica al bucle principal y a todos los subagentes.665* [`API_TIMEOUT_MS`](/docs/es/env-vars): cuánto tiempo puede esperar cada intento de solicitud los encabezados de respuesta, en milisegundos. No limita cuánto dura una respuesta en streaming una vez que llegan los encabezados. Predeterminado `600000`. Se aplica al bucle principal y a todos los subagentes.

666* `CLAUDE_CODE_MAX_RETRIES`: máximo de reintentos de la API. Predeterminado: `10`, con un límite de `15`. Cada reintento obtiene su propio intervalo de `API_TIMEOUT_MS`.666* `CLAUDE_CODE_MAX_RETRIES`: máximo de reintentos de la API. Predeterminado: `10`, con un límite de `15`. Cada reintento obtiene su propio intervalo de `API_TIMEOUT_MS`.

667 667 

668 Para ejecuciones desatendidas que necesitan esperar durante interrupciones más largas, establece [`CLAUDE_CODE_RETRY_WATCHDOG=1`](/docs/es/errors#tune-retry-behavior): reintenta indefinidamente los errores transitorios de capacidad y, en Claude Code v2.1.199 o posterior, eleva a `300` el valor predeterminado para otros errores transitorios y elimina el límite de esta variable.668 Para ejecuciones desatendidas que necesitan esperar durante interrupciones más largas, establece [`CLAUDE_CODE_RETRY_WATCHDOG=1`](/docs/es/errors#tune-retry-behavior): reintenta indefinidamente los errores transitorios de capacidad y, en Claude Code v2.1.199 o posterior, eleva a `300` el valor predeterminado para otros errores transitorios y elimina el límite de esta variable.

agent-teams.md +1 −1

Details

558* **El apagado puede ser lento**: los compañeros de equipo terminan su solicitud actual o llamada de herramienta antes de apagarse, lo que puede tomar tiempo.558* **El apagado puede ser lento**: los compañeros de equipo terminan su solicitud actual o llamada de herramienta antes de apagarse, lo que puede tomar tiempo.

559* **Un equipo por sesión**: una sesión tiene exactamente un equipo, limitado a esa sesión. No puede crear equipos nombrados adicionales ni compartir un equipo entre sesiones.559* **Un equipo por sesión**: una sesión tiene exactamente un equipo, limitado a esa sesión. No puede crear equipos nombrados adicionales ni compartir un equipo entre sesiones.

560* **Sin equipos anidados**: los compañeros de equipo no pueden generar sus propios compañeros de equipo. Solo el líder puede gestionar el equipo.560* **Sin equipos anidados**: los compañeros de equipo no pueden generar sus propios compañeros de equipo. Solo el líder puede gestionar el equipo.

561* **Sin subagentes de fondo de compañeros de equipo en proceso**: los propios subagentes de un compañero de equipo en proceso se ejecutan en primer plano, porque el trabajo de fondo de un compañero de equipo no puede sobrevivir al proceso del líder. Claude Code devuelve un error cuando un compañero de equipo genera un subagente cuya definición establece `background: true`. Una solicitud `run_in_background: true` de un compañero de equipo también falla, ya sea con un error o ejecutándose silenciosamente en primer plano, como se describe en [cómo Claude Code elige primer plano o fondo](/docs/es/sub-agents#run-subagents-in-foreground-or-background). Los subagentes lanzados desde la conversación principal siguen el [valor predeterminado de fondo](/docs/es/sub-agents#run-subagents-in-foreground-or-background).561* **Sin subagentes en segundo plano desde compañeros de equipo en proceso**: los propios subagentes de un compañero de equipo en proceso se ejecutan en primer plano, porque el trabajo en segundo plano de un compañero de equipo no puede sobrevivir al proceso del líder. Claude Code devuelve un error cuando un compañero de equipo genera un subagente cuya definición establece `background: true`. Una solicitud `run_in_background: true` de un compañero de equipo también falla, ya sea con un error o ejecutándose silenciosamente en primer plano. Los subagentes lanzados desde la conversación principal siguen el [valor predeterminado de segundo plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background).

562* **El líder es fijo**: la sesión principal es el líder de por vida. No puede promover un compañero de equipo a líder ni transferir liderazgo.562* **El líder es fijo**: la sesión principal es el líder de por vida. No puede promover un compañero de equipo a líder ni transferir liderazgo.

563* **Permisos establecidos en la generación**: los compañeros de equipo comienzan con el modo de permiso descrito en [Permisos](#permissions). Puede cambiar el modo de permiso de un compañero de equipo individual después de generarlo, pero no puede establecer modos de permiso por compañero de equipo en el momento de la generación.563* **Permisos establecidos en la generación**: los compañeros de equipo comienzan con el modo de permiso descrito en [Permisos](#permissions). Puede cambiar el modo de permiso de un compañero de equipo individual después de generarlo, pero no puede establecer modos de permiso por compañero de equipo en el momento de la generación.

564* **Los paneles divididos requieren tmux o iTerm2**: el modo en proceso predeterminado funciona en cualquier terminal. El modo de panel dividido no es compatible con la terminal integrada de VS Code, Windows Terminal o Ghostty.564* **Los paneles divididos requieren tmux o iTerm2**: el modo en proceso predeterminado funciona en cualquier terminal. El modo de panel dividido no es compatible con la terminal integrada de VS Code, Windows Terminal o Ghostty.

agent-view.md +9 −1

Details

479 479 

480Después del fork, las dos conversaciones son independientes: nada de lo que hace la copia entra por sí solo en la conversación original, aunque en las sesiones donde la [mensajería entre sesiones](/docs/es/cross-session-messaging) está habilitada, el Claude de cualquiera de las dos sesiones puede enviarle un mensaje explícito a la otra.480Después del fork, las dos conversaciones son independientes: nada de lo que hace la copia entra por sí solo en la conversación original, aunque en las sesiones donde la [mensajería entre sesiones](/docs/es/cross-session-messaging) está habilitada, el Claude de cualquiera de las dos sesiones puede enviarle un mensaje explícito a la otra.

481 481 

482Copiar la sesión requiere Claude Code v2.1.212 o posterior; en las versiones v2.1.161 a v2.1.211, `/fork` inicia en su lugar un [subagente bifurcado](/docs/es/sub-agents#fork-the-current-conversation), que ahora es `/subtask`. Cuando [la vista de agentes está desactivada](#turn-off-agent-view), `/fork` mantiene el comportamiento de subagente bifurcado y `/subtask` no está disponible.482Cuando [la vista de agentes está desactivada](#turn-off-agent-view), `/fork` inicia un [subagente bifurcado](/docs/es/sub-agents#fork-the-current-conversation) en lugar de copiar la sesión.

483 483 

484Pasa un prompt como `/fork open a draft pull request with the work so far` y la copia comienza a trabajar en él de inmediato. Sin un prompt, la copia espera su primera instrucción: selecciona su fila en `claude agents` y presiona `Space` para enviarle una, o ejecuta `claude attach <id>`. La fila seleccionada muestra `space to send it a prompt` mientras espera.484Pasa un prompt como `/fork open a draft pull request with the work so far` y la copia comienza a trabajar en él de inmediato. Sin un prompt, la copia espera su primera instrucción: selecciona su fila en `claude agents` y presiona `Space` para enviarle una, o ejecuta `claude attach <id>`. La fila seleccionada muestra `space to send it a prompt` mientras espera.

485 485 


957 957 

958Ejecuta `/tasks` para ver todo lo que se está ejecutando, luego confirma para enviar al segundo plano de todas formas o elige `Stay` para dejar que el trabajo termine primero. Consulta [Qué se traslada cuando envías al segundo plano](#what-carries-over-when-you-background) para saber qué tipos de trabajo se trasladan y cuáles detiene Claude Code.958Ejecuta `/tasks` para ver todo lo que se está ejecutando, luego confirma para enviar al segundo plano de todas formas o elige `Stay` para dejar que el trabajo termine primero. Consulta [Qué se traslada cuando envías al segundo plano](#what-carries-over-when-you-background) para saber qué tipos de trabajo se trasladan y cuáles detiene Claude Code.

959 959 

960<h3 id="carried-into-this-session-and-not-resumed">

961 La conversación dice que un agente en segundo plano `was carried into this session and not resumed`

962</h3>

963 

964Este aviso nombra un [subagente](/docs/es/sub-agents) en segundo plano que no se está ejecutando en esta sesión.

965 

966Claude ve el aviso y responde por su cuenta, así que no necesitas pedírselo. Si aún necesitas el trabajo de ese subagente después de leer la respuesta de Claude, pídeselo a Claude.

967 

960<h3 id="prompt-rejected-as-too-short">968<h3 id="prompt-rejected-as-too-short">

961 Prompt rechazado por ser demasiado corto969 Prompt rechazado por ser demasiado corto

962</h3>970</h3>

Details

182export AWS_PROFILE=your-profile-name182export AWS_PROFILE=your-profile-name

183```183```

184 184 

185Claude Code solicita credenciales de rol del centro de identidades de IAM nombrado por `sso_region` del perfil, que no necesita coincidir con la región en la que ejecuta Amazon Bedrock. En v2.1.207, la región de Amazon Bedrock anulaba `sso_region`, por lo que un perfil cuya instancia del Centro de identidades de IAM está en una región diferente no se autenticaba con un error `Session token not found or invalid`.185Claude Code solicita credenciales de rol del Centro de identidades de IAM en la región indicada por `sso_region` del perfil, que no necesita coincidir con la región en la que ejecutas Amazon Bedrock.

186 186 

187<h4 id="use-aws-management-console-credentials">187<h4 id="use-aws-management-console-credentials">

188 Usar credenciales de la consola de administración de AWS188 Usar credenciales de la consola de administración de AWS


409 Verificaciones de modelo al iniciar409 Verificaciones de modelo al iniciar

410</h2>410</h2>

411 411 

412Cuando Claude Code se inicia con Amazon Bedrock configurado, verifica que los modelos que pretende utilizar sean accesibles en su cuenta.412Cuando Claude Code se inicia con Amazon Bedrock configurado, verifica que los modelos que pretende utilizar sean accesibles en tu cuenta.

413 413 

414Si ha fijado una versión de modelo que es más antigua que la predeterminada actual de Claude Code, y su cuenta puede invocar la versión más nueva, Claude Code le solicita que actualice la fijación. Aceptar escribe el nuevo ID de modelo en su [archivo de configuración de usuario](/docs/es/settings) e reinicia Claude Code. Rechazar se recuerda hasta el próximo cambio de versión predeterminada. Las fijaciones que apunten a un [ARN de perfil de inferencia de aplicación](#map-each-model-version-to-an-inference-profile) se omiten, ya que son administradas por su administrador.414Si fijaste una versión de modelo más antigua que la predeterminada actual de Claude Code, y tu cuenta puede invocar la versión más nueva, Claude Code te pide que actualices la fijación. Si aceptas, se escribe el nuevo ID de modelo en tu [archivo de configuración de usuario](/docs/es/settings) y se reinicia Claude Code. Si rechazas, la decisión se recuerda hasta el próximo cambio de versión predeterminada. Las fijaciones que apuntan a un [ARN de perfil de inferencia de aplicación](#map-each-model-version-to-an-inference-profile) se omiten, ya que las administra tu administrador.

415 415 

416Si no ha fijado un modelo y la predeterminada actual no está disponible en su cuenta, Claude Code recurre a una alternativa para la sesión actual y muestra un aviso. Intenta primero versiones anteriores del modelo predeterminado y, cuando la predeterminada es un modelo Opus y no hay ninguna versión de Opus disponible, recurre al modelo Sonnet predeterminado. La alternativa no se persiste. Habilite el modelo más nuevo en su cuenta de Amazon Bedrock o [fije una versión](#4-pin-model-versions) para hacer la opción permanente.416Si no fijaste un modelo y el predeterminado actual no está disponible en tu cuenta, Claude Code recurre a una alternativa para la sesión actual y muestra un aviso. Primero intenta versiones anteriores del modelo predeterminado y, cuando el predeterminado es un modelo Opus y no hay ninguna versión de Opus disponible, recurre al modelo Sonnet predeterminado. La alternativa no se guarda de forma persistente. Habilita el modelo más nuevo en tu cuenta de Amazon Bedrock o [fija una versión](#4-pin-model-versions) para que la elección sea permanente.

417 417 

418Cuando inicia la sesión en una versión específica de Sonnet u Opus, por ejemplo con `--model`, `ANTHROPIC_MODEL`, o la [configuración `model`](/docs/es/settings-reference#model), esa versión actúa como la predeterminada fijada de la sesión para el alias `sonnet` u `opus` correspondiente. Claude Code omite la verificación de disponibilidad para la predeterminada integrada que su modelo reemplaza e inicia en el modelo que configuró, sin aviso de alternativa.418Cuando inicias la sesión con una versión específica de Sonnet u Opus, por ejemplo con `--model`, `ANTHROPIC_MODEL` o el [ajuste `model`](/docs/es/settings-reference#model), esa versión actúa como el predeterminado fijado de la sesión para el alias `sonnet` u `opus` correspondiente. Claude Code omite la verificación de disponibilidad del predeterminado integrado que tu modelo reemplaza e inicia con el modelo que configuraste, sin aviso de respaldo.

419 419 

420Los alias de modelo como `opus` no actúan como fijaciones, ni tampoco un ID de modelo que Claude Code no reconozca, como un ARN de perfil de inferencia de aplicación.420Los alias de modelo como `opus` no actúan como fijaciones, ni tampoco un ID de modelo que Claude Code no reconozca, como un ARN de perfil de inferencia de aplicación.

421 421 

422Cuando estas verificaciones encuentran un modelo que su cuenta no puede invocar, Claude Code recuerda el rechazo en esta máquina durante hasta un día, e inicia durante ese tiempo omitiendo el modelo recordado sin consultar a Amazon Bedrock nuevamente. Claude Code verifica un rechazo recordado de un modelo predeterminado actual nuevamente al iniciar una vez que han pasado diez minutos desde la última verificación, por lo que una predeterminada que su administrador vuelve a habilitar regresa. Para desactivar la memoria, establezca [`CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY=1`](/docs/es/env-vars).422Cuando estas verificaciones encuentran un modelo que tu cuenta no puede invocar, Claude Code recuerda el rechazo en esta máquina durante hasta un día, y los inicios durante ese tiempo omiten el modelo recordado sin volver a consultar a Amazon Bedrock. Claude Code vuelve a verificar al iniciar un rechazo recordado de un modelo predeterminado actual una vez que han pasado diez minutos desde la última verificación, de modo que un predeterminado que tu administrador vuelve a habilitar regresa. Para desactivar esta memoria, establece [`CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY=1`](/docs/es/env-vars).

423 423 

424<h3 id="when-your-organization-enforces-a-model-allowlist">424<h3 id="when-your-organization-enforces-a-model-allowlist">

425 Cuando tu organización aplica una lista de modelos permitidos425 Cuando tu organización aplica una lista de modelos permitidos


442 Cuando un modelo se deshabilita durante la sesión442 Cuando un modelo se deshabilita durante la sesión

443</h3>443</h3>

444 444 

445Si su cuenta pierde acceso al modelo en el que se ejecuta su sesión, por ejemplo porque un administrador lo deshabilita en su cuenta de Amazon Bedrock, Claude Code cambia la sesión a otro modelo en lugar de fallar en cada solicitud, y muestra `Switched to <fallback> because <model> is not available`. Intenta los mismos modelos que la alternativa de inicio: versiones anteriores del mismo nivel primero y, para una sesión de Opus sin ninguna versión de Opus disponible, el modelo Sonnet predeterminado.445Si tu cuenta pierde acceso al modelo con el que se ejecuta tu sesión, por ejemplo porque un administrador lo deshabilita en tu cuenta de Amazon Bedrock, Claude Code cambia la sesión a otro modelo en lugar de fallar en cada solicitud, y muestra `Switched to <fallback> because <model> is not available`. Intenta los mismos modelos que el respaldo de inicio: primero versiones anteriores del mismo nivel y, para una sesión de Opus sin ninguna versión de Opus disponible, el modelo Sonnet predeterminado.

446 446 

447El cambio se aplica solo a un nivel que no ha fijado, la misma condición que la alternativa de inicio. Una sesión en una versión específica que eligió, o en un [ARN de perfil de inferencia de aplicación](#map-each-model-version-to-an-inference-profile), mantiene su modelo y, sin una cadena de modelo alternativo, la solicitud falla en su lugar. En [modo automático](/docs/es/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry), Claude Code cambia solo a un modelo que el modo automático admite en Amazon Bedrock. Si ninguno de esos modelos está disponible tampoco, la solicitud falla con [AWS authentication failed](/docs/es/errors#aws-authentication-failed) y una sugerencia para habilitar el modelo.447El cambio se aplica solo a un nivel que no hayas fijado, la misma condición que el respaldo de inicio. Una sesión con una versión específica que elegiste, o con un [ARN de perfil de inferencia de aplicación](#map-each-model-version-to-an-inference-profile), mantiene su modelo y, sin una cadena de modelos de respaldo, la solicitud falla. En [modo automático](/docs/es/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry), Claude Code cambia solo a un modelo que el modo automático admite en Amazon Bedrock. Si ninguno de esos modelos está disponible tampoco, la solicitud falla con [AWS authentication failed](/docs/es/errors#aws-authentication-failed) y una sugerencia para habilitar el modelo.

448 448 

449Una [cadena de modelo alternativo](/docs/es/model-config#fallback-model-chains) que configure reemplaza el cambio de nivel: en estos rechazos Claude Code cambia a su alternativa configurada en su lugar. Para que las solicitudes rechazadas fallen en lugar de cambiar, establezca [`CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK=1`](/docs/es/env-vars). Una cadena alternativa que configuró aún cambia en estos rechazos; elimine la cadena también si desea que cada solicitud rechazada falle.449Una [cadena de modelos de respaldo](/docs/es/model-config#fallback-model-chains) que configures reemplaza el cambio de nivel: ante estos rechazos, Claude Code cambia en su lugar al respaldo que configuraste. Para que las solicitudes rechazadas fallen en lugar de cambiar, establece [`CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK=1`](/docs/es/env-vars). Una cadena de respaldo que hayas configurado sigue cambiando ante estos rechazos; elimina también la cadena si quieres que todas las solicitudes rechazadas fallen.

450 450 

451<h2 id="cross-region-inference-profile-prefixes">451<h2 id="cross-region-inference-profile-prefixes">

452 Prefijos de perfil de inferencia entre regiones452 Prefijos de perfil de inferencia entre regiones

artifacts.md +1 −1

Details

105 Encontrar un artefacto nuevamente105 Encontrar un artefacto nuevamente

106</h2>106</h2>

107 107 

108Ejecuta `/artifacts` en Claude Code para enumerar los artefactos que posees y los que se compartieron contigo. Los artefactos de la sesión actual aparecen primero, bajo **This session**. Requiere Claude Code v2.1.208 o posterior.108Ejecuta `/artifacts` en Claude Code para enumerar los artefactos que posees y los que se compartieron contigo. Los artefactos de la sesión actual aparecen primero, bajo **This session**.

109 109 

110Selecciona un artefacto y luego presiona una de estas teclas:110Selecciona un artefacto y luego presiona una de estas teclas:

111 111 

Details

319claude auto-mode defaults319claude auto-mode defaults

320```320```

321 321 

322Para leer la redacción completa de una regla sin canalizar a través de `jq`, pase `--label` con el inicio de la etiqueta de la regla, como `claude auto-mode defaults --label 'Git Destructive'`. La coincidencia es un prefijo que no distingue mayúsculas de minúsculas en la etiqueta de cada regla, y las secciones sin coincidencia se imprimen como listas vacías. Requiere Claude Code v2.1.208 o posterior.322Para leer la redacción completa de una regla sin canalizar a través de `jq`, pasa `--label` con el inicio de la etiqueta de la regla, como `claude auto-mode defaults --label 'Git Destructive'`. La coincidencia es un prefijo que no distingue mayúsculas de minúsculas en la etiqueta de cada regla, y las secciones sin coincidencia se imprimen como listas vacías.

323 323 

324Imprima lo que el clasificador realmente utiliza como JSON, con su configuración aplicada donde esté establecida y valores predeterminados en caso contrario:324Imprima lo que el clasificador realmente utiliza como JSON, con su configuración aplicada donde esté establecida y valores predeterminados en caso contrario:

325 325 


357 357 

358Si ha escrito reglas personalizadas, `claude auto-mode critique` las revisa y marca las entradas que son ambiguas, redundantes o que probablemente causen falsos positivos.358Si ha escrito reglas personalizadas, `claude auto-mode critique` las revisa y marca las entradas que son ambiguas, redundantes o que probablemente causen falsos positivos.

359 359 

360Para descartar sus personalizaciones y volver a los valores predeterminados integrados, ejecute el subcomando reset. Requiere Claude Code v2.1.212 o posterior y elimina la sección `autoMode` de su archivo de configuración de usuario:360Para descartar tus personalizaciones y volver a los valores predeterminados integrados, ejecuta el subcomando reset, que elimina la sección `autoMode` de tu archivo de configuración de usuario:

361 361 

362```bash theme={null}362```bash theme={null}

363claude auto-mode reset363claude auto-mode reset

chrome.md +3 −3

Details

113 113 

114Con el ajuste activado y Claude Code v2.1.287 o posterior, cada sesión de VS Code se conecta a tu navegador al iniciarse, para que Claude pueda usarlo antes de que escribas `@browser`. En versiones anteriores, o con el ajuste desactivado, una sesión de VS Code se conecta cuando escribes `@browser`.114Con el ajuste activado y Claude Code v2.1.287 o posterior, cada sesión de VS Code se conecta a tu navegador al iniciarse, para que Claude pueda usarlo antes de que escribas `@browser`. En versiones anteriores, o con el ajuste desactivado, una sesión de VS Code se conecta cuando escribes `@browser`.

115 115 

116Claude Code se inicia normalmente cuando Chrome no está ejecutándose. Antes de v2.1.211, el inicio podría colgarse cuando la integración de Chrome estaba habilitada pero Chrome no estaba ejecutándose.116Claude Code se inicia normalmente cuando Chrome no está ejecutándose.

117 117 

118<Note>118<Note>

119 Habilitar Chrome de forma predeterminada aumenta el uso del contexto, ya que las herramientas del navegador y sus instrucciones siempre se cargan. Si notas un aumento en el consumo de contexto, desactiva el ajuste y conéctate solo cuando sea necesario, con `--chrome` en la CLI o escribiendo [`@browser`](/docs/es/vs-code#automate-browser-tasks-with-chrome) en el cuadro del prompt de VS Code.119 Habilitar Chrome de forma predeterminada aumenta el uso del contexto, ya que las herramientas del navegador y sus instrucciones siempre se cargan. Si notas un aumento en el consumo de contexto, desactiva el ajuste y conéctate solo cuando sea necesario, con `--chrome` en la CLI o escribiendo [`@browser`](/docs/es/vs-code#automate-browser-tasks-with-chrome) en el cuadro del prompt de VS Code.


192 Cargar archivos en páginas web192 Cargar archivos en páginas web

193</h3>193</h3>

194 194 

195Claude puede adjuntar archivos de tu máquina a campos de carga en una página. Claude Code lee el archivo y envía su contenido al navegador, por lo que las cargas funcionan tanto en sesiones locales como remotas. Requiere Claude Code v2.1.211 o posterior.195Claude puede adjuntar archivos de tu máquina a campos de carga en una página. Claude Code lee el archivo y envía su contenido al navegador, por lo que las cargas funcionan tanto en sesiones locales como remotas.

196 196 

197Este ejemplo adjunta un archivo de registro a un formulario:197Este ejemplo adjunta un archivo de registro a un formulario:

198 198 


271Take a screenshot of the checkout page and save it to disk271Take a screenshot of the checkout page and save it to disk

272```272```

273 273 

274Claude guarda la imagen en disco e informa la ruta del archivo. Antes de v2.1.211, la opción `save_to_disk` de la herramienta de captura de pantalla no escribía un archivo.274Claude guarda la imagen en disco e informa la ruta del archivo.

275 275 

276<h2 id="troubleshooting">276<h2 id="troubleshooting">

277 Solución de problemas277 Solución de problemas

Details

502 Pipelines de CI y máquinas remotas502 Pipelines de CI y máquinas remotas

503</h3>503</h3>

504 504 

505No existe un flujo de token de servicio para pipelines desatendidos. El inicio de sesión en el gateway siempre ejecuta el flujo de dispositivo del navegador, por lo que un trabajo de CI sin un desarrollador que apruebe el inicio de sesión no puede autenticarse; configura esos trabajos directamente con tu proveedor.505No existe un flujo de token de servicio para pipelines desatendidos. El inicio de sesión en el gateway siempre ejecuta el flujo de dispositivo del navegador, por lo que un trabajo de CI sin un desarrollador que apruebe el inicio de sesión no puede autenticarse; configura esos trabajos directamente con tu proveedor. Implementa `forceLoginMethod` y `forceLoginGatewayUrl` en las máquinas de los desarrolladores y no los incluyas en los runners de CI. En una máquina cuya configuración administrada los establece, una sesión que se autentica con `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper` [termina al arrancar](/docs/es/errors#administrator-policy-requires-a-cloud-gateway-sign-in).

506 506 

507Una vez que un desarrollador inicia sesión, cada sesión de Claude Code en esa máquina usa la sesión del gateway, incluidas las ejecuciones no interactivas de `claude -p` y las sesiones iniciadas por el Agent SDK. Claude Code aplica la [política del gateway](/docs/es/claude-apps-gateway-config#managed) a cada una de ellas.507Una vez que un desarrollador inicia sesión, cada sesión de Claude Code en esa máquina usa la sesión del gateway, incluidas las ejecuciones no interactivas de `claude -p` y las sesiones iniciadas por el Agent SDK. Claude Code aplica la [política del gateway](/docs/es/claude-apps-gateway-config#managed) a cada una de ellas.

508 508 

Details

340 340 

341Establece `forward_user_identity` solo en un upstream cuyo `base_url` sea un proxy que operas. El gateway envía los correos electrónicos de los desarrolladores a cualquier servidor que nombre ese `base_url`. Si el `base_url` es la API de Anthropic, que es el valor por defecto, el gateway se niega a iniciar.341Establece `forward_user_identity` solo en un upstream cuyo `base_url` sea un proxy que operas. El gateway envía los correos electrónicos de los desarrolladores a cualquier servidor que nombre ese `base_url`. Si el `base_url` es la API de Anthropic, que es el valor por defecto, el gateway se niega a iniciar.

342 342 

343<Note>

344 Si estableces `forward_user_identity` en un upstream de Amazon Bedrock, el gateway termina al iniciar con `Unrecognized key(s) in object: 'forward_user_identity'`. Si tu proxy está delante de Bedrock, enuméralo en su lugar como un upstream `provider: anthropic`. El gateway envía a ese upstream el formato Messages de Anthropic, así que tu proxy tiene que [traducir las solicitudes para Bedrock](/docs/es/llm-gateway-protocol#format-mismatch-with-the-upstream). Para identificar en su lugar a cada desarrollador ante AWS, consulta [Atribución de costos de AWS por desarrollador](#per-developer-aws-cost-attribution).

345</Note>

346 

343<h4 id="amazon-bedrock">347<h4 id="amazon-bedrock">

344 Amazon Bedrock348 Amazon Bedrock

345</h4>349</h4>


1133 1137 

1134* 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 modelo1138* 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 modelo

1135* 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`1139* 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`

1136* La lista de permitidos de salida, 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 derivada1140* 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

1137* 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`.1141* 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`.

1138 1142 

1139 Claude Desktop exporta cada señal con una sola codificación: `http/protobuf`, o `http/json` cuando estableces `OTEL_EXPORTER_OTLP_PROTOCOL` o una de sus variantes por señal en `http/json` en el `env` de la política. Antes de Claude Code v2.1.261 en el servidor del gateway, la respuesta establecía `http/json` en cualquier caso, por lo que un recopilador que solo acepta protobuf rechazaba las exportaciones de Claude Desktop1143 Claude Desktop exporta cada señal con una sola codificación: `http/protobuf`, o `http/json` cuando estableces `OTEL_EXPORTER_OTLP_PROTOCOL` o una de sus variantes por señal en `http/json` en el `env` de la política. Antes de Claude Code v2.1.261 en el servidor del gateway, la respuesta establecía `http/json` en cualquier caso, por lo que un recopilador que solo acepta protobuf rechazaba las exportaciones de Claude Desktop


1374 1378 

1375Se retransmiten tanto la codificación OTLP protobuf como la JSON, y cualquier backend compatible con OpenTelemetry funciona como destino.1379Se retransmiten tanto la codificación OTLP protobuf como la JSON, y cualquier backend compatible con OpenTelemetry funciona como destino.

1376 1380 

1381<h4 id="send-cumulative-metrics">

1382 Enviar métricas acumulativas

1383</h4>

1384 

1385Si tu colector solo acepta métricas acumulativas, establece [`OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE`](/docs/es/monitoring-usage#common-configuration-variables) en `cumulative`. Claude Code envía métricas delta de forma predeterminada, y el gateway las retransmite sin convertirlas. Establece la variable donde cada tipo de sesión la lee:

1386 

1387* **Sesiones de terminal**: en el bloque `env` bajo la [clave `cli` o `code`](#choose-cli-or-code) de una política

1388* **Sesiones de Cowork que [se ejecutan en la máquina del usuario](/docs/es/managed-settings#where-and-when-a-policy-applies)**: en el bloque `env` de la [configuración administrada del lado del cliente](#client-side-managed-settings) en esa máquina

1389* **Sesiones de la pestaña Code con una política `code`**: en el bloque `env` de la política, una vez que cumplas las [condiciones para que se aplique la configuración de `code`](#apply-code-settings-in-the-code-tab)

1390* **Sesiones de la pestaña Code con una política `cli`**: en el bloque `env` de la configuración administrada del lado del cliente en la máquina que ejecuta la sesión. Por SSH, es el host remoto.

1391 

1392Si agregas la variable a la configuración administrada de una máquina, establece también [`parentSettingsBehavior: "merge"`](/docs/es/claude-apps-gateway#set-the-opt-in) en la fuente de mayor prioridad de esa máquina. Sin ella, las sesiones de Cowork y las sesiones de la pestaña Code con una política `cli` se ejecutan sin la lista de permitidos de salida ni las demás políticas que Claude Desktop les pasa como configuración principal.

1393 

1377<h4 id="add-your-own-labels">1394<h4 id="add-your-own-labels">

1378 Agrega tus propias etiquetas1395 Agrega tus propias etiquetas

1379</h4>1396</h4>

Details

1706claude purge ~/work/my-repo --yes1706claude purge ~/work/my-repo --yes

1707```1707```

1708 1708 

1709Pase `--all` en lugar de una ruta para purgar el estado de cada proyecto a la vez, lo que elimina `history.jsonl` directamente en lugar de filtrarlo. Pase `-i` para recorrer el plan de eliminación un elemento a la vez.1709Otras opciones:

1710 

1711* Pasa `--all` en lugar de una ruta para purgar el estado de cada proyecto a la vez, lo que elimina `history.jsonl` directamente en lugar de filtrarlo.

1712* Pasa `-i` para recorrer el plan de eliminación un elemento a la vez.

1710 1713 

1711El comando deja `shell-snapshots/` y `backups/` intactos porque no están limitados al proyecto, y advierte sobre ellos en la salida del plan. Si alguien ejecutó [`/heapdump`](/docs/es/troubleshooting#high-cpu-or-memory-usage) en la máquina, elimina también los archivos `.heapsnapshot` que escribió. Una instantánea del heap contiene la conversación completa y cualquier credencial que tuviera el proceso, y ni el barrido de retención ni la purga la tocan.1714El comando deja `shell-snapshots/` y `backups/` intactos porque no están limitados al proyecto, y advierte sobre ellos en la salida del plan. Si alguien ejecutó [`/heapdump`](/docs/es/troubleshooting#high-cpu-or-memory-usage) en la máquina, elimina también los archivos `.heapsnapshot` que escribió. Una instantánea del heap contiene la conversación completa y cualquier credencial que tuviera el proceso, y ni el barrido de retención ni la purga la tocan.

1712 1715 

1713También puede eliminar cualquiera de las rutas de datos de aplicación anteriores manualmente, aparte de los [archivos de estado a mantener](#state-files-to-keep). Las nuevas sesiones no se ven afectadas. La tabla a continuación muestra qué pierde para sesiones pasadas.1716También puedes eliminar tú mismo cualquiera de las rutas de datos de aplicación anteriores, aparte de los [archivos de estado que debes conservar](#state-files-to-keep).

1714 1717 

1715| Eliminar | Pierde |1718| Eliminar | Pierde |

1716| - | - |1719| - | - |


1726| `~/.claude/remote-settings.json` | Nada. Se vuelve a obtener en el próximo inicio. |1729| `~/.claude/remote-settings.json` | Nada. Se vuelve a obtener en el próximo inicio. |

1727| `~/.claude/cache/changelog.md` | Nada. Se actualiza en segundo plano. |1730| `~/.claude/cache/changelog.md` | Nada. Se actualiza en segundo plano. |

1728| `~/.claude/policy-limits.json` | Nada. Se actualiza automáticamente. |1731| `~/.claude/policy-limits.json` | Nada. Se actualiza automáticamente. |

1729| `~/.claude/tasks/` | Listas de tareas que una sesión reanudada recogería |1732| `~/.claude/tasks/` | Tus [listas de tareas](/docs/es/interactive-mode#task-list), incluidas las que todavía están en uso |

1730| `~/.claude/skills/.trash/`, `~/.claude/plugins/.trash/` | La oportunidad de recuperar [skills sincronizados](/docs/es/skills#how-synced-skills-behave) y [plugins sincronizados](/docs/es/plugins/loading#synced-plugins) que Claude Code eliminó |1733| `~/.claude/skills/.trash/`, `~/.claude/plugins/.trash/` | La oportunidad de recuperar [skills sincronizados](/docs/es/skills#how-synced-skills-behave) y [plugins sincronizados](/docs/es/plugins/loading#synced-plugins) que Claude Code eliminó |

1731| `~/.claude/plugins/installed_plugins.set-aside.<date>.<hash>.json`, `~/.claude/plugins/installed_plugins.unreadable.<date>.<hash>.kept` | Las copias de registros de instalación de plugins que Claude Code eliminó o no podía leer. Nada las vuelve a leer |1734| `~/.claude/plugins/installed_plugins.set-aside.<date>.<hash>.json`, `~/.claude/plugins/installed_plugins.unreadable.<date>.<hash>.kept` | Las copias de registros de instalación de plugins que Claude Code eliminó o no podía leer. Nada las vuelve a leer |

1732| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/session-env/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Nada orientado al usuario |1735| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/session-env/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Nada orientado al usuario |

Details

115| `--no-session-persistence` | Deshabilita la persistencia de sesión para que las sesiones no se guarden en disco y no se puedan reanudar. Solo modo print. La variable de entorno [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/es/env-vars) hace lo mismo en cualquier modo | `claude -p --no-session-persistence "query"` |115| `--no-session-persistence` | Deshabilita la persistencia de sesión para que las sesiones no se guarden en disco y no se puedan reanudar. Solo modo print. La variable de entorno [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/es/env-vars) hace lo mismo en cualquier modo | `claude -p --no-session-persistence "query"` |

116| `--output-format` | Especifica el formato de salida para el modo print (opciones: `text`, `json`, `stream-json`) | `claude -p "query" --output-format json` |116| `--output-format` | Especifica el formato de salida para el modo print (opciones: `text`, `json`, `stream-json`) | `claude -p "query" --output-format json` |

117| `--permission-mode` | Comienza en un [modo de permisos](/docs/es/permission-modes) especificado. Acepta `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions`, o `manual` como alias para `default`. El alias `manual` selecciona el modo de permisos que la UI etiqueta como Manual y requiere Claude Code v2.1.200 o posterior; `claude --help` lo enumera en lugar de `default`, y ambos valores funcionan. Anula `defaultMode` de archivos de configuración. Sin esta bandera o `--dangerously-skip-permissions`, una nueva sesión comienza en el modo de permisos descrito en [qué modo de permisos comienza una sesión](/docs/es/permission-modes#which-mode-a-session-starts-in), que también cubre lo que comienza una ejecución `-p` | `claude --permission-mode plan` |117| `--permission-mode` | Comienza en un [modo de permisos](/docs/es/permission-modes) especificado. Acepta `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions`, o `manual` como alias para `default`. El alias `manual` selecciona el modo de permisos que la UI etiqueta como Manual y requiere Claude Code v2.1.200 o posterior; `claude --help` lo enumera en lugar de `default`, y ambos valores funcionan. Anula `defaultMode` de archivos de configuración. Sin esta bandera o `--dangerously-skip-permissions`, una nueva sesión comienza en el modo de permisos descrito en [qué modo de permisos comienza una sesión](/docs/es/permission-modes#which-mode-a-session-starts-in), que también cubre lo que comienza una ejecución `-p` | `claude --permission-mode plan` |

118| `--permission-prompt-tool` | Especifica una herramienta MCP para manejar solicitudes de permiso en modo no interactivo. Claude Code espera a que el servidor MCP de esa herramienta se conecte antes de ejecutar el primer turno, hasta el tiempo de espera de inicio [`MCP_TIMEOUT`](/docs/es/env-vars), 30 segundos por defecto. <br /><br />La herramienta de indicador no puede aprobar una herramienta MCP marcada como [requiriendo interacción del usuario](/docs/es/mcp#require-approval-for-a-specific-tool): Claude Code convierte un resultado `allow` para una en una negación. Esta restricción requiere Claude Code v2.1.199 o posterior | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |118| `--permission-prompt-tool` | Especifica una herramienta MCP para manejar solicitudes de permiso en modo no interactivo. Pasa el nombre completo, como `mcp__<server>__<tool>`, de una herramienta en un servidor MCP que cargue la ejecución. Claude Code espera a que el servidor MCP de esa herramienta se conecte antes de ejecutar el primer turno, hasta el tiempo de espera de inicio [`MCP_TIMEOUT`](/docs/es/env-vars), 30 segundos por defecto. <br /><br />La herramienta de solicitudes no puede aprobar una herramienta MCP marcada como [que requiere interacción del usuario](/docs/es/mcp#require-approval-for-a-specific-tool): Claude Code convierte un resultado `allow` para una de ellas en una negación. Esta restricción requiere Claude Code v2.1.199 o posterior | `claude -p --mcp-config ./mcp.json --permission-prompt-tool mcp__permissions__approve "query"` |

119| `--permission-prompts` | Establece quién responde solicitudes de permiso en modo print. Con el `host` predeterminado, Claude Code las envía al host del Agent SDK o a la herramienta `--permission-prompt-tool`. Pasa `none` cuando nadie puede responder, y Claude Code las niega en su lugar. Consulta [Desactivar solicitudes de permiso en ejecuciones desatendidas](/docs/es/headless#turn-off-permission-prompts-in-unattended-runs). Requiere Claude Code v2.1.259 o posterior | `claude -p --permission-prompts none "query"` |119| `--permission-prompts` | Establece quién responde solicitudes de permiso en modo print. Con el `host` predeterminado, Claude Code las envía al host del Agent SDK o a la herramienta `--permission-prompt-tool`. Pasa `none` cuando nadie puede responder, y Claude Code las niega en su lugar. Consulta [Desactivar solicitudes de permiso en ejecuciones desatendidas](/docs/es/headless#turn-off-permission-prompts-in-unattended-runs). Requiere Claude Code v2.1.259 o posterior | `claude -p --permission-prompts none "query"` |

120| `--plugin-dir` | Carga un plugin desde un directorio o archivo `.zip`, o varios desde una [carpeta de plugins](/docs/es/plugins/create#load-a-directory-or-archive-for-one-session), solo para esta sesión. Cada bandera toma una ruta. Repite la bandera para más rutas: `--plugin-dir A --plugin-dir B.zip`. Pasar una carpeta de plugins requiere Claude Code v2.1.265 o posterior | `claude --plugin-dir ./my-plugin` |120| `--plugin-dir` | Carga un plugin desde un directorio o archivo `.zip`, o varios desde una [carpeta de plugins](/docs/es/plugins/create#load-a-directory-or-archive-for-one-session), solo para esta sesión. Cada bandera toma una ruta. Repite la bandera para más rutas: `--plugin-dir A --plugin-dir B.zip`. Pasar una carpeta de plugins requiere Claude Code v2.1.265 o posterior | `claude --plugin-dir ./my-plugin` |

121| `--plugin-url` | Obtén un archivo `.zip` de plugin desde una URL solo para esta sesión. Repite la bandera para múltiples plugins, o pasa URLs separadas por espacios en un valor entrecomillado único | `claude --plugin-url https://example.com/plugin.zip` |121| `--plugin-url` | Obtén un archivo `.zip` de plugin desde una URL solo para esta sesión. Repite la bandera para múltiples plugins, o pasa URLs separadas por espacios en un valor entrecomillado único | `claude --plugin-url https://example.com/plugin.zip` |

Details

117 117 

118* **El repositorio está configurado como Manual**: cómo solicitar una revisión con un comentario118* **El repositorio está configurado como Manual**: cómo solicitar una revisión con un comentario

119* **El pull request proviene de un fork**: que un maintainer puede solicitar la revisión119* **El pull request proviene de un fork**: que un maintainer puede solicitar la revisión

120* **Un bot, o alguien sin acceso de escritura, comenta `@claude review`**: que no se inició ninguna revisión y quién puede solicitarla120* **Un bot, o alguien sin acceso de escritura que no es el autor del pull request, comenta `@claude review`**: que no se inició ninguna revisión y quién puede solicitarla

121* **La organización de GitHub no está vinculada a tu organización de Claude**: que las revisiones están en pausa y cómo vincularla121* **La organización de GitHub no está vinculada a tu organización de Claude**: que las revisiones están en pausa y cómo vincularla

122 122 

123Desactiva el ajuste para dejar de publicar estos comentarios.123Desactiva el ajuste para dejar de publicar estos comentarios.

Details

38 38 

39* **Code Review no está activado para este repositorio**: Claude no publica ningún comentario ni check run en respuesta al comando. Pide a un Owner que [agregue el repositorio](/docs/es/code-review-setup#add-more-repositories).39* **Code Review no está activado para este repositorio**: Claude no publica ningún comentario ni check run en respuesta al comando. Pide a un Owner que [agregue el repositorio](/docs/es/code-review-setup#add-more-repositories).

40* **El comentario no cumple una condición**: era un comentario en línea o el cuerpo de una revisión en lugar de un nuevo comentario de nivel superior, o el comando no estaba al inicio del comentario. Editar un comentario anterior en lugar de publicar uno nuevo tampoco cuenta, y el pull request tiene que estar abierto. Consulta las [condiciones para los comandos en comentarios](/docs/es/code-review-pull-requests#comment-commands) y publica un nuevo comentario que las cumpla.40* **El comentario no cumple una condición**: era un comentario en línea o el cuerpo de una revisión en lugar de un nuevo comentario de nivel superior, o el comando no estaba al inicio del comentario. Editar un comentario anterior en lugar de publicar uno nuevo tampoco cuenta, y el pull request tiene que estar abierto. Consulta las [condiciones para los comandos en comentarios](/docs/es/code-review-pull-requests#comment-commands) y publica un nuevo comentario que las cumpla.

41* **No tienes acceso de escritura**: necesitas permiso de escritura, mantenimiento o administración en el repositorio, y en un pull request desde un fork el permiso que cuenta es el del repositorio base. Si tu organización tiene activadas las sugerencias, Claude responde "No review was started: manual reviews can only be requested by someone with write access to this repository." Pide a alguien con acceso de escritura que comente en tu lugar.41* **No tienes acceso de escritura**: necesitas permiso de escritura, mantenimiento o administración en el repositorio. En un pull request desde un fork, el permiso que cuenta es el del repositorio base. A menos que el pull request sea tuyo, Claude puede responder con una [sugerencia](/docs/es/code-review-setup#turn-tip-comments-on-or-off): "No review was started: manual reviews can only be requested by someone with write access to this repository." Pide a alguien con acceso de escritura que comente en tu lugar.

42* **Se agotó el presupuesto**: Claude publica un comentario que empieza con "⚠️ Code review skipped". Consulta [La revisión no se ejecutó y el PR muestra un mensaje de presupuesto](#review-didn’t-run-and-the-pr-shows-a-budget-message).42* **Se agotó el presupuesto**: Claude publica un comentario que empieza con "⚠️ Code review skipped". Consulta [La revisión no se ejecutó y el PR muestra un mensaje de presupuesto](#review-didn’t-run-and-the-pr-shows-a-budget-message).

43 43 

44<h3 id="review-didn’t-run-and-the-pr-shows-a-budget-message">44<h3 id="review-didn’t-run-and-the-pr-shows-a-budget-message">

commands.md +5 −5

Details

65| `/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| `/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` |

66| `/batch <instruction>` | **[Skill](/docs/es/skills#bundled-skills).** Orquesta cambios a gran escala en una base de código en paralelo. Investiga la base de código, descompone el trabajo en entre 5 y 30 unidades independientes y presenta un plan. Una vez aprobado, inicia un [subagente en segundo plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background) por unidad en un [worktree](/docs/es/worktrees) aislado. Cada subagente implementa su unidad, ejecuta pruebas y publica su cambio. Requiere un repositorio git o un [hook `WorktreeCreate`](/docs/es/worktrees#non-git-version-control) que cree los worktrees. Fuera de un repositorio git, `/batch` requiere Claude Code v2.1.281 o posterior. Ejemplo: `/batch migrate src/ from JavaScript to TypeScript` |66| `/batch <instruction>` | **[Skill](/docs/es/skills#bundled-skills).** Orquesta cambios a gran escala en una base de código en paralelo. Investiga la base de código, descompone el trabajo en entre 5 y 30 unidades independientes y presenta un plan. Una vez aprobado, inicia un [subagente en segundo plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background) por unidad en un [worktree](/docs/es/worktrees) aislado. Cada subagente implementa su unidad, ejecuta pruebas y publica su cambio. Requiere un repositorio git o un [hook `WorktreeCreate`](/docs/es/worktrees#non-git-version-control) que cree los worktrees. Fuera de un repositorio git, `/batch` requiere Claude Code v2.1.281 o posterior. Ejemplo: `/batch migrate src/ from JavaScript to TypeScript` |

67| `/branch [name]` | Crea una rama de la conversación actual en este punto, para que puedas probar una dirección diferente sin perder la conversación tal como está. Te cambia a la rama y conserva la original, a la que puedes volver con `/resume`. Para ejecutar una copia como una [sesión en segundo plano](/docs/es/agent-view) separada en lugar de cambiarte a ella, usa `/fork`; para entregar una tarea secundaria a un [subagente](/docs/es/sub-agents) que informe de vuelta en esta conversación, usa `/subtask` |67| `/branch [name]` | Crea una rama de la conversación actual en este punto, para que puedas probar una dirección diferente sin perder la conversación tal como está. Te cambia a la rama y conserva la original, a la que puedes volver con `/resume`. Para ejecutar una copia como una [sesión en segundo plano](/docs/es/agent-view) separada en lugar de cambiarte a ella, usa `/fork`; para entregar una tarea secundaria a un [subagente](/docs/es/sub-agents) que informe de vuelta en esta conversación, usa `/subtask` |

68| `/btw [question]` | Haz una [pregunta secundaria](/docs/es/interactive-mode#side-questions-with-%2Fbtw) sobre la sesión actual sin agregarla a la conversación. Si ejecutas `/btw` sin una pregunta, Claude Code muestra tu pregunta secundaria más reciente para que puedas explorar respuestas anteriores; si aún no has hecho ninguna, Claude Code imprime una línea de uso. Antes de v2.1.212, `/btw` requería una pregunta |68| `/btw [question]` | Haz una [pregunta secundaria](/docs/es/interactive-mode#side-questions-with-%2Fbtw) sobre la sesión actual sin agregarla a la conversación. Si ejecutas `/btw` sin una pregunta, Claude Code muestra tu pregunta secundaria más reciente para que puedas explorar respuestas anteriores; si aún no has hecho ninguna, Claude Code imprime una línea de uso |

69| `/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` |69| `/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` |

70| `/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) |70| `/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) |

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


95| `/feedback [report]` | Envía comentarios sobre el producto Claude Code. Abre el mismo diálogo que [`/bug`](#all-commands), con el mismo paso de consentimiento, las mismas reglas de envío y el mismo comportamiento a mitad de turno. En sesiones con [comentarios redactados por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior), `/feedback` sin argumento abre en su lugar la cola de borradores, donde revisas, editas, envías o descartas los borradores que Claude puso en cola; la cola incluye una opción para escribir un nuevo informe en el diálogo. Con un argumento, y siempre para `/bug`, el diálogo se abre directamente |95| `/feedback [report]` | Envía comentarios sobre el producto Claude Code. Abre el mismo diálogo que [`/bug`](#all-commands), con el mismo paso de consentimiento, las mismas reglas de envío y el mismo comportamiento a mitad de turno. En sesiones con [comentarios redactados por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior), `/feedback` sin argumento abre en su lugar la cola de borradores, donde revisas, editas, envías o descartas los borradores que Claude puso en cola; la cola incluye una opción para escribir un nuevo informe en el diálogo. Con un argumento, y siempre para `/bug`, el diálogo se abre directamente |

96| `/fewer-permission-prompts` | **[Skill](/docs/es/skills#bundled-skills).** Analiza tus transcripciones en busca de llamadas comunes de solo lectura a Bash y a herramientas MCP, y luego agrega una lista de permitidos priorizada al `.claude/settings.json` del proyecto para reducir las solicitudes de permiso |96| `/fewer-permission-prompts` | **[Skill](/docs/es/skills#bundled-skills).** Analiza tus transcripciones en busca de llamadas comunes de solo lectura a Bash y a herramientas MCP, y luego agrega una lista de permitidos priorizada al `.claude/settings.json` del proyecto para reducir las solicitudes de permiso |

97| `/focus` | Activa o desactiva la vista de enfoque, que muestra solo tu último prompt, un resumen de una línea de las llamadas a herramientas con estadísticas de diff de las ediciones, y la respuesta final. El resumen de llamadas a herramientas también cuenta los subagentes lanzados en el turno y agrupa las notificaciones de tareas en segundo plano completadas en un solo recuento. La selección persiste entre sesiones; establece [`viewMode`](/docs/es/settings-reference#viewmode) en la configuración para sobrescribirla. Solo disponible en [renderizado de pantalla completa](/docs/es/fullscreen). Desde un cliente de [Remote Control](/docs/es/remote-control), ejecuta `/focus [on\|off]` para activar o desactivar la vista de enfoque solo para la sesión actual, sin cambiar tu selección guardada; esto requiere Claude Code v2.1.281 o posterior. La [extensión de VS Code](/docs/es/vs-code#use-the-prompt-box) ofrece su propia vista Focus como un interruptor en el menú de comandos, almacenado como un ajuste de la extensión, independiente de `viewMode` |97| `/focus` | Activa o desactiva la vista de enfoque, que muestra solo tu último prompt, un resumen de una línea de las llamadas a herramientas con estadísticas de diff de las ediciones, y la respuesta final. El resumen de llamadas a herramientas también cuenta los subagentes lanzados en el turno y agrupa las notificaciones de tareas en segundo plano completadas en un solo recuento. La selección persiste entre sesiones; establece [`viewMode`](/docs/es/settings-reference#viewmode) en la configuración para sobrescribirla. Solo disponible en [renderizado de pantalla completa](/docs/es/fullscreen). Desde un cliente de [Remote Control](/docs/es/remote-control), ejecuta `/focus [on\|off]` para activar o desactivar la vista de enfoque solo para la sesión actual, sin cambiar tu selección guardada; esto requiere Claude Code v2.1.281 o posterior. La [extensión de VS Code](/docs/es/vs-code#use-the-prompt-box) ofrece su propia vista Focus como un interruptor en el menú de comandos, almacenado como un ajuste de la extensión, independiente de `viewMode` |

98| `/fork [prompt]` | [Copia la conversación actual](/docs/es/agent-view#copy-the-session-with-%2Ffork) en una nueva sesión en segundo plano y sigue trabajando aquí. Pasa un prompt y la copia empieza a trabajar en él de inmediato; sin uno, espera en la vista de agentes su primer prompt. Excepto cuando la copia [edita en el mismo lugar](/docs/es/agent-view#how-file-edits-are-isolated), Claude Code le indica que cree su propio worktree antes de hacer cambios en el código; la instrucción de aislamiento requiere Claude Code v2.1.221 o posterior. Para entregar una tarea secundaria a un subagente cuyo resultado vuelva a esta conversación, usa `/subtask`; para cambiarte tú mismo a una copia, usa `/branch`. Requiere Claude Code v2.1.212 o posterior; de v2.1.161 a v2.1.211, y siempre que la [vista de agentes esté desactivada](/docs/es/agent-view#turn-off-agent-view), `/fork` inicia en su lugar un [subagente bifurcado](/docs/es/sub-agents#fork-the-current-conversation) |98| `/fork [prompt]` | [Copia la conversación actual](/docs/es/agent-view#copy-the-session-with-%2Ffork) en una nueva sesión en segundo plano y sigue trabajando aquí. Pasa un prompt y la copia empieza a trabajar en él de inmediato; sin uno, espera en la vista de agentes su primer prompt. Excepto cuando la copia [edita en el mismo lugar](/docs/es/agent-view#how-file-edits-are-isolated), Claude Code le indica que cree su propio worktree antes de hacer cambios en el código; la instrucción de aislamiento requiere Claude Code v2.1.221 o posterior. Para entregar una tarea secundaria a un subagente cuyo resultado vuelva a esta conversación, usa `/subtask`; para cambiarte tú mismo a una copia, usa `/branch`. Cuando la [vista de agentes está desactivada](/docs/es/agent-view#turn-off-agent-view), `/fork` inicia en su lugar un [subagente bifurcado](/docs/es/sub-agents#fork-the-current-conversation) |

99| `/goal [condition\|clear]` | Establece un [objetivo](/docs/es/goal): Claude sigue trabajando a lo largo de los turnos hasta que se cumple la condición o el objetivo [se borra por otro motivo](/docs/es/goal#how-evaluation-works). Sin argumento, muestra el objetivo actual o el logrado más recientemente. `clear`, `stop`, `off`, `reset`, `none` o `cancel` elimina un objetivo activo antes de tiempo |99| `/goal [condition\|clear]` | Establece un [objetivo](/docs/es/goal): Claude sigue trabajando a lo largo de los turnos hasta que se cumple la condición o el objetivo [se borra por otro motivo](/docs/es/goal#how-evaluation-works). Sin argumento, muestra el objetivo actual o el logrado más recientemente. `clear`, `stop`, `off`, `reset`, `none` o `cancel` elimina un objetivo activo antes de tiempo |

100| `/heapdump` | Escribe una instantánea del heap de JavaScript y un desglose de memoria en `~/Desktop`, o en tu directorio home en Linux sin una carpeta Desktop, para diagnosticar un uso elevado de memoria. Adjunta solo el archivo `-diagnostics.json` al informar un problema de memoria; el `.heapsnapshot` contiene tu conversación completa y tus credenciales, así que no lo compartas. [Oculto en el menú de comandos](#how-the-command-menu-matches-what-you-type); escríbelo completo. Consulta [qué hacer con la salida](/docs/es/troubleshooting#high-cpu-or-memory-usage) |100| `/heapdump` | Escribe una instantánea del heap de JavaScript y un desglose de memoria en `~/Desktop`, o en tu directorio home en Linux sin una carpeta Desktop, para diagnosticar un uso elevado de memoria. Adjunta solo el archivo `-diagnostics.json` al informar un problema de memoria; el `.heapsnapshot` contiene tu conversación completa y tus credenciales, así que no lo compartas. [Oculto en el menú de comandos](#how-the-command-menu-matches-what-you-type); escríbelo completo. Consulta [qué hacer con la salida](/docs/es/troubleshooting#high-cpu-or-memory-usage) |

101| `/help` | Muestra la ayuda y los comandos disponibles |101| `/help` | Muestra la ayuda y los comandos disponibles |

102| `/hooks` | Muestra las configuraciones de [hooks](/docs/es/hooks#the-%2Fhooks-menu) |102| `/hooks` | Muestra las configuraciones de [hooks](/docs/es/hooks#the-%2Fhooks-menu) |

103| `/ide` | Administra las integraciones con IDE y muestra el estado |103| `/ide` | Administra las integraciones con IDE y muestra el estado |

104| `/import [codex\|gemini\|cursor] [--dry-run] [--yes]` | Trae la configuración de OpenAI Codex, Google Gemini CLI o Cursor de tu máquina a Claude Code, incluidos archivos de instrucciones, servidores MCP, comandos, subagentes y skills. En [modo no interactivo](/docs/es/headless) con `-p`, `/import` enumera lo que encontró y te da el comando que confirma la importación. Agrega `--dry-run` para obtener una vista previa sin escribir nada, o `--yes` para omitir el selector interactivo. No disponible 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). Tampoco está disponible cuando desactivas la [obtención de feature flags](/docs/es/env-vars#features-that-need-feature-flag-fetching). Requiere Claude Code v2.1.213 o posterior. Importar desde Cursor requiere v2.1.265 o posterior |104| `/import [codex\|gemini\|cursor] [--dry-run] [--yes]` | Trae la configuración de OpenAI Codex, Google Gemini CLI o Cursor de tu máquina a Claude Code, incluidos archivos de instrucciones, servidores MCP, comandos, subagentes y skills. En [modo no interactivo](/docs/es/headless) con `-p`, `/import` enumera lo que encontró y te da el comando que confirma la importación. Agrega `--dry-run` para obtener una vista previa sin escribir nada, o `--yes` para omitir el selector interactivo. No disponible 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). Tampoco está disponible cuando desactivas la [obtención de feature flags](/docs/es/env-vars#features-that-need-feature-flag-fetching). Importar desde Cursor requiere v2.1.265 o posterior |

105| `/init` | Inicializa el proyecto con una guía `CLAUDE.md`. Establece `CLAUDE_CODE_NEW_INIT=1` para un flujo interactivo que también te guía por skills, hooks y archivos de memoria personales. Si `/init` encuentra configuración de OpenAI Codex o Google Gemini CLI, ofrece trasladarla con `/import` |105| `/init` | Inicializa el proyecto con una guía `CLAUDE.md`. Establece `CLAUDE_CODE_NEW_INIT=1` para un flujo interactivo que también te guía por skills, hooks y archivos de memoria personales. Si `/init` encuentra configuración de OpenAI Codex o Google Gemini CLI, ofrece trasladarla con `/import` |

106| `/insights` | Genera un informe HTML que analiza tus sesiones recientes en esta máquina: en qué proyectos trabajas, cómo usas Claude Code, dónde fallan las cosas y funciones que puedes probar. No disponible en [sesiones en la nube](/docs/es/claude-code-on-the-web). Consulta [Analizar tus patrones de uso](/docs/es/costs#analyze-your-usage-patterns) para conocer la ubicación del informe, la retención y el costo |106| `/insights` | Genera un informe HTML que analiza tus sesiones recientes en esta máquina: en qué proyectos trabajas, cómo usas Claude Code, dónde fallan las cosas y funciones que puedes probar. No disponible en [sesiones en la nube](/docs/es/claude-code-on-the-web). Consulta [Analizar tus patrones de uso](/docs/es/costs#analyze-your-usage-patterns) para conocer la ubicación del informe, la retención y el costo |

107| `/install-github-app` | Instala la Claude GitHub App para un repositorio, con un paso opcional para configurar workflows y secretos de [GitHub Actions](/docs/es/github-actions). Te guía para seleccionar un repositorio y configurar la integración. Solo funciona con repositorios de github.com. Cuando el remoto git de tu repositorio está en gitlab.com o bitbucket.org, el comando imprime un aviso y sale en lugar de iniciar la configuración. Para ejecutar Claude Code desde pipelines de GitLab, consulta [GitLab CI/CD](/docs/es/gitlab-ci-cd) |107| `/install-github-app` | Instala la Claude GitHub App para un repositorio, con un paso opcional para configurar workflows y secretos de [GitHub Actions](/docs/es/github-actions). Te guía para seleccionar un repositorio y configurar la integración. Solo funciona con repositorios de github.com. Cuando el remoto git de tu repositorio está en gitlab.com o bitbucket.org, el comando imprime un aviso y sale en lugar de iniciar la configuración. Para ejecutar Claude Code desde pipelines de GitLab, consulta [GitLab CI/CD](/docs/es/gitlab-ci-cd) |


153| `/statusline` | Configura la [línea de estado](/docs/es/statusline) de Claude Code. Describe lo que quieres, o ejecútalo sin argumentos para configurarla automáticamente a partir del prompt de tu shell |153| `/statusline` | Configura la [línea de estado](/docs/es/statusline) de Claude Code. Describe lo que quieres, o ejecútalo sin argumentos para configurarla automáticamente a partir del prompt de tu shell |

154| `/stickers` | Pide stickers de Claude Code |154| `/stickers` | Pide stickers de Claude Code |

155| `/stop` | Detiene la [sesión en segundo plano](/docs/es/agent-view) a la que estás adjunto, o aquella a la que lo envías como [respuesta desde el vistazo](/docs/es/agent-view#peek-and-reply); se conservan la transcripción y cualquier worktree. Para separarte sin detenerla, usa `/exit` o presiona `←` |155| `/stop` | Detiene la [sesión en segundo plano](/docs/es/agent-view) a la que estás adjunto, o aquella a la que lo envías como [respuesta desde el vistazo](/docs/es/agent-view#peek-and-reply); se conservan la transcripción y cualquier worktree. Para separarte sin detenerla, usa `/exit` o presiona `←` |

156| `/subtask <task>` | Inicia un [subagente bifurcado](/docs/es/sub-agents#fork-the-current-conversation): un subagente en segundo plano que hereda la conversación completa y trabaja en la tarea mientras tú sigues trabajando. Su resultado vuelve a esta conversación cuando termina. Para copiar la conversación en una sesión en segundo plano separada, usa `/fork` en su lugar. Requiere Claude Code v2.1.212 o posterior; de v2.1.161 a v2.1.211 este comando es `/fork`. Cuando la [vista de agentes está desactivada](/docs/es/agent-view#turn-off-agent-view), `/subtask` no está disponible y `/fork` mantiene el comportamiento de subagente bifurcado |156| `/subtask <task>` | Inicia un [subagente bifurcado](/docs/es/sub-agents#fork-the-current-conversation): un subagente en segundo plano que hereda la conversación completa y trabaja en la tarea mientras tú sigues trabajando. Su resultado vuelve a esta conversación cuando termina. Para copiar la conversación en una sesión en segundo plano separada, usa `/fork` en su lugar. Cuando la [vista de agentes está desactivada](/docs/es/agent-view#turn-off-agent-view), `/subtask` no está disponible y `/fork` inicia en su lugar el subagente bifurcado |

157| `/tasks` | Consulta y administra el trabajo en segundo plano de la sesión actual, incluidos los subagentes que ya terminaron. También disponible como `/bashes` |157| `/tasks` | Consulta y administra el trabajo en segundo plano de la sesión actual, incluidos los subagentes que ya terminaron. También disponible como `/bashes` |

158| `/team-onboarding` | Genera una guía de incorporación para el equipo a partir de tu historial de uso de Claude Code. Claude analiza tus sesiones, comandos y uso de servidores MCP de los últimos 30 días y produce una guía en markdown que un compañero de equipo puede pegar como primer mensaje para configurarse rápidamente. Para suscriptores de claude.ai en los planes Pro, Max, Team y Enterprise, también devuelve un enlace para compartir que los compañeros pueden abrir directamente en Claude Code |158| `/team-onboarding` | Genera una guía de incorporación para el equipo a partir de tu historial de uso de Claude Code. Claude analiza tus sesiones, comandos y uso de servidores MCP de los últimos 30 días. Produce una guía en markdown que un compañero de equipo puede pegar como primer mensaje para configurarse rápidamente. Para suscriptores de claude.ai en los planes Team y Enterprise, también devuelve un enlace para compartir que los compañeros pueden abrir directamente en Claude Code |

159| `/teleport` | Trae una [sesión en la nube](/docs/es/claude-code-on-the-web#from-cloud-to-terminal) a esta terminal. Abre un selector y luego obtiene la rama y la conversación. También disponible como `/tp`. Requiere una suscripción a claude.ai |159| `/teleport` | Trae una [sesión en la nube](/docs/es/claude-code-on-the-web#from-cloud-to-terminal) a esta terminal. Abre un selector y luego obtiene la rama y la conversación. También disponible como `/tp`. Requiere una suscripción a claude.ai |

160| `/terminal-setup` | [Instala un atajo de teclado Shift+Enter para saltos de línea](/docs/es/terminal-config#enter-multiline-prompts) en VS Code, Cursor, Devin Desktop, Alacritty o Zed. En Apple Terminal, en su lugar [habilita Option+Enter para saltos de línea y desactiva la campana audible](/docs/es/terminal-config#enable-option-key-shortcuts-on-macos). En iTerm2, [activa el acceso al portapapeles para que `/copy` funcione](/docs/es/terminal-config#enable-option-key-shortcuts-on-macos) |160| `/terminal-setup` | [Instala un atajo de teclado Shift+Enter para saltos de línea](/docs/es/terminal-config#enter-multiline-prompts) en VS Code, Cursor, Devin Desktop, Alacritty o Zed. En Apple Terminal, en su lugar [habilita Option+Enter para saltos de línea y desactiva la campana audible](/docs/es/terminal-config#enable-option-key-shortcuts-on-macos). En iTerm2, [activa el acceso al portapapeles para que `/copy` funcione](/docs/es/terminal-config#enable-option-key-shortcuts-on-macos) |

161| `/theme` | Cambia el tema de color. Incluye una opción `auto` que coincide con el fondo claro u oscuro de tu terminal, variantes claras y oscuras, temas accesibles para daltónicos (daltonizados), temas ANSI que usan la paleta de colores de tu terminal y cualquier [tema personalizado](/docs/es/terminal-config#create-a-custom-theme) de `~/.claude/themes/` o de plugins. Selecciona **New custom theme…** para crear uno |161| `/theme` | Cambia el tema de color. Incluye una opción `auto` que coincide con el fondo claro u oscuro de tu terminal, variantes claras y oscuras, temas accesibles para daltónicos (daltonizados), temas ANSI que usan la paleta de colores de tu terminal y cualquier [tema personalizado](/docs/es/terminal-config#create-a-custom-theme) de `~/.claude/themes/` o de plugins. Selecciona **New custom theme…** para crear uno |

Details

120Cuando el lanzador no puede ejecutarse, Claude Code se niega a iniciar el proceso en lugar de iniciarlo sin envolver. En Windows, [la variable se ignora](#what-the-launcher-covers) y los procesos se inician sin envolver. Claude Code mantiene el script a estas reglas:120Cuando el lanzador no puede ejecutarse, Claude Code se niega a iniciar el proceso en lugar de iniciarlo sin envolver. En Windows, [la variable se ignora](#what-the-launcher-covers) y los procesos se inician sin envolver. Claude Code mantiene el script a estas reglas:

121 121 

122* **Terminar con `exec "$@"`.** Un lanzador que bifurca un hijo y sale deja un proceso de Claude Code huérfano que el servicio de fondo no puede rastrear. La vista de agente marca tal sesión como fallida con un mensaje que nombra el lanzador, y el servicio recoge lo que el lanzador dejó atrás.122* **Terminar con `exec "$@"`.** Un lanzador que bifurca un hijo y sale deja un proceso de Claude Code huérfano que el servicio de fondo no puede rastrear. La vista de agente marca tal sesión como fallida con un mensaje que nombra el lanzador, y el servicio recoge lo que el lanzador dejó atrás.

123* **No reordene, absorba o anteponga argumentos.** El primer argumento es el binario de Claude Code y todo después de él es su argv.123* **No reordenes, absorbas ni agregues argumentos a los de Claude Code.** Quita los [argumentos propios](#pass-arguments-to-the-launcher) del lanzador, que van primero, y pasa el resto a `exec` tal como llegaron.

124* **Pase cada variable de entorno heredada a través de `exec`.** Agregar variables, como credenciales inyectadas, está bien; descartar las heredadas no.124* **Pase cada variable de entorno heredada a través de `exec`.** Agregar variables, como credenciales inyectadas, está bien; descartar las heredadas no.

125 * Los tokens de autenticación por sesión, la selección de modelo y proveedor, y `CLAUDE_CODE_PROCESS_WRAPPER` en sí viajan en el entorno heredado, por lo que un lanzador que lo reconstruye desde una lista de permitidos rompe las sesiones que inicia, y `/status` reporta una falta de coincidencia del lanzador.125 * Los tokens de autenticación por sesión, la selección de modelo y proveedor, y `CLAUDE_CODE_PROCESS_WRAPPER` en sí viajan en el entorno heredado, por lo que un lanzador que lo reconstruye desde una lista de permitidos rompe las sesiones que inicia, y `/status` reporta una falta de coincidencia del lanzador.

126 * Si el lanzador debe entrar en un espacio de nombres o zona de pruebas que reinicia el entorno, vuelva a exportar el entorno heredado dentro de él textualmente.126 * Si el lanzador debe entrar en un espacio de nombres o zona de pruebas que reinicia el entorno, vuelva a exportar el entorno heredado dentro de él textualmente.

127* **Alcance `exec` dentro de aproximadamente tres segundos cada vez que se ejecute el lanzador.** Un envío de fondo frío ejecuta el lanzador dos veces en serie antes del primer byte de salida, así que haga trabajo lento como un intercambio de inicio de sesión único de manera perezosa o desde un caché.127* **Alcanza `exec` en unos tres segundos cada vez que se ejecute el lanzador.** Una sesión en segundo plano puede ejecutar el lanzador tres veces en serie antes de su primera salida. Haz el trabajo lento, como un intercambio de inicio de sesión único, de forma diferida o desde una caché, y dale a cualquier paso que espere a la red su propio límite de tiempo.

128* **Tolere ser invocado desde dentro de sí mismo.** Claude Code aplica el lanzador a cada auto-generado anidado, por lo que un lanzador que adquiere un recurso exclusivo debe detectar que ya lo posee.128* **Tolere ser invocado desde dentro de sí mismo.** Claude Code aplica el lanzador a cada auto-generado anidado, por lo que un lanzador que adquiere un recurso exclusivo debe detectar que ya lo posee.

129* **No escriba en la terminal antes de que Claude Code se inicie.** Cualquier cosa impresa antes del `exec` se reporta como la causa del bloqueo si la sesión muere antes de inicializarse.129* **No escribas en la terminal ni en la salida estándar antes de que Claude Code se inicie.** Cualquier cosa impresa antes del `exec` se reporta como la causa del bloqueo si la sesión muere antes de inicializarse. El texto en la salida estándar también llega a cualquier programa que lea la salida de Claude Code, como un script que analiza los resultados de `claude -p`.

130* **No dependas de cómo se escriben los argumentos.** El valor de un flag puede llegar como su propio argumento, `--flag value`, o unido al flag, `--flag=value`. La forma que usa un flag puede cambiar entre versiones.130* **No dependas de cómo se escriben los argumentos.** El valor de un flag puede llegar como su propio argumento, `--flag value`, o unido al flag, `--flag=value`. La forma que usa un flag puede cambiar entre versiones.

131* **Ejecuta `exec` desde el directorio en el que se inició el lanzador.** Claude Code trabaja en el directorio en el que se inicia, por lo que un lanzador que cambia de directorio puede iniciar una sesión en el proyecto equivocado. Si el lanzador debe entrar en un espacio de nombres o sandbox que reinicia el directorio de trabajo, vuelve al directorio inicial dentro de él, antes del `exec`.131* **Ejecuta `exec` desde el directorio en el que se inició el lanzador.** Claude Code trabaja en el directorio en el que se inicia, por lo que un lanzador que cambia de directorio puede iniciar una sesión en el proyecto equivocado. Si el lanzador debe entrar en un espacio de nombres o sandbox que reinicia el directorio de trabajo, vuelve al directorio inicial dentro de él, antes del `exec`.

132* **No leas la entrada estándar.** Un comando que la lee antes del `exec`, como uno que pide una contraseña, puede quedarse esperando una entrada que nunca llega y dejar la sesión bloqueada. También puede tomar la entrada destinada a Claude Code, y entonces la sesión puede ejecutarse sin esa entrada y sin reportar ningún error. Redirige la entrada de ese comando desde `/dev/null`.

133* **Llama a otros programas por su ruta absoluta.** El lanzador puede iniciarse con un `PATH` que no incluye los directorios que agrega el perfil de tu shell.

132 134 

133<h3 id="format-of-the-launcher-value">135<h3 id="format-of-the-launcher-value">

134 Formato del valor del lanzador136 Formato del valor del lanzador


138 140 

139Para pasar argumentos de su lanzador, escríbalos después de la ruta. Claude Code analiza el valor como una lista de argumentos, no como un comando de shell:141Para pasar argumentos de su lanzador, escríbalos después de la ruta. Claude Code analiza el valor como una lista de argumentos, no como un comando de shell:

140 142 

141* El espacio en blanco separa tokens, y las comillas dobles agrupan un token que contiene espacios.143* El espacio en blanco separa tokens, y las comillas dobles agrupan un token que contiene espacios. Una comilla simple es un carácter normal, así que `'a b'` son dos tokens.

142* Un valor que comienza con `[` se lee como una matriz de cadenas JSON, como `["/opt/corp/launcher", "--profile", "cc"]`.144* Un valor que comienza con `[` se lee como una matriz de cadenas JSON, como `["/opt/corp/launcher", "--profile", "cc"]`.

143* La sintaxis de shell no funciona: no hay expansión de variables ni globbing, y un operador sin comillas como `;`, `|`, `&`, o `$(` se rechaza como un error de configuración en lugar de reinterpretarse.145* La sintaxis de shell no funciona: no hay expansión de variables ni globbing, y un operador sin comillas como `;`, `|`, `&`, o `$(` se rechaza como un error de configuración en lugar de reinterpretarse.

144 146 

145Cuando el valor no se puede usar, Claude Code se niega a iniciar el proceso afectado y [reporta la razón](/docs/es/errors#claude_code_process_wrapper-launcher-errors).147Cuando el valor no se puede usar, Claude Code se niega a iniciar el proceso afectado y [reporta la razón](/docs/es/errors#claude_code_process_wrapper-launcher-errors).

146 148 

149En un archivo de configuración, escribe la forma de matriz dentro de una cadena JSON y escapa sus comillas: `"[\"/opt/corp/launcher\", \"--profile\", \"cc\"]"`.

150 

151<h3 id="pass-arguments-to-the-launcher">

152 Pasar argumentos al lanzador

153</h3>

154 

155Escribe los argumentos propios del lanzador después de su ruta en [el valor](#format-of-the-launcher-value) y quítalos en el script antes de la llamada a `exec`. Llegan primero al script, antes del comando de Claude Code. El siguiente script, escrito para el valor `/opt/corp/launcher --profile cc`, guarda el nombre del perfil y luego quita ambos argumentos con `shift`:

156 

157```bash theme={null}

158#!/bin/sh

159if [ "$1" = "--profile" ]; then

160 profile="$2"

161 shift 2

162fi

163# Your organization's setup for "$profile".

164exec "$@"

165```

166 

167Usa el [paso de verificación](#set-up-the-launcher) para ver el comando de inicio que Claude Code resolvió a partir del valor.

168 

147<h2 id="relationship-to-claude_code_shell_prefix">169<h2 id="relationship-to-claude_code_shell_prefix">

148 Relación con `CLAUDE_CODE_SHELL_PREFIX`170 Relación con `CLAUDE_CODE_SHELL_PREFIX`

149</h2>171</h2>

desktop.md +332 −70

Details

44 Iniciar una sesión44 Iniciar una sesión

45</h2>45</h2>

46 46 

47Antes de enviar su primer mensaje, configure cuatro cosas en el área de solicitud:47Antes de enviar tu primer mensaje, elige el entorno, la carpeta del proyecto, el modo de permisos y el modelo en la fila que está debajo del cuadro del prompt:

48 48 

49* **Entorno**: elige dónde se ejecuta Claude. Selecciona **Local** para tu máquina, **Cloud** para una [sesión en la nube](#cloud-sessions) que continúa después de cerrar la aplicación, una [**conexión SSH**](#ssh-sessions) para una máquina remota que tú administras, o en Windows una [**distribución WSL**](/docs/es/desktop-wsl). Una tarea en una sesión SSH puede [seguir ejecutándose mientras Desktop está desconectado](#keep-a-task-running-while-desktop-is-disconnected), pero con una cuenta de Claude puede detenerse cuando su inicio de sesión expire. Consulta [configuración del entorno](#environment-configuration).49* **Entorno**: usa el selector de entorno, el primer control de la fila, para elegir dónde se ejecuta Claude. Consulta [configuración del entorno](#environment-configuration).

50* **Carpeta del proyecto**: seleccione la carpeta o repositorio en el que Claude trabaja. Para sesiones en la nube, puede agregar [múltiples repositorios](#run-long-running-tasks-in-the-cloud).50 * Si una sesión nueva no tiene un selector de entorno debajo del cuadro del prompt, sigue los [pasos del diseño anterior](#check-which-layout-you-have).

51* **Modelo**: elija un [modelo](/docs/es/model-config#available-models) del menú desplegable junto al botón de envío. Puede cambiar esto durante la sesión.51* **Carpeta del proyecto**: haz clic en el control de carpeta del proyecto, junto al selector de entorno, para elegir la carpeta en la que trabaja Claude.

52* **Modo de permisos**: elija cuánta autonomía tiene Claude desde el [selector de modo](#choose-a-permission-mode). Puede cambiar esto durante la sesión.52 * **Sesión en la nube**: selecciona [repositorios](#run-long-running-tasks-in-the-cloud) en lugar de una carpeta

53 * **[Entorno local o SSH guardado](#create-a-saved-environment)**: el entorno ya contiene sus carpetas, por lo que la fila no muestra ningún control de carpeta del proyecto. Para cambiar las carpetas, [edita el entorno](#use-edit-or-remove-a-saved-environment).

54* **Modo de permisos**: usa el [selector de modo](#choose-a-permission-mode) para elegir cuánta autonomía tiene Claude. Puedes cambiar el modo de permisos durante la sesión.

55* **Modelo**: elige un [modelo](/docs/es/model-config#available-models) en el selector de modelo, hacia el extremo derecho de la fila. Puedes cambiar el modelo durante la sesión.

53 56 

54Escriba su tarea y presione **Enter** para comenzar. Cada sesión rastrea su propio contexto y cambios de forma independiente.57Escriba su tarea y presione **Enter** para comenzar. Cada sesión rastrea su propio contexto y cambios de forma independiente.

55 58 


65 68 

66Escribe lo que quieres que Claude haga y presiona **Enter** para enviar. Claude lee los archivos de tu proyecto, realiza cambios y ejecuta comandos según tu [modo de permisos](#choose-a-permission-mode). Puedes redirigir a Claude en cualquier momento: haz clic en el botón de parada para interrumpir inmediatamente, o escribe una corrección y presiona **Enter** para enviarla sin detener la acción en ejecución. Claude lee la corrección tan pronto como se completa la acción actual y se ajusta antes de su siguiente paso.69Escribe lo que quieres que Claude haga y presiona **Enter** para enviar. Claude lee los archivos de tu proyecto, realiza cambios y ejecuta comandos según tu [modo de permisos](#choose-a-permission-mode). Puedes redirigir a Claude en cualquier momento: haz clic en el botón de parada para interrumpir inmediatamente, o escribe una corrección y presiona **Enter** para enviarla sin detener la acción en ejecución. Claude lee la corrección tan pronto como se completa la acción actual y se ajusta antes de su siguiente paso.

67 70 

68El botón **+** junto al cuadro de prompt te da acceso a archivos adjuntos, [skills](#use-skills), [conectores](#connect-external-tools) y [plugins](#install-plugins).71Haz clic en el botón **+** junto al cuadro de prompt para acceder a archivos adjuntos, [skills](#use-skills), [conectores](#connect-external-tools) y [plugins](#install-plugins).

69 72 

70<h3 id="accept-a-suggested-prompt">73<h3 id="accept-a-suggested-prompt">

71 Aceptar un prompt sugerido74 Aceptar un prompt sugerido


82 Agregar archivos y contexto a los prompts85 Agregar archivos y contexto a los prompts

83</h3>86</h3>

84 87 

85El cuadro de prompt admite dos formas de traer contexto externo:88Para darle un archivo a Claude, menciónalo con @ o adjúntalo en el cuadro de prompt:

86 89 

87* **Archivos @mention**: escribe `@` seguido de un nombre de archivo para agregar un archivo al contexto de la conversación. Claude puede entonces leer y hacer referencia a ese archivo. @mention no está disponible en sesiones en la nube o WSL.90* **Archivos @mention**: escribe `@` seguido de un nombre de archivo para agregar un archivo al contexto de la conversación.

88* **Adjuntar archivos**: adjunta imágenes, PDF y otros archivos a tu prompt usando el botón de adjuntos, o arrastra y suelta archivos directamente en el prompt. Esto es útil para compartir capturas de pantalla de errores, maquetas de diseño o documentos de referencia.91 * **En una sesión en la nube**: `@` puede listar archivos solo después de que envías tu primer mensaje. Si `@` no lista ninguno, envía tu primer mensaje sin el archivo y luego menciona el archivo con @ en tu siguiente mensaje.

92* **Adjuntar archivos**: adjunta imágenes, PDF y otros archivos a tu prompt desde el botón **+** junto al cuadro de prompt, o arrastra y suelta archivos directamente en el prompt. Esto es útil para compartir capturas de pantalla de errores, maquetas de diseño o documentos de referencia.

93 * **En una [sesión WSL](/docs/es/desktop-wsl)**: si el menú **+** muestra **Add image** en lugar de **Add files or photos**, solo puedes adjuntar imágenes. Para darle a Claude cualquier otro archivo de la carpeta de la sesión, menciónalo con @.

89 94 

90<h3 id="choose-a-permission-mode">95<h3 id="choose-a-permission-mode">

91 Elegir un modo de permisos96 Elegir un modo de permisos

92</h3>97</h3>

93 98 

94Los modos de permisos controlan cuánta autonomía tiene Claude durante una sesión: si pregunta antes de editar archivos, ejecutar comandos o ambos. Puedes cambiar de modo en cualquier momento usando el selector de modo junto al botón de envío. Para aprobar cada cambio tú mismo, cambia a Manual.99Los modos de permisos controlan cuánta autonomía tiene Claude durante una sesión: si pregunta antes de editar archivos, ejecutar comandos o ambos. Puedes cambiar de modo en cualquier momento usando el selector de modo en la fila debajo del cuadro de prompt. Para aprobar cada cambio tú mismo, cambia a Manual.

95 100 

96Para establecer un modo predeterminado para nuevas sesiones locales, agrega `permissions.defaultMode` a tu [archivo de configuración](/docs/es/settings#where-settings-live). La aplicación de escritorio lee los mismos archivos de configuración que la CLI. Un modo que seleccionas en el selector se recuerda por carpeta y tiene prioridad sobre `defaultMode` para esa carpeta, excepto Plan, que se aplica solo a la sesión actual.101Para establecer un modo predeterminado para nuevas sesiones locales, agrega `permissions.defaultMode` a tu [archivo de configuración](/docs/es/settings#where-settings-live). La aplicación de escritorio lee los mismos archivos de configuración que la CLI. Un modo que seleccionas en el selector se recuerda por carpeta y tiene prioridad sobre `defaultMode` para esa carpeta, excepto Plan, que se aplica solo a la sesión actual.

97 102 


129 134 

130Claude puede iniciar un servidor de desarrollo y abrirlo en el panel del navegador para verificar sus cambios. Esto funciona tanto para aplicaciones web frontend como para servidores backend: Claude puede probar endpoints de API, ver registros del servidor e iterar sobre los problemas que encuentra. En la mayoría de los casos, Claude inicia el servidor automáticamente después de editar archivos del proyecto. También puedes pedirle a Claude que haga una vista previa en cualquier momento. De forma predeterminada, Claude [verifica automáticamente](#auto-verify-changes) los cambios después de cada edición.135Claude puede iniciar un servidor de desarrollo y abrirlo en el panel del navegador para verificar sus cambios. Esto funciona tanto para aplicaciones web frontend como para servidores backend: Claude puede probar endpoints de API, ver registros del servidor e iterar sobre los problemas que encuentra. En la mayoría de los casos, Claude inicia el servidor automáticamente después de editar archivos del proyecto. También puedes pedirle a Claude que haga una vista previa en cualquier momento. De forma predeterminada, Claude [verifica automáticamente](#auto-verify-changes) los cambios después de cada edición.

131 136 

132El panel del navegador también puede abrir archivos HTML estáticos, PDF, imágenes y videos de tu proyecto. Haz clic en una ruta HTML, PDF, de imagen o de video en el chat para abrirla allí.137En una sesión local, haz clic en una ruta HTML, PDF o de video en el chat para abrirla en el panel del navegador.

133 138 

134<Note>139<Note>

135 En una [sesión SSH](#ssh-sessions), Claude no puede abrir tu aplicación en el panel del navegador, porque allí no tiene las herramientas del panel. Para ver la aplicación tú mismo, [reenvía su puerto a tu computadora](#reach-a-port-on-the-remote-machine).140 En una [sesión SSH](#ssh-sessions), Claude no puede abrir tu aplicación en el panel del navegador, porque allí no tiene las herramientas del panel. Para ver la aplicación tú mismo, [reenvía su puerto a tu computadora](#reach-a-port-on-the-remote-machine).

136</Note>141</Note>

137 142 

143Si el panel del navegador no está abierto después de que Claude inicia un servidor en una sesión local, haz clic en **Open** en la tarjeta del servidor en el chat.

144 

138Desde el panel del navegador, puedes:145Desde el panel del navegador, puedes:

139 146 

140* Interactuar con tu aplicación en ejecución directamente en el panel del navegador147* Interactuar con tu aplicación en ejecución directamente en el panel del navegador


185 Revisar cambios con la vista de diff192 Revisar cambios con la vista de diff

186</h3>193</h3>

187 194 

188Después de que Claude realiza cambios en tu código, la vista de diff te permite revisar las modificaciones archivo por archivo antes de crear un pull request.195Después de que Claude realiza cambios en tu código, la vista de diff te permite revisar las modificaciones archivo por archivo antes de crear un pull request. Para abrir la vista de diff, haz clic en los recuentos de líneas, como `+12 -1`, en la tarjeta **Changes** del [panel de detalles de la sesión](#see-session-details). También puedes hacer clic en **Changes** en la barra de título de la sesión.

189 

190Cuando Claude cambia archivos, aparece un indicador de estadísticas del diff que muestra el número de líneas agregadas y eliminadas, como `+12 -1`. Haz clic en este indicador para abrir el visor de diff, que muestra una lista de archivos a la izquierda y los cambios de cada archivo a la derecha.

191 196 

192Para comentar líneas específicas, haz clic en cualquier línea del diff para abrir un cuadro de comentarios. Escribe tu comentario y presiona **Enter** para agregarlo. Después de agregar comentarios a varias líneas, envía todos los comentarios a la vez:197Para comentar líneas específicas, haz clic en cualquier línea del diff para abrir un cuadro de comentarios. Escribe tu comentario y presiona **Enter** para agregarlo. Después de agregar comentarios a varias líneas, envía todos los comentarios a la vez:

193 198 


213 Monitorear el estado del pull request218 Monitorear el estado del pull request

214</h3>219</h3>

215 220 

216Después de abrir un pull request, aparece una barra de estado de CI en la sesión. Claude Code usa la CLI de GitHub para consultar los resultados de las verificaciones y mostrar las fallas.221Para que Claude corrija las verificaciones fallidas, o para que GitHub fusione el pull request, activa **Auto-fix** o **Merge when ready**. Después de abrir un pull request, aparece en la tarjeta **Changes** del [panel de detalles de la sesión](#see-session-details) con el estado de sus verificaciones de CI. Abre el menú **⋮** junto a su título:

217 222 

218* **Auto-fix CI & address comments**: cuando está habilitado, Claude intenta automáticamente corregir las verificaciones de CI fallidas leyendo la salida de la falla e iterando. En una sesión local, Claude también atiende los nuevos comentarios de revisión que deja alguien distinto de ti, cuando el autor es el propietario del repositorio, un miembro de la organización, un colaborador o una GitHub App.223* **Auto-fix**: en una sesión local, Claude también atiende los nuevos comentarios de revisión que deja alguien distinto de ti. El autor del comentario tiene que ser el propietario del repositorio, un miembro de la organización, un colaborador o una GitHub App.

219* **Auto-merge when ready**: cuando está habilitado, Claude fusiona el PR una vez que todas las verificaciones pasan. El método de fusión es squash. Habilita primero auto-merge en la [configuración de tu repositorio de GitHub](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-auto-merge-for-pull-requests-in-your-repository); sin esto, Claude no puede fusionar el PR.224* **Merge when ready**: activa el auto-merge de GitHub para el PR. En una sesión local, Desktop solicita una fusión squash a menos que la rama base use una cola de fusión.

225 * **En sesiones SSH y WSL**: **Merge when ready** está deshabilitado, así que activa auto-merge para el pull request en GitHub

226 * **Si el repositorio no permite auto-merge**: **Merge when ready** no se activa, así que primero habilita auto-merge en la [configuración de tu repositorio de GitHub](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-auto-merge-for-pull-requests-in-your-repository)

227* **[Diseño anterior](#check-which-layout-you-have)**: una vez que la sesión tiene un pull request, haz clic en **CI** en su barra de estado.

220 228 

221Para activarlas, haz clic en **CI** en la barra de estado. Para archivar la sesión automáticamente una vez que el PR se fusiona o se cierra, activa [auto-archive](#work-in-parallel-with-sessions) en **Configuración > Claude Code**.229Para archivar la sesión automáticamente una vez que el PR se fusiona o se cierra, activa [auto-archive](#archive-a-session) en **Configuración > Claude Code**.

222 230 

223<Note>231<Note>

224 El monitoreo de PR requiere que la [CLI de GitHub (`gh`)](https://cli.github.com/) esté instalada y autenticada en tu máquina. Si `gh` no está instalado, Desktop te pide que lo instales la primera vez que intentes crear un PR.232 El monitoreo de PR requiere que la [CLI de GitHub (`gh`)](https://cli.github.com/) esté instalada y autenticada en tu máquina. Si `gh` no está instalado, Desktop te pide que lo instales la primera vez que intentes crear un PR.


235Para trabajar en múltiples pantallas, extrae un panel como el diff o la terminal en su propia ventana, y vuelve a acoplarlo cuando hayas terminado. Claude continúa trabajando en la ventana principal.243Para trabajar en múltiples pantallas, extrae un panel como el diff o la terminal en su propia ventana, y vuelve a acoplarlo cuando hayas terminado. Claude continúa trabajando en la ventana principal.

236 244 

237<Note>245<Note>

238 El diseño de paneles, la terminal, el editor de archivos y los modos de vista de esta sección requieren Claude Desktop v1.2581.0 o posterior. Abre **Claude → Check for Updates** en macOS o **Help → Check for Updates** en Windows para actualizar.246 El diseño de paneles, la terminal, el editor de archivos y los modos de vista de esta sección requieren Claude Desktop v1.2581.0 o posterior. Abre **Claude > Check for Updates…** en macOS o **Help > Check for Updates…** en Windows para actualizar.

239</Note>247</Note>

240 248 

249<h3 id="see-session-details">

250 Ver los detalles de la sesión

251</h3>

252 

253El 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.

254 

255<h4 id="hide-or-show-the-session-details-panel">

256 Ocultar o mostrar el panel de detalles de la sesión

257</h4>

258 

259Para ocultar o mostrar el panel, haz clic en **Hide session rail** o **Show session rail** en la barra de título de la sesión, o en el menú **⋮** de la barra cuando la ventana es estrecha. Si aun así no ves el panel, [verifica qué diseño de la pestaña Code tienes](#check-which-layout-you-have).

260 

241<h3 id="run-commands-in-the-terminal">261<h3 id="run-commands-in-the-terminal">

242 Ejecutar comandos en la terminal262 Ejecutar comandos en la terminal

243</h3>263</h3>

244 264 

245La terminal integrada te permite ejecutar comandos junto a tu sesión sin cambiar a otra aplicación. Haz clic en **Terminal** en la barra de título de la sesión o presiona **Ctrl+\`** en macOS o Windows. La terminal se abre en el directorio de trabajo de tu sesión y comparte el mismo entorno que Claude, por lo que comandos como `npm test` o `git status` ven los mismos archivos que Claude está editando. Para abrir una segunda pestaña de terminal, haz clic en **+** en el encabezado del panel de terminal o haz clic con el botón derecho en una carpeta en el chat para elegir **Open in terminal**.265La terminal integrada te permite ejecutar comandos junto a tu sesión sin cambiar a otra aplicación. Haz clic en **Terminal** en la barra de título de la sesión o presiona **Ctrl+\`** en macOS o Windows. La terminal se abre en el directorio de trabajo de tu sesión y comparte el mismo entorno que Claude, por lo que comandos como `npm test` o `git status` ven los mismos archivos que Claude está editando. Para abrir una segunda pestaña de terminal, haz clic en **+** en el encabezado del panel de terminal o haz clic con el botón derecho en una carpeta en el chat para elegir **Open in terminal**.

246 266 

247La terminal está disponible en sesiones locales y [SSH](#ssh-sessions), con una limitación en [máquinas remotas Windows](#windows-remote-machines).267Si una sesión de WSL no tiene terminal, consulta [Si la terminal o los conectores no están disponibles](/docs/es/desktop-wsl#check-for-the-terminal-and-connectors). La terminal está disponible en sesiones locales y [SSH](#ssh-sessions), con una limitación en [máquinas remotas Windows](#windows-remote-machines).

248 268 

249<h3 id="open-and-edit-files">269<h3 id="open-and-edit-files">

250 Abrir y editar archivos270 Abrir y editar archivos

251</h3>271</h3>

252 272 

253Haz clic en una ruta de archivo en el chat o en el visor de diff para abrirlo en el panel de archivos. Las rutas HTML, PDF, de imagen y de video se abren en el [panel de navegador](#preview-your-app) en su lugar. Realiza ediciones puntuales y haz clic en **Save** para guardarlas. Si el archivo cambió en el disco desde que lo abriste, el panel te advierte y te permite sobrescribir o descartar. Haz clic en **Discard** para revertir tus ediciones, o haz clic en la ruta en el encabezado del panel para copiar la ruta absoluta.273Para abrir un archivo que Claude menciona, haz clic en su ruta en el chat.

254 274 

255El panel de archivos está disponible en sesiones locales y SSH. Para sesiones en la nube, pídele a Claude que realice el cambio.275Para editar un archivo tú mismo, usa el [panel de archivos](#arrange-your-workspace):

276 

277* **Sesiones locales**: puedes editar archivos dentro del directorio de trabajo de la sesión, excepto algunos de solo lectura como `.mcp.json` y `.claude/settings.json`. Para cambiar uno de ellos, [ábrelo en otra aplicación](#open-files-in-other-apps).

278* **Sesiones en la nube, SSH y WSL**: el panel de archivos es de solo lectura, así que pídele a Claude que realice las ediciones.

279 

280<h4 id="save-edits-in-the-file-pane">

281 Guardar ediciones en el panel de archivos

282</h4>

283 

284De forma predeterminada, tus ediciones en el panel de archivos se guardan solas, por lo que el panel no muestra ningún botón **Save**. Para guardar tus ediciones tú mismo, desmarca **Auto save** en el menú **⋮** del panel. Con **Auto save** desactivado, haz clic en **Save** después de cambiar un archivo para escribir tus ediciones, o en **Cancel** para revertirlas.

285 

286Si el panel te advierte que el archivo cambió en el disco, haz clic en **Override** para sobrescribir la versión del disco con tus ediciones, o en **Discard** para descartar tus ediciones.

256 287 

257<h3 id="open-files-in-other-apps">288<h3 id="open-files-in-other-apps">

258 Abrir archivos en otras aplicaciones289 Abrir archivos en otras aplicaciones


283 Atajos de teclado314 Atajos de teclado

284</h3>315</h3>

285 316 

286Presiona **Cmd+/** en macOS o **Ctrl+/** en Windows para ver todos los atajos disponibles en la pestaña Code. En Windows, usa **Ctrl** en lugar de **Cmd** para los atajos a continuación. El cambio entre sesiones, el alternador de terminal y el alternador de modo de vista usan **Ctrl** en todas las plataformas.317Presiona **Cmd+/** en macOS o **Ctrl+/** en Windows para ver todos los atajos disponibles en la pestaña Code. La tabla de esta sección muestra las teclas de macOS. En Windows y Linux, cambia estas teclas:

318 

319* **Cmd+Option**: presiona **Alt**

320* **Cmd**: presiona **Ctrl**

321 

322El cambio entre sesiones, el alternador de terminal y el alternador de modo de vista usan **Ctrl** en todas las plataformas.

287 323 

288| Atajo | Acción |324| Atajo | Acción |

289| - | - |325| - | - |

290| `Cmd` `/` | Mostrar atajos de teclado |326| `Cmd` `/` | Mostrar atajos de teclado |

291| `Cmd` `N` | Nueva sesión |327| `Cmd` `N` | Nueva sesión |

328| `Cmd` `Option` `1`–`9` | En la pantalla de nueva sesión del [diseño actual](#check-which-layout-you-have), seleccionar un entorno |

329| `Cmd` `Option` `0` | En la pantalla de nueva sesión del diseño actual, abrir el [diálogo **New environment**](#create-a-saved-environment) |

292| `Cmd` `W` | Cerrar sesión |330| `Cmd` `W` | Cerrar sesión |

293| `Ctrl` `Tab` / `Ctrl` `Shift` `Tab` | Sesión siguiente o anterior |331| `Ctrl` `Tab` / `Ctrl` `Shift` `Tab` | Sesión siguiente o anterior |

294| `Cmd` `Shift` `]` / `Cmd` `Shift` `[` | Sesión siguiente o anterior |332| `Cmd` `Shift` `]` / `Cmd` `Shift` `[` | Sesión siguiente o anterior |


404 Trabajar en paralelo con sesiones442 Trabajar en paralelo con sesiones

405</h3>443</h3>

406 444 

407Haz clic en **+ New session** en la barra lateral, o presiona **Cmd+N** en macOS o **Ctrl+N** en Windows, para trabajar en múltiples tareas en paralelo. Presiona **Ctrl+Tab** y **Ctrl+Shift+Tab** para recorrer las sesiones de la barra lateral. Para repositorios de Git, selecciona la opción **worktree** junto al nombre de la rama para dar a la sesión su propia copia aislada de tu proyecto usando [Git worktrees](/docs/es/worktrees).445Haz clic en **+ New** en la barra lateral, o presiona **Cmd+N** en macOS o **Ctrl+N** en Windows, para trabajar en múltiples tareas en paralelo. Presiona **Ctrl+Tab** y **Ctrl+Shift+Tab** para recorrer las sesiones de la barra lateral.

408 446 

409Para ver dos sesiones a la vez, mantén presionado **Cmd** en macOS o **Ctrl** en Windows y haz clic en una sesión en la barra lateral. La sesión se abre en un segundo panel junto al que ya tienes abierto. Mientras la división está activa, hacer clic en otra sesión de la barra lateral reemplaza el panel que tenga el foco. Presiona **Cmd+\\** en macOS o **Ctrl+\\** en Windows para cerrar el panel enfocado y volver a una única sesión.447Para ver dos sesiones a la vez, mantén presionado **Cmd** en macOS o **Ctrl** en Windows y haz clic en una sesión en la barra lateral. La sesión se abre en un segundo panel junto al que ya tienes abierto. Mientras la división está activa, hacer clic en otra sesión de la barra lateral reemplaza el panel que tenga el foco. Presiona **Cmd+\\** en macOS o **Ctrl+\\** en Windows para cerrar el panel enfocado y volver a una única sesión.

410 448 

411Los worktrees se almacenan en `<project-root>/.claude/worktrees/` de forma predeterminada. Puedes cambiar esto a un directorio personalizado:449<h4 id="run-a-session-in-its-own-worktree">

450 Ejecutar una sesión en su propio worktree

451</h4>

452 

453En un proyecto que es un repositorio de Git, activa **Worktree** antes de iniciar una sesión para ejecutarla en su propio [Git worktree](/docs/es/worktrees), una copia aislada del proyecto. De forma predeterminada, **Worktree** está desactivado y Claude trabaja directamente en la carpeta del proyecto. Haz clic en el control de la carpeta del proyecto en la [fila debajo del cuadro del prompt](#start-a-session) y activa **Worktree**.

454 

455* **Con un [entorno guardado](#create-a-saved-environment)**: establece **Worktree** cuando crees o edites el entorno

456* **[Diseño anterior](#check-which-layout-you-have)**: selecciona la casilla **worktree** junto al nombre de la rama, encima del cuadro del prompt

457 

458Los worktrees se almacenan en `<project-root>/.claude/worktrees/` de forma predeterminada. Para almacenarlos en un directorio personalizado:

412 459 

413* **Sesiones locales**: establece **Worktree location** en **Configuración > Claude Code**460* **Sesiones locales**: establece **Worktree location** en **Configuración > Claude Code**

414* **Sesiones SSH**: establece **Worktree folder** en la [conexión SSH](#choose-where-ssh-session-worktrees-go)461* **Sesiones SSH**: establece **Worktree folder** en la [conexión SSH](#choose-where-ssh-session-worktrees-go)

415 462 

416También puedes establecer un **Branch prefix** en **Configuración > Claude Code**. Desktop lo antepone a cada nombre de rama de worktree, lo que es útil para mantener organizadas las ramas creadas por Claude.463También puedes establecer un **Branch prefix** en **Configuración > Claude Code**. Desktop lo antepone a cada nombre de rama de worktree, lo que es útil para mantener organizadas las ramas creadas por Claude.

417 464 

418Para eliminar un worktree cuando hayas terminado, pasa el cursor sobre la sesión en la barra lateral y haz clic en el icono de archivar. Para que las sesiones se archiven automáticamente cuando su pull request se fusione o se cierre, activa **Auto-archive after PR merge or close** en **Configuración > Claude Code**. Auto-archive solo se aplica a sesiones locales que han terminado de ejecutarse.

419 

420Para incluir archivos ignorados por git como `.env` en nuevos worktrees, crea un [archivo `.worktreeinclude`](/docs/es/worktrees#copy-gitignored-files-into-worktrees) en la raíz de tu proyecto. Consulta [Qué comparten los worktrees con el checkout principal](/docs/es/worktrees#what-worktrees-share-with-the-main-checkout) para saber de dónde lee una sesión de worktree la configuración del proyecto, los hooks y los skills.465Para incluir archivos ignorados por git como `.env` en nuevos worktrees, crea un [archivo `.worktreeinclude`](/docs/es/worktrees#copy-gitignored-files-into-worktrees) en la raíz de tu proyecto. Consulta [Qué comparten los worktrees con el checkout principal](/docs/es/worktrees#what-worktrees-share-with-the-main-checkout) para saber de dónde lee una sesión de worktree la configuración del proyecto, los hooks y los skills.

421 466 

422<Note>467<Note>

423 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.468 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.

424</Note>469</Note>

425 470 

426Usa los controles en la parte superior de la barra lateral para filtrar sesiones por estado, proyecto o entorno, y para agrupar sesiones por proyecto. Para renombrar una sesión, haz clic en el título de la sesión en la barra de herramientas en la parte superior de la sesión activa.471<h3 id="add-folders-to-a-session">

472 Agregar carpetas a una sesión

473</h3>

474 

475Agrega carpetas antes de que la sesión comience o mientras se ejecuta:

476 

477* **Antes de que comience una sesión local**: agrega las carpetas en **Folders** cuando [crees un entorno guardado](#create-a-saved-environment) o edites uno, y luego [inicia la sesión desde ese entorno guardado](#use-edit-or-remove-a-saved-environment).

478* **Mientras se ejecuta una sesión local o [SSH](#ssh-sessions)**: haz clic en **+** junto al cuadro del prompt y selecciona **Add folder**. Claude trabaja directamente en esa carpeta, sin [worktree](#run-a-session-in-its-own-worktree).

479 

480<h3 id="archive-a-session">

481 Archivar una sesión

482</h3>

483 

484Antes de archivar una sesión cuyo worktree tiene cambios sin commit, consulta [Conservar los cambios sin commit cuando se archiva una sesión](#keep-uncommitted-changes-when-a-session-is-archived). Para archivar una sesión, pasa el cursor sobre ella en la barra lateral, abre su menú y selecciona **Archive**. La sesión se mueve a tus [sesiones archivadas](#organize-and-find-sessions).

485 

486Para que las sesiones se archiven automáticamente cuando su pull request se fusione o se cierre, activa **Auto-archive after PR merge or close** en **Configuración > Claude Code**. Las sesiones en la nube y las sesiones que todavía se están ejecutando no se archivan automáticamente.

487 

488<h4 id="keep-uncommitted-changes-when-a-session-is-archived">

489 Conservar los cambios sin commit cuando se archiva una sesión

490</h4>

491 

492Puedes perder los cambios sin commit del worktree de una sesión cuando la sesión se archiva, así que primero haz commit de lo que quieras conservar:

493 

494* **Si Desktop pregunta por los cambios**: selecciona **Archive anyway** para descartarlos, o cancela y haz commit de ellos

495* **Si los únicos cambios son archivos sin seguimiento**: haz commit de los que quieras conservar antes de que se fusione un pull request que Claude abrió en la sesión, porque entonces Desktop puede eliminarlos sin preguntar

496* **En cualquier otro caso**: el worktree permanece en el disco con sus cambios. Para una sesión local, Desktop elimina ambos unos 30 días después de que la sesión se archive o de la última vez que la abras, lo que ocurra más tarde. Para conservar los cambios, abre la sesión desde la [pestaña **Archived**](#organize-and-find-sessions) y selecciona **Unarchive**

497 

498<h3 id="organize-and-find-sessions">

499 Organizar y encontrar sesiones

500</h3>

501 

502Agrupas, ordenas y encuentras sesiones desde un icono en la lista de sesiones de la barra lateral:

503 

504* **Diseño actual**: pasa el cursor sobre un encabezado de la lista de sesiones para mostrar el icono **Group and sort** y luego haz clic en él. Para encontrar sesiones archivadas, selecciona **View all**, la última fila del menú, y luego abre la pestaña **Archived**.

505* **[Diseño anterior](#check-which-layout-you-have)**: el icono **Filter** se muestra sin pasar el cursor. Haz clic en él para organizar la lista con **Group by** o **Sort by**. Para mostrar las sesiones archivadas, selecciona **Status** y luego **Archived**.

506 

507Para renombrar una sesión, ábrela y haz clic en el título de la sesión en la barra de título.

508 

509<h3 id="check-and-free-up-context">

510 Verificar y liberar contexto

511</h3>

427 512 

428Para verificar el uso del contexto, consulta [Verificar uso](#check-usage). Cuando el contexto se llena, Claude resume automáticamente la conversación y continúa trabajando. También puedes escribir `/compact` para activar el resumen antes y liberar espacio de contexto. Consulta [la ventana de contexto](/docs/es/how-claude-code-works#the-context-window) para obtener detalles sobre cómo funciona la compactación.513Para verificar el uso del contexto, consulta [Verificar uso](#check-usage). Cuando el contexto se llena, Claude resume automáticamente la conversación y continúa trabajando. También puedes escribir `/compact` para activar el resumen antes y liberar espacio de contexto. Consulta [la ventana de contexto](/docs/es/how-claude-code-works#the-context-window) para obtener detalles sobre cómo funciona la compactación.

429 514 

515<h3 id="get-notified-when-a-session-finishes">

516 Recibir una notificación cuando termina una sesión

517</h3>

518 

430La aplicación de escritorio envía una notificación del sistema operativo cuando una sesión de Code termina una tarea y no estás viendo esa sesión en ese momento. Para sesiones que pertenecen a un [proyecto](/docs/es/claude-projects#see-what-needs-you-in-overview), recibes en su lugar las notificaciones del proyecto.519La aplicación de escritorio envía una notificación del sistema operativo cuando una sesión de Code termina una tarea y no estás viendo esa sesión en ese momento. Para sesiones que pertenecen a un [proyecto](/docs/es/claude-projects#see-what-needs-you-in-overview), recibes en su lugar las notificaciones del proyecto.

431 520 

432<h3 id="ask-a-side-question-without-derailing-the-session">521<h3 id="ask-a-side-question-without-derailing-the-session">


451 Trabajar entre sesiones540 Trabajar entre sesiones

452</h3>541</h3>

453 542 

454Claude puede enumerar tus otras sesiones de la pestaña Code, leer qué ha estado haciendo cada una y enviar mensajes entre ellas. Pregunta en lenguaje natural: "¿qué sesión tocó la refactorización de autenticación?", "¿a qué conclusión llegó la sesión de API?" o "dile a la sesión de pagos que el esquema cambió". También puedes pedir a Claude que renombre o archive una sesión. Claude archiva una sesión de la misma manera que lo hace el icono de archivar de la barra lateral, así que pídele que limpie las sesiones cuyos PR se han fusionado.543Claude puede enumerar tus otras sesiones de la pestaña Code, leer qué ha estado haciendo cada una y enviar mensajes entre ellas. Pregunta en lenguaje natural: "¿qué sesión tocó la refactorización de autenticación?", "¿a qué conclusión llegó la sesión de API?" o "dile a la sesión de pagos que el esquema cambió".

544 

545También puedes pedir a Claude que renombre o archive una sesión. Por ejemplo, pídele que archive las sesiones cuyos PR se han fusionado.

455 546 

456A través de esta superficie, Claude ve solo las sesiones que la aplicación de escritorio ejecuta por sí misma: sesiones locales, [SSH](#ssh-sessions) y [WSL](/docs/es/desktop-wsl) en la pestaña Code. Claude no ve sesiones en la nube, ni sesiones que iniciaste desde la CLI de la terminal o la extensión de VS Code, incluso en worktrees del mismo proyecto, así que con nueve worktrees de terminal abiertos y dos sesiones de escritorio, Claude, respondiendo en una de ellas, reporta la otra sesión de escritorio. Claude nunca enumera la sesión desde la que estás preguntando. De forma predeterminada, ve las 20 sesiones con actividad más reciente y omite las sesiones archivadas a menos que las solicites. [La mensajería entre sesiones](/docs/es/cross-session-messaging) permite por separado que Claude envíe mensajes a [tus otras sesiones de Claude Code](/docs/es/cross-session-messaging#see-which-sessions-claude-can-reach), incluidas las sesiones de terminal.547A través de esta superficie, Claude ve solo las sesiones que la aplicación de escritorio ejecuta por sí misma: sesiones locales, [SSH](#ssh-sessions) y [WSL](/docs/es/desktop-wsl) en la pestaña Code. Claude no ve sesiones en la nube, ni sesiones que iniciaste desde la CLI de la terminal o la extensión de VS Code, incluso en worktrees del mismo proyecto, así que con nueve worktrees de terminal abiertos y dos sesiones de escritorio, Claude, respondiendo en una de ellas, reporta la otra sesión de escritorio. Claude nunca enumera la sesión desde la que estás preguntando. De forma predeterminada, ve las 20 sesiones con actividad más reciente y omite las sesiones archivadas a menos que las solicites. [La mensajería entre sesiones](/docs/es/cross-session-messaging) permite por separado que Claude envíe mensajes a [tus otras sesiones de Claude Code](/docs/es/cross-session-messaging#see-which-sessions-claude-can-reach), incluidas las sesiones de terminal.

457 548 


470 Ejecutar tareas de larga duración en la nube561 Ejecutar tareas de larga duración en la nube

471</h3>562</h3>

472 563 

473Para refactorizaciones grandes, suites de pruebas, migraciones u otras tareas de larga duración, selecciona **Cloud** en lugar de **Local** al iniciar una sesión. Las sesiones en la nube se ejecutan en infraestructura administrada por Anthropic de forma predeterminada y continúan incluso si cierras la aplicación o apagas tu computadora. Regresa en cualquier momento para ver el progreso o dirigir a Claude en otra dirección. También puedes monitorear sesiones en la nube desde [claude.ai/code](https://claude.ai/code) o la [aplicación móvil de Claude](/docs/es/mobile).564Para refactorizaciones grandes, suites de pruebas, migraciones u otras tareas de larga duración, selecciona un entorno en **Cloud** en el [selector de entorno](#start-a-session) al iniciar una sesión. Las sesiones en la nube se ejecutan en infraestructura administrada por Anthropic de forma predeterminada y continúan incluso si cierras la aplicación o apagas tu computadora. Regresa en cualquier momento para ver el progreso o dirigir a Claude en otra dirección. También puedes monitorear sesiones en la nube desde [claude.ai/code](https://claude.ai/code) o la [aplicación móvil de Claude](/docs/es/mobile).

565 

566Las sesiones en la nube también admiten múltiples repositorios. Elige los repositorios:

474 567 

475Las sesiones en la nube también admiten múltiples repositorios. Después de seleccionar un entorno en la nube, haz clic en el botón **+** junto al repositorio seleccionado para agregar más repositorios a la sesión. Cada repositorio tiene su propio selector de rama. Esto es útil para tareas que abarcan múltiples bases de código, como actualizar una biblioteca compartida y sus consumidores.568* **Diseño actual**: en la fila debajo del cuadro del prompt, una vez que selecciones un entorno en la nube.

569* **[Diseño anterior](#check-which-layout-you-have)**: encima del cuadro del prompt. Para agregar otro repositorio, haz clic en **+** junto al seleccionado.

476 570 

477Consulta [Usar Claude Code en la nube](/docs/es/claude-code-on-the-web) para obtener más información sobre cómo funcionan las sesiones en la nube. Cuando un conjunto de trabajo necesita muchas sesiones en la nube, selecciona **Projects** en la barra lateral para crear un [proyecto](/docs/es/claude-projects), donde Claude inicia y da seguimiento a las sesiones por ti desde una sola conversación.571Consulta [Usar Claude Code en la nube](/docs/es/claude-code-on-the-web) para obtener más información sobre cómo funcionan las sesiones en la nube. Cuando un conjunto de trabajo necesita muchas sesiones en la nube, selecciona **Projects** en la barra lateral para crear un [proyecto](/docs/es/claude-projects), donde Claude inicia y da seguimiento a las sesiones por ti desde una sola conversación.

478 572 


500* **Lo activas para esa sesión**: con el interruptor **Remote Control** de la sesión, o escribiendo `/remote-control` en su cuadro del prompt.594* **Lo activas para esa sesión**: con el interruptor **Remote Control** de la sesión, o escribiendo `/remote-control` en su cuadro del prompt.

501* **Se conecta al iniciarse**: las sesiones nuevas se conectan automáticamente mientras **Connect new sessions to Remote Control** está activado en **Configuración > Claude Code**. Si nunca has cambiado ese ajuste, Desktop sigue [`remoteControlAtStartup`](/docs/es/settings-reference#remotecontrolatstartup) en tu configuración de usuario o configuración administrada y, después, el valor predeterminado de tu organización.595* **Se conecta al iniciarse**: las sesiones nuevas se conectan automáticamente mientras **Connect new sessions to Remote Control** está activado en **Configuración > Claude Code**. Si nunca has cambiado ese ajuste, Desktop sigue [`remoteControlAtStartup`](/docs/es/settings-reference#remotecontrolatstartup) en tu configuración de usuario o configuración administrada y, después, el valor predeterminado de tu organización.

502 596 

503Para ver si una sesión está conectada, mira el icono de laptop antes del título de la sesión en la barra de herramientas. El icono se resalta mientras la sesión está conectada o conectándose. Haz clic en él para abrir el interruptor **Remote Control** de la sesión.597Para ver si una sesión está conectada, revisa el interruptor **Remote Control** en la tarjeta **Environment** de su [panel de detalles de la sesión](#see-session-details).

504 598 

505Para que las sesiones no aparezcan en tus otros dispositivos, desactiva Remote Control en el nivel que necesites:599Para que las sesiones no aparezcan en tus otros dispositivos, desactiva Remote Control en el nivel que necesites:

506 600 


538 Conectar herramientas externas632 Conectar herramientas externas

539</h3>633</h3>

540 634 

541Para sesiones locales y [SSH](#ssh-sessions), haga clic en el botón **+** junto al cuadro de solicitud y seleccione **Connectors** para agregar integraciones como Google Calendar, Slack, GitHub, Linear, Notion y más. Puede agregar conectores antes o durante una sesión. El botón **+** no está disponible en sesiones en la nube o WSL, pero [routines](/docs/es/routines) configuran conectores en el momento de la creación de la rutina.635Los conectores son [servidores MCP](/docs/es/mcp) con un flujo de configuración gráfico.

636 

637Haz clic en **+** junto al cuadro de prompt, antes o durante la sesión, para agregar conectores en una sesión local o [SSH](#ssh-sessions) con una cuenta de Claude. Selecciona **Add connectors** para abrir el directorio de conectores. Si el menú muestra **Connectors** en su lugar, selecciónalo y luego **Browse connectors**.

638 

639<Note>

640 Estos casos se tratan en otras páginas:

542 641 

543Para administrar o desconectar conectores, vaya a Configuración → Connectors en la aplicación de escritorio, o seleccione **Manage connectors** desde el menú Connectors en el cuadro de solicitud.642 * **Connectors aparece en gris en una sesión WSL**: consulta [Si la terminal o los conectores no están disponibles](/docs/es/desktop-wsl#check-for-the-terminal-and-connectors)

643 * **Sesiones en la nube**: consulta [Cómo llegan los conectores a Claude Code](/docs/es/mcp#how-connectors-reach-claude-code)

644</Note>

544 645 

545Una vez conectado, Claude puede leer su calendario, enviar mensajes, crear problemas e interactuar con sus herramientas directamente. Puede preguntarle a Claude qué conectores están configurados en su sesión.646Una vez conectado, Claude puede leer tu calendario, enviar mensajes, crear issues e interactuar con tus herramientas directamente. Puedes preguntarle a Claude qué conectores están configurados en tu sesión. Para administrar o desconectar conectores, ve a **Settings > Connectors** en la aplicación de escritorio.

546 647 

547Los conectores son [MCP servers](/docs/es/mcp) con un flujo de configuración gráfico. Úselos para integración rápida con servicios compatibles. Para integraciones no listadas en Connectors, agregue MCP servers manualmente a través de [archivos de configuración](/docs/es/mcp#installing-mcp-servers). También puede [crear conectores personalizados](https://support.claude.com/en/articles/11175166-getting-started-with-custom-connectors-using-remote-mcp).648Para integraciones no listadas en Connectors, agrega servidores MCP manualmente a través de [archivos de configuración](/docs/es/mcp#installing-mcp-servers). También puedes [crear conectores personalizados](https://support.claude.com/en/articles/11175166-getting-started-with-custom-connectors-using-remote-mcp).

548 649 

549<h3 id="use-skills">650<h3 id="use-skills">

550 Usar skills651 Usar skills


564 665 

565[Plugins](/docs/es/plugins/overview) son paquetes reutilizables que agregan skills, agentes, hooks, MCP servers y configuraciones LSP a Claude Code. Puede instalar plugins desde la aplicación de escritorio sin usar la terminal.666[Plugins](/docs/es/plugins/overview) son paquetes reutilizables que agregan skills, agentes, hooks, MCP servers y configuraciones LSP a Claude Code. Puede instalar plugins desde la aplicación de escritorio sin usar la terminal.

566 667 

567Para sesiones locales y [SSH](#ssh-sessions), haga clic en el botón **+** junto al cuadro de solicitud y seleccione **Plugins** para ver sus plugins instalados y sus skills. Para agregar un plugin, seleccione **Add plugin** del submenú para abrir el navegador de plugins, que muestra plugins disponibles desde sus [marketplaces](/docs/es/plugins/overview) configurados incluyendo el marketplace oficial de Anthropic. Seleccione **Manage plugins** para habilitar, deshabilitar o desinstalar plugins.668En una sesión local o una [sesión SSH](#ssh-sessions), haz clic en **+** junto al cuadro de prompt y selecciona **Add plugins** para abrir el navegador de plugins. Si el menú muestra **Plugins** en su lugar, selecciónalo y luego **Browse plugins**, o **Manage plugins** para habilitar, deshabilitar o desinstalar plugins.

568 669 

569Puede limitar plugins a su cuenta de usuario, un proyecto específico o solo locales. Si su organización gestiona plugins centralmente, esos plugins están disponibles en sesiones de escritorio de la misma manera que en la CLI, excepto los que la aplicación de escritorio [retiene bajo `disableSideloadFlags`](/docs/es/settings-reference#disablesideloadflags).670Puede limitar plugins a su cuenta de usuario, un proyecto específico o solo locales. Si su organización gestiona plugins centralmente, esos plugins están disponibles en sesiones de escritorio de la misma manera que en la CLI, excepto los que la aplicación de escritorio [retiene bajo `disableSideloadFlags`](/docs/es/settings-reference#disablesideloadflags).

570 671 


632| `runtimeArgs` | string\[] | Argumentos pasados a `runtimeExecutable`, como `["run", "dev"]` |733| `runtimeArgs` | string\[] | Argumentos pasados a `runtimeExecutable`, como `["run", "dev"]` |

633| `port` | number | El puerto en el que escucha su servidor. Por defecto es 3000 |734| `port` | number | El puerto en el que escucha su servidor. Por defecto es 3000 |

634| `cwd` | string | Directorio de trabajo relativo a la raíz de su proyecto. Por defecto es la raíz del proyecto. Use `${workspaceFolder}` para hacer referencia a la raíz del proyecto explícitamente |735| `cwd` | string | Directorio de trabajo relativo a la raíz de su proyecto. Por defecto es la raíz del proyecto. Use `${workspaceFolder}` para hacer referencia a la raíz del proyecto explícitamente |

635| `env` | object | Variables de entorno adicionales como pares clave-valor, como `{ "NODE_ENV": "development" }`. No ponga secretos aquí ya que este archivo se confirma en su repositorio. Para pasar secretos a su servidor de desarrollo, establézcalos en el [editor de entorno local](#local-sessions) en su lugar. |736| `env` | object | Variables de entorno adicionales como pares clave-valor, como `{ "NODE_ENV": "development" }`. No pongas secretos aquí ya que este archivo se confirma en tu repositorio. Para secretos, consulta [Establecer variables de entorno para servidores de desarrollo](#set-environment-variables-for-dev-servers). |

636| `autoPort` | boolean | Cómo manejar conflictos de puerto. Consulte [Conflictos de puerto](#port-conflicts) |737| `autoPort` | boolean | Cómo manejar conflictos de puerto. Consulte [Conflictos de puerto](#port-conflicts) |

637| `program` | string | Un script a ejecutar con `node`. Consulte [cuándo usar `program` vs `runtimeExecutable`](#when-to-use-program-vs-runtimeexecutable) |738| `program` | string | Un script a ejecutar con `node`. Consulte [cuándo usar `program` vs `runtimeExecutable`](#when-to-use-program-vs-runtimeexecutable) |

638| `args` | string\[] | Argumentos pasados a `program`. Solo se usa cuando `program` está establecido |739| `args` | string\[] | Argumentos pasados a `program`. Solo se usa cuando `program` está establecido |


795* **SSH**: se ejecuta en una máquina remota a la que te conectas a través de SSH, como tus propios servidores, máquinas virtuales en la nube o contenedores de desarrollo. Una tarea en ejecución puede [seguir mientras Desktop está desconectado](#keep-a-task-running-while-desktop-is-disconnected), pero con una cuenta de Claude puede detenerse cuando su inicio de sesión expira.896* **SSH**: se ejecuta en una máquina remota a la que te conectas a través de SSH, como tus propios servidores, máquinas virtuales en la nube o contenedores de desarrollo. Una tarea en ejecución puede [seguir mientras Desktop está desconectado](#keep-a-task-running-while-desktop-is-disconnected), pero con una cuenta de Claude puede detenerse cuando su inicio de sesión expira.

796* **WSL** (Windows): se ejecuta dentro de una [distribución WSL 2](/docs/es/desktop-wsl) en su máquina, utilizando su cadena de herramientas Linux y rutas nativas897* **WSL** (Windows): se ejecuta dentro de una [distribución WSL 2](/docs/es/desktop-wsl) en su máquina, utilizando su cadena de herramientas Linux y rutas nativas

797 898 

899<h3 id="create-a-saved-environment">

900 Crear un entorno guardado

901</h3>

902 

903Un entorno guardado es una entrada en el [selector de entorno](#start-a-session) que registra dónde se ejecuta Claude, para que puedas iniciar sesiones posteriores allí. Un entorno local o SSH también contiene las carpetas en las que trabaja Claude. Los entornos locales y SSH guardados [requieren Claude Desktop v2.37337.0 o posterior](#check-which-layout-you-have).

904 

905<Steps>

906 <Step title="Abre el diálogo New environment">

907 Abre el selector de entorno debajo del cuadro del prompt y selecciona **New environment** al final de su menú.

908 </Step>

909 

910 <Step title="Elige dónde se ejecuta Claude">

911 Selecciona la pestaña **Local**, **SSH** o [**Cloud**](#cloud-sessions) y completa el formulario de esa pestaña. En la pestaña **SSH**, elige una [conexión](#ssh-sessions) y una carpeta en la máquina remota.

912 </Step>

913 

914 <Step title="Guarda el entorno">

915 Selecciona **Create environment**, o **Add environment** en la pestaña **Cloud**.

916 </Step>

917</Steps>

918 

919<h4 id="environments-that-desktop-creates-for-you">

920 Entornos que Desktop crea por ti

921</h4>

922 

923Si el selector de entorno muestra entornos locales o SSH que no creaste, Desktop los creó por ti. La primera vez que abres la pestaña Code en el [diseño actual](#check-which-layout-you-have), Desktop crea hasta ocho entornos. Los entornos provienen de las carpetas locales y SSH que más usaste en el último mes. Puedes [editarlos o eliminarlos](#use-edit-or-remove-a-saved-environment).

924 

925<h4 id="use-edit-or-remove-a-saved-environment">

926 Usar, editar o eliminar un entorno guardado

927</h4>

928 

929Busca la entrada del entorno en el [selector de entorno](#start-a-session):

930 

931* **Iniciar una sesión**: selecciona la entrada.

932* **Editar o eliminar**: pasa el cursor sobre la entrada y haz clic en el ícono de engranaje. Para eliminar un entorno local o SSH, haz clic en **Delete environment** en **Edit environment**.

933* **Archivar entornos en la nube**: consulta [Archivar un entorno](/docs/es/cloud-environments#archive-an-environment).

934 

798<h3 id="local-sessions">935<h3 id="local-sessions">

799 Sesiones locales936 Sesiones locales

800</h3>937</h3>

801 938 

802La aplicación de escritorio no siempre hereda tu entorno de shell completo. En macOS, cuando inicias la aplicación desde el Dock o Finder, lee tu perfil de shell, como `~/.zshrc` o `~/.bashrc`, para darle a Claude Code `PATH` y un conjunto fijo de variables de Claude Code, pero no otras variables que exportes allí. En Windows, la aplicación hereda variables de entorno de usuario y sistema pero no lee perfiles de PowerShell.939La aplicación de escritorio no siempre hereda tu entorno de shell completo. En macOS, cuando inicias la aplicación desde el Dock o Finder, lee tu perfil de shell, como `~/.zshrc` o `~/.bashrc`, para darle a Claude Code `PATH` y un conjunto fijo de variables de Claude Code, pero no otras variables que exportes allí. En Windows, la aplicación hereda variables de entorno de usuario y sistema pero no lee perfiles de PowerShell.

803 940 

804Para establecer variables de entorno para sesiones locales y servidores de desarrollo en cualquier plataforma, abra el menú desplegable de entorno en el cuadro de solicitud, pase el cursor sobre **Local** y haga clic en el icono de engranaje para abrir el editor de entorno local. Las variables que guarda aquí se almacenan cifradas en su máquina y se aplican a cada sesión local y servidor de vista previa que inicia. También puede agregar variables a la clave `env` en su archivo `~/.claude/settings.json`, aunque estas llegan solo a sesiones de Claude y no a servidores de desarrollo. Consulte [variables de entorno](/docs/es/env-vars) para la lista completa de variables compatibles.941<h4 id="set-environment-variables-for-local-sessions">

942 Establecer variables de entorno para sesiones locales

943</h4>

944 

945Agrega las variables a un entorno local guardado e inicia tus sesiones desde él. Desktop [establece algunas variables por sí mismo](#environment-variables-desktop-sets-itself), como `API_TIMEOUT_MS`, y tus sesiones reciben su valor para esas en lugar del tuyo.

946 

947<Note>

948 Si tu selector de entorno está encima del cuadro del prompt, tienes el [diseño anterior](#check-which-layout-you-have), que no tiene entornos locales guardados. Usa en su lugar el [editor de entorno local](#use-the-local-environment-editor).

949</Note>

950 

951<Steps>

952 <Step title="Abre el formulario del entorno">

953 Abre [**New environment**](#create-a-saved-environment) o [**Edit environment**](#use-edit-or-remove-a-saved-environment).

954 </Step>

955 

956 <Step title="Ingresa las variables">

957 Selecciona **Environment variables**, ingresa un `KEY=value` por línea y selecciona **Done**.

958 </Step>

959 

960 <Step title="Guarda el entorno">

961 Selecciona **Create environment** o **Save**.

962 </Step>

963</Steps>

964 

965Solo las sesiones que inicias desde ese entorno reciben las variables.

966 

967Para establecer una variable para todas las sesiones locales, agrégala a la [clave `env`](/docs/es/env-vars#set-variables-in-settings-files) de tu archivo `~/.claude/settings.json`. Claude Code [ignora el valor](/docs/es/settings-reference#how-env-values-interact-with-your-shell) si esa variable ya está en el entorno con el que Desktop inicia la sesión. Consulta [variables de entorno](/docs/es/env-vars) para ver la lista completa de variables admitidas.

968 

969<h4 id="set-environment-variables-for-dev-servers">

970 Establecer variables de entorno para servidores de desarrollo

971</h4>

972 

973Para darle un secreto a un servidor de desarrollo sin confirmarlo en [`launch.json`](#configure-preview-servers), establécelo en uno de estos lugares y luego reinicia Desktop:

974 

975* **macOS y Linux**: expórtalo en tu perfil del shell

976* **Windows**: agrégalo a tus variables de entorno de usuario o del sistema

977* **Cualquier plataforma**: guárdalo en el [editor de entorno local](#use-the-local-environment-editor), si puedes abrirlo

978 

979Los servidores de desarrollo no reciben las variables que agregas a un [entorno guardado](#create-a-saved-environment) ni a `~/.claude/settings.json`.

980 

981<h4 id="use-the-local-environment-editor">

982 Usar el editor de entorno local

983</h4>

984 

985Para abrir el editor de entorno local, haz clic en el ícono de engranaje de la entrada de tu propia computadora, no en el de un entorno guardado:

986 

987* **Selector debajo del cuadro del prompt**: pasa el cursor sobre la entrada de tu computadora, la primera bajo **Local**. Si aparece un ícono de engranaje, haz clic en él. Si no aparece, el editor no está disponible, así que establece la variable para [sesiones locales](#set-environment-variables-for-local-sessions) o [servidores de desarrollo](#set-environment-variables-for-dev-servers) de otra forma.

988* **Selector encima del cuadro del prompt**: pasa el cursor sobre **Local** y haz clic en el ícono de engranaje

989 

990Ingresa un `KEY=value` por línea y selecciona **Save changes**. Las variables que guardas aquí se almacenan cifradas en tu máquina. Las sesiones locales las reciben, excepto cualquier variable que [Desktop establece por sí mismo](#environment-variables-desktop-sets-itself), como `API_TIMEOUT_MS`. Reinicia Desktop para darles tus variables a los servidores de desarrollo.

991 

992<h4 id="environment-variables-desktop-sets-itself">

993 Variables de entorno que Desktop establece por sí mismo

994</h4>

995 

996Si estableces `API_TIMEOUT_MS` o `ANTHROPIC_BASE_URL` y nada cambió en tus sesiones locales, es porque Desktop establece esas [variables](/docs/es/env-vars#variables), entre otras, por sí mismo. Una sesión local recibe el valor de Desktop tanto si estableces el tuyo en tu perfil del shell, en tus variables de usuario o del sistema de Windows, en el editor de entorno local o en un entorno guardado. Mover el tuyo a un archivo de configuración no ayuda, porque Claude Code [ignora ese valor](/docs/es/settings-reference#how-env-values-interact-with-your-shell) en una sesión local.

997 

998* `API_TIMEOUT_MS`: una sesión local recibe `900000`, que equivale a 15 minutos. Para un tiempo de espera más largo, [instala la CLI de Claude Code](/docs/es/quickstart) y úsala en lugar de Desktop. [Establece la variable en tu shell](/docs/es/env-vars#set-variables-in-your-shell) y ejecuta `claude` en tu terminal.

999* `ANTHROPIC_BASE_URL`: una sesión local recibe el host de la API de Anthropic cuando iniciaste sesión con una cuenta de Claude. Para usar un gateway, configura en su lugar la [configuración de inferencia de terceros](/docs/es/llm-gateway-connect#desktop-app) de Desktop.

1000 

1001<h4 id="turn-off-extended-thinking">

1002 Desactivar el pensamiento extendido

1003</h4>

805 1004 

806El [pensamiento extendido](/docs/es/model-config#extended-thinking) está habilitado de forma predeterminada, lo que mejora el rendimiento en tareas de razonamiento complejo pero usa tokens adicionales. En la API de Anthropic, establece `MAX_THINKING_TOKENS` en `0` en el editor de entorno local para desactivar el pensamiento; esto no tiene efecto en Opus 5.5, Sonnet 5.5, Haiku 5.5 o los modelos Fable, que siempre usan pensamiento extendido. Con el pensamiento desactivado en la API de Anthropic, Claude Code envía esfuerzo `high` en lugar de un nivel superior a modelos que sabe que [no aceptan esa combinación](/docs/es/errors#effort-isnt-available-with-thinking-turned-off), como Opus 5.1005El [pensamiento extendido](/docs/es/model-config#extended-thinking) está habilitado de forma predeterminada, lo que mejora el rendimiento en tareas de razonamiento complejas, pero usa tokens adicionales. Para desactivarlo, establece `MAX_THINKING_TOKENS` en `0` en un [entorno local guardado](#set-environment-variables-for-local-sessions) o en el [editor de entorno local](#use-the-local-environment-editor). El pensamiento se desactiva entonces en la API de Anthropic, excepto en Opus 5.5, Sonnet 5.5, Haiku 5.5 y los modelos Fable, que siempre usan pensamiento extendido.

1006 

1007En Opus 5, además selecciona el esfuerzo `high` o inferior antes de iniciar la sesión. En el [diseño actual](#check-which-layout-you-have), abre el selector de modelo y selecciona un nivel en **Effort**. Si iniciaste la sesión con un nivel más alto, inicia una nueva en `high` o inferior.

1008 

1009<h4 id="fixed-thinking-budgets">

1010 Presupuestos de pensamiento fijos

1011</h4>

807 1012 

808En modelos con [razonamiento adaptativo](/docs/es/model-config#adjust-effort-level), Claude Code ignora el número en sí de un valor positivo de `MAX_THINKING_TOKENS` porque el razonamiento adaptativo controla la profundidad del pensamiento en su lugar. En Opus 4.6 y Sonnet 4.6, establece `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` en `1` para usar un presupuesto de pensamiento fijo; los modelos Fable, Sonnet 5 y posteriores, Haiku 5.5, y Opus 4.7 y posteriores siempre usan razonamiento adaptativo y no tienen modo de presupuesto fijo.1013En modelos con [razonamiento adaptativo](/docs/es/model-config#adjust-effort-level), Claude Code ignora el número en sí de un valor positivo de `MAX_THINKING_TOKENS` porque el razonamiento adaptativo controla la profundidad del pensamiento en su lugar. En Opus 4.6 y Sonnet 4.6, establece `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` en `1` para usar un presupuesto de pensamiento fijo; los modelos Fable, Sonnet 5 y posteriores, Haiku 5.5, y Opus 4.7 y posteriores siempre usan razonamiento adaptativo y no tienen modo de presupuesto fijo.

809 1014 


811 Sesiones locales en dispositivos administrados1016 Sesiones locales en dispositivos administrados

812</h4>1017</h4>

813 1018 

814Su administrador puede desactivar sesiones locales con la [configuración administrada `disableDesktopLocalSessions`](#managed-settings). Cuando lo haya hecho, **Local** permanece en el menú desplegable de entorno pero está atenuado y no se puede seleccionar, con una información sobre herramientas que dice que su organización lo desactivó, y en Windows la entrada [WSL](/docs/es/desktop-wsl), cuya disponibilidad en dispositivos administrados está [gobernada por separado](/docs/es/admin-setup#wsl-sessions-in-claude-code-desktop), está atenuada de la misma manera. Las nuevas sesiones se establecen de forma predeterminada en la primera conexión SSH si una está configurada, y Desktop muestra un mensaje de que las sesiones locales no están disponibles en este dispositivo si intenta continuar una existente. Elija un entorno [SSH](#ssh-sessions) o [cloud](#cloud-sessions) en su lugar, o póngase en contacto con su equipo de TI.1019Si la entrada de tu computadora aparece atenuada en el selector de entorno, con la información emergente **Disabled by your organization**, tu administrador [desactivó las sesiones locales](#managed-settings). En Windows, la entrada de [WSL](/docs/es/desktop-wsl), cuya disponibilidad en dispositivos administrados se [rige por separado](/docs/es/admin-setup#wsl-sessions-in-claude-code-desktop), aparece atenuada de la misma forma.

1020 

1021Las sesiones nuevas usan de forma predeterminada la primera conexión SSH, si hay una configurada. Si intentas continuar una sesión local existente, Desktop muestra un mensaje que indica que las sesiones locales no están disponibles en este dispositivo. Los [entornos locales guardados](#create-a-saved-environment) muestran este error cuando seleccionas uno: `Couldn’t switch environments: the Local environment isn’t available anymore.` Elige en su lugar un entorno [SSH](#ssh-sessions) o [en la nube](#cloud-sessions), o contacta a tu equipo de TI.

815 1022 

816<h3 id="cloud-sessions">1023<h3 id="cloud-sessions">

817 Sesiones en la nube1024 Sesiones en la nube


819 1026 

820Las sesiones en la nube continúan en segundo plano incluso si cierra la aplicación. El uso cuenta hacia los límites de su [plan de suscripción](/docs/es/costs) sin cargos de computación separados.1027Las sesiones en la nube continúan en segundo plano incluso si cierra la aplicación. El uso cuenta hacia los límites de su [plan de suscripción](/docs/es/costs) sin cargos de computación separados.

821 1028 

822Puede crear entornos en la nube personalizados con diferentes niveles de acceso a la red y variables de entorno. Para administrarlos, abra el menú desplegable de entorno en el cuadro de solicitud y seleccione **Cloud**:1029Para agregar, editar o [archivar](/docs/es/cloud-environments#archive-an-environment) un entorno en la nube, abre el [selector de entorno](#start-a-session):

823 1030 

824* **Agregar un entorno**: seleccione **Add cloud environment**1031* **Agregar un entorno**: selecciona **New environment** al final del menú del selector y luego la pestaña **Cloud** del [diálogo **New environment**](#create-a-saved-environment)

825* **Editar o archivar uno de sus propios entornos**: pase el cursor sobre él y haga clic en el icono de engranaje1032* **Editar o archivar uno de sus propios entornos**: pase el cursor sobre él y haga clic en el icono de engranaje

826 1033 

827Consulte [Configure cloud environments](/docs/es/cloud-environments) para obtener detalles sobre la configuración del acceso a la red y variables de entorno.1034Consulte [Configure cloud environments](/docs/es/cloud-environments) para obtener detalles sobre la configuración del acceso a la red y variables de entorno.


836 Si usas Desktop con un [proveedor externo](/docs/es/third-party-integrations), las sesiones SSH necesitan su propia configuración. Consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).1043 Si usas Desktop con un [proveedor externo](/docs/es/third-party-integrations), las sesiones SSH necesitan su propia configuración. Consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).

837</Note>1044</Note>

838 1045 

839Para agregar una conexión SSH, abre el menú desplegable de entorno en el cuadro de prompt antes de iniciar una sesión, luego selecciona **SSH > Add SSH connection…** y completa los detalles de la conexión:1046Agrega una conexión SSH en el [diálogo **New environment**](#create-a-saved-environment) y luego inicia una sesión en esa conexión. Si una sesión nueva no tiene un selector de entorno debajo del cuadro del prompt, tienes el diseño anterior. Consulta [Comprobar qué diseño tienes](#check-which-layout-you-have).

1047 

1048<Steps>

1049 <Step title="Abre el diálogo New environment">

1050 Antes de iniciar una sesión, abre el selector de entorno debajo del cuadro del prompt y selecciona **New environment** al final de su menú.

1051 </Step>

1052 

1053 <Step title="Agrega la conexión">

1054 En la pestaña **SSH** del diálogo **New environment**, abre la lista **Host**, selecciona **Add SSH connection…** y completa los detalles de la conexión:

840 1055 

841* **Name**: una etiqueta amigable para esta conexión1056 * **Name**: una etiqueta descriptiva para esta conexión.

842* **SSH host**: `user@hostname` o un host definido en `~/.ssh/config`1057 * **SSH host**: `user@hostname` o un host definido en `~/.ssh/config`.

843* **SSH port**: por defecto es 22 si se deja vacío, o usa el puerto de tu configuración SSH1058 * **SSH port**: usa 22 de forma predeterminada si lo dejas vacío, o usa el puerto de tu configuración de SSH.

844* **SSH key (optional)**: ruta a tu clave privada, como `~/.ssh/id_ed25519`. Déjalo vacío para usar tu configuración SSH o tu agente SSH.1059 * **SSH key (optional)**: ruta a tu clave privada, como `~/.ssh/id_ed25519`. Déjalo vacío para usar tu configuración de SSH o tu agente SSH.

845* **Worktree folder**: una carpeta en la máquina remota, como `~/worktrees`, donde las nuevas sesiones crean sus worktrees. Déjalo vacío para usar el [valor predeterminado de la máquina remota](#choose-where-ssh-session-worktrees-go).1060 * **Worktree folder**: una carpeta en la máquina remota, como `~/worktrees`, donde las sesiones nuevas crean sus worktrees. Déjalo vacío para usar el [valor predeterminado de la máquina remota](#choose-where-ssh-session-worktrees-go).

846 1061 

847Una vez agregada, la conexión aparece en **SSH** en el menú desplegable de entorno. Selecciónala para iniciar una sesión en esa máquina. Claude se ejecuta en la máquina remota con acceso a sus archivos y herramientas.1062 Luego selecciona **Add SSH connection**.

1063 </Step>

1064 

1065 <Step title="Inicia una sesión en la conexión">

1066 Selecciona una carpeta en la máquina remota y haz clic en **Create environment**. Conservas la máquina y la carpeta juntas como un [entorno guardado](#create-a-saved-environment) para sesiones posteriores. Desktop lo selecciona para la sesión nueva, así que escribe tu tarea y presiona **Enter**.

1067 </Step>

1068</Steps>

848 1069 

849La máquina remota puede ejecutar Linux, macOS o [Windows](#windows-remote-machines). Desktop instala Claude Code en la máquina remota automáticamente la primera vez que te conectas. Una vez conectado, las sesiones SSH admiten modos de permisos, conectores, plugins y servidores MCP.1070La máquina remota puede ejecutar Linux, macOS o [Windows](#windows-remote-machines). Desktop instala Claude Code en la máquina remota automáticamente la primera vez que te conectas. Una vez conectado, las sesiones SSH admiten modos de permisos, conectores, plugins y servidores MCP.

850 1071 


1175 1396 

1176Las ediciones de archivos y algunas herramientas pueden fallar mientras Desktop está desconectado. Si la tarea las necesita, mantén Desktop conectado:1397Las ediciones de archivos y algunas herramientas pueden fallar mientras Desktop está desconectado. Si la tarea las necesita, mantén Desktop conectado:

1177 1398 

1178* **Worktrees**: en una sesión que usa un [worktree](#work-in-parallel-with-sessions), Desktop revisa cada edición de archivo antes de que Claude la haga. Mientras Desktop está desconectado, cada edición espera unos 30 segundos y luego falla. Los comandos de shell siguen ejecutándose. En una máquina remota Linux o macOS, [las ediciones pueden seguir funcionando](#worktree-edits-while-disconnected). Si no estás seguro, inicia la sesión sin un worktree.1399* **Worktrees**: en una sesión que usa un [worktree](#run-a-session-in-its-own-worktree), Desktop comprueba cada edición de archivo antes de que Claude la realice. Mientras Desktop está desconectado, cada edición espera unos 30 segundos y luego falla. Los comandos del shell siguen ejecutándose. En una máquina remota Linux o macOS, [las ediciones pueden seguir funcionando](#worktree-edits-while-disconnected). Si no estás seguro, inicia la sesión sin un worktree.

1179* **Restricciones de carpetas**: si tu organización restringe qué carpetas pueden usar las sesiones, Desktop revisa cada lectura, búsqueda y edición de archivos, con o sin worktree. Mientras Desktop está desconectado, cada una espera hasta 10 minutos y luego falla.1400* **Restricciones de carpetas**: si tu organización restringe qué carpetas pueden usar las sesiones, Desktop revisa cada lectura, búsqueda y edición de archivos, con o sin worktree. Mientras Desktop está desconectado, cada una espera hasta 10 minutos y luego falla.

1180* **Conectores**: los [conectores](#connect-external-tools) y otras herramientas que proporciona Desktop se ejecutan a través de Desktop, por lo que mientras está desconectado cada llamada falla después de unos 30 segundos1401* **Conectores**: los [conectores](#connect-external-tools) y otras herramientas que proporciona Desktop se ejecutan a través de Desktop, por lo que mientras está desconectado cada llamada falla después de unos 30 segundos

1181* **Flujos de trabajo**: Desktop revisa cada nuevo [flujo de trabajo](/docs/es/workflows) antes de que comience, por lo que mientras Desktop está desconectado uno nuevo espera hasta 10 minutos y luego falla1402* **Flujos de trabajo**: Desktop revisa cada nuevo [flujo de trabajo](/docs/es/workflows) antes de que comience, por lo que mientras Desktop está desconectado uno nuevo espera hasta 10 minutos y luego falla


1264 Elegir dónde van los worktrees de las sesiones SSH1485 Elegir dónde van los worktrees de las sesiones SSH

1265</h4>1486</h4>

1266 1487 

1267A menos que tu organización restrinja qué carpetas pueden usar las sesiones, las nuevas sesiones SSH crean sus [worktrees](#work-in-parallel-with-sessions) en la primera de estas opciones que esté establecida:1488A menos que tu organización restrinja qué carpetas pueden usar las sesiones, las sesiones SSH nuevas crean sus [worktrees](#run-a-session-in-its-own-worktree) en la primera de estas ubicaciones que esté establecida:

1268 1489 

12691. **Worktree folder** en la conexión SSH14901. **Worktree folder** en la conexión SSH

12702. [`worktree.location`](/docs/es/settings-reference#worktree-location) en `~/.claude/settings.json` en la máquina remota14912. [`worktree.location`](/docs/es/settings-reference#worktree-location) en `~/.claude/settings.json` en la máquina remota


1272 1493 

1273Cada proyecto obtiene su propia subcarpeta en la carpeta que establezcas, por lo que con `~/worktrees` la ruta de un worktree es `~/worktrees/<project>-<id>/<worktree-name>`. Si la carpeta que estableces está dentro del proyecto, Desktop la ignora para ese proyecto y usa el valor predeterminado. En una [máquina remota Windows](#windows-remote-machines), Desktop siempre usa el valor predeterminado.1494Cada proyecto obtiene su propia subcarpeta en la carpeta que establezcas, por lo que con `~/worktrees` la ruta de un worktree es `~/worktrees/<project>-<id>/<worktree-name>`. Si la carpeta que estableces está dentro del proyecto, Desktop la ignora para ese proyecto y usa el valor predeterminado. En una [máquina remota Windows](#windows-remote-machines), Desktop siempre usa el valor predeterminado.

1274 1495 

1275Para establecer **Worktree folder** en una conexión que agregaste antes o en una que administra tu organización, pasa el cursor sobre ella en el menú desplegable de entorno y haz clic en el icono de engranaje.1496<a id="set-the-worktree-folder-on-an-existing-connection" />

1276 1497 

1277El campo requiere Claude Desktop v1.44121.0 o posterior. Si tu organización restringe qué carpetas pueden usar las sesiones, Desktop oculta el campo y mantiene los worktrees dentro del proyecto.1498<h5 id="set-the-worktree-folder-on-an-existing-connection">

1499 Establecer la carpeta de worktrees en una conexión existente

1500</h5>

1501 

1502Establece **Worktree folder** en la configuración de una conexión que agregaste antes o de una que administra tu organización. El campo requiere Claude Desktop v1.44121.0 o posterior. Si tu organización restringe qué carpetas pueden usar las sesiones, Desktop oculta el campo y mantiene los worktrees dentro del proyecto.

1503 

1504<Steps>

1505 <Step title="Encuentra la conexión">

1506 Abre el [selector de entorno](#start-a-session) y busca la conexión en **SSH**.

1507 </Step>

1508 

1509 <Step title="Abre la configuración de la conexión">

1510 Pasa el cursor sobre la conexión y haz clic en el ícono de engranaje. Si el diálogo que se abre muestra **Edit connection…** junto a **Host**, selecciona **Edit connection…**.

1511 </Step>

1512 

1513 <Step title="Establece la carpeta">

1514 En **Worktree folder**, ingresa una carpeta en la máquina remota, como `~/worktrees`, y selecciona **Save changes**.

1515 </Step>

1516</Steps>

1278 1517 

1279<h4 id="files-and-processes-on-the-remote-machine">1518<h4 id="files-and-processes-on-the-remote-machine">

1280 Archivos y procesos en la máquina remota1519 Archivos y procesos en la máquina remota


1321 Terminar el proceso de una sesión1560 Terminar el proceso de una sesión

1322</h5>1561</h5>

1323 1562 

1324Para terminar el proceso de Claude Code de una sesión, [archiva la sesión](#work-in-parallel-with-sessions) en Desktop mientras Desktop está conectado a la máquina remota. El proceso sigue ejecutándose después de que su tarea termina y después de que cierras Desktop.1563Para terminar el proceso de Claude Code de una sesión, [archiva la sesión](#archive-a-session) en Desktop mientras Desktop está conectado a la máquina remota. El proceso sigue ejecutándose después de que su tarea termina y después de que cierras Desktop.

1325 1564 

1326Antes de archivar una sesión que tiene un worktree, consulta [Trabajar en paralelo con sesiones](#work-in-parallel-with-sessions).1565Antes de archivar una sesión cuyo worktree tiene cambios sin confirmar, consulta [Conservar los cambios sin confirmar cuando se archiva una sesión](#keep-uncommitted-changes-when-a-session-is-archived).

1327 1566 

1328<h5 id="see-which-user-the-processes-run-as">1567<h5 id="see-which-user-the-processes-run-as">

1329 Ver con qué usuario se ejecutan los procesos1568 Ver con qué usuario se ejecutan los procesos


1474 Pre-configurar conexiones SSH para su equipo1713 Pre-configurar conexiones SSH para su equipo

1475</h4>1714</h4>

1476 1715 

1477Los administradores pueden distribuir conexiones SSH a los miembros del equipo estableciendo `sshConfigs` en la [configuración administrada](/docs/es/managed-settings). Las conexiones definidas de esta manera aparecen en el menú desplegable de entorno de cada usuario automáticamente y se muestran como administradas. Los usuarios pueden seleccionarlas y [establecer su propio **Worktree folder**](#choose-where-ssh-session-worktrees-go) para ellas, pero no pueden editar nada más ni eliminarlas en la aplicación.1716Los administradores pueden distribuir conexiones SSH a los miembros del equipo configurando `sshConfigs` en la [configuración administrada](/docs/es/managed-settings).

1717 

1718* **Lo que ven los usuarios**: las conexiones definidas de esta forma aparecen automáticamente en el selector de entorno de cada usuario.

1719* **Lo que pueden cambiar los usuarios**: los usuarios pueden seleccionar una conexión administrada y [establecer su propia **Worktree folder**](#set-the-worktree-folder-on-an-existing-connection) para ella. No pueden editar sus demás campos ni eliminarla en la aplicación.

1478 1720 

1479El siguiente ejemplo pre-configura una única conexión:1721El siguiente ejemplo pre-configura una única conexión:

1480 1722 


1563Para confirmar que la configuración se aplica, revisa la computadora de un desarrollador:1805Para confirmar que la configuración se aplica, revisa la computadora de un desarrollador:

1564 1806 

1565<Steps>1807<Steps>

1566 <Step title="Revisa el menú desplegable de entorno">1808 <Step title="Revisa el selector de entorno">

1567 Cierra y vuelve a abrir Desktop, luego abre el menú desplegable de entorno en el cuadro de prompt. **Local** aparece atenuado y **Shared Dev VM** aparece en **SSH**. Si **Local** sigue disponible, revisa la versión de Desktop, que el archivo sea JSON válido y qué fuente administrada lee la computadora.1809 Cierra y vuelve a abrir Desktop, y luego abre el [selector de entorno](#start-a-session). La configuración se aplicó si muestra:

1810 

1811 * La entrada de esa computadora, en gris

1812 * **Shared Dev VM** bajo **SSH**. Si no aparece ahí, haz clic en la única fila **SSH**, o en **More** al final del grupo.

1813 

1814 Si la entrada de la computadora sigue disponible, busca estas causas:

1815 

1816 * **Versión de Desktop**: actualiza Desktop si es anterior a v1.37937.0.

1817 * **Archivo de configuración administrada**: asegúrate de que el archivo sea JSON válido.

1818 * **Fuente administrada**: asegúrate de que la computadora lea la [fuente administrada](/docs/es/managed-settings#how-claude-code-combines-managed-sources) que contiene las claves.

1568 </Step>1819 </Step>

1569 1820 

1570 <Step title="Agrega un host que no esté en la lista de permitidos">1821 <Step title="Agrega un host que no esté en la lista de permitidos">


1612| `browserExternalPageTools` | establécelo en `"disabled"` para evitar que Claude use herramientas para leer o actuar en páginas externas en el [panel del navegador](#browse-external-sites). Los usuarios aún pueden navegar a sitios externos por sí mismos, y las vistas previas del servidor de desarrollo local no se ven afectadas. |1863| `browserExternalPageTools` | establécelo en `"disabled"` para evitar que Claude use herramientas para leer o actuar en páginas externas en el [panel del navegador](#browse-external-sites). Los usuarios aún pueden navegar a sitios externos por sí mismos, y las vistas previas del servidor de desarrollo local no se ven afectadas. |

1613| `disableMobileSimulatorTools` | establécelo en `true` para bloquear las herramientas de Claude para controlar y capturar dispositivos en el [panel del simulador de iOS](/docs/es/desktop-ios-simulator#turn-off-simulator-access). El panel permanece utilizable para los toques del usuario; solo se elimina el acceso de Claude. El valor debe ser el booleano JSON `true`; la cadena `"true"` se ignora. |1864| `disableMobileSimulatorTools` | establécelo en `true` para bloquear las herramientas de Claude para controlar y capturar dispositivos en el [panel del simulador de iOS](/docs/es/desktop-ios-simulator#turn-off-simulator-access). El panel permanece utilizable para los toques del usuario; solo se elimina el acceso de Claude. El valor debe ser el booleano JSON `true`; la cadena `"true"` se ignora. |

1614| `disableBrowserExternalNavigation` | establécelo en `true` para desactivar completamente la navegación externa en el [panel del navegador](#browse-external-sites). Ni los usuarios ni Claude pueden navegar a sitios externos, y las vistas previas del servidor de desarrollo localhost no se ven afectadas. El valor debe ser el booleano JSON `true`; la cadena `"true"` se ignora. |1865| `disableBrowserExternalNavigation` | establécelo en `true` para desactivar completamente la navegación externa en el [panel del navegador](#browse-external-sites). Ni los usuarios ni Claude pueden navegar a sitios externos, y las vistas previas del servidor de desarrollo localhost no se ven afectadas. El valor debe ser el booleano JSON `true`; la cadena `"true"` se ignora. |

1615| `sshConfigs` | preconfigura [conexiones SSH](#pre-configure-ssh-connections-for-your-team) que aparecen en el menú desplegable de entorno. Los usuarios no pueden eliminar conexiones administradas ni editar nada excepto su propia **Worktree folder**. |1866| `sshConfigs` | preconfigura [conexiones SSH](#pre-configure-ssh-connections-for-your-team) que aparecen en el selector de entorno. Los usuarios no pueden eliminar conexiones administradas ni editar nada excepto su propia **Worktree folder**. |

1616| `sshHostAllowlist` | restringe las [sesiones SSH](#restrict-which-ssh-hosts-users-can-connect-to) a hosts cuyo nombre de host resuelto coincida con uno de estos patrones. Se lee solo desde la configuración administrada. |1867| `sshHostAllowlist` | restringe las [sesiones SSH](#restrict-which-ssh-hosts-users-can-connect-to) a hosts cuyo nombre de host resuelto coincida con uno de estos patrones. Se lee solo desde la configuración administrada. |

1617| `disableDesktopLocalSessions` | establécelo en `true` para desactivar las [sesiones de Code que se ejecutan en el dispositivo](#local-sessions-on-managed-devices), dejando disponibles las sesiones SSH a otros hosts y las sesiones en la nube. El valor debe ser el booleano JSON `true`. Se lee solo desde la configuración administrada. Requiere Claude Desktop v1.37937.0 o posterior. |1868| `disableDesktopLocalSessions` | establécelo en `true` para desactivar las [sesiones de Code que se ejecutan en el dispositivo](#local-sessions-on-managed-devices), dejando disponibles las sesiones SSH a otros hosts y las sesiones en la nube. El valor debe ser el booleano JSON `true`. Se lee solo desde la configuración administrada. Requiere Claude Desktop v1.37937.0 o posterior. |

1618| `disableSshSavedPasswords` | establécelo en `true` para que Desktop deje de ofrecer recordar las contraseñas SSH y deje de usar o mostrar las que guardó anteriormente. Activarlo no las elimina. Se lee solo desde la configuración administrada. Requiere Claude Desktop v1.49585.0 o posterior. |1869| `disableSshSavedPasswords` | establécelo en `true` para que Desktop deje de ofrecer recordar las contraseñas SSH y deje de usar o mostrar las que guardó anteriormente. Activarlo no las elimina. Se lee solo desde la configuración administrada. Requiere Claude Desktop v1.49585.0 o posterior. |


1756 2007 

1757| CLI | Equivalente de Desktop |2008| CLI | Equivalente de Desktop |

1758| - | - |2009| - | - |

1759| `--model sonnet` | Menú desplegable de modelo junto al botón de envío |2010| `--model sonnet` | Selector de modelo en la fila debajo del cuadro del prompt |

1760| `--resume`, `--continue` | Haz clic en una sesión en la barra lateral, o escribe `/resume` en el cuadro del prompt para retomar una sesión que iniciaste desde la CLI |2011| `--resume`, `--continue` | Haz clic en una sesión en la barra lateral, o escribe `/resume` en el cuadro del prompt para retomar una sesión que iniciaste desde la CLI |

1761| `--permission-mode` | Selector de modo junto al botón de envío |2012| `--permission-mode` | Selector de modo en la fila debajo del cuadro del prompt |

1762| `--dangerously-skip-permissions` | Modo Bypass permissions. En planes Pro y Max, habilítalo en Configuración → Claude Code → "Allow bypass permissions mode"; en planes Team y Enterprise, la política de la organización lo controla |2013| `--dangerously-skip-permissions` | Modo Bypass permissions. En planes Pro y Max, habilítalo en Configuración → Claude Code → "Allow bypass permissions mode"; en planes Team y Enterprise, la política de la organización lo controla |

1763| `--add-dir` | Agrega múltiples repositorios con el botón **+** en sesiones en la nube |2014| `--add-dir` | [Agrega carpetas a una sesión](#add-folders-to-a-session) en sesiones locales y SSH, o selecciona [varios repositorios](#run-long-running-tasks-in-the-cloud) en una sesión en la nube |

1764| `--allowedTools`, `--disallowedTools` | Sin equivalente por sesión. Las reglas de permisos en [archivos de configuración](/docs/es/settings) aún se aplican. |2015| `--allowedTools`, `--disallowedTools` | Sin equivalente por sesión. Las reglas de permisos en [archivos de configuración](/docs/es/settings) aún se aplican. |

1765| `--verbose` | [Modo de vista Verbose](#switch-view-modes) |2016| `--verbose` | [Modo de vista Verbose](#switch-view-modes) |

1766| `--print`, `--output-format` | No disponible. Desktop es solo interactivo. |2017| `--print`, `--output-format` | No disponible. Desktop es solo interactivo. |

1767| Variable de entorno `ANTHROPIC_MODEL` | Menú desplegable de modelo junto al botón de envío |2018| Variable de entorno `ANTHROPIC_MODEL` | Selector de modelo en la fila debajo del cuadro del prompt |

1768| Variable de entorno `MAX_THINKING_TOKENS` | Establécela en el editor de entorno local. Consulta [configuración del entorno](#environment-configuration). |2019| Variable de entorno `MAX_THINKING_TOKENS` | Consulta [Desactivar el pensamiento extendido](#turn-off-extended-thinking) |

1769 2020 

1770<h3 id="shared-configuration">2021<h3 id="shared-configuration">

1771 Configuración compartida2022 Configuración compartida


1777* Los **[servidores MCP](/docs/es/mcp)** configurados en `~/.claude.json` o `.mcp.json` funcionan en ambos2028* Los **[servidores MCP](/docs/es/mcp)** configurados en `~/.claude.json` o `.mcp.json` funcionan en ambos

1778* Los **[Hooks](/docs/es/hooks)** y **[skills](/docs/es/skills)** definidos en la configuración se aplican a ambos2029* Los **[Hooks](/docs/es/hooks)** y **[skills](/docs/es/skills)** definidos en la configuración se aplican a ambos

1779* La **[Configuración](/docs/es/settings)** en `~/.claude.json` y `~/.claude/settings.json` se comparte. Las reglas de permisos, herramientas permitidas y otros ajustes en `settings.json` se aplican a sesiones de Desktop.2030* La **[Configuración](/docs/es/settings)** en `~/.claude.json` y `~/.claude/settings.json` se comparte. Las reglas de permisos, herramientas permitidas y otros ajustes en `settings.json` se aplican a sesiones de Desktop.

1780* **Modelos**: los mismos [modelos](/docs/es/model-config#available-models) están disponibles en ambos. En Desktop, selecciona el modelo del menú desplegable junto al botón de envío. Puedes cambiar el modelo durante la sesión desde el mismo menú desplegable.2031* **Modelos**: los mismos [modelos](/docs/es/model-config#available-models) están disponibles en ambos. En Desktop, selecciona el modelo en el selector de modelo de la fila debajo del cuadro del prompt. Puedes cambiar el modelo durante la sesión desde el mismo selector.

1781 2032 

1782<h4 id="mcp-servers-from-the-claude-desktop-chat-app">2033<h4 id="mcp-servers-from-the-claude-desktop-chat-app">

1783 Servidores MCP de la aplicación de chat de Claude Desktop2034 Servidores MCP de la aplicación de chat de Claude Desktop


1805| [Proveedores de terceros](/docs/es/third-party-integrations) | Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry | API de Anthropic de forma predeterminada. Para enrutamiento mediante gateway, consulta [conectar la aplicación de escritorio a un gateway](/docs/es/llm-gateway-connect#desktop-app). Para ejecutar la pestaña Code en Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry o un gateway LLM autohospedado, consulta [Claude Desktop en 3P](https://claude.com/docs/third-party/claude-desktop/overview). |2056| [Proveedores de terceros](/docs/es/third-party-integrations) | Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry | API de Anthropic de forma predeterminada. Para enrutamiento mediante gateway, consulta [conectar la aplicación de escritorio a un gateway](/docs/es/llm-gateway-connect#desktop-app). Para ejecutar la pestaña Code en Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry o un gateway LLM autohospedado, consulta [Claude Desktop en 3P](https://claude.com/docs/third-party/claude-desktop/overview). |

1806| [Servidores MCP](/docs/es/mcp) | Configurar en archivos de configuración | UI de conectores para sesiones locales y SSH, o archivos de configuración |2057| [Servidores MCP](/docs/es/mcp) | Configurar en archivos de configuración | UI de conectores para sesiones locales y SSH, o archivos de configuración |

1807| [Plugins](/docs/es/plugins/overview) | Comando `/plugin` | UI del administrador de plugins |2058| [Plugins](/docs/es/plugins/overview) | Comando `/plugin` | UI del administrador de plugins |

1808| Archivos @mention | Basado en texto | Con autocompletado; sesiones locales y SSH solamente |2059| Archivos @mention | Basado en texto | Con autocompletado, excepto en el primer mensaje de una sesión en la nube |

1809| Archivos adjuntos | No disponible | Imágenes, PDF |2060| Archivos adjuntos | No disponible | Imágenes, PDF |

1810| Aislamiento de sesión | Bandera [`--worktree`](/docs/es/cli-reference) | Opción **worktree** al iniciar una sesión |2061| Aislamiento de sesión | Bandera [`--worktree`](/docs/es/cli-reference) | [Ejecutar una sesión en su propio worktree](#run-a-session-in-its-own-worktree) |

1811| Múltiples sesiones | Terminales separadas | Pestañas de barra lateral |2062| Múltiples sesiones | Terminales separadas | Pestañas de barra lateral |

1812| Tareas recurrentes | Trabajos cron, pipelines de CI | [Tareas programadas](/docs/es/desktop-scheduled-tasks) |2063| Tareas recurrentes | Trabajos cron, pipelines de CI | [Tareas programadas](/docs/es/desktop-scheduled-tasks) |

1813| Uso de computadora | [Habilitar a través de `/mcp`](/docs/es/computer-use) en macOS | [Control de aplicaciones y pantalla](#let-claude-use-your-computer) en macOS y Windows |2064| Uso de computadora | [Habilitar a través de `/mcp`](/docs/es/computer-use) en macOS | [Control de aplicaciones y pantalla](#let-claude-use-your-computer) en macOS y Windows |


1833 Solución de problemas2084 Solución de problemas

1834</h2>2085</h2>

1835 2086 

1836Las secciones a continuación cubren problemas específicos de la aplicación de escritorio. Para errores de API en tiempo de ejecución que aparecen en el chat como `API Error: 500`, `529 Overloaded`, `429` o `Prompt is too long`, consulte la [referencia de errores](/docs/es/errors). Esos errores y sus soluciones son los mismos en la CLI, escritorio y web.2087Las secciones a continuación cubren problemas específicos de la aplicación de escritorio. Para errores de API en tiempo de ejecución que aparecen en el chat como `API Error: 500`, `529 Overloaded`, `429` o `Prompt is too long`, consulta la [referencia de errores](/docs/es/errors).

1837 2088 

1838<h3 id="check-your-version">2089<h3 id="check-your-version">

1839 Verificar su versión2090 Verificar su versión


1852 2103 

1853Para ver qué versión de Claude Code ejecuta una sesión, escribe `/status` en una sesión local en la pestaña **Code** y lee la fila **Claude Code**, que muestra una versión como `2.1.286`.2104Para ver qué versión de Claude Code ejecuta una sesión, escribe `/status` en una sesión local en la pestaña **Code** y lee la fila **Claude Code**, que muestra una versión como `2.1.286`.

1854 2105 

1855Para obtener una versión más reciente para las sesiones locales, abre **Claude → Check for Updates** en macOS o **Help → Check for Updates** en Windows, y luego inicia una nueva sesión.2106Para obtener una versión más reciente para las sesiones locales, abre **Claude > Check for Updates…** en macOS o **Help > Check for Updates…** en Windows, y luego inicia una nueva sesión.

1856 2107 

1857En una sesión local, la pestaña **Code** ejecuta su propia copia de Claude Code, que tiene su propio número de versión. La aplicación de escritorio descarga y actualiza esa copia, por lo que puede diferir del comando `claude` en tu terminal, y actualizar una no actualiza la otra.2108En una sesión local, la pestaña **Code** ejecuta su propia copia de Claude Code, que tiene su propio número de versión. La aplicación de escritorio descarga y actualiza esa copia, por lo que puede diferir del comando `claude` en tu terminal, y actualizar una no actualiza la otra.

1858 2109 

2110<h3 id="check-which-layout-you-have">

2111 Verificar qué diseño tienes

2112</h3>

2113 

2114Si una nueva sesión no tiene un [selector de entorno](#start-a-session) debajo del cuadro del prompt, tienes el diseño anterior:

2115 

2116* **[Desktop anterior a v2.37337.0](#check-your-version)**: actualiza para obtener el diseño actual. Selecciona **Claude > Check for Updates…** en macOS o **Help > Check for Updates…** en Windows.

2117* **[Proveedor externo](/docs/es/third-party-integrations)**: conservas el diseño anterior, así que no hay nada que hacer.

2118 

2119En el diseño anterior, elige el entorno y la carpeta del proyecto encima del cuadro del prompt, y el modo de permisos y el modelo en la fila debajo de él. El diseño anterior no incluye el [panel de detalles de la sesión](#see-session-details) ni los [entornos locales y SSH guardados](#create-a-saved-environment).

2120 

1859<h3 id="403-or-authentication-errors-in-the-code-tab">2121<h3 id="403-or-authentication-errors-in-the-code-tab">

1860 Errores 403 o de autenticación en la pestaña Code2122 Errores 403 o de autenticación en la pestaña Code

1861</h3>2123</h3>

Details

160* Confirma que Xcode y los simuladores de iOS estén instalados y que tu versión de Xcode cumpla con los [requisitos](#requirements).160* Confirma que Xcode y los simuladores de iOS estén instalados y que tu versión de Xcode cumpla con los [requisitos](#requirements).

161* Si tu organización administra Claude Code, las [herramientas del simulador pueden estar deshabilitadas por política](#turn-off-simulator-access).161* Si tu organización administra Claude Code, las [herramientas del simulador pueden estar deshabilitadas por política](#turn-off-simulator-access).

162* Si estás en una organización Enterprise que tiene habilitada una configuración HIPAA, el panel del simulador no está disponible para ti.162* Si estás en una organización Enterprise que tiene habilitada una configuración HIPAA, el panel del simulador no está disponible para ti.

163* El panel del simulador requiere Claude Desktop v1.24012.0 o posterior. Abre **Claude → Check for Updates**, luego reinicia la aplicación.163* El panel del simulador requiere Claude Desktop v1.24012.0 o posterior. Abre **Claude > Check for Updates…**, luego reinicia la aplicación.

164 164 

165<h3 id="the-simulator-pane-says-no-simulators-were-found">165<h3 id="the-simulator-pane-says-no-simulators-were-found">

166 El panel del simulador dice que no se encontraron simuladores166 El panel del simulador dice que no se encontraron simuladores


174 174 

175* [Uso de computadora en Desktop](/docs/es/desktop#let-claude-use-your-computer): control de pantalla para aplicaciones sin un panel dedicado175* [Uso de computadora en Desktop](/docs/es/desktop#let-claude-use-your-computer): control de pantalla para aplicaciones sin un panel dedicado

176* [Uso de computadora desde la CLI](/docs/es/computer-use): cómo la CLI accede al Simulador de iOS176* [Uso de computadora desde la CLI](/docs/es/computer-use): cómo la CLI accede al Simulador de iOS

177* [Trabaja en paralelo con sesiones](/docs/es/desktop#work-in-parallel-with-sessions): cómo las sesiones aíslan los cambios177* [Ejecuta una sesión en su propio worktree](/docs/es/desktop#run-a-session-in-its-own-worktree): cómo las sesiones aíslan los cambios

178* [Comienza con Claude Code Desktop](/docs/es/desktop-quickstart)178* [Comienza con Claude Code Desktop](/docs/es/desktop-quickstart)

Details

62Con la pestaña Code abierta, elija un proyecto y dé a Claude algo que hacer.62Con la pestaña Code abierta, elija un proyecto y dé a Claude algo que hacer.

63 63 

64<Steps>64<Steps>

65 <Step title="Elija un entorno y carpeta">65 <Step title="Elige un entorno y una carpeta">

66 Seleccione **Local** para ejecutar Claude en su máquina utilizando sus archivos directamente. Haga clic en **Select folder** y elija su directorio de proyecto.66 En la [fila debajo del cuadro del prompt](/docs/es/desktop#start-a-session), haz clic en el primer control, el selector de entorno, y selecciona la primera entrada del grupo **Local**. Luego haz clic en el control de carpeta del proyecto junto al selector de entorno, selecciona **Open folder…** y elige el directorio de tu proyecto.

67 

68 Si no aparece ningún selector de entorno debajo del cuadro del prompt, tienes el diseño anterior. Consulta [Comprueba qué diseño tienes](/docs/es/desktop#check-which-layout-you-have).

67 69 

68 <Tip>70 <Tip>

69 Comience con un proyecto pequeño que conozca bien. Es la forma más rápida de ver qué puede hacer Claude Code.71 Comience con un proyecto pequeño que conozca bien. Es la forma más rápida de ver qué puede hacer Claude Code.


72 También puede seleccionar:74 También puede seleccionar:

73 75 

74 * **Cloud**: Ejecute sesiones en la nube que continúen incluso si cierra la aplicación. Consulte [Usar Claude Code en la nube](/docs/es/claude-code-on-the-web) para saber cómo funcionan las sesiones en la nube.76 * **Cloud**: Ejecute sesiones en la nube que continúen incluso si cierra la aplicación. Consulte [Usar Claude Code en la nube](/docs/es/claude-code-on-the-web) para saber cómo funcionan las sesiones en la nube.

75 * **SSH**: Conéctate a una máquina remota a través de SSH, como tus propios servidores, máquinas virtuales en la nube o contenedores de desarrollo. Desktop instala Claude Code en la máquina remota automáticamente la primera vez que te conectas. Una tarea en ejecución puede [seguir avanzando mientras Desktop está desconectado](/docs/es/desktop#keep-a-task-running-while-desktop-is-disconnected), pero con una cuenta de Claude puede detenerse cuando caduca su inicio de sesión.77 * **SSH**: Conéctate a una máquina remota a través de SSH, como tus propios servidores, máquinas virtuales en la nube o contenedores de desarrollo. Primero [agrega una conexión](/docs/es/desktop#ssh-sessions). Desktop instala Claude Code en la máquina remota automáticamente la primera vez que te conectas. Una tarea en ejecución puede [seguir avanzando mientras Desktop está desconectado](/docs/es/desktop#keep-a-task-running-while-desktop-is-disconnected), pero con una cuenta de Claude puede detenerse cuando caduca su inicio de sesión.

76 * **WSL** (Windows): Ejecute la sesión dentro de una [distribución WSL 2](/docs/es/desktop-wsl); Claude Code, las herramientas y git se ejecutan en el lado de Linux con rutas nativas.78 * **WSL** (Windows): Ejecuta la sesión dentro de una [distribución WSL 2](/docs/es/desktop-wsl); Claude Code, las herramientas y git se ejecutan en el lado de Linux con rutas nativas.

77 </Step>79 </Step>

78 80 

79 <Step title="Elija un modelo">81 <Step title="Elige un modelo">

80 Seleccione un modelo en el menú desplegable junto al botón de envío. Consulte [models](/docs/es/model-config#available-models) para una comparación de los modelos disponibles. Puede cambiar el modelo más tarde desde el mismo menú desplegable.82 Selecciona un modelo en el selector de modelos, hacia el extremo derecho de la fila debajo del cuadro del prompt. Consulta [modelos](/docs/es/model-config#available-models) para ver una comparación de los modelos disponibles. Puedes cambiar el modelo más tarde desde el selector de modelos.

81 </Step>83 </Step>

82 84 

83 <Step title="Dígale a Claude qué hacer">85 <Step title="Dile a Claude qué hacer">

84 Escriba lo que desea que Claude haga:86 Escribe lo que quieres que Claude haga:

85 87 

86 * `Find a TODO comment and fix it`88 * `Find a TODO comment and fix it`

87 * `Add tests for the main function`89 * `Add tests for the main function`

88 * `Create a CLAUDE.md with instructions for this codebase`90 * `Create a CLAUDE.md with instructions for this codebase`

89 91 

90 Una [session](/docs/es/desktop#work-in-parallel-with-sessions) es una conversación con Claude sobre su código. Cada sesión realiza un seguimiento de su propio contexto y cambios.92 Una [sesión](/docs/es/desktop#work-in-parallel-with-sessions) es una conversación con Claude sobre tu código. Cada sesión realiza un seguimiento de su propio contexto y cambios.

91 </Step>93 </Step>

92 94 

93 <Step title="Revise y acepte los cambios">95 <Step title="Revisa y acepta los cambios">

94 Lo que sucede a continuación depende del [permission mode](/docs/es/desktop#choose-a-permission-mode) que se muestra en el selector junto al botón de envío:96 Revisa 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:

95 97 

96 * **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 diferencias98 * **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 diferencias

97 * **Manual**: Claude propone cada cambio y espera su aprobación antes de aplicarlo. Sus archivos no se modifican hasta que acepte, y si rechaza un cambio, Claude le pregunta cómo le gustaría proceder en su lugar99 * **Manual**: Claude propone cada cambio y espera tu aprobación antes de aplicarlo

98 100 

99 En modo Manual, verá:101 En modo Manual, verá:

100 102 


112 114 

113**Interrumpir y redirigir.** Puede redirigir a Claude en cualquier momento. Haga clic en el botón de parada para interrumpir inmediatamente, o escriba una corrección y presione **Intro** para enviarla sin detener la acción en ejecución. De cualquier forma, no tiene que esperar a que termine o empezar de nuevo.115**Interrumpir y redirigir.** Puede redirigir a Claude en cualquier momento. Haga clic en el botón de parada para interrumpir inmediatamente, o escriba una corrección y presione **Intro** para enviarla sin detener la acción en ejecución. De cualquier forma, no tiene que esperar a que termine o empezar de nuevo.

114 116 

115**Proporcione más contexto a Claude.** Escriba `@filename` en el cuadro de solicitud para extraer un archivo específico a la conversación, adjunte imágenes y PDF usando el botón de adjuntos, o arrastre y suelte archivos directamente en la solicitud. Cuanto más contexto tenga Claude, mejores serán los resultados. Consulte [Agregar archivos y contexto](/docs/es/desktop#add-files-and-context-to-prompts).117**Dale más contexto a Claude.** Escribe `@filename` en el cuadro del prompt para incorporar un archivo específico a la conversación. Cuanto más contexto tenga Claude, mejores serán los resultados. Consulta [Agregar archivos y contexto](/docs/es/desktop#add-files-and-context-to-prompts).

116 118 

117**Use skills para tareas repetibles.** Escriba `/` o haga clic en **+** → **Slash commands** para examinar [comandos integrados](/docs/es/commands), [skills personalizados](/docs/es/skills) y skills de plugins. Los skills son solicitudes reutilizables que puede invocar siempre que las necesite, como listas de verificación de revisión de código o pasos de implementación.119**Use skills para tareas repetibles.** Escriba `/` o haga clic en **+** → **Slash commands** para examinar [comandos integrados](/docs/es/commands), [skills personalizados](/docs/es/skills) y skills de plugins. Los skills son solicitudes reutilizables que puede invocar siempre que las necesite, como listas de verificación de revisión de código o pasos de implementación.

118 120 


125* **Accept edits**: Claude acepta automáticamente ediciones de archivos para una iteración más rápida.127* **Accept edits**: Claude acepta automáticamente ediciones de archivos para una iteración más rápida.

126* **Plan**: Claude propone un enfoque sin editar ningún archivo, lo cual es útil antes de una refactorización grande.128* **Plan**: Claude propone un enfoque sin editar ningún archivo, lo cual es útil antes de una refactorización grande.

127 129 

128**Agregue plugins para más capacidades.** Haga clic en el botón **+** junto al cuadro de solicitud y seleccione **Plugins** para examinar e instalar [plugins](/docs/es/desktop#install-plugins) que agreguen skills, agentes, servidores MCP y más.130**Agrega plugins para más capacidades.** Instala [plugins](/docs/es/desktop#install-plugins) que agreguen skills, agentes, servidores MCP y más.

129 131 

130**Organice su espacio de trabajo.** Arrastre los paneles de chat, diferencias, terminal, archivo y navegador a cualquier diseño que desee. Abra la terminal con **Ctrl+\`** para ejecutar comandos junto con su sesión, o haga clic en una ruta de archivo para abrirla en el panel de archivos. Consulte [Organizar su espacio de trabajo](/docs/es/desktop#arrange-your-workspace).132**Organiza tu espacio de trabajo.** Arrastra los paneles de chat, diff, terminal, archivos y navegador al diseño que quieras. Abre la terminal con **Ctrl+\`** para ejecutar comandos junto a tu sesión, o haz clic en una ruta de archivo para abrirlo. Consulta [Organizar tu espacio de trabajo](/docs/es/desktop#arrange-your-workspace).

131 133 

132**Obtenga una vista previa de su aplicación.** Cuando ejecute su servidor de desarrollo en el escritorio, su aplicación se abre en el panel del navegador, que también puede [abrir sitios externos](/docs/es/desktop#browse-external-sites). Claude puede ver la aplicación en ejecución, probar puntos finales, inspeccionar registros e iterar sobre lo que ve. Consulte [Obtenga una vista previa de su aplicación](/docs/es/desktop#preview-your-app).134**Obtenga una vista previa de su aplicación.** Cuando ejecute su servidor de desarrollo en el escritorio, su aplicación se abre en el panel del navegador, que también puede [abrir sitios externos](/docs/es/desktop#browse-external-sites). Claude puede ver la aplicación en ejecución, probar puntos finales, inspeccionar registros e iterar sobre lo que ve. Consulte [Obtenga una vista previa de su aplicación](/docs/es/desktop#preview-your-app).

133 135 

134**Realice un seguimiento de su solicitud de extracción.** Después de abrir un PR, Claude Code monitorea los resultados de las verificaciones de CI y puede corregir automáticamente fallos o fusionar el PR una vez que todas las verificaciones pasen. Consulte [Monitorear el estado de la solicitud de extracción](/docs/es/desktop#monitor-pull-request-status).136**Haz seguimiento de tu pull request.** Después de abrir un PR, Claude Code monitorea los resultados de las verificaciones de CI y puede corregir fallos automáticamente. Consulta [Monitorear el estado del pull request](/docs/es/desktop#monitor-pull-request-status).

135 137 

136**Ponga a Claude en un horario.** Configure [tareas programadas](/docs/es/desktop-scheduled-tasks) para ejecutar Claude automáticamente de forma recurrente: una revisión de código diaria cada mañana, una auditoría de dependencias semanal, o un resumen que extraiga de sus herramientas conectadas.138**Ponga a Claude en un horario.** Configure [tareas programadas](/docs/es/desktop-scheduled-tasks) para ejecutar Claude automáticamente de forma recurrente: una revisión de código diaria cada mañana, una auditoría de dependencias semanal, o un resumen que extraiga de sus herramientas conectadas.

137 139 

Details

33</Tip>33</Tip>

34 34 

35<Note>35<Note>

36 De forma predeterminada, las tareas programadas se ejecutan contra el estado en el que se encuentre su directorio de trabajo, incluidos los cambios no confirmados. Active el toggle de worktree al crear la tarea para dar a cada ejecución su propio Git worktree aislado, de la misma manera que funcionan las [sesiones paralelas](/docs/es/desktop#work-in-parallel-with-sessions).36 De forma predeterminada, las tareas programadas se ejecutan contra el estado en el que se encuentre tu directorio de trabajo, incluidos los cambios no confirmados. Activa el toggle de worktree al crear la tarea para dar a cada ejecución su propio [Git worktree aislado](/docs/es/desktop#run-a-session-in-its-own-worktree).

37</Note>37</Note>

38 38 

39<h2 id="create-a-scheduled-task">39<h2 id="create-a-scheduled-task">

desktop-wsl.md +22 −8

Details

24 24 

25<Steps>25<Steps>

26 <Step title="Elegir una distribución">26 <Step title="Elegir una distribución">

27 Inicie una nueva sesión en la pestaña Code y abra el selector de entorno. Sus distribuciones WSL 2 instaladas aparecen en una sección **WSL**. Elija una.27 Inicia una nueva sesión en la pestaña Code y abre el [selector de entorno](/docs/es/desktop#start-a-session) debajo del cuadro del prompt, o encima de él en el [diseño anterior](/docs/es/desktop#check-which-layout-you-have). Tus distribuciones WSL 2 instaladas aparecen en **WSL**. Elige una.

28 </Step>28 </Step>

29 29 

30 <Step title="Elegir una carpeta">30 <Step title="Elegir una carpeta">

31 La sesión comienza en el directorio de inicio de la distribución. Utilice el selector de carpetas para elegir una carpeta de proyecto. La exploración ocurre dentro de la distribución, con rutas de Linux como `/home/you/project`.31 La sesión comienza en el directorio home de la distribución. Usa el selector de carpetas para elegir una carpeta de proyecto. La exploración ocurre dentro de la distribución, con rutas de Linux como `/home/you/project`.

32 </Step>32 </Step>

33 33 

34 <Step title="Confiar en la carpeta">34 <Step title="Confiar en la carpeta">

35 La primera sesión en una carpeta muestra el diálogo de confianza del espacio de trabajo. La confianza se otorga por distribución y carpeta; confiar en una carpeta en una distribución no se aplica a otra distribución ni a la misma ruta en Windows.35 La primera sesión en una carpeta muestra el diálogo de confianza del espacio de trabajo. La confianza se otorga por distribución y carpeta. Una carpeta en la que confías en una distribución no es de confianza en otra distribución ni en la misma ruta en Windows.

36 </Step>36 </Step>

37</Steps>37</Steps>

38 38 

39La primera sesión en una distribución tarda un poco más mientras Claude se configura dentro de ella. También puede abrir una carpeta `\\wsl.localhost\...` desde el selector de carpetas normal, y se reabre dentro de esa distribución.39La primera sesión en una distribución tarda un poco más mientras Claude se configura dentro de ella. También puedes abrir una carpeta `\\wsl.localhost\...` desde el selector de carpetas normal, y se reabre dentro de esa distribución.

40 

41Las carpetas que ha utilizado recientemente aparecen en el selector por distribución, por lo que reconectarse a un proyecto es un solo clic.

42 40 

43<h2 id="what-works-in-a-wsl-session">41<h2 id="what-works-in-a-wsl-session">

44 Lo que funciona en una sesión WSL42 Lo que funciona en una sesión WSL

45</h2>43</h2>

46 44 

47Las sesiones paralelas, los chats laterales, la revisión de diferencias visuales, el estado de ramas y solicitudes de extracción, y los worktrees funcionan todos, respaldados por git y la cadena de herramientas dentro de la distribución. "Abrir en editor" abre VS Code conectado a la distribución a través de [Remote - WSL](https://code.visualstudio.com/docs/remote/wsl).45Las sesiones paralelas, los chats laterales, la revisión visual de diffs, el estado de ramas y pull requests, y los worktrees funcionan todos, respaldados por git y la cadena de herramientas dentro de la distribución. "Abrir en editor" abre VS Code conectado a la distribución a través de [Remote - WSL](https://code.visualstudio.com/docs/remote/wsl).

46 

47Si una característica de Desktop no está disponible o está limitada en una sesión WSL, comprueba si es una de estas:

48 

49* **Terminal y conectores**: es posible que tu sesión no tenga la [terminal integrada](/docs/es/desktop#run-commands-in-the-terminal), los [conectores](/docs/es/desktop#connect-external-tools) o ambos. Consulta [Si la terminal o los conectores no están disponibles](#check-for-the-terminal-and-connectors).

50* **[Plugins](/docs/es/desktop#install-plugins)**: no están disponibles en sesiones WSL

51* **Edición de archivos**: puedes ver archivos en el [panel de archivos](/docs/es/desktop#open-and-edit-files), pero no puedes editarlos ahí, así que pídele a Claude que haga los cambios

52* **Archivos adjuntos**: si el menú **+** muestra **Add image** en lugar de **Add files or photos**, solo puedes adjuntar imágenes. Consulta [Agregar archivos y contexto a los prompts](/docs/es/desktop#add-files-and-context-to-prompts).

53 

54<a id="check-for-the-terminal-and-connectors" />

55 

56<h3 id="if-the-terminal-or-connectors-are-unavailable">

57 Si la terminal o los conectores no están disponibles

58</h3>

59 

60No puedes activar la terminal integrada ni los conectores para una sesión WSL por tu cuenta:

48 61 

49Algunas características aún no están disponibles en sesiones WSL: la terminal integrada, conectores y plugins, bifurcación de sesiones, el panel del navegador de archivos y sugerencias de archivos cuando escribe `@` en el compositor.62* **Cuenta de Claude**: las dos características se están implementando por separado. Selecciona **Help > Check for Updates…** y, si una característica sigue faltando después de actualizar, no hay nada que hacer.

63* **[Proveedor externo](/docs/es/third-party-integrations)**: las sesiones WSL no obtienen la terminal ni los conectores, y actualizar Desktop no cambia eso

50 64 

51<h2 id="managed-devices">65<h2 id="managed-devices">

52 Dispositivos administrados66 Dispositivos administrados

env-vars.md +7 −11

Details

196| `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) |196| `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) |

197| `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 |197| `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 |

198| `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í |198| `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í |

199| `API_TIMEOUT_MS` | Tiempo de espera para las solicitudes a la API en milisegundos (predeterminado: 600000, o 10 minutos; máximo: 2147483647). Una solicitud en streaming tiene que recibir sus encabezados de respuesta dentro de ese plazo. Auméntalo cuando se agote el tiempo de espera de las solicitudes en redes lentas o al enrutar a través de un proxy |199| `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 |

200| `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/)) |200| `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/)) |

201| `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 |201| `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 |

202| `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) |202| `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) |


230| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Eliminada en v2.1.283. Usa `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` en su lugar |230| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Eliminada en v2.1.283. Usa `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` en su lugar |

231| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Establece la [ventana de compactación automática](/docs/es/model-config#set-the-auto-compact-window) en tokens, de `100000` a `1000000`. Solo acepta un entero simple como `500000`: un valor como `500k` se lee como `500` y se ajusta al mínimo de 100K. La ventana efectiva también está limitada por la ventana de contexto del modelo. Tiene precedencia sobre el comando `/autocompact`, el flag `--autocompact` y el ajuste `autoCompactWindow`. El `used_percentage` de la línea de estado siempre se mide respecto a la ventana de contexto completa del modelo, por lo que, una vez establecida esta variable, ese porcentaje ya no indica cuándo se ejecutará la compactación |231| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Establece la [ventana de compactación automática](/docs/es/model-config#set-the-auto-compact-window) en tokens, de `100000` a `1000000`. Solo acepta un entero simple como `500000`: un valor como `500k` se lee como `500` y se ajusta al mínimo de 100K. La ventana efectiva también está limitada por la ventana de contexto del modelo. Tiene precedencia sobre el comando `/autocompact`, el flag `--autocompact` y el ajuste `autoCompactWindow`. El `used_percentage` de la línea de estado siempre se mide respecto a la ventana de contexto completa del modelo, por lo que, una vez establecida esta variable, ese porcentaje ya no indica cuándo se ejecutará la compactación |

232| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Sobrescribe la [conexión automática con el IDE](/docs/es/vs-code). De forma predeterminada, Claude Code se conecta automáticamente cuando se inicia dentro de la terminal integrada de un IDE compatible. Establécela en `false` para evitarlo. Establécela en `true` para forzar un intento de conexión cuando falla la detección automática, por ejemplo cuando tmux oculta la terminal principal. Tiene precedencia sobre el ajuste de configuración global [`autoConnectIde`](/docs/es/settings-reference#autoconnectide) |232| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Sobrescribe la [conexión automática con el IDE](/docs/es/vs-code). De forma predeterminada, Claude Code se conecta automáticamente cuando se inicia dentro de la terminal integrada de un IDE compatible. Establécela en `false` para evitarlo. Establécela en `true` para forzar un intento de conexión cuando falla la detección automática, por ejemplo cuando tmux oculta la terminal principal. Tiene precedencia sobre el ajuste de configuración global [`autoConnectIde`](/docs/es/settings-reference#autoconnectide) |

233| `CLAUDE_CODE_AUTO_MODE_MODEL` | Establece el modelo para las solicitudes del clasificador que Claude Code envía en el [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode). Usa un ID de modelo completo como `claude-sonnet-4-6`. Para los casos en que Claude Code la ignora, consulta [Elegir el modelo del clasificador](/docs/es/permission-modes#choose-the-classifier-model). Requiere Claude Code v2.1.302 o posterior |

233| `CLAUDE_CODE_AUTO_MODE_SERVER` | Controla si Claude Code pide al servidor que [revise las acciones del modo automático](/docs/es/permission-modes#server-side-classifier-review). Establécela en `0` para usar en su lugar las propias solicitudes de clasificador de Claude Code. En una conexión directa a la API de Anthropic, requiere v2.1.281 o posterior. La sección enlazada indica qué sesiones consultan al servidor cuando la variable no está establecida, y desde qué versión. Requiere Claude Code v2.1.271 o posterior |234| `CLAUDE_CODE_AUTO_MODE_SERVER` | Controla si Claude Code pide al servidor que [revise las acciones del modo automático](/docs/es/permission-modes#server-side-classifier-review). Establécela en `0` para usar en su lugar las propias solicitudes de clasificador de Claude Code. En una conexión directa a la API de Anthropic, requiere v2.1.281 o posterior. La sección enlazada indica qué sesiones consultan al servidor cuando la variable no está establecida, y desde qué versión. Requiere Claude Code v2.1.271 o posterior |

234| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Tiempo en milisegundos que Claude Code espera a que la cadena predeterminada de proveedores de credenciales de AWS produzca credenciales antes de que la solicitud falle con [`AWS default-chain credential resolve timed out`](/docs/es/errors#aws-default-chain-credential-resolve-timed-out) (predeterminado: `60000`). Auméntalo cuando un paso de tu cadena legítimamente necesite más tiempo, como un inicio de sesión SSO basado en navegador con MFA a través de un wrapper como `aws-vault`. Se aplica en Amazon Bedrock, [Claude Platform on AWS](/docs/es/claude-platform-on-aws) y el [endpoint de Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint). Consulta [almacenamiento en caché de credenciales y tiempo de espera de resolución](/docs/es/amazon-bedrock#credential-caching-and-resolution-timeout). Requiere Claude Code v2.1.207 o posterior |235| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Tiempo en milisegundos que Claude Code espera a que la cadena predeterminada de proveedores de credenciales de AWS produzca credenciales antes de que la solicitud falle con [`AWS default-chain credential resolve timed out`](/docs/es/errors#aws-default-chain-credential-resolve-timed-out) (predeterminado: `60000`). Auméntalo cuando un paso de tu cadena legítimamente necesite más tiempo, como un inicio de sesión SSO basado en navegador con MFA a través de un wrapper como `aws-vault`. Se aplica en Amazon Bedrock, [Claude Platform on AWS](/docs/es/claude-platform-on-aws) y el [endpoint de Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint). Consulta [almacenamiento en caché de credenciales y tiempo de espera de resolución](/docs/es/amazon-bedrock#credential-caching-and-resolution-timeout). Requiere Claude Code v2.1.207 o posterior |

235| `CLAUDE_CODE_BASH_EDIT_DIFF` | Establécela en `0` para desactivar el [diff de los archivos que cambiaron mientras se ejecutaba un comando de Bash](/docs/es/hooks#bash), o en `1` para registrarlo en todos los modos de permisos. Tiene precedencia sobre el ajuste [`bashEditDiffEnabled`](/docs/es/settings-reference#basheditdiffenabled). Requiere Claude Code v2.1.269 o posterior |236| `CLAUDE_CODE_BASH_EDIT_DIFF` | Establécela en `0` para desactivar el [diff de los archivos que cambiaron mientras se ejecutaba un comando de Bash](/docs/es/hooks#bash), o en `1` para registrarlo en todos los modos de permisos. Tiene precedencia sobre el ajuste [`bashEditDiffEnabled`](/docs/es/settings-reference#basheditdiffenabled). Requiere Claude Code v2.1.269 o posterior |


241| `CLAUDE_CODE_CLIENT_CERT` | Ruta al archivo de certificado de cliente para la autenticación mTLS |242| `CLAUDE_CODE_CLIENT_CERT` | Ruta al archivo de certificado de cliente para la autenticación mTLS |

242| `CLAUDE_CODE_CLIENT_KEY` | Ruta al archivo de clave privada de cliente para la autenticación mTLS |243| `CLAUDE_CODE_CLIENT_KEY` | Ruta al archivo de clave privada de cliente para la autenticación mTLS |

243| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Frase de contraseña para el CLAUDE\_CODE\_CLIENT\_KEY cifrado (opcional) |244| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Frase de contraseña para el CLAUDE\_CODE\_CLIENT\_KEY cifrado (opcional) |

244| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Eliminada en v2.1.186 y ahora no tiene efecto. Anteriormente establecía un tiempo de espera independiente para la fase de conexión, TLS y encabezados de respuesta de una solicitud de API en streaming. Usa `API_TIMEOUT_MS` para el tiempo de espera por solicitud. Para la fase de encabezados de respuesta de una solicitud en streaming, consulta `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |245| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Se eliminó en la v2.1.186 y ahora no tiene efecto. Anteriormente establecía un tiempo de espera independiente para la fase de conexión, TLS y encabezados de respuesta de una solicitud a la API en streaming. Usa `API_TIMEOUT_MS` en su lugar. Para la fase de encabezados de respuesta de una solicitud en streaming, consulta `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |

245| `CLAUDE_CODE_DEBUG_LOGS_DIR` | Sobrescribe la ruta del archivo de registro de depuración. A pesar del nombre, es una ruta de archivo, no un directorio. Requiere que el modo de depuración se active por separado mediante `--debug`, `/debug` o la variable de entorno `DEBUG`: establecer solo esta variable no activa el registro. El flag [`--debug-file`](/docs/es/cli-reference#cli-flags) hace ambas cosas a la vez. El valor predeterminado es `~/.claude/debug/<session-id>.txt` |246| `CLAUDE_CODE_DEBUG_LOGS_DIR` | Sobrescribe la ruta del archivo de registro de depuración. A pesar del nombre, es una ruta de archivo, no un directorio. Requiere que el modo de depuración se active por separado mediante `--debug`, `/debug` o la variable de entorno `DEBUG`: establecer solo esta variable no activa el registro. El flag [`--debug-file`](/docs/es/cli-reference#cli-flags) hace ambas cosas a la vez. El valor predeterminado es `~/.claude/debug/<session-id>.txt` |

246| `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 |247| `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 |

247| `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) |248| `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) |


304| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Controla si las entradas de las llamadas a herramientas se transmiten desde la API a medida que Claude las genera. Con esto desactivado, una entrada de herramienta grande, como la escritura de un archivo largo, llega solo después de que Claude termina de generarla, lo que puede parecer que se ha quedado colgado. Activada de forma predeterminada en la API de Anthropic. En Amazon Bedrock y Google Cloud's Agent Platform, se activa por modelo cuando el contenedor desplegado lo admite. Establécela en `0` para desactivarla. Establécela en `1` para forzar su activación cuando enrutas a través de un proxy mediante `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL` o `ANTHROPIC_BEDROCK_BASE_URL`. Desactivada de forma predeterminada en Microsoft Foundry y en conexiones a través de un [gateway](/docs/es/llm-gateway) |305| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Controla si las entradas de las llamadas a herramientas se transmiten desde la API a medida que Claude las genera. Con esto desactivado, una entrada de herramienta grande, como la escritura de un archivo largo, llega solo después de que Claude termina de generarla, lo que puede parecer que se ha quedado colgado. Activada de forma predeterminada en la API de Anthropic. En Amazon Bedrock y Google Cloud's Agent Platform, se activa por modelo cuando el contenedor desplegado lo admite. Establécela en `0` para desactivarla. Establécela en `1` para forzar su activación cuando enrutas a través de un proxy mediante `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL` o `ANTHROPIC_BEDROCK_BASE_URL`. Desactivada de forma predeterminada en Microsoft Foundry y en conexiones a través de un [gateway](/docs/es/llm-gateway) |

305| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Establécela en `1` para llenar el selector de `/model` desde el endpoint `/v1/models` de tu gateway cuando `ANTHROPIC_BASE_URL` apunta a un gateway compatible con Anthropic, como LiteLLM, Kong o un proxy interno. Desactivada de forma predeterminada porque, de lo contrario, los gateways respaldados por una clave de API compartida mostrarían a cada usuario todos los modelos a los que la clave puede acceder. Los modelos descubiertos siguen filtrándose mediante una lista de modelos permitidos [`availableModels`](/docs/es/settings-reference#availablemodels) que recibe la sesión; entrega la lista mediante [MDM o un archivo de configuración administrada](/docs/es/managed-settings#delivery-mechanisms), ya que [la entrega administrada por el servidor no está disponible en configuraciones con gateway](/docs/es/server-managed-settings#platform-availability) |306| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Establécela en `1` para llenar el selector de `/model` desde el endpoint `/v1/models` de tu gateway cuando `ANTHROPIC_BASE_URL` apunta a un gateway compatible con Anthropic, como LiteLLM, Kong o un proxy interno. Desactivada de forma predeterminada porque, de lo contrario, los gateways respaldados por una clave de API compartida mostrarían a cada usuario todos los modelos a los que la clave puede acceder. Los modelos descubiertos siguen filtrándose mediante una lista de modelos permitidos [`availableModels`](/docs/es/settings-reference#availablemodels) que recibe la sesión; entrega la lista mediante [MDM o un archivo de configuración administrada](/docs/es/managed-settings#delivery-mechanisms), ya que [la entrega administrada por el servidor no está disponible en configuraciones con gateway](/docs/es/server-managed-settings#platform-availability) |

306| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | Eliminada en la v2.1.142, cuando el valor predeterminado del [modo rápido](/docs/es/fast-mode) pasó de Opus 4.6 a Opus 4.7 |307| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | Eliminada en la v2.1.142, cuando el valor predeterminado del [modo rápido](/docs/es/fast-mode) pasó de Opus 4.6 a Opus 4.7 |

307| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Establécela en `false` para desactivar las sugerencias de prompts, las predicciones en gris que aparecen en la entrada de tu prompt. Tiene precedencia sobre el ajuste [`promptSuggestionEnabled`](/docs/es/settings-reference#promptsuggestionenabled), que es el que escribe el interruptor **Prompt suggestions** de `/config`. Claude Code también [pausa las sugerencias mientras tu cuenta está cerca de su límite de uso o lo ha alcanzado](/docs/es/interactive-mode#when-claude-code-skips-suggestions). Establécela en `true` para mantenerlas activadas hasta que alcances el límite. Requiere Claude Code v2.1.238 o posterior. Consulta [Sugerencias de prompts](/docs/es/interactive-mode#prompt-suggestions) |308| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Establécela en `false` para desactivar las sugerencias de prompts, las predicciones en gris que aparecen en la entrada del prompt. Tiene precedencia sobre el ajuste [`promptSuggestionEnabled`](/docs/es/settings-reference#promptsuggestionenabled), que es lo que escribe el interruptor **Prompt suggestions** de `/config`. Claude Code también [pausa las sugerencias mientras tu cuenta está cerca de su límite de uso o lo ha alcanzado](/docs/es/interactive-mode#when-claude-code-skips-suggestions). Establécela en `true` para evitar que esa pausa se aplique hasta que alcances el límite. Requiere Claude Code v2.1.238 o posterior. Consulta [Sugerencias de prompts](/docs/es/interactive-mode#prompt-suggestions) |

308| `CLAUDE_CODE_ENABLE_TASKS` | Selecciona qué herramientas de seguimiento de tareas proporciona Claude Code en las [sesiones que las tienen](/docs/es/tools-reference#task-tool-availability). De forma predeterminada, Claude Code proporciona las herramientas Task `TaskCreate`, `TaskUpdate`, `TaskGet` y `TaskList`. Establécela en `0` para obtener en su lugar la herramienta heredada `TodoWrite`. Consulta [Lista de tareas](/docs/es/interactive-mode#task-list) |309| `CLAUDE_CODE_ENABLE_TASKS` | Selecciona qué herramientas de seguimiento de tareas proporciona Claude Code en las [sesiones que las tienen](/docs/es/tools-reference#task-tool-availability). De forma predeterminada, Claude Code proporciona las herramientas Task `TaskCreate`, `TaskUpdate`, `TaskGet` y `TaskList`. Establécela en `0` para obtener en su lugar la herramienta heredada `TodoWrite`. Consulta [Lista de tareas](/docs/es/interactive-mode#task-list) |

309| `CLAUDE_CODE_ENABLE_TELEMETRY` | Establécela en `1` para habilitar la recopilación de datos de OpenTelemetry para métricas y registros. Es necesaria antes de configurar los exportadores de OTel. 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). Consulta [Monitoreo](/docs/es/monitoring-usage) |310| `CLAUDE_CODE_ENABLE_TELEMETRY` | Establécela en `1` para habilitar la recopilación de datos de OpenTelemetry para métricas y registros. Es necesaria antes de configurar los exportadores de OTel. 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). Consulta [Monitoreo](/docs/es/monitoring-usage) |

310| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | Establécela en `1` para obtener las herramientas de seguimiento de tareas en todos los modelos. Sin ella, Claude Code las proporciona de forma predeterminada solo en los modelos indicados en [Disponibilidad de la herramienta Task](/docs/es/tools-reference#task-tool-availability). `CLAUDE_CODE_ENABLE_TASKS` sigue seleccionando las herramientas Task o `TodoWrite`. Requiere Claude Code v2.1.233 o posterior |311| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | Establécela en `1` para obtener las herramientas de seguimiento de tareas en todos los modelos. Sin ella, Claude Code las proporciona de forma predeterminada solo en los modelos indicados en [Disponibilidad de la herramienta Task](/docs/es/tools-reference#task-tool-availability). `CLAUDE_CODE_ENABLE_TASKS` sigue seleccionando las herramientas Task o `TodoWrite`. Requiere Claude Code v2.1.233 o posterior |


316| `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 |317| `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 |

317| `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 |318| `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 |

318| `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 |319| `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 |

319| `CLAUDE_CODE_FORK_SUBAGENT` | Controla el [modo fork](/docs/es/sub-agents#turn-fork-mode-on-or-off), que permite a Claude generar por sí mismo [subagentes bifurcados](/docs/es/sub-agents#fork-the-current-conversation) y está activado de forma predeterminada solo en sesiones interactivas. Establécela en `1` para activarlo también en `claude -p` y en el Agent SDK, o en `0` para desactivarlo en todo tipo de sesión. Puedes ejecutar `/subtask` esté o no activado el modo fork. El valor predeterminado interactivo requiere Claude Code v2.1.232 o posterior; en versiones anteriores, establece la variable en `1` para activar el modo fork |320| `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) |

320| `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 |321| `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 |

321| `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 |322| `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 |

322| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | Tiempo de espera en milisegundos para la solicitud de [descubrimiento de modelos del gateway](/docs/es/llm-gateway-protocol#model-discovery) que activa `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` (predeterminado: `3000`). Auméntalo cuando tu gateway necesite más de tres segundos para responder a `/v1/models` al inicio. Solo acepta dígitos simples; `0`, los valores negativos y otras escrituras mantienen el valor predeterminado. Requiere Claude Code v2.1.269 o posterior |323| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | Tiempo de espera en milisegundos para la solicitud de [descubrimiento de modelos del gateway](/docs/es/llm-gateway-protocol#model-discovery) que activa `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` (predeterminado: `3000`). Auméntalo cuando tu gateway necesite más de tres segundos para responder a `/v1/models` al inicio. Solo acepta dígitos simples; `0`, los valores negativos y otras escrituras mantienen el valor predeterminado. Requiere Claude Code v2.1.269 o posterior |


340| `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 |341| `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 |

341| `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 |342| `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 |

342| `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 |343| `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 |

343| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | Límite de llamadas a [WebSearch](/docs/es/tools-reference#session-search-limit) (predeterminado: 200). Cuando Claude alcanza el límite, las llamadas posteriores a WebSearch devuelven un aviso que le indica que continúe con la información que ya recopiló. Acepta un número entero positivo sin límite superior. Cualquier otro valor se ignora y se aplica el predeterminado, por lo que el límite se puede aumentar pero no desactivar. Requiere Claude Code v2.1.212 o posterior |344| `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 |

344| `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 |345| `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 |

345| `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 |346| `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 |

346| `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 |347| `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 |


599* Ejecutar [`/skill-doctor`](/docs/es/skills#find-unused-skills) ni abrir su informe en la pestaña **Stats** de `/plugin`600* Ejecutar [`/skill-doctor`](/docs/es/skills#find-unused-skills) ni abrir su informe en la pestaña **Stats** de `/plugin`

600* Sincronizar los [skills](/docs/es/skills#where-synced-skills-load) y [plugins](/docs/es/plugins/loading#synced-plugins) habilitados para tu cuenta de claude.ai en tus sesiones de terminal601* Sincronizar los [skills](/docs/es/skills#where-synced-skills-load) y [plugins](/docs/es/plugins/loading#synced-plugins) habilitados para tu cuenta de claude.ai en tus sesiones de terminal

601* Activar el [mod You should know](/docs/es/interactive-mode#you-should-know-suggestions)602* Activar el [mod You should know](/docs/es/interactive-mode#you-should-know-suggestions)

602* Ver lo que un [mod](/docs/es/plugins/mods/overview#where-mods-run) dibuja en el panel de chat de la extensión de VS Code; los hooks del mod siguen ejecutándose

603* Usar [la herramienta advisor](/docs/es/advisor#requirements)603* Usar [la herramienta advisor](/docs/es/advisor#requirements)

604* Leer o responder [comentarios en un artefacto](/docs/es/artifacts#collect-comments-on-an-artifact)604* Leer o responder [comentarios en un artefacto](/docs/es/artifacts#collect-comments-on-an-artifact)

605* Hacer que Claude lea [el artefacto público de otra organización](/docs/es/artifacts#read-an-artifact-shared-with-you)605* Hacer que Claude lea [el artefacto público de otra organización](/docs/es/artifacts#read-an-artifact-shared-with-you)


613 Primera sesión después de una instalación o actualización613 Primera sesión después de una instalación o actualización

614</h3>614</h3>

615 615 

616En tu primera sesión después de instalar Claude Code, o de actualizar a una versión que añade una función, puede faltar una [función controlada por flags](#features-that-need-feature-flag-fetching). Esa sesión también puede iniciarse en un [modo de permisos](/docs/es/permission-modes#which-mode-a-session-starts-in) distinto al de tus sesiones posteriores. Cuando Claude Code obtiene los flags durante esa sesión, los guarda en la máquina, de modo que tu siguiente sesión en esa máquina tiene la función y el modo de permisos inicial habitual.616En tu primera sesión después de instalar Claude Code, o de actualizar a una versión que añade una función, puede faltar una [función controlada por flags](#features-that-need-feature-flag-fetching). Cuando Claude Code obtiene sus feature flags durante esa sesión, los guarda en la máquina, de modo que tu siguiente sesión en esa máquina tiene la función.

617 

618Después de una instalación nueva, en una sesión no interactiva como `claude -p`, el Agent SDK o la extensión de VS Code, Claude Code puede obtener los flags antes de [elegir el modo de permisos inicial](/docs/es/permission-modes#which-mode-a-session-starts-in), pero no siempre los espera.

619 617 

620En configuraciones como estas, las sesiones posteriores a la primera también se inician sin flags recién obtenidos:618En configuraciones como estas, las sesiones posteriores a la primera también se inician sin flags recién obtenidos:

621 619 

622* **Un entorno limpio en cada ejecución**: si cada ejecución se inicia en un contenedor de CI, o en cualquier otro entorno sin los flags que guardó una sesión anterior, cada ejecución es una primera sesión620* **Un entorno limpio en cada ejecución**: si cada ejecución se inicia en un contenedor de CI, o en cualquier otro entorno sin los flags que guardó una sesión anterior, cada ejecución es una primera sesión

623* **Un token de gateway sin clave de API**: si te autenticas con `ANTHROPIC_AUTH_TOKEN` y sin clave de API, y `ANTHROPIC_BASE_URL` apunta a un host distinto al de Anthropic, como un [gateway de LLM](/docs/es/llm-gateway), Claude Code no tiene ninguna credencial con la que obtener los flags621* **Un token de gateway sin clave de API**: si te autenticas con `ANTHROPIC_AUTH_TOKEN` y sin clave de API, y `ANTHROPIC_BASE_URL` apunta a un host distinto al de Anthropic, como un [gateway de LLM](/docs/es/llm-gateway), Claude Code no tiene ninguna credencial con la que obtener los flags

624 622 

625Para elegir el modo de permisos en el que se inician las sesiones en estas configuraciones, consulta [Iniciar en un modo de permisos diferente](/docs/es/permission-modes#start-in-a-different-mode).

626 

627<h2 id="see-also">623<h2 id="see-also">

628 Véase también624 Véase también

629</h2>625</h2>

errors.md +162 −135

Details

41| `Auto mode classifier transcript exceeded context window` | [Errores del servidor](#auto-mode-cannot-determine-the-safety-of-an-action) |41| `Auto mode classifier transcript exceeded context window` | [Errores del servidor](#auto-mode-cannot-determine-the-safety-of-an-action) |

42| `Agent aborted: auto mode classifier request refused by the safety safeguard` | [Errores del servidor](#auto-mode-cannot-determine-the-safety-of-an-action) |42| `Agent aborted: auto mode classifier request refused by the safety safeguard` | [Errores del servidor](#auto-mode-cannot-determine-the-safety-of-an-action) |

43| `The server-side auto mode classifier gave no verdict` | [Errores del servidor](#the-server-returned-no-safety-verdict) |43| `The server-side auto mode classifier gave no verdict` | [Errores del servidor](#the-server-returned-no-safety-verdict) |

44| `<tool> was not reviewed and did not run: the conversation is too long for auto mode's classifier` | [Errores del servidor](#was-not-reviewed-and-did-not-run) |

44| `Auto mode is unavailable — the server returned no safety verdict for the last 10 responses` | [Errores del servidor](#the-server-returned-no-safety-verdict) |45| `Auto mode is unavailable — the server returned no safety verdict for the last 10 responses` | [Errores del servidor](#the-server-returned-no-safety-verdict) |

45| `Agent terminated early due to an API error` | [Errores del servidor](#agent-terminated-early-due-to-an-api-error) |46| `Agent terminated early due to an API error` | [Errores del servidor](#agent-terminated-early-due-to-an-api-error) |

46| `You've hit your session limit` / `You've hit your weekly limit` / `You've hit your Opus limit` / `You've hit your Sonnet limit` | [Límites de uso](#youve-hit-your-session-limit) |47| `You've hit your session limit` / `You've hit your weekly limit` / `You've hit your Opus limit` / `You've hit your Sonnet limit` | [Límites de uso](#youve-hit-your-session-limit) |


471| [`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. |472| [`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. |

472| [`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. |473| [`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. |

473| [`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. |474| [`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. |

474| [`API_TIMEOUT_MS`](/docs/es/env-vars) | 600000 | Tiempo de espera por solicitud en milisegundos. Auméntalo para redes lentas o proxies. También limita cuánto tiempo espera Claude Code los encabezados de respuesta, como se describe en [No response from API](#no-response-from-api). |475| [`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). |

475| [`CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES`](/docs/es/env-vars) | sin establecer | Límite de reenvíos de una [solicitud sin streaming](#streaming-response-ended-before-any-complete-data-was-received) cuyo tiempo de espera se agota. Al alcanzar el límite, la solicitud falla. Una respuesta de Claude que tarda en generarse más que el tiempo de espera vuelve a agotar el tiempo de espera en cada reenvío, así que establece un número bajo, como `0`, para que falle antes. El tiempo de espera de cada intento sin streaming se agota después de 300 segundos en una sesión local, o después de `API_TIMEOUT_MS` cuando estableces un valor positivo. Requiere Claude Code v2.1.285 o posterior. |476| [`CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES`](/docs/es/env-vars) | sin establecer | Límite de reenvíos de una [solicitud sin streaming](#streaming-response-ended-before-any-complete-data-was-received) cuyo tiempo de espera se agota. Al alcanzar el límite, la solicitud falla. Una respuesta de Claude que tarda en generarse más que el tiempo de espera vuelve a agotar el tiempo de espera en cada reenvío, así que establece un número bajo, como `0`, para que falle antes. El tiempo de espera de cada intento sin streaming se agota después de 300 segundos en una sesión local, o después de `API_TIMEOUT_MS` cuando estableces un valor positivo. Requiere Claude Code v2.1.285 o posterior. |

476| [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/es/env-vars) | sin establecer | Plazo en milisegundos para el primer byte de respuesta de una solicitud en streaming. Requiere Claude Code v2.1.242 o posterior. Para saber cómo elige Claude Code el plazo cuando esta variable no está establecida, consulta [No response from API](#no-response-from-api). |477| [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/es/env-vars) | sin establecer | Plazo en milisegundos para el primer byte de respuesta de una solicitud en streaming. Requiere Claude Code v2.1.242 o posterior. Para saber cómo elige Claude Code el plazo cuando esta variable no está establecida, consulta [No response from API](#no-response-from-api). |

477 478 


535Request timed out536Request timed out

536```537```

537 538 

538Esto puede ocurrir durante períodos de alta carga o cuando el modelo está generando una respuesta muy grande. El tiempo de espera predeterminado de la solicitud es de 10 minutos.539El tiempo de espera predeterminado de la solicitud es de 10 minutos.

539 540 

540**Qué hacer:**541**Qué hacer:**

541 542 


627<model> is temporarily unavailable, so auto mode cannot determine the safety of <tool> right now. Wait a moment and then try this action again.628<model> is temporarily unavailable, so auto mode cannot determine the safety of <tool> right now. Wait a moment and then try this action again.

628```629```

629 630 

630En una sesión interactiva, aparece una fila atenuada `Not run · auto mode's check had no usable answer` debajo de la llamada a herramienta en lugar de este mensaje. Presiona `Ctrl+O` para leer el mensaje en el [visor de transcripciones](/docs/es/interactive-mode#transcript-viewer). Las denegaciones descritas en [The server returned no safety verdict](#the-server-returned-no-safety-verdict) muestran la misma fila. Antes de v2.1.296, el mensaje aparecía debajo de la llamada como un error en rojo.631En una sesión interactiva, aparece una fila atenuada `Not run · auto mode's check had no usable answer` debajo de la llamada a herramienta en lugar de este mensaje. Presiona `Ctrl+O` para leer el mensaje en el [visor de transcripciones](/docs/es/interactive-mode#transcript-viewer). Las denegaciones `gave no verdict` descritas en [The server returned no safety verdict](#the-server-returned-no-safety-verdict) muestran la misma fila. Antes de v2.1.296, el mensaje aparecía debajo de la llamada como un error en rojo.

631 632 

632Cuando Claude Code puede determinar la categoría del fallo, la nombra entre paréntesis después de `temporarily unavailable`, por ejemplo `<model> is temporarily unavailable (rate-limited), so auto mode cannot determine the safety of <tool> right now`. Las categorías son `(rate-limited)`, `(overloaded)`, `(server error)`, `(timed out)` y `(connection failed)`. Si `(timed out)` o `(connection failed)` se repite, revisa tu conexión; consulta [Unable to connect to API](#unable-to-connect-to-api). Antes de v2.1.229, el mensaje nunca nombraba una categoría y decía `Wait briefly and then try this action again`.633Cuando Claude Code puede determinar la categoría del fallo, la nombra entre paréntesis después de `temporarily unavailable`, por ejemplo `<model> is temporarily unavailable (rate-limited), so auto mode cannot determine the safety of <tool> right now`. Las categorías son `(rate-limited)`, `(overloaded)`, `(server error)`, `(timed out)` y `(connection failed)`. Si `(timed out)` o `(connection failed)` se repite, revisa tu conexión; consulta [Unable to connect to API](#unable-to-connect-to-api). Antes de v2.1.229, el mensaje nunca nombraba una categoría y decía `Wait briefly and then try this action again`.

633 634 


638* Reintenta después de unos segundos; Claude ve el mismo mensaje y normalmente reintenta por su cuenta. Un fallo transitorio no tiene relación con los [requisitos del modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode); no necesitas cambiar la configuración639* Reintenta después de unos segundos; Claude ve el mismo mensaje y normalmente reintenta por su cuenta. Un fallo transitorio no tiene relación con los [requisitos del modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode); no necesitas cambiar la configuración

639* Si los reintentos siguen fallando, continúa con tareas de solo lectura y vuelve más tarde a la acción bloqueada640* Si los reintentos siguen fallando, continúa con tareas de solo lectura y vuelve más tarde a la acción bloqueada

640* En Amazon Bedrock, si el mensaje reaparece en cada reintento, comprueba que tu cuenta pueda invocar el modelo que nombra: para los modelos estándar de Amazon Bedrock, confirma que tu [política de IAM](/docs/es/amazon-bedrock#iam-configuration) permite invocarlo; para los IDs de modelo de Mantle, [contacta al equipo de tu cuenta de AWS](/docs/es/amazon-bedrock#mantle-endpoint-errors)641* En Amazon Bedrock, si el mensaje reaparece en cada reintento, comprueba que tu cuenta pueda invocar el modelo que nombra: para los modelos estándar de Amazon Bedrock, confirma que tu [política de IAM](/docs/es/amazon-bedrock#iam-configuration) permite invocarlo; para los IDs de modelo de Mantle, [contacta al equipo de tu cuenta de AWS](/docs/es/amazon-bedrock#mantle-endpoint-errors)

642* Si el mensaje reaparece en cada reintento y nombra el modelo que estableciste en [`CLAUDE_CODE_AUTO_MODE_MODEL`](/docs/es/permission-modes#choose-the-classifier-model), comprueba que la API o el proveedor de nube en el que se ejecuta tu sesión ofrezca ese ID de modelo. Si no lo ofrece, establece la variable en un ID de modelo que sí ofrezca, o elimina la variable para usar el [modelo clasificador predeterminado](/docs/es/permission-modes#default-classifier-model).

641 643 

642Cuando una solicitud al clasificador falla porque tu token de OAuth expiró o fue rotado por otra sesión, Claude Code actualiza el token y reintenta la solicitud una vez, así que una expiración habitual del token no aparece como este mensaje. Antes de v2.1.216, un token expirado o rotado hacía fallar cada solicitud al clasificador, y el modo automático denegaba cada acción verificada con este mensaje hasta que se actualizaba el token.644Cuando una solicitud al clasificador falla porque tu token de OAuth expiró o fue rotado por otra sesión, Claude Code actualiza el token y reintenta la solicitud una vez, así que una expiración habitual del token no aparece como este mensaje. Antes de v2.1.216, un token expirado o rotado hacía fallar cada solicitud al clasificador, y el modo automático denegaba cada acción verificada con este mensaje hasta que se actualizaba el token.

643 645 


672* En una sesión interactiva, cambia a otro [modo de permisos](/docs/es/permission-modes) para poder aprobar la acción cuando se te solicite674* En una sesión interactiva, cambia a otro [modo de permisos](/docs/es/permission-modes) para poder aprobar la acción cuando se te solicite

673* Inicia una conversación nueva sin el contenido que activa el filtro675* Inicia una conversación nueva sin el contenido que activa el filtro

674 676 

675Cuando la conversación superó el tamaño de la ventana de contexto del clasificador:677Cuando la conversación es demasiado larga para la solicitud al clasificador de Claude Code y Claude Code no puede [compactarla por su cuenta](#was-not-reviewed-and-did-not-run):

676 678 

677```text theme={null}679```text theme={null}

678Auto mode classifier transcript exceeded context window — falling back to manual approval (try /compact to reduce conversation size)680Auto mode classifier transcript exceeded context window — falling back to manual approval (try /compact to reduce conversation size)


715 717 

716**Qué hacer:**718**Qué hacer:**

717 719 

720* En una sesión interactiva, presiona `Ctrl+O` para leer el texto de la denegación en el [visor de transcripciones](/docs/es/interactive-mode#transcript-viewer).

721* Si la denegación nombra `(the conversation is too long for the check)`, ejecuta `/compact` en el prompt de Claude Code para acortar la conversación. Hasta que la conversación sea más corta, enviar otro mensaje produce la misma denegación. Si desactivaste la [compactación automática](/docs/es/settings-reference#autocompactenabled), vuelve a activarla para que Claude Code compacte por su cuenta la próxima vez.

718* Envía otro mensaje para que Claude lo intente de nuevo. El recuento de respuestas se reinicia.722* Envía otro mensaje para que Claude lo intente de nuevo. El recuento de respuestas se reinicia.

719* Si la detención se repite y tus solicitudes pasan por un [gateway de LLM o proxy](/docs/es/llm-gateway), comprueba si corta las respuestas en streaming o las reescribe. [Revisión del clasificador en el servidor](/docs/es/permission-modes#server-side-classifier-review) indica qué comportamiento del gateway causa denegaciones, y la [guía de compatibilidad de gateways](/docs/es/llm-gateway-protocol#feature-pass-through) enumera lo que debe pasar sin cambios.723* Si la detención se repite y tus solicitudes pasan por un [gateway de LLM o proxy](/docs/es/llm-gateway), comprueba si corta las respuestas en streaming o las reescribe. [Revisión del clasificador en el servidor](/docs/es/permission-modes#server-side-classifier-review) indica qué comportamiento del gateway causa denegaciones, y la [guía de compatibilidad de gateways](/docs/es/llm-gateway-protocol#feature-pass-through) enumera lo que debe pasar sin cambios.

720* Establece `CLAUDE_CODE_AUTO_MODE_SERVER=0` antes de iniciar Claude Code para que use en su lugar sus propias solicitudes al clasificador. Antes de v2.1.281, Claude Code no leía la variable en una conexión directa a la API de Anthropic.724* Establece `CLAUDE_CODE_AUTO_MODE_SERVER=0` antes de iniciar Claude Code para que use en su lugar sus propias solicitudes al clasificador. Antes de v2.1.281, Claude Code no leía la variable en una conexión directa a la API de Anthropic.


722 726 

723Antes de v2.1.280, Claude Code denegaba de inmediato cada acción de una respuesta sin veredicto y nunca detenía el turno.727Antes de v2.1.280, Claude Code denegaba de inmediato cada acción de una respuesta sin veredicto y nunca detenía el turno.

724 728 

729Antes de v2.1.302, en una conexión directa a la API de Anthropic, Claude Code no compactaba una conversación que se había vuelto demasiado larga para la verificación del servidor.

730 

731<h3 id="was-not-reviewed-and-did-not-run">

732 Was not reviewed and did not run

733</h3>

734 

735Una denegación `was not reviewed and did not run` significa que la conversación es demasiado larga para que el clasificador del [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) verifique la acción, así que la acción no se ejecutó. Claude Code le devuelve este mensaje a Claude:

736 

737```text theme={null}

738<tool> was not reviewed and did not run: the conversation is too long for auto mode's classifier. Claude Code will try to compact the conversation before the next request; if this action is still needed after that, issue it again and it will be reviewed normally.

739```

740 

741Si la compactación falla, las acciones posteriores que el clasificador no puede verificar reciben uno de otros dos mensajes:

742 

743* Una denegación [`gave no verdict (the conversation is too long for the check)`](#the-server-returned-no-safety-verdict)

744* El mensaje [`Auto mode classifier transcript exceeded context window`](#auto-mode-cannot-determine-the-safety-of-an-action)

745 

746**Qué hacer:**

747 

748* Si la compactación que anuncia el mensaje tiene éxito, no necesitas hacer nada.

749* Si ves cualquiera de esos dos mensajes, ejecuta `/compact` en el prompt de Claude Code para acortar la conversación tú mismo. Si desactivaste la [compactación automática](/docs/es/settings-reference#autocompactenabled), vuelve a activarla para que Claude Code compacte por su cuenta la próxima vez.

750 

725<h3 id="agent-terminated-early-due-to-an-api-error">751<h3 id="agent-terminated-early-due-to-an-api-error">

726 Agent terminated early due to an API error752 Agent terminated early due to an API error

727</h3>753</h3>


4509 Errores de herramientas4535 Errores de herramientas

4510</h2>4536</h2>

4511 4537 

4512Estos errores provienen de las llamadas a herramientas de Claude. Claude corrige la mayoría de los errores de herramientas por sí solo. Cuando uno requiere un cambio de tu parte, la lista **Qué hacer** de ese error indica qué cambiar.4538Estos errores provienen de las llamadas a herramientas de Claude. Claude corrige por sí solo la mayoría de los errores de herramientas. Cuando alguno necesita un cambio de tu parte, la lista **Qué hacer** de ese error indica qué debes cambiar.

4513 4539 

4514<h3 id="no-such-tool-available">4540<h3 id="no-such-tool-available">

4515 No such tool available4541 No such tool available

4516</h3>4542</h3>

4517 4543 

4518Claude llamó a una herramienta con un nombre que no está en la lista de herramientas de la sesión. Claude Code devuelve el error a Claude como resultado de la llamada a herramienta, y el turno continúa. Cuando Claude Code puede determinar por qué falta la herramienta, agrega una oración después del nombre de la herramienta que da la razón o nombra la herramienta a la que debe llamar en su lugar, como en la segunda línea:4544Claude llamó a una herramienta con un nombre que no está en la lista de herramientas de la sesión. Claude Code devuelve el error a Claude como resultado de la llamada a herramienta, y el turno continúa. Cuando Claude Code puede determinar por qué falta la herramienta, agrega una oración después del nombre de la herramienta que da el motivo o nombra la herramienta que se debe llamar en su lugar, como en la segunda línea:

4519 4545 

4520```text theme={null}4546```text theme={null}

4521Error: No such tool available: <tool name>4547Error: No such tool available: <tool name>

4522Error: No such tool available: read. Tool names are case-sensitive: call Read instead.4548Error: No such tool available: read. Tool names are case-sensitive: call Read instead.

4523```4549```

4524 4550 

4525Justo después de reanudar una sesión, un servidor MCP todavía puede estar en su primer intento de conexión cuando Claude llama a una de sus herramientas. Claude Code entonces [espera al servidor](/docs/es/mcp#tool-availability) y devuelve este error si la herramienta aún no está disponible cuando termina la espera. Antes de v2.1.284, una llamada así fallaba de inmediato en lugar de esperar.4551Justo después de reanudar una sesión, un servidor MCP puede seguir en su primer intento de conexión cuando Claude llama a una de sus herramientas. En ese caso, Claude Code [espera al servidor](/docs/es/mcp#tool-availability) y devuelve este error si la herramienta sigue sin estar disponible cuando termina la espera. Antes de la v2.1.284, una llamada así fallaba de inmediato en lugar de esperar.

4526 4552 

4527Una llamada cuyo nombre de herramienta Claude Code [recortó a 200 caracteres](#tool-use-name-over-200-characters) también falla con este error.4553Una llamada cuyo nombre de herramienta Claude Code [recortó a 200 caracteres](#tool-use-name-over-200-characters) también falla con este error.

4528 4554 

4529**Qué hacer:**4555**Qué hacer:**

4530 4556 

4531* Si ocurre una vez, no necesitas hacer nada. Claude lee el error y el turno continúa.4557* Si ocurre una vez, no necesitas hacer nada. Claude lee el error y el turno continúa.

4532* Si las llamadas a las herramientas de un servidor MCP siguen fallando con este error, ejecuta `/mcp` en la sesión o `claude mcp list` en tu shell para revisar el [estado](/docs/es/mcp#server-status) del servidor, y vuelve a conectar un servidor fallido desde `/mcp`. En el Agent SDK, consulta [Manejo de errores](/docs/es/agent-sdk/mcp#error-handling).4558* Si las llamadas a las herramientas de un servidor MCP siguen fallando con este error, ejecuta `/mcp` en la sesión o `claude mcp list` en tu shell para revisar el [estado](/docs/es/mcp#server-status) del servidor, y vuelve a conectar un servidor con fallas desde `/mcp`. En el Agent SDK, consulta [Manejo de errores](/docs/es/agent-sdk/mcp#error-handling).

4533 4559 

4534<h3 id="agent-would-be-spawned-with-zero-tools">4560<h3 id="agent-would-be-spawned-with-zero-tools">

4535 Agent would be spawned with zero tools4561 Agent would be spawned with zero tools

4536</h3>4562</h3>

4537 4563 

4538Cada entrada en la lista [`tools` del subagente](/docs/es/sub-agents#supported-frontmatter-fields) no coincidió con ninguna herramienta utilizable, por lo que Claude Code se negó a lanzar el subagente: sin herramientas, no podía actuar. El mensaje agrupa tus entradas por lo que salió mal:4564Ninguna entrada de la [lista `tools`](/docs/es/sub-agents#supported-frontmatter-fields) del subagente coincidió con una herramienta utilizable, así que Claude Code se negó a iniciar el subagente: sin herramientas, no podría actuar. El mensaje agrupa tus entradas según lo que salió mal:

4539 4565 

4540* **Unrecognized**: la entrada no coincide con ningún nombre de herramienta, generalmente un error tipográfico como `Grpe` para `Grep`.4566* **Unrecognized**: la entrada no coincide con ningún nombre de herramienta, normalmente por un error tipográfico como `Grpe` en lugar de `Grep`.

4541* **Not available to subagents**: la entrada nombra una herramienta real que [los subagentes no pueden usar](/docs/es/sub-agents#available-tools). Los subagentes en segundo plano mantienen un conjunto de herramientas integradas más pequeño, por lo que una entrada que solo un subagente en primer plano puede usar termina aquí cuando el subagente se ejecutaría en segundo plano, que es lo predeterminado. Si enumeras `Agent`, el mensaje lo reporta bajo el siguiente grupo en su lugar.4567* **Not available to subagents**: la entrada nombra una herramienta real que [los subagentes no pueden usar](/docs/es/sub-agents#available-tools). Los subagentes en segundo plano conservan un conjunto más reducido de herramientas integradas, así que una entrada que solo puede usar un subagente en primer plano cae aquí cuando el subagente se ejecutaría en segundo plano, que es el comportamiento predeterminado. Si incluyes `Agent`, el mensaje lo reporta en el siguiente grupo.

4542* **Matched no tools in this session**: la entrada es válida pero ninguna herramienta en la sesión actual coincide con ella en este momento, como `mcp__github__*` sin servidor MCP de GitHub conectado, o `Agent` para un subagente en el [límite de profundidad](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents).4568* **Matched no tools in this session**: la entrada es válida, pero ninguna herramienta de la sesión actual coincide con ella en este momento, como `mcp__github__*` sin un servidor MCP de GitHub conectado, o `Agent` para un subagente que está en el [límite de profundidad](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents).

4543 4569 

4544Omitir el campo `tools` nunca activa este rechazo. Si dejas la lista `tools` vacía, o `disallowedTools` elimina cada entrada en ella, Claude Code también omite el rechazo y lanza el subagente sin herramientas.4570Omitir el campo `tools` nunca provoca este rechazo. Si dejas vacía la lista `tools`, o si `disallowedTools` elimina todas sus entradas, Claude Code también omite el rechazo e inicia el subagente sin herramientas.

4545 4571 

4546Antes de v2.1.208, el subagente se lanzaba sin herramientas y podía devolver un resultado vacío o confuso.4572Antes de la v2.1.208, el subagente se iniciaba sin herramientas y podía devolver un resultado vacío o confuso.

4547 4573 

4548```text theme={null}4574```text theme={null}

4549Agent 'code-reviewer' would be spawned with zero tools — refusing. Its tools list resolved to nothing: unrecognized [Grpe]. Fix the agent's tools frontmatter or pass a different subagent_type.4575Agent 'code-reviewer' would be spawned with zero tools — refusing. Its tools list resolved to nothing: unrecognized [Grpe]. Fix the agent's tools frontmatter or pass a different subagent_type.


4551 4577 

4552**Qué hacer:**4578**Qué hacer:**

4553 4579 

4554* Corrige cada entrada que el error nombra contra las [herramientas disponibles para subagentes](/docs/es/sub-agents#available-tools)4580* Corrige cada entrada que nombra el error comparándola con las [herramientas disponibles para subagentes](/docs/es/sub-agents#available-tools)

4555* Elimina entradas para herramientas que la sesión no tiene, como herramientas MCP de un servidor que no está conectado4581* Elimina las entradas de herramientas que la sesión no tiene, como herramientas MCP de un servidor que no está conectado

4556* Si la entrada nombra un servidor MCP conectado, compara la entrada con el nombre de ese servidor tal como lo escriben los [nombres de herramientas](/docs/es/permissions#mcp) del servidor, como `reports__v2` en `mcp__reports__v2__get_totals`. Para ese servidor, escribe `mcp__reports__v2__*`, que es `mcp__` seguido del nombre completo y `__*`. Con el más corto `mcp__reports`, que nombra un servidor llamado `reports`, el subagente no obtiene ninguna de las herramientas de `reports__v2`4582* Si la entrada nombra un servidor MCP conectado, compara la entrada con el nombre de ese servidor tal como lo escriben los [nombres de herramientas](/docs/es/permissions#mcp) del servidor, como `reports__v2` en `mcp__reports__v2__get_totals`. Para ese servidor, escribe `mcp__reports__v2__*`, que es `mcp__` seguido del nombre completo y `__*`. Con el `mcp__reports` más corto, que nombra un servidor llamado `reports`, el subagente no recibe ninguna de las herramientas de `reports__v2`

4557* Para una herramienta que [los subagentes en segundo plano descartan](/docs/es/sub-agents#available-tools), como `CronCreate`, elimina la entrada. Para mantener la herramienta, [desactiva el modo fork](/docs/es/sub-agents#turn-fork-mode-on-or-off) y pide a Claude que ejecute el subagente en primer plano4583* Para una herramienta que [los subagentes en segundo plano descartan](/docs/es/sub-agents#available-tools), como `CronCreate`, elimina la entrada

4558* Elimina el campo `tools` en lugar de enumerar herramientas para dar al subagente cada [herramienta disponible para subagentes](/docs/es/sub-agents#available-tools)4584* Para conservar en cambio una herramienta como `CronCreate`, [deja que Claude espere al subagente](/docs/es/sub-agents#let-claude-wait-for-a-subagent), ya que un subagente al que Claude espera se ejecuta en primer plano y conserva la herramienta. Si la definición establece `background: true`, elimina primero ese campo, porque mantiene al subagente en segundo plano

4559* Para una lista `tools` que contiene solo `Agent`, aumenta el [límite de profundidad](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents) o da al agente al menos otra herramienta: Claude Code retiene `Agent` en ese límite, por lo que una lista sin nada más en ella se resuelve a ninguna herramienta4585* Elimina el campo `tools` en lugar de listar herramientas para darle al subagente todas las [herramientas disponibles para subagentes](/docs/es/sub-agents#available-tools)

4586* Para una lista `tools` que contiene solo `Agent`, aumenta el [límite de profundidad](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents) o dale al agente al menos otra herramienta: Claude Code no proporciona `Agent` en ese límite, así que una lista sin nada más se resuelve en ninguna herramienta

4560 4587 

4561<h3 id="file-is-covered-by-a-read-deny-rule">4588<h3 id="file-is-covered-by-a-read-deny-rule">

4562 File is covered by a Read deny rule4589 File is covered by a Read deny rule

4563</h3>4590</h3>

4564 4591 

4565La herramienta Edit o Write fue llamada en una ruta coincidida por una [regla de denegación `Read`](/docs/es/permissions#read-and-edit), incluyendo la creación de un nuevo archivo en esa ruta. Ambas herramientas cambian contenido que Claude debe poder leer de nuevo, por lo que Claude Code rechaza la llamada antes de cualquier acceso a archivos. NotebookEdit no está cubierto por reglas de denegación `Read`. Antes de v2.1.228, la regla bloqueaba solo la herramienta Edit, y antes de v2.1.208, solo una regla de denegación `Edit` bloqueaba ediciones.4592Se llamó a la herramienta Edit o Write sobre una ruta que coincide con una [regla de denegación de `Read`](/docs/es/permissions#read-and-edit), incluida la creación de un archivo nuevo en esa ruta. Ambas herramientas modifican contenido que Claude tiene que poder volver a leer, así que Claude Code rechaza la llamada antes de cualquier acceso al archivo. NotebookEdit no está cubierta por las reglas de denegación de `Read`. Antes de la v2.1.228, la regla bloqueaba solo la herramienta Edit, y antes de la v2.1.208, solo una regla de denegación de `Edit` bloqueaba las ediciones.

4566 4593 

4567```text theme={null}4594```text theme={null}

4568File is covered by a Read deny rule in your permission settings and cannot be edited.4595File is covered by a Read deny rule in your permission settings and cannot be edited.

4569```4596```

4570 4597 

4571Cuando Claude Code rechaza la herramienta Write, el mensaje termina con `and cannot be written` en su lugar.4598Cuando Claude Code rechaza la herramienta Write, el mensaje termina en cambio con `and cannot be written`.

4572 4599 

4573**Qué hacer:**4600**Qué hacer:**

4574 4601 

4575* Si Claude debe poder cambiar el archivo, elimina o reduce la regla de denegación `Read` en `/permissions` o en la [configuración](/docs/es/settings-reference#permission-settings)4602* Si Claude debería poder modificar el archivo, elimina o restringe la regla de denegación de `Read` en `/permissions` o en la [configuración](/docs/es/settings-reference#permission-settings)

4576* Si el archivo debe permanecer intacto, mantén la regla y agrega una regla de denegación `Edit` para la misma ruta para bloquear también la herramienta NotebookEdit4603* Si el archivo debe permanecer intacto, conserva la regla y agrega una regla de denegación de `Edit` para la misma ruta para bloquear también la herramienta NotebookEdit

4577 4604 

4578<h3 id="path-cannot-contain-null-bytes">4605<h3 id="path-cannot-contain-null-bytes">

4579 Path cannot contain null bytes4606 Path cannot contain null bytes

4580</h3>4607</h3>

4581 4608 

4582El argumento de ruta o patrón de una llamada a herramienta de archivo contenía un byte nulo, que los sistemas de archivos y las herramientas de búsqueda no pueden aceptar. Read, Write, Edit, NotebookEdit, Glob y Grep verifican esto, y el mensaje nombra la herramienta y el argumento:4609El argumento de ruta o patrón de una llamada a una herramienta de archivos contenía un byte nulo, que los sistemas de archivos y las herramientas de búsqueda no pueden aceptar. Read, Write, Edit, NotebookEdit, Glob y Grep verifican esto, y el mensaje nombra la herramienta y el argumento:

4583 4610 

4584```text theme={null}4611```text theme={null}

4585Read file_path cannot contain null bytes (\0). Remove the null byte and try again.4612Read file_path cannot contain null bytes (\0). Remove the null byte and try again.

4586```4613```

4587 4614 

4588La llamada a herramienta falla, Claude ve el error, y el turno continúa.4615La llamada a herramienta falla, Claude ve el error y el turno continúa.

4589 4616 

4590**Qué hacer:**4617**Qué hacer:**

4591 4618 

4592* Nada de tu parte: el error se devuelve a Claude como el resultado de la herramienta, y el mensaje en sí le dice a Claude que elimine el byte nulo e intente de nuevo4619* Nada de tu parte: el error se devuelve a Claude como resultado de la herramienta, y el propio mensaje le indica a Claude que elimine el byte nulo y lo intente de nuevo

4593 4620 

4594Antes de v2.1.281, un byte nulo en una ruta de Read, Write, Edit o NotebookEdit terminaba todo el turno con un error que nombraba `Path contains null bytes`, y la herramienta nunca se ejecutaba.4621Antes 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.

4595 4622 

4596<h3 id="subagent-type-is-required">4623<h3 id="subagent-type-is-required">

4597 subagent\_type is required4624 subagent\_type is required


4601subagent_type is required: the general-purpose agent is not available in this session. Available agents: ...4628subagent_type is required: the general-purpose agent is not available in this session. Available agents: ...

4602```4629```

4603 4630 

4604Claude llamó a la [herramienta Agent](/docs/es/tools-reference#agent-tool-behavior) sin un `subagent_type`, y esta sesión no tiene un [subagente de propósito general](/docs/es/sub-agents#built-in-subagents) como alternativa. Ese es el caso en dos configuraciones:4631Claude llamó a la [herramienta Agent](/docs/es/tools-reference#agent-tool-behavior) sin un `subagent_type`, y esta sesión no tiene un [subagente de propósito general](/docs/es/sub-agents#built-in-subagents) al cual recurrir. Ese es el caso en dos configuraciones:

4605 4632 

4606* [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/docs/es/env-vars) está configurado en modo no interactivo, lo que elimina cada subagente integrado4633* [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/docs/es/env-vars) está establecida en modo no interactivo, lo que elimina todos los subagentes integrados

4607* El agente del hilo principal de la sesión tiene una [lista de permitidos `tools: Agent(...)`](/docs/es/sub-agents#restrict-which-subagents-can-be-spawned) que deja fuera `general-purpose`4634* El agente del hilo principal de la sesión tiene una [lista de permitidos `tools: Agent(...)`](/docs/es/sub-agents#restrict-which-subagents-can-be-spawned) que excluye `general-purpose`

4608 4635 

4609**Qué hacer:**4636**Qué hacer:**

4610 4637 

4611* Generalmente nada: el mensaje enumera los subagentes que la sesión sí tiene, por lo que Claude puede reintentar con uno de ellos4638* Normalmente nada: el mensaje lista los subagentes que sí tiene la sesión, así que Claude puede reintentar con uno de ellos

4612* Si Claude sigue fallando, agrega `general-purpose` a la lista de permitidos `tools: Agent(...)`, o quita la definición de `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`4639* Si Claude sigue fallando, agrega `general-purpose` a la lista de permitidos `tools: Agent(...)`, o elimina `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`

4613 4640 

4614Antes de v2.1.235, la misma llamada fallaba con `Agent type 'general-purpose' not found`.4641Antes de la v2.1.235, la misma llamada fallaba con `Agent type 'general-purpose' not found`.

4615 4642 

4616<h3 id="memory-index-is-over-its-read-limit">4643<h3 id="memory-index-is-over-its-read-limit">

4617 Memory index is over its read limit4644 Memory index is over its read limit

4618</h3>4645</h3>

4619 4646 

4620Claude escribió en el índice de [memoria automática](/docs/es/memory#auto-memory) `MEMORY.md` y lo dejó por encima de uno de sus límites de lectura: 200 líneas o 25KB. La escritura fue exitosa, pero solo las primeras 200 líneas o 25KB, lo que ocurra primero, se cargan al inicio de una sesión, por lo que todo lo que está más allá del límite se descarta cada vez que se lee el índice. Antes de v2.1.210, un índice que excedía el límite se truncaba silenciosamente en la siguiente carga sin ninguna señal al momento de la escritura.4647Claude escribió en el índice de [memoria automática](/docs/es/memory#auto-memory) `MEMORY.md` y lo dejó por encima de uno de sus límites de lectura: 200 líneas o 25KB. La escritura se completó, pero solo las primeras 200 líneas o 25KB, lo que ocurra primero, se cargan al inicio de una sesión, así que todo lo que supera el límite se descarta cada vez que se lee el índice. Antes de la v2.1.210, un índice que superaba el límite se truncaba silenciosamente en la siguiente carga sin ninguna señal al momento de escribir.

4621 4648 

4622```text theme={null}4649```text theme={null}

4623Error: this write left the memory index at MEMORY.md at 214 lines, over its 200-line read limit. The write succeeded, but everything past the limit is silently dropped each time the index is loaded — entries at the end are already invisible to readers. Rewrite it to under 140 lines now: keep one line per entry, move detail into topic files, and merge or drop stale entries.4650Error: this write left the memory index at MEMORY.md at 214 lines, over its 200-line read limit. The write succeeded, but everything past the limit is silently dropped each time the index is loaded — entries at the end are already invisible to readers. Rewrite it to under 140 lines now: keep one line per entry, move detail into topic files, and merge or drop stale entries.

4624```4651```

4625 4652 

4626Solo el contenido que se carga cuenta para los límites. El frontmatter YAML y los comentarios HTML a nivel de bloque se eliminan antes de que se cargue el índice, por lo que se excluyen de la medición. Antes de v2.1.211, Claude Code medía el archivo sin procesar, y el frontmatter o los comentarios podían activar este error incluso cuando el contenido cargado cabía.4653Solo el contenido que se carga cuenta para los límites. El frontmatter YAML y los comentarios HTML a nivel de bloque se eliminan antes de cargar el índice, así que quedan excluidos de la medición. Antes de la v2.1.211, Claude Code medía el archivo sin procesar, y el frontmatter o los comentarios podían provocar este error incluso cuando el contenido cargado cabía.

4627 4654 

4628Claude Code entrega el error a Claude después de la escritura en lugar de imprimirlo como un banner en tu terminal, por lo que puede que solo lo notes en la transcripción.4655Claude Code entrega el error a Claude después de la escritura en lugar de mostrarlo como un aviso en tu terminal, así que es posible que solo lo notes en la transcripción.

4629 4656 

4630Cuando la escritura de Claude acerca el archivo a un límite sin cruzarlo, Claude Code devuelve un recordatorio más suave para compactar el índice en lugar de este error.4657Cuando la escritura de Claude deja el archivo cerca de un límite sin superarlo, Claude Code devuelve un recordatorio más leve para compactar el índice en lugar de este error.

4631 4658 

4632**Qué hacer:**4659**Qué hacer:**

4633 4660 

4634* Permite que Claude reescriba `MEMORY.md`, o pídele que lo haga: mantener una línea por entrada, mover los detalles a archivos de tema y combinar o descartar entradas obsoletas4661* Deja que Claude reescriba `MEMORY.md`, o pídeselo: mantener una línea por entrada, mover los detalles a archivos de temas y combinar o eliminar las entradas obsoletas

4635* Para recortar el índice tú mismo, consulta [Auditar y editar tu memoria](/docs/es/memory#audit-and-edit-your-memory)4662* Para recortar el índice tú mismo, consulta [Auditar y editar tu memoria](/docs/es/memory#audit-and-edit-your-memory)

4636 4663 

4637<h3 id="pkill-pattern-matches-the-claude-code-process">4664<h3 id="pkill-pattern-matches-the-claude-code-process">

4638 pkill pattern matches the Claude Code process4665 pkill pattern matches the Claude Code process

4639</h3>4666</h3>

4640 4667 

4641Un comando `pkill` en una llamada a la herramienta Bash usó un patrón, típicamente con `-f`, que coincide con el propio proceso de Claude Code, por lo que Claude Code rechaza el comando en lugar de permitir que termine la sesión. Claude Code prueba el patrón con `pgrep` antes de ejecutar `pkill` y lo rechaza cuando su propio ID de proceso está en el resultado. La verificación se ejecuta solo en Linux; en macOS, `pkill` se ejecuta sin modificaciones. Antes de v2.1.214, el comando se ejecutaba, y un patrón coincidente mataba la sesión de Claude Code a mitad del turno.4668Un comando `pkill` en una llamada a la herramienta Bash usó un patrón, normalmente con `-f`, que coincide con el propio proceso de Claude Code, así que Claude Code rechaza el comando en lugar de dejar que termine la sesión. Claude Code prueba el patrón con `pgrep` antes de ejecutar `pkill` y lo rechaza cuando su propio ID de proceso aparece en el resultado. La verificación se ejecuta solo en Linux; en macOS, `pkill` se ejecuta sin modificaciones. Antes de la v2.1.214, el comando se ejecutaba, y un patrón coincidente terminaba la sesión de Claude Code a mitad del turno.

4642 4669 

4643```text theme={null}4670```text theme={null}

4644pkill: refusing to run — this pattern matches the Claude CLI process (PID 12345). Narrow the pattern, or target your own children with `pkill -P $$ ...`.4671pkill: refusing to run — this pattern matches the Claude CLI process (PID 12345). Narrow the pattern, or target your own children with `pkill -P $$ ...`.

4645```4672```

4646 4673 

4647El rechazo aparece en el resultado de la herramienta Bash en lugar de como un banner en tu terminal, y Claude generalmente ajusta el comando por sí solo.4674El rechazo aparece en el resultado de la herramienta Bash en lugar de como un aviso en tu terminal, y Claude normalmente ajusta el comando por sí solo.

4648 4675 

4649**Qué hacer:**4676**Qué hacer:**

4650 4677 

4651* Reduce el patrón para que coincida solo con el proceso previsto, por ejemplo la ruta completa del binario de destino en lugar de una subcadena corta4678* Restringe el patrón para que coincida solo con el proceso deseado, por ejemplo la ruta completa del binario objetivo en lugar de una subcadena corta

4652* Para detener procesos iniciados por el shell actual, usa `pkill -P $$` con el patrón, lo que limita la coincidencia a los procesos hijos del propio shell4679* Para detener procesos iniciados por el shell actual, usa `pkill -P $$` con el patrón, lo que limita la coincidencia a los procesos hijos del propio shell

4653 4680 

4654<h3 id="failed-to-write-to-a-teammate-inbox">4681<h3 id="failed-to-write-to-a-teammate-inbox">

4655 Failed to write to a teammate's inbox4682 Failed to write to a teammate's inbox

4656</h3>4683</h3>

4657 4684 

4658Claude Code no pudo escribir un mensaje en el archivo de buzón de un compañero de equipo bajo `~/.claude/teams/{team-name}/inboxes/`, por lo que el destinatario no recibió nada. La escritura falla cuando Claude Code no puede crear o actualizar el archivo, por ejemplo porque el disco está lleno, el directorio no tiene permisos de escritura, u otro agente mantiene el bloqueo del buzón durante demasiado tiempo. Antes de v2.1.224, Claude Code reportaba el mensaje como enviado incluso cuando la escritura fallaba.4685Claude Code no pudo escribir un mensaje en el archivo de buzón de un compañero de equipo en `~/.claude/teams/{team-name}/inboxes/`, así que el destinatario no recibió nada. La escritura falla cuando Claude Code no puede crear ni actualizar el archivo, por ejemplo porque el disco está lleno, el directorio no admite escritura u otro agente retiene el bloqueo del buzón durante demasiado tiempo. Antes de la v2.1.224, Claude Code reportaba el mensaje como enviado incluso cuando la escritura fallaba.

4659 4686 

4660El error aparece en el resultado de la herramienta del agente remitente en lugar de como un banner en tu terminal, y su texto le dice a Claude que intente de nuevo:4687El error aparece en el resultado de la herramienta del agente remitente en lugar de como un aviso en tu terminal, y su texto le indica a Claude que lo intente de nuevo:

4661 4688 

4662```text theme={null}4689```text theme={null}

4663Failed to write to researcher's inbox — nothing was sent. Try again, or message the lead.4690Failed to write to researcher's inbox — nothing was sent. Try again, or message the lead.

4664```4691```

4665 4692 

4666Los mensajes estructurados del protocolo de [equipo de agentes](/docs/es/agent-teams) fallan de la misma manera, y el error nombra el mensaje no entregado: cuando Claude Code no puede escribir una aprobación de plan, un rechazo de plan, una solicitud de apagado o un rechazo de apagado, el error dice `Failed to write the <message> to <name>'s inbox — nothing was sent`. La `plan approval` en esa lista es la decisión del líder que aprueba el plan de un compañero; el envío del plan del compañero es el mensaje separado `plan approval request`. Ese mensaje y otros dos mensajes de protocolo tienen su propio texto de mensaje y consecuencia:4693Los mensajes de protocolo estructurados del [equipo de agentes](/docs/es/agent-teams) fallan de la misma manera, y el error nombra el mensaje no entregado: cuando Claude Code no puede escribir una aprobación de plan, un rechazo de plan, una solicitud de apagado o un rechazo de apagado, el error dice `Failed to write the <message> to <name>'s inbox — nothing was sent`. El `plan approval` de esa lista es la decisión del líder que aprueba el plan de un compañero de equipo; el envío del plan por parte del compañero es el mensaje separado `plan approval request`. Ese mensaje y otros dos mensajes de protocolo tienen su propio texto y consecuencia:

4667 4694 

4668* `Failed to write the plan approval request to the lead's inbox — plan not submitted; try again`: el plan del compañero nunca llegó al líder, y el compañero permanece en modo plan hasta que un reenvío tenga éxito4695* `Failed to write the plan approval request to the lead's inbox — plan not submitted; try again`: el plan del compañero de equipo nunca llegó al líder, y el compañero permanece en modo plan hasta que un nuevo envío tenga éxito

4669* `The permission request could not be delivered to the team lead (mailbox write failed)`: la solicitud de permiso del compañero nunca llegó al líder, por lo que nadie aprobó la llamada a herramienta4696* `The permission request could not be delivered to the team lead (mailbox write failed)`: la solicitud de permiso del compañero de equipo nunca llegó al líder, así que nadie aprobó la llamada a herramienta

4670* `The confirmation could not be written to team-lead's inbox.`: la aprobación del apagado en sí tuvo efecto y el compañero sale; solo falta la confirmación al líder4697* `The confirmation could not be written to team-lead's inbox.`: la aprobación del apagado sí surtió efecto y el compañero de equipo termina; solo falta la confirmación al líder

4671 4698 

4672Cuando tú mismo envías un mensaje a un compañero, escribiendo `@name` seguido del mensaje en la sesión del líder, la misma falla aparece como una notificación, `Couldn't write to @name's inbox — message not sent. Try again.`, y Claude Code mantiene tu texto en el cuadro del prompt para que puedas enviarlo de nuevo.4699Cuando tú mismo le envías un mensaje a un compañero de equipo, escribiendo `@name` seguido del mensaje en la sesión del líder, la misma falla aparece como una notificación, `Couldn't write to @name's inbox — message not sent. Try again.`, y Claude Code conserva tu texto en el cuadro del prompt para que puedas enviarlo de nuevo.

4673 4700 

4674**Qué hacer:**4701**Qué hacer:**

4675 4702 

4676* Pide al remitente que reenvíe el mensaje; la contención por el bloqueo del buzón es transitoria y se resuelve al reintentar4703* Pídele al remitente que vuelva a enviar el mensaje; la contención por el bloqueo del buzón es transitoria y se resuelve al reintentar

4677* Verifica el espacio libre en disco y comprueba que `~/.claude/teams` y los archivos bajo él tengan permisos de escritura para tu usuario4704* Revisa el espacio libre en disco y verifica que tu usuario pueda escribir en `~/.claude/teams` y en los archivos que contiene

4678 4705 

4679<h3 id="teammate-agent-definition-not-restored">4706<h3 id="teammate-agent-definition-not-restored">

4680 Teammate's agent definition was not restored4707 Teammate's agent definition was not restored

4681</h3>4708</h3>

4682 4709 

4683Claude envió un mensaje a un compañero de [equipo de agentes](/docs/es/agent-teams) detenido, y Claude Code lo reactivó sin volver a aplicar la [definición de subagente](/docs/es/agent-teams#use-subagent-definitions-for-teammates) desde la que fue generado. El aviso sigue al informe de reanudación en el resultado de la herramienta del agente remitente y nombra la razón. Cuando el archivo de definición provenía de una carpeta sin confianza guardada, dice:4710Claude le envió un mensaje a un compañero de [equipo de agentes](/docs/es/agent-teams) detenido, y Claude Code lo reactivó sin volver a aplicar la [definición de subagente](/docs/es/agent-teams#use-subagent-definitions-for-teammates) a partir de la cual se creó. El aviso sigue al reporte de reanudación en el resultado de la herramienta del agente remitente y nombra el motivo. Cuando el archivo de definición proviene de una carpeta sin confianza guardada, dice:

4684 4711 

4685```text wrap theme={null}4712```text wrap theme={null}

4686Its agent definition was not restored: the folder its definition file came from is not trusted (source: projectSettings), so the teammate is running with the team-essential tools and no custom instructions. To restore it, the user needs to run Claude Code in that folder once and accept the trust dialog (the --debug log names the folder); do not change trust settings on the user's behalf.4713Its agent definition was not restored: the folder its definition file came from is not trusted (source: projectSettings), so the teammate is running with the team-essential tools and no custom instructions. To restore it, the user needs to run Claude Code in that folder once and accept the trust dialog (the --debug log names the folder); do not change trust settings on the user's behalf.

4687```4714```

4688 4715 

4689La verificación se aplica a una definición en el directorio `.claude/agents/` del proyecto o de un directorio `--add-dir`, y aceptar el diálogo de confianza para una carpeta principal no la satisface.4716La verificación se aplica a una definición en el directorio `.claude/agents/` del proyecto o de un directorio de `--add-dir`, y aceptar el diálogo de confianza para una carpeta superior no la satisface.

4690 4717 

4691**Qué hacer:**4718**Qué hacer:**

4692 4719 

4693* 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; no necesitas reiniciar la sesión del líder4720* 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

4694* O establece la entrada `hasTrustDialogAccepted` en `true` en `~/.claude.json`, usando la clave exacta `projects["<path>"]` que imprime el registro de depuración4721* O establece la entrada `hasTrustDialogAccepted` en `true` en `~/.claude.json`, usando exactamente la clave `projects["<path>"]` que muestra el registro de depuración

4695 4722 

4696<h3 id="message-too-large-for-cross-session-delivery">4723<h3 id="message-too-large-for-cross-session-delivery">

4697 Message too large for cross-session delivery4724 Message too large for cross-session delivery

4698</h3>4725</h3>

4699 4726 

4700El [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 banner en tu terminal. Nombra ambos tamaños y cómo hacer que el mensaje quepa:4727El [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:

4701 4728 

4702```text wrap theme={null}4729```text wrap theme={null}

4703Failed to send to api-worker: Message too large for cross-session delivery: the serialized message is 1,203,844 characters and the limit is 1,048,576. Shorten the message text — put bulk content in a file the recipient can read rather than in the message — or split it into smaller messages.4730Failed to send to api-worker: Message too large for cross-session delivery: the serialized message is 1,203,844 characters and the limit is 1,048,576. Shorten the message text — put bulk content in a file the recipient can read rather than in the message — or split it into smaller messages.

4704```4731```

4705 4732 

4706Reenviar el mismo texto falla de la misma manera.4733Volver a enviar el mismo texto falla de la misma manera.

4707 4734 

4708**Qué hacer:**4735**Qué hacer:**

4709 4736 

4710* Pide a Claude que resuma el mensaje, o que ponga el contenido voluminoso en un archivo y envíe la ruta del archivo4737* Pídele a Claude que resuma el mensaje, o que ponga el contenido extenso en un archivo y envíe la ruta del archivo

4711* Pide a Claude que divida el contenido en varios mensajes más cortos4738* Pídele a Claude que divida el contenido en varios mensajes más cortos

4712 4739 

4713Antes de v2.1.235, Claude Code reportaba un mensaje de tamaño excesivo como enviado. La sesión receptora lo descartaba sin leerlo.4740Antes de la v2.1.235, Claude Code reportaba un mensaje demasiado grande como enviado. La sesión receptora lo descartaba sin leerlo.

4714 4741 

4715<h3 id="too-many-messages-to-this-session-just-now">4742<h3 id="too-many-messages-to-this-session-just-now">

4716 Too many messages to this session just now4743 Too many messages to this session just now

4717</h3>4744</h3>

4718 4745 

4719Claude envió una ráfaga rápida de [mensajes entre sesiones](/docs/es/cross-session-messaging) a una de tus sesiones en esta máquina, y la ráfaga alcanzó lo que la bandeja de entrada de esa sesión acepta. Claude Code rechazó el siguiente envío, y la sesión receptora no recibió nada de él. El rechazo aparece en el resultado de la herramienta de la sesión remitente, no como un banner en tu terminal:4746Claude envió una ráfaga rápida de [mensajes entre sesiones](/docs/es/cross-session-messaging) a una de tus sesiones en esta máquina, y la ráfaga alcanzó lo que acepta el buzón de esa sesión. Claude Code rechazó el siguiente envío, y la sesión receptora no recibió nada de él. El rechazo aparece en el resultado de la herramienta de la sesión remitente, no como un aviso en tu terminal:

4720 4747 

4721```text wrap theme={null}4748```text wrap theme={null}

4722Failed to send to api-worker: Too many messages to this session just now: 30 were sent recently and more would be dropped by its rate limit, so this one was not sent. Batch what remains into one message, or wait a little before sending more.4749Failed to send to api-worker: Too many messages to this session just now: 30 were sent recently and more would be dropped by its rate limit, so this one was not sent. Batch what remains into one message, or wait a little before sending more.


4724 4751 

4725**Qué hacer:**4752**Qué hacer:**

4726 4753 

4727* Generalmente nada: Claude agrupa el contenido restante en un mensaje, o espera antes de enviar más4754* Normalmente nada: Claude agrupa el contenido restante en un solo mensaje, o espera antes de enviar más

4728* Si tú mismo provocaste la ráfaga, pide a Claude que combine lo que queda en un único mensaje4755* Si tú mismo provocaste la ráfaga, pídele a Claude que combine lo que queda en un solo mensaje

4729 4756 

4730Antes de v2.1.236, Claude Code reportaba estos envíos como enviados. La sesión receptora los descartaba sin leerlos.4757Antes de la v2.1.236, Claude Code reportaba estos envíos como enviados. La sesión receptora los descartaba sin leerlos.

4731 4758 

4732<h3 id="cross-session-message-dropped-at-the-inbox">4759<h3 id="cross-session-message-dropped-at-the-inbox">

4733 Cross-session message was dropped at the recipient session's inbox4760 Cross-session message was dropped at the recipient session's inbox

4734</h3>4761</h3>

4735 4762 

4736Claude envió un [mensaje entre sesiones](/docs/es/cross-session-messaging) a otra de tus sesiones en esta máquina, y la bandeja de entrada de esa sesión lo descartó antes de que Claude en esa sesión lo leyera. La línea nombra al destinatario y, cuando el destinatario dio una razón, agrega la razón después de un guion:4763Claude envió un [mensaje entre sesiones](/docs/es/cross-session-messaging) a otra de tus sesiones en esta máquina, y el buzón de esa sesión lo descartó antes de que Claude lo leyera en esa sesión. La línea nombra al destinatario y, cuando el destinatario dio un motivo, agrega el motivo después de un guion:

4737 4764 

4738```text wrap theme={null}4765```text wrap theme={null}

4739Cross-session message was dropped at the recipient session's inbox (recipient: uds:/tmp/cc-socks/13605.sock) and not delivered — its queue of undelivered peer messages was full. Claude was told not to resend right away.4766Cross-session message was dropped at the recipient session's inbox (recipient: uds:/tmp/cc-socks/13605.sock) and not delivered — its queue of undelivered peer messages was full. Claude was told not to resend right away.

4740```4767```

4741 4768 

4742Una línea puede cubrir varios mensajes descartados. En ese caso comienza en plural, por ejemplo `Cross-session messages (12) were dropped`. Para encontrar a qué sesión pertenece una dirección, compárala con la [fila `Peer address`](/docs/es/cross-session-messaging#the-sessions-inbox-socket) que `/status` muestra en cada sesión.4769Una sola línea puede cubrir varios mensajes descartados. En ese caso empieza en plural, por ejemplo `Cross-session messages (12) were dropped`. Para saber a qué sesión pertenece una dirección, compárala con la [fila `Peer address`](/docs/es/cross-session-messaging#the-sessions-inbox-socket) que muestra `/status` en cada sesión.

4743 4770 

4744Después del guion, la línea da una o más de estas razones:4771Después del guion, la línea da uno o más de estos motivos:

4745 4772 

4746* `its queue of undelivered peer messages was full`: el destinatario ya tenía tantos mensajes no entregados de otras sesiones como su cola permite4773* `its queue of undelivered peer messages was full`: el destinatario ya tenía tantos mensajes no entregados de otras sesiones como permite su cola

4747* `you sent faster than that session accepts`: los mensajes de la sesión remitente llegaron más rápido de lo que el destinatario acepta de un solo remitente4774* `you sent faster than that session accepts`: los mensajes de la sesión remitente llegaron más rápido de lo que el destinatario acepta de un solo remitente

4748* `it repeated your previous message`: el mensaje era idéntico a uno que la sesión remitente envió a este destinatario poco antes4775* `it repeated your previous message`: el mensaje era idéntico a uno que la sesión remitente le había enviado a este destinatario poco antes

4749* `a relay loop between sessions was cut`: el mensaje continuaba una cadena de sesiones enviándose mensajes entre sí, y la cadena había pasado por el destinatario demasiadas veces o se había vuelto demasiado larga4776* `a relay loop between sessions was cut`: el mensaje continuaba una cadena de sesiones que se enviaban mensajes entre sí, y la cadena había pasado por el destinatario demasiadas veces o se había vuelto demasiado larga

4750 4777 

4751**Qué hacer:**4778**Qué hacer:**

4752 4779 

4753* Asume que el destinatario nunca vio los mensajes descartados. Claude Code le dice lo mismo a Claude, y le indica que incluya cualquier cosa que aún importe en un mensaje posterior en lugar de reenviar de inmediato4780* Da por hecho que el destinatario nunca vio los mensajes descartados. Claude Code le dice lo mismo a Claude, y le indica que incluya todo lo que siga siendo importante en un solo mensaje posterior en lugar de reenviarlo de inmediato

4754* Si tus sesiones se envían actualizaciones frecuentes entre sí, pide a Claude que envíe menos mensajes y más grandes, como un informe cuando una sesión termina su trabajo4781* Si tus sesiones se envían actualizaciones frecuentes entre sí, pídele a Claude que envíe menos mensajes y más grandes, como un informe cuando una sesión termine su trabajo

4755* Para `a relay loop between sessions was cut`, escribe tú mismo la siguiente instrucción en una de las sesiones. Un mensaje que Claude envía en respuesta a tu propio prompt comienza una nueva cadena4782* Para `a relay loop between sessions was cut`, escribe tú mismo la siguiente instrucción en una de las sesiones. Un mensaje que Claude envía en respuesta a tu propio prompt inicia una nueva cadena

4756 4783 

4757Antes de v2.1.238, la sesión remitente no recibía ningún informe cuando la bandeja de entrada del destinatario descartaba un mensaje.4784Antes de la v2.1.238, la sesión remitente no recibía ningún reporte cuando el buzón del destinatario descartaba un mensaje.

4758 4785 

4759<h3 id="refusing-to-send-a-cross-session-message">4786<h3 id="refusing-to-send-a-cross-session-message">

4760 Refusing to send a cross-session message4787 Refusing to send a cross-session message

4761</h3>4788</h3>

4762 4789 

4763Antes de que Claude Code escriba un [mensaje entre sesiones](/docs/es/cross-session-messaging) a otra de tus sesiones en esta máquina, verifica que el socket de bandeja de entrada de la sesión de destino sea el endpoint al que se dirigió el mensaje. Cuando una verificación falla, Claude Code rechaza el envío en la sesión remitente, y la sesión de destino no recibe nada. Para un mensaje que envía Claude, el rechazo aparece en el resultado de la herramienta de la sesión remitente:4790Antes de que Claude Code escriba un [mensaje entre sesiones](/docs/es/cross-session-messaging) a otra de tus sesiones en esta máquina, verifica que el socket del buzón de la sesión destino sea el endpoint al que se dirigió el mensaje. Cuando una verificación falla, Claude Code rechaza el envío en la sesión remitente, y la sesión destino no recibe nada. Para un mensaje que envía Claude, el rechazo aparece en el resultado de la herramienta de la sesión remitente:

4764 4791 

4765```text theme={null}4792```text theme={null}

4766Failed to send to api-worker: Refusing to send: reply target is a symlink4793Failed to send to api-worker: Refusing to send: reply target is a symlink


4768 4795 

4769El texto después de `Refusing to send:` nombra la verificación que falló:4796El texto después de `Refusing to send:` nombra la verificación que falló:

4770 4797 

4771* `reply target is a symlink`: hay un enlace simbólico en la ruta del socket de la sesión de destino. Claude Code no entrega a través de él, porque un enlace allí podría redirigir el mensaje a un endpoint que la sesión de destino no creó.4798* `reply target is a symlink`: hay un enlace simbólico en la ruta del socket de la sesión destino. Claude Code no entrega a través de él, porque un enlace ahí podría redirigir el mensaje a un endpoint que la sesión destino no creó.

4772* `cannot vet reply target`: Claude Code no pudo inspeccionar la ruta de destino en absoluto, por ejemplo porque leerla falló con un error de permisos.4799* `cannot vet reply target`: Claude Code no pudo inspeccionar la ruta destino en absoluto, por ejemplo porque al leerla falló con un error de permisos.

4773 4800 

4774**Qué hacer:**4801**Qué hacer:**

4775 4802 

4776* Generalmente nada: las verificaciones evitan que un mensaje llegue a un endpoint distinto de la sesión a la que se dirigió, y no se envió nada4803* Normalmente nada: las verificaciones evitan que un mensaje llegue a un endpoint distinto de la sesión a la que se dirigió, y no se envió nada

4777* Si `reply target is a symlink` se repite para una sesión, verifica qué creó un enlace en la ruta del socket de esa sesión, que se muestra en su `/status` bajo `Peer address`4804* Si `reply target is a symlink` se repite para una sesión, revisa qué creó un enlace en la ruta del socket de esa sesión, que se muestra en su `/status` bajo `Peer address`

4778 4805 

4779<h3 id="refusing-after-a-symlink-changed">4806<h3 id="refusing-after-a-symlink-changed">

4780 Refusing to read, write, or search a path4807 Refusing to read, write, or search a path

4781</h3>4808</h3>

4782 4809 

4783Claude Code verifica las [reglas de permisos](/docs/es/permissions#read-and-edit) de una ruta de archivo, y luego confirma esa resolución nuevamente cuando la herramienta abre el archivo o inicia la búsqueda. Cuando no puede confirmar que la ruta aún conduce a la ubicación que la verificación aprobó, Claude Code rechaza la operación en lugar de seguirla. El rechazo aparece en el resultado de la herramienta:4810Claude Code verifica las [reglas de permisos](/docs/es/permissions#read-and-edit) de una ruta de archivo y luego vuelve a confirmar esa resolución cuando la herramienta abre el archivo o inicia la búsqueda. Cuando no puede confirmar que la ruta sigue llevando a la ubicación que aprobó la verificación, Claude Code rechaza la operación en lugar de seguirla. El rechazo aparece en el resultado de la herramienta:

4784 4811 

4785```text wrap theme={null}4812```text wrap theme={null}

4786Refusing to read /path/to/file: its symlink resolution changed after permission was checked (a link on the way now leads somewhere the check did not see). If a link in the working directory is being rewritten concurrently, stop that and retry.4813Refusing to read /path/to/file: its symlink resolution changed after permission was checked (a link on the way now leads somewhere the check did not see). If a link in the working directory is being rewritten concurrently, stop that and retry.

4787```4814```

4788 4815 

4789Cada rechazo nombra su razón:4816Cada rechazo nombra su motivo:

4790 4817 

4791* `its symlink resolution changed after permission was checked`: un enlace simbólico a lo largo de la ruta, o en una raíz de búsqueda de Grep o Glob, fue reemplazado entre la verificación de permisos y la operación. En un rechazo de lectura, la frase entre paréntesis nombra qué comparación falló.4818* `its symlink resolution changed after permission was checked`: un enlace simbólico a lo largo de la ruta, o en la raíz de búsqueda de Grep o Glob, se reemplazó entre la verificación de permisos y la operación. En un rechazo de lectura, la frase entre paréntesis nombra qué comparación falló.

4792* `its parent-directory symlink resolution changed after permission was checked`: un directorio por el que pasa la ruta de escritura ya no se resuelve a la ubicación aprobada4819* `its parent-directory symlink resolution changed after permission was checked`: un directorio por el que pasa la ruta de escritura ya no se resuelve en la ubicación aprobada

4793* `where it leads on disk could not be determined (a link on the way could not be examined, or the links do not resolve)`: Claude Code no pudo seguir la ruta hasta una ubicación final en el disco, por ejemplo porque los enlaces simbólicos en ella forman un bucle4820* `where it leads on disk could not be determined (a link on the way could not be examined, or the links do not resolve)`: Claude Code no pudo seguir la ruta hasta una ubicación final en disco, por ejemplo porque los enlaces simbólicos en ella forman un bucle

4794* `it is a symbolic link. Write to the link's target path instead`: hay un enlace simbólico en la propia ubicación de escritura solicitada, por ejemplo un `CLAUDE.md` que es un enlace simbólico a `AGENTS.md`; el mensaje dirige a Claude al destino del enlace4821* `it is a symbolic link. Write to the link's target path instead`: hay un enlace simbólico en la propia ubicación de escritura solicitada, por ejemplo un `CLAUDE.md` que es un enlace simbólico a `AGENTS.md`; el mensaje dirige a Claude al destino del enlace

4795* `Refusing to write through symlink: <path>. Resolve the symlink and pass the real target path explicitly.`: la misma condición detectada cuando otro escritor abre el archivo, como una escritura a un `.mcp.json` que es un enlace simbólico4822* `Refusing to write through symlink: <path>. Resolve the symlink and pass the real target path explicitly.`: la misma condición detectada cuando otro escritor abre el archivo, como una escritura en un `.mcp.json` que es un enlace simbólico

4796* `Refusing to write into symlinked directory: <path>`: el directorio que contiene el archivo es en sí mismo un enlace simbólico, por ejemplo el directorio `.claude/` de un proyecto enlazado a otra ubicación4823* `Refusing to write into symlinked directory: <path>`: el directorio que contiene el archivo es en sí un enlace simbólico, por ejemplo el directorio `.claude/` de un proyecto enlazado a otra ubicación

4797* `a path one of its Read deny rules is written through changed while the search was being prepared. Retry.`: una regla de denegación `Read` para la búsqueda nombra una ruta que pasa a través de un enlace simbólico, y ese enlace cambió mientras Claude Code estaba preparando la búsqueda4824* `a path one of its Read deny rules is written through changed while the search was being prepared. Retry.`: una regla de denegación de `Read` para la búsqueda nombra una ruta que pasa por un enlace simbólico, y ese enlace cambió mientras Claude Code preparaba la búsqueda

4798* `it could not be opened (EACCES) — it is unreadable, or is being replaced concurrently.`: la raíz de búsqueda existe pero no pudo abrirse; el código entre paréntesis es el error del sistema operativo4825* `it could not be opened (EACCES) — it is unreadable, or is being replaced concurrently.`: la raíz de búsqueda existe pero no se pudo abrir; el código entre paréntesis es el error del sistema operativo

4799* `its permission check expired before it ran (too many concurrent file operations). Retry.`: Claude Code desalojó el registro de aprobación bajo muchas operaciones de archivo simultáneas antes de que la herramienta lo usara; reintentar ejecuta una verificación de permisos nueva4826* `its permission check expired before it ran (too many concurrent file operations). Retry.`: Claude Code descartó el registro de aprobación ante muchas operaciones de archivos simultáneas antes de que la herramienta lo usara; reintentar ejecuta una nueva verificación de permisos

4800* `ripgrep was found only by name on PATH, and a search outside the working directory cannot apply your Read deny rules in that configuration`: Claude Code no pudo resolver el binario `rg` a una ruta absoluta, por lo que rechaza búsquedas fuera del directorio de trabajo en lugar de ejecutar una que tus reglas de denegación no cubran4827* `ripgrep was found only by name on PATH, and a search outside the working directory cannot apply your Read deny rules in that configuration`: Claude Code no pudo resolver el binario `rg` a una ruta absoluta, así que rechaza las búsquedas fuera del directorio de trabajo en lugar de ejecutar una que tus reglas de denegación no cubren

4801 4828 

4802**Qué hacer:**4829**Qué hacer:**

4803 4830 

4804* Generalmente nada: el rechazo llega a Claude como el resultado de la herramienta, y la operación rechazada no se ejecuta4831* Normalmente nada: el rechazo llega a Claude como resultado de la herramienta, y la operación rechazada no se ejecuta

4805* Si un rechazo de enlace simbólico se repite en una ruta, encuentra qué sigue reescribiendo un enlace allí, como una herramienta de compilación o un observador de archivos, o pide a Claude que use la ruta resuelta del archivo en lugar de la enlazada4832* Si un rechazo por enlace simbólico se repite en una ruta, averigua qué sigue reescribiendo un enlace ahí, como una herramienta de compilación o un observador de archivos, o pídele a Claude que use la ruta resuelta del archivo en lugar de la enlazada

4806* Si este rechazo aparece para cada archivo mientras Claude Code se ejecuta en Windows dentro de un AppContainer o un sandbox de token restringido, actualiza a v2.1.265 o posterior4833* Si este rechazo aparece para cada archivo mientras Claude Code se ejecuta en Windows dentro de un AppContainer o de un sandbox de token restringido, actualiza a la v2.1.265 o posterior

4807* Si un rechazo de lectura aparece en macOS para un archivo que nada está reescribiendo, como una captura de pantalla arrastrada al prompt, actualiza a v2.1.273 o posterior4834* Si aparece un rechazo de lectura en macOS para un archivo que nada está reescribiendo, como una captura de pantalla arrastrada al prompt, actualiza a la v2.1.273 o posterior

4808* Para el rechazo de ripgrep, instala ripgrep con tu administrador de paquetes para que `rg` se resuelva a una ruta absoluta en `PATH`, o mantén las búsquedas dentro del directorio de trabajo4835* Para el rechazo de ripgrep, instala ripgrep con tu gestor de paquetes para que `rg` se resuelva en una ruta absoluta en `PATH`, o mantén las búsquedas dentro del directorio de trabajo

4809 4836 

4810Antes de v2.1.251, Claude Code volvía a verificar la resolución de una ruta solo para escrituras de archivo, por lo que un enlace reemplazado después de la verificación de permisos podía redirigir una lectura o búsqueda a una ubicación diferente sin ningún mensaje. De estos, solo los rechazos de escritura de directorio principal, a través de enlace simbólico y de directorio enlazado simbólicamente aparecen en versiones anteriores.4837Antes de la v2.1.251, Claude Code volvía a verificar la resolución de una ruta solo para las escrituras de archivos, así que un enlace reemplazado después de la verificación de permisos podía redirigir una lectura o búsqueda a otra ubicación sin ningún mensaje. De estos, solo los rechazos de escritura por directorio superior, a través de enlace simbólico y en directorio enlazado aparecen en versiones anteriores.

4811 4838 

4812Antes de v2.1.280, el rechazo `where it leads on disk could not be determined` no aparecía.4839Antes de la v2.1.280, el rechazo `where it leads on disk could not be determined` no aparecía.

4813 4840 

4814<h3 id="task-output-swap-refused">4841<h3 id="task-output-swap-refused">

4815 Task output swap refused4842 Task output swap refused

4816</h3>4843</h3>

4817 4844 

4818Claude Code guarda la salida de cada comando Bash en un archivo bajo su directorio temporal. Cada vez que abre uno de estos archivos, verifica que la ruta aún conduzca al archivo que creó, sin ningún enlace simbólico, enlace duro adicional o directorio movido que la redirija. Este mensaje significa que esa verificación falló, por lo que Claude Code rechazó la operación en lugar de escribir o leer salida a través de esa ruta. El mensaje aparece en el resultado de la herramienta Bash:4845Claude Code guarda la salida de cada comando de Bash en un archivo dentro de su directorio temporal. Cada vez que abre uno de estos archivos, verifica que la ruta siga llevando al archivo que creó, sin ningún enlace simbólico, enlace duro adicional o directorio movido que la redirija. Este mensaje significa que esa verificación falló, así que Claude Code rechazó la operación en lugar de escribir o leer la salida a través de esa ruta. El mensaje aparece en el resultado de la herramienta Bash:

4819 4846 

4820```text wrap theme={null}4847```text wrap theme={null}

4821task output swap refused (tasks dir moved or linked): /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks/b7k2f9m3q.output. To recover: restart Claude Code with CLAUDE_CODE_TMPDIR set to a fresh directory; or, if /private/tmp/claude-501/-Users-you-my-project is a stray directory or a symbolic link that should not be there, remove that entry itself (not what it points to) and restart.4848task output swap refused (tasks dir moved or linked): /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks/b7k2f9m3q.output. To recover: restart Claude Code with CLAUDE_CODE_TMPDIR set to a fresh directory; or, if /private/tmp/claude-501/-Users-you-my-project is a stray directory or a symbolic link that should not be there, remove that entry itself (not what it points to) and restart.

4822```4849```

4823 4850 

4824El texto entre paréntesis nombra la verificación que falló. Razones como `output symlink was re-pointed`, `output file identity changed` y `not a regular file` reportan todas la misma condición: algo en la ruta de salida o a lo largo de ella ya no es el archivo que Claude Code creó. Solo algunas razones incluyen una oración `To recover:`.4851El texto entre paréntesis nombra la verificación que falló. Motivos como `output symlink was re-pointed`, `output file identity changed` y `not a regular file` reportan todos la misma condición: algo en la ruta de salida o a lo largo de ella ya no es el archivo que creó Claude Code. Solo algunos motivos incluyen una oración `To recover:`.

4825 4852 

4826Si la verificación falla mientras un comando aún se está ejecutando, Claude Code detiene el comando, y su resultado reporta:4853Si la verificación falla mientras un comando sigue ejecutándose, Claude Code detiene el comando, y su resultado reporta:

4827 4854 

4828```text theme={null}4855```text theme={null}

4829Command killed: its output file was replaced or could no longer be verified4856Command killed: its output file was replaced or could no longer be verified


4831 4858 

4832**Qué hacer:**4859**Qué hacer:**

4833 4860 

4834* Actualiza a v2.1.260 o posterior. Las versiones anteriores a veces mostraban este mensaje cuando no había ningún enlace ni directorio movido4861* Actualiza a la v2.1.260 o posterior. Las versiones anteriores a veces mostraban este mensaje cuando no había ningún enlace ni directorio movido

4835* Reinicia Claude Code con [`CLAUDE_CODE_TMPDIR`](/docs/es/env-vars) configurado en un directorio nuevo4862* Reinicia Claude Code con [`CLAUDE_CODE_TMPDIR`](/docs/es/env-vars) establecida en un directorio nuevo

4836* O revisa el directorio de tu proyecto bajo el directorio temporal de Claude Code, `/private/tmp/claude-501/-Users-you-my-project` en el mensaje de ejemplo. Si esa ruta es un enlace simbólico, o un directorio que no debería estar allí, elimina el enlace o directorio en sí en lugar del destino del enlace, y reinicia Claude Code4863* O revisa el directorio de tu proyecto dentro del directorio temporal de Claude Code, `/private/tmp/claude-501/-Users-you-my-project` en el mensaje de ejemplo. Si esa ruta es un enlace simbólico, o un directorio que no debería estar ahí, elimina el propio enlace o directorio en lugar del destino del enlace, y reinicia Claude Code

4837* Si el rechazo se repite, un proceso está reemplazando, enlazando o eliminando entradas bajo el directorio temporal de Claude Code mientras la sesión se ejecuta. Configura [`CLAUDE_CODE_TMPDIR`](/docs/es/env-vars) en un directorio que nada más administre y reinicia4864* Si el rechazo se repite, hay un proceso que reemplaza, enlaza o elimina entradas dentro del directorio temporal de Claude Code mientras la sesión se ejecuta. Establece [`CLAUDE_CODE_TMPDIR`](/docs/es/env-vars) en un directorio que nada más administre y reinicia

4838 4865 

4839<h3 id="disk-quota-or-temp-filesystem-is-full">4866<h3 id="disk-quota-or-temp-filesystem-is-full">

4840 Disk quota or temp filesystem is full4867 Disk quota or temp filesystem is full

4841</h3>4868</h3>

4842 4869 

4843Claude Code guarda la salida de cada comando Bash y PowerShell en un archivo bajo su directorio temporal. Cuando un comando sale 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 tu cuota de disco en él está agotada. Si es así, aparece un diagnóstico en el resultado del comando en lugar de la salida vacía:4870Claude 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:

4844 4871 

4845```text wrap theme={null}4872```text wrap theme={null}

4846Your 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.4873Your 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.


4848 4875 

4849El mensaje nombra lo que se agotó:4876El mensaje nombra lo que se agotó:

4850 4877 

4851* `Your disk quota is full ... (EDQUOT)`: tu propia cuota en ese sistema de archivos está agotada. Una cuota puede estar llena mientras el sistema de archivos aún muestra espacio libre4878* `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

4852* `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 restante4879* `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

4853* `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 inodos4880* `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

4854 4881 

4855**Qué hacer:**4882**Qué hacer:**

4856 4883 

4857* 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ño4884* 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ño

4858* O reinicia Claude Code con [`CLAUDE_CODE_TMPDIR`](/docs/es/env-vars) configurado en un directorio de un sistema de archivos con espacio4885* O reinicia Claude Code con [`CLAUDE_CODE_TMPDIR`](/docs/es/env-vars) establecida en un directorio de un sistema de archivos con espacio

4859* Luego pide a Claude que ejecute el comando de nuevo. La salida que imprimió se perdió, no se truncó4886* Luego haz que Claude ejecute el comando de nuevo. La salida que imprimió se perdió, no se truncó

4860 4887 

4861<h3 id="file-is-not-valid-utf-8">4888<h3 id="file-is-not-valid-utf-8">

4862 File is not valid UTF-84889 File is not valid UTF-8

4863</h3>4890</h3>

4864 4891 

4865Claude usó la herramienta Edit o NotebookEdit en un archivo cuyos bytes no se decodifican como UTF-8, y Claude Code rechazó el cambio. No se escribió nada, por lo que el archivo quedó como estaba. Esas herramientas guardan el archivo completo de nuevo como UTF-8, lo que habría convertido cada byte que no pudieran decodificar en el carácter de reemplazo `U+FFFD`. El mensaje aparece en el resultado de la herramienta:4892Claude usó la herramienta Edit o NotebookEdit en un archivo cuyos bytes no se decodifican como UTF-8, y Claude Code rechazó el cambio. No se escribió nada, así que el archivo quedó como estaba. Esas herramientas guardan el archivo completo como UTF-8, lo que habría convertido cada byte que no pudieran decodificar en el carácter de reemplazo `U+FFFD`. El mensaje aparece en el resultado de la herramienta:

4866 4893 

4867```text wrap theme={null}4894```text wrap theme={null}

4868File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary. This tool saves the whole file as UTF-8, which would replace every byte it cannot decode with U+FFFD. Nothing was written. Make the change with a shell command that reads and writes the file in its own encoding, or ask the user whether to convert the file to UTF-8 first.4895File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary. This tool saves the whole file as UTF-8, which would replace every byte it cannot decode with U+FFFD. Nothing was written. Make the change with a shell command that reads and writes the file in its own encoding, or ask the user whether to convert the file to UTF-8 first.

4869```4896```

4870 4897 

4871Un archivo que debería estar en UTF-8 también recibe este mensaje cuando contiene aunque sea una sola secuencia de bytes no válida, porque la verificación cubre los bytes del archivo en su conjunto.4898Un archivo que debería ser UTF-8 también recibe este mensaje cuando contiene aunque sea una secuencia de bytes no válida, porque la verificación cubre los bytes del archivo en su totalidad.

4872 4899 

4873**Qué hacer:**4900**Qué hacer:**

4874 4901 

4875* Para mantener el archivo en su codificación actual, deja que Claude haga el cambio con un comando de shell que lea y escriba el archivo en esa codificación, como le indica el mensaje4902* Para mantener el archivo en su codificación actual, deja que Claude haga el cambio con un comando de shell que lea y escriba el archivo en esa codificación, como le indica el mensaje

4876* Para seguir editando el archivo con la herramienta Edit, conviértelo a UTF-8, o corrige los bytes no válidos en un archivo que debería estar en UTF-8, y luego pide a Claude que haga la edición de nuevo4903* Para seguir editando el archivo con la herramienta Edit, conviértelo a UTF-8, o corrige los bytes no válidos en un archivo que debería ser UTF-8, y luego pídele a Claude que vuelva a hacer la edición

4877 4904 

4878Antes de v2.1.296, Edit y NotebookEdit aplicaban una edición así y guardaban cada byte que no podían decodificar como `U+FFFD`. En esas versiones, actualiza Claude Code.4905Antes de la v2.1.296, Edit y NotebookEdit aplicaban una edición así y guardaban cada byte que no podían decodificar como `U+FFFD`. En esas versiones, actualiza Claude Code.

4879 4906 

4880<h3 id="the-source-file-is-not-valid-utf-8-text">4907<h3 id="the-source-file-is-not-valid-utf-8-text">

4881 The source file is not valid UTF-8 text4908 The source file is not valid UTF-8 text

4882</h3>4909</h3>

4883 4910 

4884Claude intentó publicar un [artefacto](/docs/es/artifacts) desde un archivo cuyos bytes no se decodifican como texto, o cuyo texto ya contiene el carácter de reemplazo `U+FFFD`, por lo que Claude Code rechazó la publicación antes de cargar nada. El mensaje aparece en el resultado de la herramienta Artifact y nombra la primera posición a corregir:4911Claude intentó publicar un [artefacto](/docs/es/artifacts) a partir de un archivo cuyos bytes no se decodifican como texto, o cuyo texto ya contiene el carácter de reemplazo `U+FFFD`, así que Claude Code rechazó la publicación antes de subir nada. El mensaje aparece en el resultado de la herramienta Artifact y nombra la primera posición que hay que corregir:

4885 4912 

4886```text wrap theme={null}4913```text wrap theme={null}

4887file_path: the source file is not valid UTF-8 text (first invalid byte at line 12, column 40). It may be saved in another encoding or contain binary data. Rewrite it as UTF-8, then publish again. Nothing was published.4914file_path: the source file is not valid UTF-8 text (first invalid byte at line 12, column 40). It may be saved in another encoding or contain binary data. Rewrite it as UTF-8, then publish again. Nothing was published.


4889file_path: the source file has the replacement character U+FFFD at line 12, column 40, usually left where an earlier edit or paste lost a character. Replace it with the intended text (in HTML, write an intended U+FFFD as &#xFFFD;), then publish again. Nothing was published.4916file_path: the source file has the replacement character U+FFFD at line 12, column 40, usually left where an earlier edit or paste lost a character. Replace it with the intended text (in HTML, write an intended U+FFFD as &#xFFFD;), then publish again. Nothing was published.

4890```4917```

4891 4918 

4892Claude Code decodifica el archivo como UTF-8, o como UTF-16 cuando comienza con una marca de orden de bytes UTF-16 little-endian. Cuando un archivo UTF-16 así no se decodifica, el primer mensaje nombra `UTF-16` y aun así te indica que reescribas el archivo como UTF-8. Cuando hay más posiciones después de la nombrada, el mensaje agrega un conteo como `(+2 more)` después de la posición.4919Claude Code decodifica el archivo como UTF-8, o como UTF-16 cuando empieza con una marca de orden de bytes UTF-16 little-endian. Cuando un archivo UTF-16 así no se decodifica, el primer mensaje menciona `UTF-16` y aun así te indica que reescribas el archivo como UTF-8. Cuando hay más posiciones después de la nombrada, el mensaje agrega un conteo como `(+2 more)` después de la posición.

4893 4920 

4894**Qué hacer:**4921**Qué hacer:**

4895 4922 

4896* Generalmente nada: Claude reescribe el archivo y publica de nuevo4923* Normalmente nada: Claude reescribe el archivo y lo publica de nuevo

4897* Si el archivo es uno que escribiste o exportaste, guárdalo de nuevo como UTF-8, y reemplaza cada `U+FFFD` con el carácter que una edición, pegado o conversión anterior perdió4924* Si el archivo es uno que escribiste o exportaste tú, guárdalo de nuevo como UTF-8 y reemplaza cada `U+FFFD` por el carácter que perdió una edición, un pegado o una conversión anterior

4898* Para mostrar un `U+FFFD` intencional en la página, escríbelo como `&#xFFFD;` en el HTML en lugar del carácter literal4925* Para mostrar un `U+FFFD` intencional en la página, escríbelo como `&#xFFFD;` en el HTML en lugar del carácter literal

4899 4926 

4900Antes de v2.1.267, Claude Code cargaba un archivo así sin verificarlo, y era el servidor el que rechazaba la publicación.4927Antes de la v2.1.267, Claude Code subía un archivo así sin verificarlo, y era el servidor el que rechazaba la publicación.

4901 4928 

4902<h3 id="not-published-that-file-is-on-a-network-share">4929<h3 id="not-published-that-file-is-on-a-network-share">

4903 Not published: that file is on a network share4930 Not published: that file is on a network share

4904</h3>4931</h3>

4905 4932 

4906Claude intentó publicar un [artefacto](/docs/es/artifacts) desde un archivo en una ruta que nombra un host de red:4933Claude intentó publicar un [artefacto](/docs/es/artifacts) a partir de un archivo en una ruta que nombra un host de red:

4907 4934 

4908* En Windows, una ruta `\\server\share` que no está bajo una unidad de red asignada que hayas pasado al iniciar con [`--add-dir`](/docs/es/cli-reference#cli-flags)4935* En Windows, una ruta `\\server\share` que no está dentro de una unidad de red asignada que pasaste al iniciar con [`--add-dir`](/docs/es/cli-reference#cli-flags)

4909* En macOS o Linux, una ruta de montaje automático como `/net/<host>/page.html`4936* En macOS o Linux, una ruta de montaje automático como `/net/<host>/page.html`

4910 4937 

4911Resolver una ruta así contacta al host que nombra, y en Windows ese contacto puede enviar tus credenciales al host. Claude Code se niega a publicar el archivo y no lo lee. El rechazo aparece en el resultado de la herramienta Artifact:4938Buscar una ruta así contacta al host que nombra, y en Windows ese contacto puede enviarle tus credenciales al host. Claude Code se niega a publicar el archivo y no lo lee. El rechazo aparece en el resultado de la herramienta Artifact:

4912 4939 

4913```text theme={null}4940```text theme={null}

4914Not published: that file is on a network share. Publish a file from this session's folders instead.4941Not published: that file is on a network share. Publish a file from this session's folders instead.


4916 4943 

4917**Qué hacer:**4944**Qué hacer:**

4918 4945 

4919* Nada, si no necesitas ese archivo exacto: el mensaje le indica a Claude que publique un archivo de las propias carpetas de la sesión en su lugar4946* Nada, si no necesitas ese archivo exacto: el mensaje le indica a Claude que publique en su lugar un archivo de las carpetas propias de la sesión

4920* Para publicar ese archivo exacto, cópialo en una carpeta de un disco local y vuelve a pedirlo4947* Para publicar ese archivo exacto, cópialo en una carpeta de un disco local y vuelve a pedirlo

4921* 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:\`. Claude podrá entonces publicar archivos desde esa unidad. Agregar la unidad a mitad de la sesión con `/add-dir` no es suficiente.4948* 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.

4922* En macOS o Linux, monta el recurso compartido en un directorio como uno bajo `/mnt` o `/Volumes`, y publica desde esa ruta en lugar de la ruta de montaje automático4949* 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

4923 4950 

4924<h3 id="reading-a-local-file-from-outside-the-connected-folders">4951<h3 id="reading-a-local-file-from-outside-the-connected-folders">

4925 Reading a local file from outside the connected folders in a Cowork session4952 Reading a local file from outside the connected folders in a Cowork session

4926</h3>4953</h3>

4927 4954 

4928En 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 se encuentra fuera de esas carpetas, pasa a través de un enlace simbólico, o está escrita de una manera que puede nombrar un archivo diferente al 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.4955En 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.

4929 4956 

4930El rechazo aparece en el resultado de la herramienta Artifact; cuando el archivo no pudo examinarse en absoluto, nombra esa falla en su lugar:4957El rechazo aparece en el resultado de la herramienta Artifact; cuando el archivo no se pudo examinar en absoluto, nombra esa falla en su lugar:

4931 4958 

4932```text wrap theme={null}4959```text wrap theme={null}

4933Reading a local file from outside this session's connected folders, or through a link, needs the approval card, and no one can answer it in this Cowork session. Use a plain file inside the connected folders; do not retry this file in this session.4960Reading a local file from outside this session's connected folders, or through a link, needs the approval card, and no one can answer it in this Cowork session. Use a plain file inside the connected folders; do not retry this file in this session.


4937 4964 

4938**Qué hacer:**4965**Qué hacer:**

4939 4966 

4940* Generalmente nada: el mensaje le dice a Claude que use un archivo simple dentro de las carpetas conectadas en su lugar4967* Normalmente nada: el mensaje le indica a Claude que use en su lugar un archivo simple dentro de las carpetas conectadas

4941* Para poner ese archivo exacto en el artefacto, cópialo en una de las carpetas conectadas de la sesión como un archivo normal, no un enlace simbólico, y vuelve a pedirlo4968* Para incluir ese archivo exacto en el artefacto, cópialo en una de las carpetas conectadas de la sesión como un archivo normal, no como un enlace simbólico, y vuelve a pedirlo

4942 4969 

4943<h3 id="webfetch-cannot-fetch-localhost">4970<h3 id="webfetch-cannot-fetch-localhost">

4944 WebFetch cannot fetch localhost4971 WebFetch cannot fetch localhost


4952 4979 

4953**Qué hacer:**4980**Qué hacer:**

4954 4981 

4955* Generalmente nada: el mensaje dirige a Claude a `curl` a través de la herramienta Bash, que puede llegar a servidores locales y de intranet4982* Normalmente nada: el mensaje dirige a Claude a `curl` a través de la herramienta Bash, que puede llegar a servidores locales y de intranet

4956 4983 

4957Antes de v2.1.268, WebFetch reportaba estas URL con un error genérico `Invalid URL`.4984Antes de la v2.1.268, WebFetch reportaba estas URL con un error genérico `Invalid URL`.

4958 4985 

4959<h3 id="webfetch-domain-safety-check-failed">4986<h3 id="webfetch-domain-safety-check-failed">

4960 WebFetch domain safety check failed4987 WebFetch domain safety check failed

4961</h3>4988</h3>

4962 4989 

4963Antes de obtener una URL, WebFetch envía el nombre de host de la URL a `api.anthropic.com` para verificarlo contra la [lista de bloqueo de seguridad de dominios](/docs/es/data-usage#webfetch-domain-safety-check) de Anthropic. Si la verificación no se puede completar, WebFetch no puede confirmar que el dominio sea seguro, por lo que no obtiene la página y el resultado de la herramienta contiene uno de estos mensajes en su lugar:4990Antes de obtener una URL, WebFetch envía el nombre de host de la URL a `api.anthropic.com` para compararlo con la [lista de bloqueo de seguridad de dominios](/docs/es/data-usage#webfetch-domain-safety-check) de Anthropic. Si la verificación no puede completarse, WebFetch no puede confirmar que el dominio sea seguro, así que no obtiene la página y el resultado de la herramienta incluye en su lugar uno de estos mensajes:

4964 4991 

4965```text wrap theme={null}4992```text wrap theme={null}

4966The safety check for domain example.com is rate-limited (too many domain checks from this network; the limit is shared and can stay exhausted for minutes). Do not retry WebFetch in a loop or sleep to wait it out; continue without this page and report that its safety check was rate-limited. A single later attempt is fine; if that is rate-limited too, stop.4993The safety check for domain example.com is rate-limited (too many domain checks from this network; the limit is shared and can stay exhausted for minutes). Do not retry WebFetch in a loop or sleep to wait it out; continue without this page and report that its safety check was rate-limited. A single later attempt is fine; if that is rate-limited too, stop.


4968Unable to verify if domain example.com is safe to fetch. This may be due to network restrictions or enterprise security policies blocking claude.ai.4995Unable to verify if domain example.com is safe to fetch. This may be due to network restrictions or enterprise security policies blocking claude.ai.

4969```4996```

4970 4997 

4971* `rate-limited`: el endpoint de verificación respondió con HTTP `429`. El mensaje le dice a Claude que continúe sin la página y que lo intente de nuevo como máximo una vez más tarde. Claude Code no almacena en caché una verificación fallida, por lo que una obtención posterior de ese dominio ejecuta la verificación de nuevo. Si las sesiones en tu red encuentran esto a menudo, puedes omitir la verificación con [`skipWebFetchPreflight: true`](/docs/es/settings-reference#skipwebfetchpreflight) en la configuración.4998* `rate-limited`: el endpoint de verificación respondió con HTTP `429`. El mensaje le indica a Claude que continúe sin la página y que lo intente de nuevo como máximo una vez más tarde. Claude Code no almacena en caché una verificación fallida, así que una obtención posterior de ese dominio vuelve a ejecutar la verificación. Si las sesiones en tu red se topan con esto a menudo, puedes omitir la verificación con [`skipWebFetchPreflight: true`](/docs/es/settings-reference#skipwebfetchpreflight) en la configuración.

4972* `Unable to verify`: la solicitud de verificación falló, agotó el tiempo de espera u obtuvo otro estado de error. Si tu red bloquea `api.anthropic.com`, agrega ese dominio a la lista de permitidos, u omite la verificación con [`skipWebFetchPreflight: true`](/docs/es/settings-reference#skipwebfetchpreflight) en la configuración.4999* `Unable to verify`: la solicitud de verificación falló, agotó el tiempo de espera o recibió otro estado de error. Si tu red bloquea `api.anthropic.com`, agrega ese dominio a la lista de dominios permitidos, u omite la verificación con [`skipWebFetchPreflight: true`](/docs/es/settings-reference#skipwebfetchpreflight) en la configuración.

4973 5000 

4974Antes de v2.1.286, el mensaje de rate limit decía `The safety check for domain example.com is temporarily rate-limited (too many domain checks from this network). Retry after about a minute; retrying sooner will fail the same way.`.5001Antes de la v2.1.286, el mensaje de rate limit decía `The safety check for domain example.com is temporarily rate-limited (too many domain checks from this network). Retry after about a minute; retrying sooner will fail the same way.`.

4975Antes de v2.1.285, una verificación afectada por el rate limit se reportaba con el mensaje `Unable to verify` en su lugar.5002Antes de la v2.1.285, una verificación limitada por rate limit se reportaba en su lugar con el mensaje `Unable to verify`.

4976 5003 

4977<h2 id="background-session-errors">5004<h2 id="background-session-errors">

4978 Errores de sesión en segundo plano5005 Errores de sesión en segundo plano

fast-mode.md +1 −1

Details

47* Un pequeño icono `↯` aparece junto al prompt mientras el modo rápido está activo47* Un pequeño icono `↯` aparece junto al prompt mientras el modo rápido está activo

48* Ejecuta `/fast` nuevamente en cualquier momento para verificar si el modo rápido está activado o desactivado48* Ejecuta `/fast` nuevamente en cualquier momento para verificar si el modo rápido está activado o desactivado

49 49 

50Opus 5.5 es el valor predeterminado del modo rápido en Claude Code v2.1.280 y posterior. Antes de v2.1.280, el modo rápido utilizaba Opus 5 de forma predeterminada a partir de v2.1.219, Opus 4.8 en v2.1.154 a v2.1.218, y Opus 4.7 en v2.1.142 a v2.1.153.50Opus 5.5 es el valor predeterminado del modo rápido en Claude Code v2.1.280 y posterior. Antes de v2.1.280, el modo rápido utilizaba Opus 5 de forma predeterminada a partir de v2.1.219, y Opus 4.8 en v2.1.154 a v2.1.218.

51 51 

52Cuando desactivas el modo rápido con `/fast` nuevamente, permaneces en Opus. Para cambiar a un modelo diferente, usa `/model`.52Cuando desactivas el modo rápido con `/fast` nuevamente, permaneces en Opus. Para cambiar a un modelo diferente, usa `/model`.

53 53 

fullscreen.md +3 −3

Details

101* **Haga clic en la entrada de solicitud** para posicionar su cursor en cualquier lugar del texto que está escribiendo.101* **Haga clic en la entrada de solicitud** para posicionar su cursor en cualquier lugar del texto que está escribiendo.

102* **Haga clic en una sugerencia en la lista de comandos `/` o archivos `@`** para aceptarla. Pasar el ratón resalta la fila bajo su cursor.102* **Haga clic en una sugerencia en la lista de comandos `/` o archivos `@`** para aceptarla. Pasar el ratón resalta la fila bajo su cursor.

103* **Haz clic en una opción en un menú de selección** para elegirla. Esto cubre solicitudes de permiso, `/model`, `/config` y otros diálogos que muestran una lista de opciones.103* **Haz clic en una opción en un menú de selección** para elegirla. Esto cubre solicitudes de permiso, `/model`, `/config` y otros diálogos que muestran una lista de opciones.

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

105* **Haga clic en un valor de configuración en el panel `/config`** para cambiarlo, y desplácese por la lista de configuración con la rueda del ratón. Requiere Claude Code v2.1.271 o posterior.105* **Haga clic en un valor de configuración en el panel `/config`** para cambiarlo, y desplácese por la lista de configuración con la rueda del ratón. Requiere Claude Code v2.1.271 o posterior.

106* **Desplace un menú de selección o selección múltiple con la rueda del ratón** cuando tenga más opciones de las que muestra a la vez, como la lista `/model` en una ventana de terminal corta. La rueda desplaza la lista mientras el puntero está sobre sus opciones. Requiere Claude Code v2.1.280 o posterior.106* **Desplace un menú de selección o selección múltiple con la rueda del ratón** cuando tenga más opciones de las que muestra a la vez, como la lista `/model` en una ventana de terminal corta. La rueda desplaza la lista mientras el puntero está sobre sus opciones. Requiere Claude Code v2.1.280 o posterior.

107* **Desplaza una lista que se desborda con su barra de desplazamiento.** En paneles de lista como `/skills`, `/mcp` y la lista Instalado de `/plugin`, aparece una barra de desplazamiento junto a una lista con más filas de las que caben mientras el puntero está sobre ella. Haz clic en la pista para saltar a ese punto, o arrastra el pulgar. Requiere Claude Code v2.1.281 o posterior.107* **Desplaza una lista que se desborda con su barra de desplazamiento.** En paneles de lista como `/skills`, `/mcp` y la lista Instalado de `/plugin`, aparece una barra de desplazamiento junto a una lista con más filas de las que caben mientras el puntero está sobre ella. Haz clic en la pista para saltar a ese punto, o arrastra el pulgar. Requiere Claude Code v2.1.281 o posterior.


146| `Ctrl+End` | Saltar al último mensaje y reactivar el seguimiento automático |146| `Ctrl+End` | Saltar al último mensaje y reactivar el seguimiento automático |

147| Rueda del ratón | Desplazarse algunas líneas a la vez |147| Rueda del ratón | Desplazarse algunas líneas a la vez |

148 148 

149Puede desplazarse hacia atrás hasta el inicio de la sesión incluso después de la [compactación](/docs/es/context-window#what-survives-compaction). Claude continúa trabajando a partir del resumen de compactación, pero Claude Code mantiene todos los mensajes anteriores en el desplazamiento a pantalla completa en todas las compactaciones repetidas.149Si cierras una sesión [compactada](/docs/es/context-window#what-survives-compaction) y la [reanudas](/docs/es/sessions#what-a-resumed-session-restores), el desplazamiento hacia arriba se detiene en la fila `Conversation compacted`, y tus mensajes anteriores permanecen en el disco en el [archivo de transcripción](/docs/es/sessions#where-transcripts-are-stored). Para obtener un detalle de esos mensajes, pídele a Claude que lo busque en ese archivo.

150 150 

151En teclados sin teclas dedicadas `PgUp`, `PgDn`, `Home` o `End`, como los teclados de MacBook, mantenga presionada `Fn` junto con las teclas de flecha: `Fn+↑` envía `PgUp`, `Fn+↓` envía `PgDn`, `Fn+←` envía `Home` y `Fn+→` envía `End`. `Ctrl+Fn+→` no llega a Claude Code en macOS, por lo que un teclado de MacBook no tiene un atajo de teclado funcional para saltar al final de forma predeterminada. En su lugar, utilice una de estas opciones:151En teclados sin teclas dedicadas `PgUp`, `PgDn`, `Home` o `End`, como los teclados de MacBook, mantenga presionada `Fn` junto con las teclas de flecha: `Fn+↑` envía `PgUp`, `Fn+↓` envía `PgDn`, `Fn+←` envía `Home` y `Fn+→` envía `End`. `Ctrl+Fn+→` no llega a Claude Code en macOS, por lo que un teclado de MacBook no tiene un atajo de teclado funcional para saltar al final de forma predeterminada. En su lugar, utilice una de estas opciones:

152 152 


162 Seguimiento automático162 Seguimiento automático

163</h3>163</h3>

164 164 

165El desplazamiento hacia arriba pausa el seguimiento automático para que la nueva salida no lo devuelva al final. Un botón `Saltar al final` flota sobre el borde inferior de la transcripción mientras se desplaza hacia arriba, y muestra un recuento como `3 nuevos mensajes` cuando llega nueva salida. Haga clic en él, presione `Ctrl+End` o desplácese hacia abajo para reanudar el seguimiento.165El desplazamiento hacia arriba pausa el seguimiento automático para que la nueva salida no te devuelva al final. Un botón `Jump to bottom` flota sobre el borde inferior de la transcripción mientras te desplazas hacia arriba, y muestra un recuento como `3 new messages` cuando llega nueva salida. Haz clic en él, presiona `Ctrl+End` o desplázate hacia abajo para reanudar el seguimiento.

166 166 

167Mientras el seguimiento automático está pausado, la vista también permanece donde la desplazó cuando una respuesta termina de transmitirse.167Mientras el seguimiento automático está pausado, la vista también permanece donde la desplazó cuando una respuesta termina de transmitirse.

168 168 

headless.md +5 −4

Details

138 El stdin canalizado está limitado a 10MB. Si excedes el límite, Claude Code sale con un error claro y un estado distinto de cero. Para trabajar con entradas más grandes, escribe el contenido en un archivo y haz referencia a la ruta del archivo en tu prompt en lugar de canalizarlo.138 El stdin canalizado está limitado a 10MB. Si excedes el límite, Claude Code sale con un error claro y un estado distinto de cero. Para trabajar con entradas más grandes, escribe el contenido en un archivo y haz referencia a la ruta del archivo en tu prompt en lugar de canalizarlo.

139</Note>139</Note>

140 140 

141Si Claude Code no puede leer stdin, por ejemplo porque el proceso que lo inició desconectó su extremo, Claude Code imprime una advertencia en stderr y continúa con el prompt de la línea de comandos. Antes de v2.1.211, un stdin no legible en Windows bloqueaba la sesión o hacía que saliera silenciosamente sin salida.141Si Claude Code no puede leer stdin, por ejemplo porque el proceso que lo inició desconectó su extremo, Claude Code imprime una advertencia en stderr y continúa con el prompt de la línea de comandos.

142 142 

143<h3 id="add-claude-to-a-build-script">143<h3 id="add-claude-to-a-build-script">

144 Agregar Claude a un script de compilación144 Agregar Claude a un script de compilación


213 213 

214La última línea del stream es un mensaje `result` con el texto de respuesta final, el costo y los metadatos de la sesión.214La última línea del stream es un mensaje `result` con el texto de respuesta final, el costo y los metadatos de la sesión.

215 215 

216Si tu consumidor lee el stream lentamente, Claude Code espera a que se drene la salida en cola antes de salir, escalando la espera según cuánto sigue en cola, con un límite de 30 segundos. Antes de v2.1.214, la espera de salida estaba limitada a aproximadamente dos segundos, lo que podía cortar el final de una respuesta grande.216Si tu consumidor lee el stream lentamente, Claude Code espera a que se drene la salida en cola antes de salir, escalando la espera según cuánto sigue en cola, con un límite de 30 segundos.

217 217 

218El siguiente ejemplo usa [jq](https://jqlang.org/) para filtrar deltas de texto y mostrar solo el texto en streaming. El flag `-r` genera cadenas sin formato (sin comillas) y `-j` une sin saltos de línea para que los tokens se transmitan en streaming de forma continua:218El siguiente ejemplo usa [jq](https://jqlang.org/) para filtrar deltas de texto y mostrar solo el texto en streaming. El flag `-r` genera cadenas sin formato (sin comillas) y `-j` une sin saltos de línea para que los tokens se transmitan en streaming de forma continua:

219 219 


249 249 

250Si faltan algunos de estos mensajes en tu stream, compara tu versión de Claude Code con estos mínimos:250Si faltan algunos de estos mensajes en tu stream, compara tu versión de Claude Code con estos mínimos:

251 251 

252* **`--forward-subagent-text` y `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT`**: v2.1.211 o posterior

253* **Reenvío en cada nivel de anidamiento**: v2.1.219 o posterior252* **Reenvío en cada nivel de anidamiento**: v2.1.219 o posterior

254* **Un skill bifurcado que Claude inicia con la herramienta Skill desde la conversación principal**: v2.1.86 o posterior para sus bloques `tool_use` y `tool_result`, y v2.1.265 o posterior para su primer mensaje `user` y sus bloques de texto y pensamiento253* **Un skill bifurcado que Claude inicia con la herramienta Skill desde la conversación principal**: v2.1.86 o posterior para sus bloques `tool_use` y `tool_result`, y v2.1.265 o posterior para su primer mensaje `user` y sus bloques de texto y pensamiento

255* **Mensajes de subagentes que genera un skill bifurcado, y de skills bifurcados iniciados dentro de un subagente u otro skill bifurcado**: v2.1.275 o posterior254* **Mensajes de subagentes que genera un skill bifurcado, y de skills bifurcados iniciados dentro de un subagente u otro skill bifurcado**: v2.1.275 o posterior


336 --allowedTools "Bash,Read,Edit"335 --allowedTools "Bash,Read,Edit"

337```336```

338 337 

339Para establecer una línea base para toda la sesión en lugar de enumerar herramientas individuales, pasa un [modo de permisos](/docs/es/permission-modes). Una ejecución donde nada establece un modo de permisos toma el [modo de permisos de inicio integrado](/docs/es/permission-modes#which-mode-a-session-starts-in), que puede ser `auto`, así que pasa el que desees:338Las llamadas a herramientas que no enumeraste se ejecutan si no necesitan aprobación. En una ejecución `claude -p` en [modo Manual](/docs/es/permission-modes#available-modes), una llamada que necesita aprobación se deniega a menos que algo la apruebe, como un [hook `PermissionRequest`](/docs/es/hooks#permissionrequest) o un [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags). Con Claude Code v2.1.302 o posterior, las ejecuciones `claude -p` comienzan en modo Manual cuando [nada establece un modo de permisos](/docs/es/permission-modes#which-mode-a-non-interactive-run-starts-in).

339 

340Para establecer una línea base para toda la sesión en lugar de enumerar herramientas individuales, pasa un [modo de permisos](/docs/es/permission-modes) con `--permission-mode`, como `auto`, `dontAsk` o `acceptEdits`:

340 341 

341* **`auto`**: pasa `--permission-mode auto` para que un clasificador revise la mayoría de las acciones en lugar de ti342* **`auto`**: pasa `--permission-mode auto` para que un clasificador revise la mayoría de las acciones en lugar de ti

342* **`dontAsk`**: Claude Code deniega cualquier llamada que de otro modo pediría confirmación, lo que es útil para ejecuciones de CI bloqueadas. Las acciones que no necesitan aprobación en modo Manual aún se ejecutan, como lecturas de archivos en tus directorios de trabajo y el [conjunto de comandos de solo lectura](/docs/es/permissions#read-only-commands), y también las acciones que cubren tus entradas `--allowedTools` o reglas `permissions.allow`. `AskUserQuestion`, las herramientas de conector [que tu organización configuró como `ask`](/docs/es/mcp#organization-controls-on-connector-tools), las herramientas MCP marcadas con [`requiresUserInteraction`](/docs/es/mcp#require-approval-for-a-specific-tool) y las [lecturas desde rutas de red](/docs/es/permissions#network-paths) se deniegan incluso cuando coincide una regla de permisos343* **`dontAsk`**: Claude Code deniega cualquier llamada que de otro modo pediría confirmación, lo que es útil para ejecuciones de CI bloqueadas. Las acciones que no necesitan aprobación en modo Manual aún se ejecutan, como lecturas de archivos en tus directorios de trabajo y el [conjunto de comandos de solo lectura](/docs/es/permissions#read-only-commands), y también las acciones que cubren tus entradas `--allowedTools` o reglas `permissions.allow`. `AskUserQuestion`, las herramientas de conector [que tu organización configuró como `ask`](/docs/es/mcp#organization-controls-on-connector-tools), las herramientas MCP marcadas con [`requiresUserInteraction`](/docs/es/mcp#require-approval-for-a-specific-tool) y las [lecturas desde rutas de red](/docs/es/permissions#network-paths) se deniegan incluso cuando coincide una regla de permisos

hooks.md +26 −32

Details

423* **[Hooks de prompt](#prompt-and-agent-hook-fields)** (`type: "prompt"`): envían un prompt a un modelo Claude para evaluación de un solo turno. El modelo devuelve su decisión como JSON. Consulta [Hooks basados en prompt](#prompt-based-hooks).423* **[Hooks de prompt](#prompt-and-agent-hook-fields)** (`type: "prompt"`): envían un prompt a un modelo Claude para evaluación de un solo turno. El modelo devuelve su decisión como JSON. Consulta [Hooks basados en prompt](#prompt-based-hooks).

424* **[Hooks de agente](#prompt-and-agent-hook-fields)** (`type: "agent"`): generan un subagente que puede usar herramientas como Read, Grep y Glob para verificar condiciones antes de devolver una decisión. Los hooks de agente son experimentales y pueden cambiar. Consulta [Hooks basados en agente](#agent-based-hooks).424* **[Hooks de agente](#prompt-and-agent-hook-fields)** (`type: "agent"`): generan un subagente que puede usar herramientas como Read, Grep y Glob para verificar condiciones antes de devolver una decisión. Los hooks de agente son experimentales y pueden cambiar. Consulta [Hooks basados en agente](#agent-based-hooks).

425 425 

426Todos los hooks coincidentes se ejecutan en paralelo. Si defines el mismo manejador en más de un archivo de configuración, se ejecuta una vez. Una copia del mismo manejador de un plugin o skill se mantiene separada.426Cuando se activa un evento, sus hooks coincidentes se ejecutan en paralelo. Si más de 12 de ellos son hooks de prompt o de agente, 12 de esos se ejecutan a la vez y el resto comienza a medida que terminan los que están en ejecución. El [`timeout`](#common-fields) de cada hook en espera empieza a contar cuando ese hook comienza.

427 

428Si defines el mismo manejador en más de un archivo de configuración, se ejecuta una vez. Una copia del mismo manejador de un plugin o skill se mantiene separada.

427 429 

428Los manejadores se ejecutan en el directorio actual con el entorno de Claude Code. Si el directorio actual ya no existe, por ejemplo un worktree o directorio temporal que otro shell eliminó a mitad de sesión, Claude Code ejecuta hooks de comando desde el primero de estos que aún existe: el directorio en el que comenzó la sesión, la raíz del proyecto, tu directorio home o el directorio temporal del sistema. Claude Code registra una advertencia nombrando el directorio de respaldo en el [registro de depuración](#debug-hooks). Para una sesión de worktree que inicias desde la aplicación de escritorio, consulta [Qué comparten los worktrees con el checkout principal](/docs/es/worktrees#what-worktrees-share-with-the-main-checkout).430Los manejadores se ejecutan en el directorio actual con el entorno de Claude Code. Si el directorio actual ya no existe, por ejemplo un worktree o directorio temporal que otro shell eliminó a mitad de sesión, Claude Code ejecuta hooks de comando desde el primero de estos que aún existe: el directorio en el que comenzó la sesión, la raíz del proyecto, tu directorio home o el directorio temporal del sistema. Claude Code registra una advertencia nombrando el directorio de respaldo en el [registro de depuración](#debug-hooks). Para una sesión de worktree que inicias desde la aplicación de escritorio, consulta [Qué comparten los worktrees con el checkout principal](/docs/es/worktrees#what-worktrees-share-with-the-main-checkout).

429 431 


445 447 

446El campo `if` contiene exactamente una regla de permisos. No hay sintaxis `&&`, `||` o de lista para combinar reglas; para aplicar múltiples condiciones, define un manejador de hook separado para cada una.448El campo `if` contiene exactamente una regla de permisos. No hay sintaxis `&&`, `||` o de lista para combinar reglas; para aplicar múltiples condiciones, define un manejador de hook separado para cada una.

447 449 

448En una condición `if` para una herramienta de archivo, un patrón de directorio de un solo segmento como `"Edit(src/**)"` coincide solo con el directorio `src` en el directorio de trabajo y los archivos bajo él. Para hacer coincidir un directorio llamado `src` a cualquier profundidad, escribe `"Edit(**/src/**)"`. Antes de v2.1.214, `"Edit(src/**)"` coincidía con un directorio llamado `src` a cualquier profundidad bajo el directorio de trabajo.450En una condición `if` para una herramienta de archivo, un patrón de directorio de un solo segmento como `"Edit(src/**)"` coincide solo con el directorio `src` en el directorio de trabajo y los archivos bajo él. Para hacer coincidir un directorio llamado `src` a cualquier profundidad, escribe `"Edit(**/src/**)"`.

449 451 

450<h4 id="bash-if-matching">452<h4 id="bash-if-matching">

451 Cómo los patrones `if` coinciden con comandos de Bash453 Cómo los patrones `if` coinciden con comandos de Bash


825 Salida por código de salida827 Salida por código de salida

826</h3>828</h3>

827 829 

828El código de salida de tu hook le dice a Claude Code si debe continuar con la acción que activó el hook, como una llamada a herramienta o un prompt. Una ejecución que termina tiene uno de tres resultados:830Cuando termina la ejecución de tu hook, Claude Code usa su código de salida para decidir si continúa con la acción que lo activó, como una llamada a herramienta o un prompt:

829 831 

830* **Éxito**: tu hook sale con 0. Claude Code aplica cualquier campo de [salida JSON](#json-output) que tu hook haya impreso, y la acción continúa a menos que esos campos la bloqueen o la denieguen. [Hooks que inician un proceso en segundo plano](#hooks-that-start-a-background-process) cubre la excepción.832* **Éxito**: tu hook sale con 0. Claude Code aplica cualquier campo de [salida JSON](#json-output) que tu hook haya impreso, y la acción continúa a menos que esos campos la bloqueen o la denieguen. [Hooks que inician un proceso en segundo plano](#hooks-that-start-a-background-process) cubre la excepción.

831* **Error de bloqueo**: tu hook sale con 2. En los [eventos que pueden bloquear](#exit-code-2-behavior-per-event), Claude Code detiene la acción.833* **Error de bloqueo**: tu hook sale con 2. En los [eventos que pueden bloquear](#exit-code-2-behavior-per-event), Claude Code detiene la acción.


853 Exit code 0855 Exit code 0

854</h4>856</h4>

855 857 

856Exit 0 significa éxito, y es el código de salida previsto cuando imprimes JSON para control estructurado.858Exit 0 significa éxito, y es el código de salida previsto cuando imprimes JSON para control estructurado. Cuando tu hook sale con 0 pero imprime JSON que no se puede analizar o que falla la [validación del esquema](#json-output), la acción continúa salvo que el hook sea uno [cuyo fallo bloquea la acción](#block-the-action-when-a-hook-fails). En lugar de un éxito con tus campos aplicados, la ejecución es un [error sin bloqueo](#exit-code-output).

857 

858Para la mayoría de los eventos, Claude Code escribe stdout en el registro de depuración y no lo muestra en la transcripción. Las excepciones son `UserPromptSubmit`, `UserPromptExpansion`, `SessionStart` y `PostModelSwitch`, donde Claude Code agrega el stdout de texto plano como contexto que Claude puede ver y sobre el que puede actuar.

859 859 

860Para un hook que no es [async](#how-async-hooks-execute), Claude Code analiza tu stdout como [salida JSON](#json-output) cuando toda la salida es un único objeto JSON sin nada alrededor salvo espacios en blanco; en caso contrario, lo trata como texto plano o como un fallo de análisis:860Para corregir tu salida, usa el mensaje de análisis o de validación que incluye el aviso `<hook name> hook error`. Para un hook que no es [async](#how-async-hooks-execute), tu stdout cuenta como [salida JSON](#json-output) solo cuando imprimes un único objeto JSON, en una línea o en varias, sin nada alrededor salvo espacios en blanco. Claude Code lee cualquier otro stdout como texto plano o como un fallo de análisis:

861 861 

862* **Un objeto JSON, en una línea o en varias**: se analiza como salida JSON.

863* **Salida que no comienza con `{`, o que comienza con `{` y no termina con `}`**: texto plano. Según esta regla, un array JSON y una cadena JSON entrecomillada son texto plano.862* **Salida que no comienza con `{`, o que comienza con `{` y no termina con `}`**: texto plano. Según esta regla, un array JSON y una cadena JSON entrecomillada son texto plano.

864* **Dos o más líneas que se analizan como JSON cada una por su cuenta, la primera comenzando con `{` y la última terminando con `}`**: texto plano cuando ninguna línea es un objeto de salida JSON que establezca un campo, y un fallo de análisis cuando alguna lo es.863* **Dos o más líneas que se analizan como JSON cada una por su cuenta, la primera comenzando con `{` y la última terminando con `}`**: texto plano cuando ninguna línea es un objeto de salida JSON que establezca un campo. Cuando alguna lo es, la salida es un fallo de análisis, así que imprime ese objeto sin nada más en stdout.

865* **Cualquier otra cosa que comience con `{` y termine con `}` pero no sea JSON válido**: un fallo de análisis.864* **Cualquier otra cosa que comience con `{` y termine con `}` pero no sea JSON válido**: un fallo de análisis.

866 865 

867Salvo que el hook sea uno [cuyo fallo bloquea la acción](#block-the-action-when-a-hook-fails), un fallo de análisis o un objeto analizado que falla la [validación del esquema](#json-output) es un [error sin bloqueo](#exit-code-output). El aviso `<hook name> hook error` incluye el mensaje de análisis o de validación. En los eventos que agregan stdout de texto plano como contexto, Claude Code no agrega el stdout que no pudo analizar.866Para la mayoría de los eventos, Claude Code escribe stdout en el registro de depuración y no lo muestra en la transcripción. Las excepciones son `UserPromptSubmit`, `UserPromptExpansion`, `SessionStart` y `PostModelSwitch`, donde Claude Code agrega el stdout de texto plano como contexto que Claude puede ver y sobre el que puede actuar. En esos eventos, Claude Code no agrega el stdout que no pudo analizar.

868 867 

869Claude nunca ve el stderr de un hook que sale con 0. Para leerlo tú mismo en eventos como `PreToolUse`, habilita el [registro de depuración](#debug-hooks). Para mostrarle una advertencia a Claude desde un hook `PostToolUse` o `PostToolUseFailure`, sal con 2 en su lugar para que [Claude vea el stderr](#exit-code-2-behavior-per-event) aunque la herramienta ya se haya ejecutado.868Claude nunca ve el stderr de un hook que sale con 0. Para leerlo tú mismo en eventos como `PreToolUse`, habilita el [registro de depuración](#debug-hooks). Para mostrarle una advertencia a Claude desde un hook `PostToolUse` o `PostToolUseFailure`, sal con 2 en su lugar para que [Claude vea el stderr](#exit-code-2-behavior-per-event) aunque la herramienta ya se haya ejecutado.

870 869 


907 Otros códigos de salida906 Otros códigos de salida

908</h4>907</h4>

909 908 

910Salvo que el hook sea uno [cuyo fallo bloquea la acción](#block-the-action-when-a-hook-fails), un código de salida distinto de 0 o 2 con texto plano o nada en stdout es un [error sin bloqueo](#exit-code-output). Si la acción continúa, ves un aviso `<hook name> hook error` en la transcripción con `Failed with non-blocking status code:` y la primera línea del stderr de tu hook.909Un aviso `<hook name> hook error` con `Failed with non-blocking status code:` significa que el código de salida de tu hook no fue 0 ni 2 y que su stdout era texto plano o estaba vacío. Salvo que el hook sea uno [cuyo fallo bloquea la acción](#block-the-action-when-a-hook-fails), esto es un [error sin bloqueo](#exit-code-output), por lo que tu hook no detuvo la acción. Para capturar el stderr completo de tu hook en lugar de la primera línea que muestra el aviso, habilita el [registro de depuración](#debug-hooks).

911 910 

912Por ejemplo, cuando un hook `PreToolUse` en `Bash` imprime `something broke` en stderr y sale con 1, el aviso `PreToolUse:Bash hook error` incluye esta línea:911Por ejemplo, cuando un hook `PreToolUse` en `Bash` imprime `something broke` en stderr y sale con 1, el aviso `PreToolUse:Bash hook error` incluye esta línea:

913 912 


915Failed with non-blocking status code: something broke914Failed with non-blocking status code: something broke

916```915```

917 916 

918Para capturar el stderr completo en lugar de su primera línea, habilita el [registro de depuración](#debug-hooks).917Si el aviso incluye el mensaje `No such file or directory` del shell, como en la siguiente línea, el hook nunca se ejecutó, por ejemplo porque la ruta de su script no existe:

919 

920Salvo que el hook sea uno [cuyo fallo bloquea la acción](#block-the-action-when-a-hook-fails), un hook que no puede iniciarse también es un error sin bloqueo. En la forma de shell, cuando la ruta del script no existe o no es ejecutable, el shell sale con un código como 127 y el aviso incluye el mensaje del intérprete. Por ejemplo, cuando la ruta del script no existe, el aviso incluye una línea como esta:

921 918 

922```text theme={null}919```text theme={null}

923Failed with non-blocking status code: /bin/sh: /path/to/hook.sh: No such file or directory920Failed with non-blocking status code: /bin/sh: /path/to/hook.sh: No such file or directory

924```921```

925 922 

923Si la ruta es incorrecta, corrígela donde está configurado el hook. En la forma de shell, cuando la ruta del script no existe o no es ejecutable, el shell sale con un código como 127 y el aviso incluye el mensaje del intérprete. Salvo que el hook sea uno [cuyo fallo bloquea la acción](#block-the-action-when-a-hook-fails), un hook que no puede iniciarse también es un error sin bloqueo.

924 

926Cuando configures un hook de política, fíjate en este aviso en su primera ejecución, porque una ruta mal escrita en `settings.json` significa que el hook nunca se ejecuta. Para bloquear la acción cuando el hook no puede iniciarse, establece [`onFailure: "block"`](#block-the-action-when-a-hook-fails).925Cuando configures un hook de política, fíjate en este aviso en su primera ejecución, porque una ruta mal escrita en `settings.json` significa que el hook nunca se ejecuta. Para bloquear la acción cuando el hook no puede iniciarse, establece [`onFailure: "block"`](#block-the-action-when-a-hook-fails).

927 926 

928<Warning>927<Warning>


933 Tiempos de espera932 Tiempos de espera

934</h4>933</h4>

935 934 

936Aparte de un hook de comando que ejecutes con [`async: true`](#run-hooks-in-the-background), Claude Code cancela un hook `command`, `http` o `mcp_tool` que alcanza su [`timeout`](#common-fields), descartando la salida del hook, por lo que en la mayoría de los eventos un hook cuyo tiempo de espera se agota no emite ninguna decisión.935Aparte de un hook de comando que ejecutes con [`async: true`](#run-hooks-in-the-background), Claude Code cancela un hook `command`, `http` o `mcp_tool` que alcanza su [`timeout`](#common-fields), descartando la salida del hook, por lo que en la mayoría de los eventos un hook cuyo tiempo de espera se agota no emite ninguna decisión. En [`PreModelSwitch`](#premodelswitch), un hook cancelado al agotarse su tiempo de espera bloquea el cambio de modelo.

937 936 

938En [`PreModelSwitch`](#premodelswitch), un hook cancelado al agotarse su tiempo de espera bloquea el cambio de modelo. En `PreToolUse`, las dos familias de hooks difieren:937En `PreToolUse`, un hook `command`, `http` o `mcp_tool` cuyo tiempo de espera se agota no bloquea la llamada a herramienta, excepto en los hooks [cuyo fallo bloquea la acción](#block-the-action-when-a-hook-fails). La llamada continúa a través del [flujo de permisos](/docs/es/permissions) normal, así que no cuentes con que un hook bloqueado actúe como control. Para bloquear la llamada cuando se agota el tiempo de espera de un hook `command` o `http`, establece [`onFailure: "block"`](#block-the-action-when-a-hook-fails). Un [hook de callback del Agent SDK](/docs/es/agent-sdk/hooks) que excede su tiempo de espera [bloquea la llamada a herramienta](#pretooluse).

939 

940* Un hook `command`, `http` o `mcp_tool` cuyo tiempo de espera se agota no bloquea la llamada a herramienta, excepto en los hooks [cuyo fallo bloquea la acción](#block-the-action-when-a-hook-fails). La llamada continúa a través del [flujo de permisos](/docs/es/permissions) normal, así que no cuentes con que un hook bloqueado actúe como control. Para bloquear la llamada cuando se agota el tiempo de espera de un hook `command` o `http`, establece [`onFailure: "block"`](#block-the-action-when-a-hook-fails).

941* Un [hook de callback del Agent SDK](/docs/es/agent-sdk/hooks) que excede su tiempo de espera [bloquea la llamada a herramienta](#pretooluse).

942 938 

943<h4 id="hooks-that-start-a-background-process">939<h4 id="hooks-that-start-a-background-process">

944 Hooks que inician un proceso en segundo plano940 Hooks que inician un proceso en segundo plano


1086 Manejo de respuestas HTTP1082 Manejo de respuestas HTTP

1087</h3>1083</h3>

1088 1084 

1089Los hooks HTTP usan códigos de estado HTTP y cuerpos de respuesta en lugar de códigos de salida y stdout. Los resultados a continuación se aplican a la mayoría de los eventos; un evento con su propio contrato de fallo en la [tabla por evento](#exit-code-2-behavior-per-event), como `WorktreeCreate`, aplica ese contrato también a un hook HTTP fallido:1085Los hooks HTTP usan códigos de estado HTTP y cuerpos de respuesta en lugar de códigos de salida y stdout. Para bloquear la acción cuando la solicitud falla o devuelve un estado que no es 2xx, establece [`onFailure: "block"`](#block-the-action-when-a-hook-fails). Para bloquear una llamada a herramienta o denegar un permiso, devuelve una respuesta 2xx con un cuerpo JSON que contenga los [campos de decisión](#decision-control) apropiados.

1086 

1087Después de un [error sin bloqueo](#exit-code-output), la acción continúa salvo que el hook sea uno [cuyo fallo bloquea la acción](#block-the-action-when-a-hook-fails). Excepto en los eventos con su propio contrato de fallo en la [tabla por evento](#exit-code-2-behavior-per-event), como `WorktreeCreate`, obtienes estos resultados para cada respuesta o fallo:

1090 1088 

1091* **2xx con un cuerpo vacío**: éxito, equivalente al código de salida 0 sin salida1089* **2xx con un cuerpo vacío**: éxito, equivalente al código de salida 0 sin salida

1092* **2xx con un cuerpo de objeto JSON**: se analiza usando el mismo esquema de [salida JSON](#json-output) que los hooks de comando. Un cuerpo que falla la validación del esquema es un error sin bloqueo1090* **2xx con un cuerpo de objeto JSON**: se analiza usando el mismo esquema de [salida JSON](#json-output) que los hooks de comando. Un cuerpo que falla la validación del esquema es un error sin bloqueo


1095* **Fallo de conexión**: error sin bloqueo1093* **Fallo de conexión**: error sin bloqueo

1096* **Tiempo de espera agotado**: el hook se cancela, como se describe en [Tiempos de espera](#timeouts)1094* **Tiempo de espera agotado**: el hook se cancela, como se describe en [Tiempos de espera](#timeouts)

1097 1095 

1098Después de un [error sin bloqueo](#exit-code-output), la acción continúa salvo que el hook sea uno [cuyo fallo bloquea la acción](#block-the-action-when-a-hook-fails). Para bloquear una llamada a herramienta o denegar un permiso, devuelve una respuesta 2xx con un cuerpo JSON que contenga los [campos de decisión](#decision-control) apropiados. Para bloquear la acción cuando la solicitud falla o devuelve un estado que no es 2xx, establece [`onFailure: "block"`](#block-the-action-when-a-hook-fails).

1099 

1100<h3 id="json-output">1096<h3 id="json-output">

1101 Salida JSON1097 Salida JSON

1102</h3>1098</h3>


1319| `compact` | Compactación automática o manual |1315| `compact` | Compactación automática o manual |

1320| `fork` | Una sesión nueva bifurcada de una existente: `--fork-session` con `--resume` o `--continue`, la copia en segundo plano de `/fork`, `/branch` o una conversación que [mueves al segundo plano](/docs/es/agent-view#from-inside-a-session) |1316| `fork` | Una sesión nueva bifurcada de una existente: `--fork-session` con `--resume` o `--continue`, la copia en segundo plano de `/fork`, `/branch` o una conversación que [mueves al segundo plano](/docs/es/agent-view#from-inside-a-session) |

1321 1317 

1322Antes de la v2.1.214, las sesiones bifurcadas informaban el origen `"resume"`.

1323 

1324Cuando inicias una sesión interactiva, reanudas una conversación al iniciar con `--continue` o `--resume`, o ejecutas `/clear`, los hooks SessionStart se ejecutan en segundo plano. Puedes escribir de inmediato, y una conversación que reanudaste aparece sin esperar a los hooks. La primera respuesta de Claude sigue esperando a que terminen los hooks, para que su contexto llegue a Claude.1318Cuando inicias una sesión interactiva, reanudas una conversación al iniciar con `--continue` o `--resume`, o ejecutas `/clear`, los hooks SessionStart se ejecutan en segundo plano. Puedes escribir de inmediato, y una conversación que reanudaste aparece sin esperar a los hooks. La primera respuesta de Claude sigue esperando a que terminen los hooks, para que su contexto llegue a Claude.

1325 1319 

1326Cuando cambias de conversación con `/resume` dentro de una sesión, el cambio espera a que terminen los hooks. Si ejecutas `/clear` o cambias a otra conversación mientras los hooks en segundo plano siguen ejecutándose, nada de lo que devuelvan se aplica a la sesión.1320Cuando cambias de conversación con `/resume` dentro de una sesión, el cambio espera a que terminen los hooks. Si ejecutas `/clear` o cambias a otra conversación mientras los hooks en segundo plano siguen ejecutándose, nada de lo que devuelvan se aplica a la sesión.


1583 1577 

1584Salvo un hook de comando que ejecutes con [`async: true`](#run-hooks-in-the-background), un hook `UserPromptSubmit` de comando, HTTP o herramienta MCP que alcanza su tiempo de espera se cancela y su salida, incluido cualquier `additionalContext`, se descarta. El prompt sigue llegando a Claude sin ese contexto. Para bloquear el prompt en su lugar, establece [`onFailure: "block"`](#block-the-action-when-a-hook-fails) en un hook de comando o HTTP. La transcripción muestra un aviso que nombra el hook, el tiempo de espera que se agotó e indica que la salida se descartó.1578Salvo un hook de comando que ejecutes con [`async: true`](#run-hooks-in-the-background), un hook `UserPromptSubmit` de comando, HTTP o herramienta MCP que alcanza su tiempo de espera se cancela y su salida, incluido cualquier `additionalContext`, se descarta. El prompt sigue llegando a Claude sin ese contexto. Para bloquear el prompt en su lugar, establece [`onFailure: "block"`](#block-the-action-when-a-hook-fails) en un hook de comando o HTTP. La transcripción muestra un aviso que nombra el hook, el tiempo de espera que se agotó e indica que la salida se descartó.

1585 1579 

1586Un [hook de callback del Agent SDK](/docs/es/agent-sdk/hooks) en `UserPromptSubmit` que alcanza su tiempo de espera bloquea el prompt con un mensaje que nombra el hook y el tiempo de espera, porque un callback en ese punto puede estar actuando como una barrera de políticas que no debe fallar de forma abierta. La sesión continúa. Antes de la v2.1.208, agotar el tiempo de espera de un callback en ese evento terminaba el turno con un error de ejecución.1580Un [hook de callback del Agent SDK](/docs/es/agent-sdk/hooks) en `UserPromptSubmit` al que se le agota el tiempo de espera bloquea el prompt con un mensaje que nombra el hook y el tiempo de espera, porque un callback en ese punto puede estar actuando como una barrera de políticas que no debe fallar de forma abierta. La sesión continúa.

1587 1581 

1588<h4 id="userpromptsubmit-input">1582<h4 id="userpromptsubmit-input">

1589 Entrada de UserPromptSubmit1583 Entrada de UserPromptSubmit


2058 2052 

2059| Campo | Tipo | Ejemplo | Descripción |2053| Campo | Tipo | Ejemplo | Descripción |

2060| :- | :- | :- | :- |2054| :- | :- | :- | :- |

2061| `status` | string | `"completed"` | `"completed"` para subagentes en primer plano, `"async_launched"` para subagentes en segundo plano. Los subagentes se ejecutan en segundo plano de forma predeterminada, así que una llamada a Agent que omite `run_in_background` también produce `"async_launched"` |2055| `status` | string | `"completed"` | `"completed"` para subagentes en primer plano, `"async_launched"` para subagentes en segundo plano. Para saber qué subagentes se ejecutan de cada forma, consulta [Ejecutar subagentes en primer o segundo plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background) |

2062| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identificador de la ejecución del subagente |2056| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identificador de la ejecución del subagente |

2063| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Los bloques de texto finales del subagente o, en el caso de un subagente cuyo informe pasa por `SubagentHandback`, una nota breve sobre esa entrega en su lugar |2057| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Los bloques de texto finales del subagente o, en el caso de un subagente cuyo informe pasa por `SubagentHandback`, una nota breve sobre esa entrega en su lugar |

2064| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modelo con el que comenzó el subagente, que puede diferir del modelo solicitado |2058| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modelo con el que comenzó el subagente, que puede diferir del modelo solicitado |

2065| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Modelos usados en orden, con las repeticiones consecutivas contraídas; se establece solo cuando el modelo se cambió a mitad de la ejecución. Requiere Claude Code v2.1.212 o posterior |2059| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Modelos usados en orden, con las repeticiones consecutivas contraídas; solo se establece cuando el modelo se cambió a mitad de la ejecución |

2066| `totalTokens` | number | `12450` | Cantidad de tokens de la solicitud final a la API del subagente: tokens de entrada, de salida y de caché combinados. No es un total de toda la ejecución |2060| `totalTokens` | number | `12450` | Cantidad de tokens de la solicitud final a la API del subagente: tokens de entrada, de salida y de caché combinados. No es un total de toda la ejecución |

2067| `totalDurationMs` | number | `48211` | Duración en tiempo real de la ejecución del subagente |2061| `totalDurationMs` | number | `48211` | Duración en tiempo real de la ejecución del subagente |

2068| `totalToolUseCount` | number | `7` | Cantidad de llamadas a herramientas que hizo el subagente |2062| `totalToolUseCount` | number | `7` | Cantidad de llamadas a herramientas que hizo el subagente |


2072 2066 

2073Para los subagentes en segundo plano, la herramienta devuelve un resultado cuando la tarea pasa al segundo plano, así que `tool_response` no incluye campos de uso: un lanzamiento en segundo plano devuelve el resultado de inmediato, y una tarea en primer plano que Claude Code pasa al segundo plano a mitad de la ejecución lo devuelve en esa transición. Tiene `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` y `resolvedModel`.2067Para los subagentes en segundo plano, la herramienta devuelve un resultado cuando la tarea pasa al segundo plano, así que `tool_response` no incluye campos de uso: un lanzamiento en segundo plano devuelve el resultado de inmediato, y una tarea en primer plano que Claude Code pasa al segundo plano a mitad de la ejecución lo devuelve en esa transición. Tiene `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` y `resolvedModel`.

2074 2068 

2075En una respuesta `completed`, `resolvedModel` nombra el modelo con el que comenzó el subagente, que puede diferir del valor `model` de `tool_input`, por ejemplo cuando se aplica `availableModels` u otra sobrescritura. En una respuesta `async_launched`, `resolvedModel` nombra el modelo en uso cuando el agente pasó al segundo plano, así que un cambio ocurrido antes de pasar al segundo plano se refleja allí. `modelsUsed` y el comportamiento de `resolvedModel` en el momento de pasar al segundo plano requieren Claude Code v2.1.212 o posterior.2069En una respuesta `completed`, `resolvedModel` indica el modelo con el que comenzó el subagente, que puede diferir del valor `model` de `tool_input`, por ejemplo cuando se aplica `availableModels` u otra sobrescritura. En una respuesta `async_launched`, `resolvedModel` indica el modelo en uso cuando el agente pasó a segundo plano, así que un cambio que se produjo antes de pasar a segundo plano se refleja ahí.

2076 2070 

2077<a id="askuserquestion" />2071<a id="askuserquestion" />

2078 2072 


2120 2114 

2121Cuando un hook devuelve `"ask"`, la solicitud de permiso que se muestra al usuario incluye una etiqueta que identifica de dónde proviene el hook: `[settings]` para un hook de cualquier archivo de configuración o del frontmatter de un agente, `[plugin:<name>]` para el hook de un plugin o `[skill]` para un hook del frontmatter de un skill. Esto ayuda a los usuarios a entender qué fuente de configuración solicita la confirmación.2115Cuando un hook devuelve `"ask"`, la solicitud de permiso que se muestra al usuario incluye una etiqueta que identifica de dónde proviene el hook: `[settings]` para un hook de cualquier archivo de configuración o del frontmatter de un agente, `[plugin:<name>]` para el hook de un plugin o `[skill]` para un hook del frontmatter de un skill. Esto ayuda a los usuarios a entender qué fuente de configuración solicita la confirmación.

2122 2116 

2123El `"ask"` de un hook también fuerza una solicitud de permiso en el [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode): el clasificador aún puede denegar la llamada a herramienta, pero no puede aprobarla en silencio. Antes de la v2.1.211, el clasificador podía aprobar un comando de Bash que se ejecutaba fuera del [sandbox](/docs/es/sandboxing) sin mostrar la solicitud que pedía el hook; el clasificador seguía aplicando sus propias reglas de seguridad a ese comando, y un `"deny"` de un hook siempre se respetaba.2117El `"ask"` de un hook también fuerza una solicitud de permiso en [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode): el clasificador todavía puede denegar la llamada a herramienta, pero no puede aprobarla de forma silenciosa.

2124 2118 

2125```json theme={null}2119```json theme={null}

2126{2120{


3696| `source` | string | De dónde vino la solicitud: `"command"` para `/model <name>`, el ajuste Model en `/config` o la activación del modo rápido; `"picker"` para un selector de modelo; `"sdk"` para una solicitud `set_model`, o un cambio de modelo en una solicitud `apply_flag_settings`, desde un host del Agent SDK o Remote Control |3690| `source` | string | De dónde vino la solicitud: `"command"` para `/model <name>`, el ajuste Model en `/config` o la activación del modo rápido; `"picker"` para un selector de modelo; `"sdk"` para una solicitud `set_model`, o un cambio de modelo en una solicitud `apply_flag_settings`, desde un host del Agent SDK o Remote Control |

3697| `context_tokens` | number | Tokens que la siguiente solicitud reenvía como su prompt: los tokens de entrada, de lectura de caché, de creación de caché y de salida de la última respuesta en la conversación principal, combinados. `0` antes de la primera respuesta |3691| `context_tokens` | number | Tokens que la siguiente solicitud reenvía como su prompt: los tokens de entrada, de lectura de caché, de creación de caché y de salida de la última respuesta en la conversación principal, combinados. `0` antes de la primera respuesta |

3698| `prompt_cache_warm` | boolean | Si es probable que la caché de prompts del modelo actual siga caliente, lo que significa que el cambio la pierde |3692| `prompt_cache_warm` | boolean | Si es probable que la caché de prompts del modelo actual siga caliente, lo que significa que el cambio la pierde |

3699| `cache_ttl` | string | [Duración de la caché de prompts](/docs/es/prompt-caching#cache-lifetime) que Claude Code solicita para esta sesión: `"5m"` o `"1h"` |3693| `cache_ttl` | string | [Duración de la caché de prompts](/docs/es/prompt-caching#cache-lifetime) de la conversación principal en el momento de este cambio: `"5m"` o `"1h"` |

3700| `estimated_cache_write_usd` | number | Costo estimado en dólares estadounidenses de escribir `context_tokens` en la caché de prompts de `to_model` a la tarifa de `cache_ttl`, sin incluir la siguiente respuesta. Es posible que el servidor no necesite volver a almacenar en caché todo el contexto, así que trátalo como una estimación |3694| `estimated_cache_write_usd` | number | Costo estimado en dólares estadounidenses de escribir `context_tokens` en la caché de prompts de `to_model` a la tarifa de `cache_ttl`, sin incluir la siguiente respuesta. Es posible que el servidor no necesite volver a almacenar en caché todo el contexto, así que trátalo como una estimación |

3701| `pricing` | string | Cómo calculó Claude Code el precio de `estimated_cache_write_usd`: `"configured"` con las tarifas propias de tu organización cuando las ha configurado, `"catalog"` a precio de lista, o `"default"` cuando `to_model` no tiene un precio conocido y Claude Code asumió una tarifa predeterminada |3695| `pricing` | string | Cómo calculó Claude Code el precio de `estimated_cache_write_usd`: `"configured"` con las tarifas propias de tu organización cuando las ha configurado, `"catalog"` a precio de lista, o `"default"` cuando `to_model` no tiene un precio conocido y Claude Code asumió una tarifa predeterminada |

3702 3696 


3757 3751 

3758Un hook PreModelSwitch que no responde antes de que se agote su tiempo de espera bloquea el cambio. El tiempo de espera predeterminado para este evento es de 30 segundos.3752Un hook PreModelSwitch que no responde antes de que se agote su tiempo de espera bloquea el cambio. El tiempo de espera predeterminado para este evento es de 30 segundos.

3759 3753 

3760Para saber qué hace un código de salida distinto de 0 o 2, consulta [Otros códigos de salida](#other-exit-codes).3754Un código de salida distinto de 0 o 2 sin una salida JSON válida es un [error no bloqueante](#other-exit-codes), por lo que el cambio continúa, excepto para los hooks [cuyo fallo lo bloquea](#block-the-action-when-a-hook-fails).

3761 3755 

3762<h3 id="postmodelswitch">3756<h3 id="postmodelswitch">

3763 PostModelSwitch3757 PostModelSwitch


4275Lo que sucede en `ok: false` depende del evento:4269Lo que sucede en `ok: false` depende del evento:

4276 4270 

4277* `Stop` y `SubagentStop`: la razón se retroalimenta a Claude como su siguiente instrucción y el turno continúa, a menos que la respuesta también establezca `impossible: true`, en cuyo caso Claude Code permite la detención y el turno termina4271* `Stop` y `SubagentStop`: la razón se retroalimenta a Claude como su siguiente instrucción y el turno continúa, a menos que la respuesta también establezca `impossible: true`, en cuyo caso Claude Code permite la detención y el turno termina

4278* `PreToolUse`: la llamada de herramienta se deniega; por defecto el turno termina y la razón de denegación aparece en el chat como una línea de advertencia. Establezca `continueOnBlock: true` para devolver la razón a Claude como el error de la herramienta para que pueda ajustarse y continuar, equivalente a un hook de comando con `permissionDecision: "deny"`. Antes de v2.1.210, la razón de denegación se devolvía a Claude como el error de la herramienta y el turno continuaba4272* `PreToolUse`: la llamada a herramienta se deniega; por defecto el turno termina y la razón de denegación aparece en el chat como una línea de advertencia. Establece `continueOnBlock: true` para devolver en cambio la razón a Claude como el error de la herramienta para que pueda ajustarse y continuar, equivalente a un hook de comando con `permissionDecision: "deny"`

4279* `PostToolUse`: por defecto el turno termina y la razón aparece en el chat como una línea de advertencia. Establezca `continueOnBlock: true` para retroalimentar la razón a Claude y continuar el turno en lugar de detener4273* `PostToolUse`: por defecto el turno termina y la razón aparece en el chat como una línea de advertencia. Establezca `continueOnBlock: true` para retroalimentar la razón a Claude y continuar el turno en lugar de detener

4280* `PostToolBatch`, `UserPromptSubmit` y `UserPromptExpansion`: el turno termina y la razón aparece como una línea de advertencia. Estos eventos terminan el turno en `decision: "block"` independientemente de `continue`4274* `PostToolBatch`, `UserPromptSubmit` y `UserPromptExpansion`: el turno termina y la razón aparece como una línea de advertencia. Estos eventos terminan el turno en `decision: "block"` independientemente de `continue`

4281* `PostToolUseFailure` y `TaskCreated`: la razón se devuelve a Claude como un error de herramienta y el turno continúa, independientemente de `continueOnBlock`4275* `PostToolUseFailure` y `TaskCreated`: la razón se devuelve a Claude como un error de herramienta y el turno continúa, independientemente de `continueOnBlock`

hooks-guide.md +19 −24

Details

497 Cómo funcionan los hooks497 Cómo funcionan los hooks

498</h2>498</h2>

499 499 

500Claude Code dispara eventos de hook en puntos específicos de su ciclo de vida. Cuando se dispara un evento, Claude Code ejecuta todos los hooks coincidentes en paralelo; consulta [Campos del manejador de hooks](/docs/es/hooks#hook-handler-fields) para saber cómo se tratan los manejadores duplicados. La tabla a continuación muestra cada evento y cuándo se dispara:500Claude Code dispara eventos de hook en puntos específicos de su ciclo de vida. Cuando se dispara un evento, Claude Code ejecuta los hooks coincidentes en paralelo; consulta [Campos del manejador de hooks](/docs/es/hooks#hook-handler-fields) para saber cómo se tratan los manejadores duplicados. La tabla a continuación muestra cada evento y cuándo se dispara:

501 501 

502| Evento | Cuándo se dispara |502| Evento | Cuándo se dispara |

503| :- | :- |503| :- | :- |


627exit 0 # exit 0 = sin decisión; se aplica el flujo de permisos normal627exit 0 # exit 0 = sin decisión; se aplica el flujo de permisos normal

628```628```

629 629 

630El código de salida determina qué sucede a continuación:630Con un código de salida distinto de 0 y 2 y sin una salida JSON válida, la acción procede en la mayoría de los eventos, a menos que el hook sea uno [cuyo fallo bloquea la acción](/docs/es/hooks#block-the-action-when-a-hook-fails). Un hook con `onFailure` establecido en `"block"` es un ejemplo. Sal con 0 para reportar que no hay objeción, o sal con 2 para bloquear la acción:

631 631 

632* **Exit 0**: tu hook reporta sin objeción a través de su código de salida.632* **Exit 0**: si sales con 0 desde un hook `PreToolUse`, la llamada a herramienta sigue pasando por el [flujo de permisos](/docs/es/permissions) normal, porque exit 0 no la aprueba. Para hooks `UserPromptSubmit`, `UserPromptExpansion`, `SessionStart`, y `PostModelSwitch`, Claude Code añade stdout que [trata como texto plano](/docs/es/hooks#exit-code-0) al contexto de Claude.

633 * Para un hook `PreToolUse` esto no aprueba la llamada a herramienta: el [flujo de permiso](/docs/es/permissions) normal aún se aplica.633* **Exit 2**: escribe una razón en stderr. Según el evento, Claude la recibe como retroalimentación para poder ajustarse, el usuario la ve, o no aparece ningún mensaje, como ocurre con `ConfigChange` y `Elicitation`. Algunos eventos no pueden ser bloqueados: para `SessionStart` y otros, exit 2 muestra stderr al usuario y la ejecución continúa. Consulta [comportamiento del código de salida 2 por evento](/docs/es/hooks#exit-code-2-behavior-per-event) para la lista completa.

634 * Para hooks `UserPromptSubmit`, `UserPromptExpansion`, `SessionStart`, y `PostModelSwitch`, Claude Code añade stdout que [trata como texto plano](/docs/es/hooks#exit-code-0) al contexto de Claude.634* **Cualquier otro código de salida**: para las excepciones por evento, como `WorktreeCreate` que falla ante cualquier salida distinta de cero, consulta [Salida del código de salida](/docs/es/hooks#exit-code-output). En otros eventos, a menos que el hook sea uno cuyo fallo bloquea la acción, encuentra tu caso según lo que tu hook imprimió en stdout:

635* **Exit 2**: Claude Code bloquea la acción. Escribe una razón en stderr. Dónde llega depende del evento: algunos eventos lo alimentan a Claude como retroalimentación para que pueda ajustar, otros lo muestran al usuario, y algunos, como `ConfigChange` y `Elicitation`, no muestran ningún mensaje. Algunos eventos no pueden ser bloqueados: para `SessionStart` y otros, exit 2 muestra stderr al usuario y la ejecución continúa. Consulta [comportamiento del código de salida 2 por evento](/docs/es/hooks#exit-code-2-behavior-per-event) para la lista completa.635 * Un objeto analizado que pasa validación de esquema: Claude Code ignora el código de salida, el JSON solo decide el resultado, y el hook no se reporta como un error.

636* **Cualquier otro código de salida**: para la mayoría de eventos, la acción procede como un [error sin bloqueo](/docs/es/hooks#exit-code-output), a menos que el hook sea uno [cuyo fallo bloquea la acción](/docs/es/hooks#block-the-action-when-a-hook-fails) o que su salida JSON pase la validación:636 * Un objeto analizado que falla validación de esquema, o stdout que Claude Code [intenta analizar como JSON](/docs/es/hooks#exit-code-0) pero que no es JSON válido: la acción procede como un error sin bloqueo. Revisa el aviso `<hook name> hook error` para ver el mensaje de validación o análisis.

637 * Un objeto analizado que pasa validación de esquema: Claude Code ignora el código de salida, el JSON solo decide el resultado, y el hook no se reporta como un error. Las excepciones por evento, como `WorktreeCreate` fallando en cualquier salida distinta de cero, se enumeran en la sección [Salida del código de salida](/docs/es/hooks#exit-code-output) de la referencia.

638 * Un objeto analizado que falla validación de esquema, o stdout que Claude Code [intenta analizar como JSON](/docs/es/hooks#exit-code-0) pero que no es JSON válido: un error sin bloqueo; el aviso lleva el mensaje de validación o análisis.

639 * Stdout que Claude Code [trata como texto plano](/docs/es/hooks#exit-code-0), o stdout vacío: la acción procede como un error sin bloqueo. La transcripción muestra un aviso `<hook name> hook error`, luego la primera línea de stderr prefijada con `Failed with non-blocking status code:`. Para capturar el stderr completo, habilita [registro de depuración](/docs/es/hooks#debug-hooks) con `claude --debug` o ejecutando `/debug` en medio de la sesión.637 * Stdout que Claude Code [trata como texto plano](/docs/es/hooks#exit-code-0), o stdout vacío: la acción procede como un error sin bloqueo. La transcripción muestra un aviso `<hook name> hook error`, luego la primera línea de stderr prefijada con `Failed with non-blocking status code:`. Para capturar el stderr completo, habilita [registro de depuración](/docs/es/hooks#debug-hooks) con `claude --debug` o ejecutando `/debug` en medio de la sesión.

640 638 

641<h4 id="structured-json-output">639<h4 id="structured-json-output">


662 660 

663Con `"deny"`, Claude Code cancela la llamada a herramienta y alimenta `permissionDecisionReason` de vuelta a Claude.661Con `"deny"`, Claude Code cancela la llamada a herramienta y alimenta `permissionDecisionReason` de vuelta a Claude.

664 662 

665En `PreToolUse`, Claude Code maneja cada valor `permissionDecision` de la siguiente manera:663En `PreToolUse`, también puedes devolver `"ask"` para mostrar al usuario la solicitud de permiso normal, o `"allow"` para omitir la solicitud de permiso interactiva. Con `"allow"`, las reglas de negación y de solicitud, incluidas las listas de negación administradas empresariales, aún se aplican, al igual que las solicitudes para:

666 664 

667* `"allow"`: omite la solicitud de permiso interactiva. Las reglas de negación y solicitud, incluidas las listas de negación administradas empresariales, aún se aplican, al igual que las solicitudes para:665* Lecturas desde [rutas de red](/docs/es/permissions#network-paths)

668 666* Herramientas MCP marcadas con [`requiresUserInteraction`](/docs/es/mcp#require-approval-for-a-specific-tool)

669 * Lecturas desde [rutas de red](/docs/es/permissions#network-paths)667* Herramientas de conector [que tu organización configuró como `ask`](/docs/es/mcp#organization-controls-on-connector-tools) en sesiones donde ese ajuste llega a Claude Code

670 * Herramientas MCP marcadas con [`requiresUserInteraction`](/docs/es/mcp#require-approval-for-a-specific-tool)

671 * Herramientas de conector [que tu organización configuró como `ask`](/docs/es/mcp#organization-controls-on-connector-tools) en sesiones donde esa configuración llega a Claude Code

672 668 

673 Para saber qué hace `"allow"` en modo plan, consulta [Aprobaciones de hooks en modo plan](/docs/es/permissions#hook-approvals-in-plan-mode).669 Para saber qué hace `"allow"` en modo plan, consulta [Aprobaciones de hooks en modo plan](/docs/es/permissions#hook-approvals-in-plan-mode).

674* `"deny"`: cancela la llamada a herramienta y envía la razón a Claude

675* `"ask"`: muestra el aviso de permiso al usuario como es normal

676 670 

677Un 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.671Un 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.

678 672 


893* `"ok": true`: la acción procede887* `"ok": true`: la acción procede

894* `"ok": false`: lo que sucede depende del evento:888* `"ok": false`: lo que sucede depende del evento:

895 * `Stop` y `SubagentStop`: la `reason` se alimenta de vuelta a Claude para que siga trabajando, a menos que la respuesta también establezca `"impossible": true` para marcar la condición como una que nunca puede ser satisfecha, en cuyo caso Claude Code permite la parada y el turno termina889 * `Stop` y `SubagentStop`: la `reason` se alimenta de vuelta a Claude para que siga trabajando, a menos que la respuesta también establezca `"impossible": true` para marcar la condición como una que nunca puede ser satisfecha, en cuyo caso Claude Code permite la parada y el turno termina

896 * `PreToolUse`: la llamada de herramienta se deniega; por defecto el turno termina y la `reason` de denegación aparece en el chat como una línea de advertencia. Establece `continueOnBlock: true` en el hook para devolver la `reason` a Claude como el error de la herramienta, para que pueda ajustarse y continuar. Antes de v2.1.210, la `reason` de denegación se devolvía a Claude como el error de la herramienta y el turno continuaba890 * `PreToolUse`: la llamada a herramienta se deniega; por defecto el turno termina y la `reason` de denegación aparece en el chat como una línea de advertencia. Establece `continueOnBlock: true` en el hook para, en su lugar, devolver la `reason` a Claude como el error de la herramienta, para que pueda ajustarse y continuar

897 * `PostToolUse`: por defecto el turno termina y la `reason` aparece en el chat como una línea de advertencia. Establece `continueOnBlock: true` para alimentar la `reason` de vuelta a Claude y continuar el turno en su lugar891 * `PostToolUse`: por defecto el turno termina y la `reason` aparece en el chat como una línea de advertencia. Establece `continueOnBlock: true` para alimentar la `reason` de vuelta a Claude y continuar el turno en su lugar

898 * `PostToolBatch`, `UserPromptSubmit` y `UserPromptExpansion`: el turno termina y la `reason` aparece en el chat como una línea de advertencia892 * `PostToolBatch`, `UserPromptSubmit` y `UserPromptExpansion`: el turno termina y la `reason` aparece en el chat como una línea de advertencia

899 893 


1019 Hooks y modos de permiso1013 Hooks y modos de permiso

1020</h3>1014</h3>

1021 1015 

1022Los hooks `PreToolUse` se activan antes de cualquier verificación de modo de permiso, en cada [modo de permiso](/docs/es/permission-modes), incluyendo `dontAsk`. Un hook que devuelve `permissionDecision: "deny"` bloquea la herramienta incluso en modo `bypassPermissions` o con `--dangerously-skip-permissions`. Esto le permite aplicar política que los usuarios no pueden eludir cambiando su modo de permiso.1016Con un hook en un archivo de configuración o en `hooks/hooks.json` de un plugin no puedes relajar las restricciones más allá de lo que permiten las reglas de permisos, y un `"deny"` de un hook se mantiene en todos los modos de permisos:

1023 

1024Lo inverso no es cierto: los hooks en archivos de configuración y en `hooks/hooks.json` de un plugin pueden endurecer restricciones, pero no relajarlas más allá de lo que las reglas de permisos permiten. Un hook que devuelve `"allow"` no elude las reglas de denegación de la configuración, y no puede suprimir la solicitud para:

1025 1017 

1026* Lecturas desde [rutas de red](/docs/es/permissions#network-paths)1018* **Lo que sigue prevaleciendo sobre `"allow"`**: un hook que devuelve `"allow"` no elude las reglas de denegación de la configuración, y no puede suprimir la solicitud para:

1027* Herramientas MCP marcadas con [`requiresUserInteraction`](/docs/es/mcp#require-approval-for-a-specific-tool)1019 * Lecturas desde [rutas de red](/docs/es/permissions#network-paths)

1028* Herramientas de conectores [que tu organización estableció en `ask`](/docs/es/mcp#organization-controls-on-connector-tools) en sesiones donde ese ajuste llega a Claude Code1020 * Herramientas MCP marcadas con [`requiresUserInteraction`](/docs/es/mcp#require-approval-for-a-specific-tool)

1021 * Herramientas de conectores [que tu organización estableció en `ask`](/docs/es/mcp#organization-controls-on-connector-tools) en sesiones donde ese ajuste llega a Claude Code

1029 1022 

1030En [modo plan](/docs/es/permissions#hook-approvals-in-plan-mode), si tu hook `PreToolUse` devuelve `"allow"` para una edición de archivo, obtienes la misma solicitud, bloqueo o aprobación que la edición obtendría sin ningún hook. Para eliminar este límite en las aprobaciones de hooks, [aprueba el plan](/docs/es/permission-modes#review-and-approve-a-plan) o cambia a otro modo de permisos.1023En [modo plan](/docs/es/permissions#hook-approvals-in-plan-mode), si tu hook `PreToolUse` devuelve `"allow"` para una edición de archivo, obtienes la misma solicitud, bloqueo o aprobación que la edición obtendría sin ningún hook. Para eliminar este límite en las aprobaciones de hooks, [aprueba el plan](/docs/es/permission-modes#review-and-approve-a-plan) o cambia a otro modo de permisos.

1031 1024 

1025* **`"deny"` en todos los modos de permisos**: un hook que devuelve `permissionDecision: "deny"` bloquea la herramienta incluso en modo `bypassPermissions` o con `--dangerously-skip-permissions`. Los hooks `PreToolUse` se activan antes de cualquier verificación de modo de permisos, en cada [modo de permisos](/docs/es/permission-modes), incluido `dontAsk`. Esto te permite aplicar políticas que los usuarios no pueden eludir cambiando su modo de permisos.

1026 

1032Un [mod](/docs/es/plugins/mods/overview) que instales y que gestione `tool.check` puede aprobar una llamada que tu hook `PreToolUse` bloqueó, a menos que el hook esté en la configuración administrada. En modo plan, el mod puede aprobar una llamada de ese tipo cuando es de solo lectura, pero no una edición de archivo ni otra llamada que no sea de solo lectura. [Extender permisos con hooks](/docs/es/permissions#extend-permissions-with-hooks) enumera qué reglas prevalecen sobre un mod.1027Un [mod](/docs/es/plugins/mods/overview) que instales y que gestione `tool.check` puede aprobar una llamada que tu hook `PreToolUse` bloqueó, a menos que el hook esté en la configuración administrada. En modo plan, el mod puede aprobar una llamada de ese tipo cuando es de solo lectura, pero no una edición de archivo ni otra llamada que no sea de solo lectura. [Extender permisos con hooks](/docs/es/permissions#extend-permissions-with-hooks) enumera qué reglas prevalecen sobre un mod.

1033 1028 

1034<h3 id="hook-not-firing">1029<h3 id="hook-not-firing">

Details

183 Remapear secuencias de teclas en modo INSERT183 Remapear secuencias de teclas en modo INSERT

184</h3>184</h3>

185 185 

186La configuración [`vimInsertModeRemaps`](/docs/es/settings-reference#viminsertmoderemaps) mapea una secuencia de dos teclas en modo INSERT a Escape, por lo que un mapeo como `jj` lo devuelve al modo NORMAL. Requiere Claude Code v2.1.208 o posterior.186El ajuste [`vimInsertModeRemaps`](/docs/es/settings-reference#viminsertmoderemaps) mapea una secuencia de dos teclas en modo INSERT a Escape, por lo que un mapeo como `jj` te devuelve al modo NORMAL.

187 187 

188El siguiente ejemplo de `~/.claude/settings.json` activa el modo vim y mapea `jj` a Escape:188El siguiente ejemplo de `~/.claude/settings.json` activa el modo vim y mapea `jj` a Escape:

189 189 


248| `cc` | Cambiar línea |248| `cc` | Cambiar línea |

249| `C` | Cambiar hasta el final de la línea |249| `C` | Cambiar hasta el final de la línea |

250| `cw`/`ce`/`cb` | Cambiar palabra/hasta el final/hacia atrás |250| `cw`/`ce`/`cb` | Cambiar palabra/hasta el final/hacia atrás |

251| `s` | Sustituir carácter: eliminar el carácter bajo el cursor e ingresar modo INSERT. Requiere Claude Code v2.1.211 o posterior |251| `s` | Sustituir carácter: eliminar el carácter bajo el cursor e ingresar modo INSERT |

252| `S` | Sustituir línea: limpiar la línea e ingresar modo INSERT. Requiere Claude Code v2.1.211 o posterior |252| `S` | Sustituir línea: limpiar la línea e ingresar modo INSERT |

253| `yy`/`Y` | Yanquear (copiar) línea |253| `yy`/`Y` | Yanquear (copiar) línea |

254| `yw`/`ye`/`yb` | Yanquear palabra/hasta el final/hacia atrás |254| `yw`/`ye`/`yb` | Yanquear palabra/hasta el final/hacia atrás |

255| `p` | Pegar después del cursor |255| `p` | Pegar después del cursor |


471* Después del primer turno de una conversación, en algunas sesiones471* Después del primer turno de una conversación, en algunas sesiones

472* La respuesta anterior terminó en un error472* La respuesta anterior terminó en un error

473* Mientras está en Plan Mode473* Mientras está en Plan Mode

474* Su cuenta está cerca o en su límite de uso. Para mantener las sugerencias activadas hasta que alcance el límite, establezca [`CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION`](/docs/es/env-vars) en `true`. Antes de v2.1.238, Claude Code las omitía cerca del límite incluso con la variable establecida en `true`474* Tu cuenta está cerca de su límite de uso o ya lo alcanzó. Para que esta omisión no se aplique hasta que alcances el límite, establece [`CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION`](/docs/es/env-vars) en `true`. Antes de v2.1.238, Claude Code omitía las sugerencias cerca del límite incluso con la variable establecida en `true`

475* En un [equipo de agentes](/docs/es/agent-teams), en las sesiones de compañeros de equipo de forma predeterminada. La sesión del líder muestra sugerencias475* En un [equipo de agentes](/docs/es/agent-teams), en las sesiones de compañeros de equipo de forma predeterminada. La sesión del líder muestra sugerencias

476 476 

477El aviso `Showing fewer prompt suggestions · use one to bring them back` significa que Claude Code está mostrando sugerencias con menos frecuencia porque dejaste muchas seguidas sin usar. Para volver a la frecuencia habitual, usa una sugerencia o establece [`CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION`](/docs/es/env-vars) en `true`.477El aviso `Showing fewer prompt suggestions · use one to bring them back` significa que Claude Code está mostrando sugerencias con menos frecuencia porque dejaste muchas seguidas sin usar. Para volver a la frecuencia habitual, usa una sugerencia o establece [`CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION`](/docs/es/env-vars) en `true`.


759 759 

760Sus cinco preguntas laterales anteriores más recientes aparecen como una lista atenuada encima de la respuesta actual, con un recuento de las más antiguas. Se mantienen fuera del historial de conversación.760Sus cinco preguntas laterales anteriores más recientes aparecen como una lista atenuada encima de la respuesta actual, con un recuento de las más antiguas. Se mantienen fuera del historial de conversación.

761 761 

762Para volver a la superposición después de descartarla, ejecute `/btw` sin pregunta. La superposición se reabre en su intercambio más reciente. Antes de la versión 2.1.212, `/btw` sin pregunta imprimía un mensaje de uso en su lugar.762Para volver a la superposición después de descartarla, ejecuta `/btw` sin pregunta. La superposición se reabre en tu intercambio más reciente.

763 763 

764Una vez que aparece la respuesta, la superposición acepta estas teclas.764Una vez que aparece la respuesta, la superposición acepta estas teclas.

765 765 

keybindings.md +3 −4

Details

462| `abovePrompt:highlightNext` | Down | Resaltar la siguiente opción en un selector enfocado |462| `abovePrompt:highlightNext` | Down | Resaltar la siguiente opción en un selector enfocado |

463| `abovePrompt:highlightPrevious` | Up | Resaltar la opción anterior en un selector enfocado |463| `abovePrompt:highlightPrevious` | Up | Resaltar la opción anterior en un selector enfocado |

464 464 

465Dos contextos vinculan más teclas a estas acciones de forma predeterminada:465En el [contexto `AbovePrompt`](#contexts), Right y Left también ejecutan `abovePrompt:next` y `abovePrompt:previous` de forma predeterminada, y Space también ejecuta `abovePrompt:press`.

466 

467* **`AbovePrompt`**: Right y Left también ejecutan `abovePrompt:next` y `abovePrompt:previous`, y Space también ejecuta `abovePrompt:press`

468* **`AbovePromptInput`**: Down y Up también ejecutan `abovePrompt:next` y `abovePrompt:previous`

469 466 

470El contexto `AbovePrompt` también vincula Up, Down, PageUp, PageDown, Home y End a las [acciones de desplazamiento del panel](#pane-actions), de `pane:scrollUp` a `pane:bottom`, así que para cambiar una de esas teclas para la banda, vincula la acción de desplazamiento en un bloque `AbovePrompt`.467El contexto `AbovePrompt` también vincula Up, Down, PageUp, PageDown, Home y End a las [acciones de desplazamiento del panel](#pane-actions), de `pane:scrollUp` a `pane:bottom`, así que para cambiar una de esas teclas para la banda, vincula la acción de desplazamiento en un bloque `AbovePrompt`.

471 468 


769* En modo NORMAL de vim, `?` muestra el menú de ayuda (comportamiento de vim)766* En modo NORMAL de vim, `?` muestra el menú de ayuda (comportamiento de vim)

770* En modo NORMAL de vim, `/` abre la búsqueda de historial, lo mismo que Ctrl+R en modo estándar767* En modo NORMAL de vim, `/` abre la búsqueda de historial, lo mismo que Ctrl+R en modo estándar

771 768 

769En 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.

770 

772<h2 id="validation">771<h2 id="validation">

773 Validación772 Validación

774</h2>773</h2>

mcp.md +5 −5

Details

324* Para un servidor en el [alcance](#mcp-installation-scopes) local, de proyecto, o de usuario o en la configuración MCP administrada, el origen muestra el host tal como está escrito en esa configuración, por lo que una referencia `${VAR}` en el host no se expande en el mensaje.324* Para un servidor en el [alcance](#mcp-installation-scopes) local, de proyecto, o de usuario o en la configuración MCP administrada, el origen muestra el host tal como está escrito en esa configuración, por lo que una referencia `${VAR}` en el host no se expande en el mensaje.

325* Para una falla sin código de estado ni código de error, Claude Code muestra el texto de error sin el origen.325* Para una falla sin código de estado ni código de error, Claude Code muestra el texto de error sin el origen.

326 326 

327Un servidor remoto cuya configuración tiene una `url` vacía se muestra como `not configured` en `/mcp`, en `claude mcp list`, y en el administrador [`/plugin`](/docs/es/plugins/install), y Claude Code no intenta conectarse a él. Un plugin puede incluir una entrada de marcador de posición como esta para un conector que configuras más tarde, por lo que Claude Code no lo informa como un error ni como un problema de configuración. La vista de detalle del servidor en `/mcp` indica `No URL configured for this server`; establece la `url` de la entrada para conectarlo. Antes de v2.1.208, Claude Code informaba una `url` vacía como un problema de configuración y pedía reconectar.327Un servidor remoto cuya configuración tiene una `url` vacía se muestra como `not configured` en `/mcp`, en `claude mcp list`, y en el administrador [`/plugin`](/docs/es/plugins/install), y Claude Code no intenta conectarse a él. Un plugin puede incluir una entrada de marcador de posición como esta para un conector que configuras más tarde, por lo que Claude Code no lo informa como un error ni como un problema de configuración. La vista de detalle del servidor en `/mcp` indica `No URL configured for this server`; establece la `url` de la entrada para conectarlo.

328 328 

329<h4 id="configuration-warnings">329<h4 id="configuration-warnings">

330 Advertencias de configuración330 Advertencias de configuración


403* **En una sesión interactiva de terminal**, Claude Code obtiene la lista actualizada de ese servidor, por lo que no necesitas reconectarlo.403* **En una sesión interactiva de terminal**, Claude Code obtiene la lista actualizada de ese servidor, por lo que no necesitas reconectarlo.

404* **En [modo no interactivo](/docs/es/headless) con el flag `-p` y en el [Agent SDK](/docs/es/agent-sdk/overview)**, Claude Code actualiza solo la lista de herramientas con estas notificaciones.404* **En [modo no interactivo](/docs/es/headless) con el flag `-p` y en el [Agent SDK](/docs/es/agent-sdk/overview)**, Claude Code actualiza solo la lista de herramientas con estas notificaciones.

405 405 

406Si una solicitud de actualización falla, Claude Code mantiene las herramientas, prompts y recursos descubiertos anteriormente del servidor hasta que una actualización posterior tenga éxito. Antes de v2.1.214, un error transitorio durante la actualización reemplazaba las herramientas, prompts y recursos del servidor con una lista vacía.406Si una solicitud de actualización falla, Claude Code mantiene las herramientas, prompts y recursos descubiertos anteriormente del servidor hasta que una actualización posterior tenga éxito.

407 407 

408<h4 id="notification-streams-on-the-v2-runtime">408<h4 id="notification-streams-on-the-v2-runtime">

409 Secuencias de notificación en el tiempo de ejecución v2409 Secuencias de notificación en el tiempo de ejecución v2


502 Ejecución automática en segundo plano de llamadas a herramientas largas502 Ejecución automática en segundo plano de llamadas a herramientas largas

503</h3>503</h3>

504 504 

505Una llamada a herramienta MCP en la conversación principal que aún se está ejecutando después de dos minutos pasa a una tarea en segundo plano en lugar de bloquear la sesión. Claude recibe el ID de la tarea inmediatamente y sigue trabajando, y el resultado llega como una notificación de tarea cuando la llamada termina. La ejecución automática en segundo plano requiere Claude Code v2.1.212 o posterior.505Una llamada a herramienta MCP en la conversación principal que aún se está ejecutando después de dos minutos pasa a una tarea en segundo plano en lugar de bloquear la sesión. Claude recibe el ID de la tarea inmediatamente y sigue trabajando, y el resultado llega como una notificación de tarea cuando la llamada termina.

506 506 

507La tarea aparece en [`/tasks`](/docs/es/commands#all-commands), donde también puedes detenerla, y no sobrevive a la salida de la sesión. La entrada de la tarea muestra el progreso más reciente que el servidor ha informado. Si detienes la tarea, Claude Code cancela la llamada y le dice a Claude que no llegará ningún resultado. Detenerla no garantiza que el servidor se detenga: puede que ya haya hecho parte del trabajo, o que aún lo termine.507La tarea aparece en [`/tasks`](/docs/es/commands#all-commands), donde también puedes detenerla, y no sobrevive a la salida de la sesión. La entrada de la tarea muestra el progreso más reciente que el servidor ha informado. Si detienes la tarea, Claude Code cancela la llamada y le dice a Claude que no llegará ningún resultado. Detenerla no garantiza que el servidor se detenga: puede que ya haya hecho parte del trabajo, o que aún lo termine.

508 508 


1301 Cómo los conectores llegan a Claude Code1301 Cómo los conectores llegan a Claude Code

1302</h3>1302</h3>

1303 1303 

1304Qué configuración rige un conector de claude.ai depende de dónde se ejecute su sesión, porque solo algunas sesiones obtienen conectores de claude.ai por sí mismas. Cada fila a continuación nombra cómo los conectores llegan en un tipo de sesión y qué los controla allí. Las [sesiones WSL](/docs/es/desktop-wsl#what-works-in-a-wsl-session) de la aplicación de escritorio no tienen fila porque los conectores aún no están disponibles en ellas.1304Qué configuración rige un conector de claude.ai depende de dónde se ejecute tu sesión, porque solo algunas sesiones obtienen conectores de claude.ai por sí mismas. Cada fila a continuación indica cómo llegan los conectores a un tipo de sesión y qué los controla allí. Las sesiones WSL de la aplicación de escritorio no tienen fila porque los conectores [aún se están implementando en ellas](/docs/es/desktop-wsl#check-for-the-terminal-and-connectors).

1305 1305 

1306| Dónde se ejecuta la sesión | Cómo llegan los conectores | Qué los rige |1306| Dónde se ejecuta la sesión | Cómo llegan los conectores | Qué los rige |

1307| :- | :- | :- |1307| :- | :- | :- |


1531 1531 

1532Algunas superficies, como [Remote Control](/docs/es/remote-control) y las aplicaciones construidas sobre el [Agent SDK](/docs/es/agent-sdk/overview), normalmente te permiten aprobar llamadas a herramientas con un toque. Para una herramienta marcada con esta anotación, Claude Code retiene la acción de un toque y, en su lugar, muestra la solicitud de permiso completa de la herramienta, por lo que la aprobación sigue viniendo de una persona que responde a la solicitud y no de un toque.1532Algunas superficies, como [Remote Control](/docs/es/remote-control) y las aplicaciones construidas sobre el [Agent SDK](/docs/es/agent-sdk/overview), normalmente te permiten aprobar llamadas a herramientas con un toque. Para una herramienta marcada con esta anotación, Claude Code retiene la acción de un toque y, en su lugar, muestra la solicitud de permiso completa de la herramienta, por lo que la aprobación sigue viniendo de una persona que responde a la solicitud y no de un toque.

1533 1533 

1534Claude Code retiene la aprobación de un toque de la misma manera para cualquier solicitud de permiso que solo el diálogo de la terminal pueda renderizar completamente, como una que incluye una advertencia de seguridad o una opción de permitir siempre que la superficie remota no puede mostrar. Respondes esa solicitud en el diálogo de la terminal en lugar de desde Remote Control. Requiere Claude Code v2.1.214 o posterior.1534Claude Code retiene la aprobación de un toque de la misma manera para cualquier solicitud de permiso que solo el diálogo de la terminal pueda renderizar completamente, como una que incluye una advertencia de seguridad o una opción de permitir siempre que la superficie remota no puede mostrar. Respondes esa solicitud en el diálogo de la terminal en lugar de desde Remote Control.

1535 1535 

1536<h2 id="respond-to-mcp-elicitation-requests">1536<h2 id="respond-to-mcp-elicitation-requests">

1537 Responder a solicitudes de elicitación de MCP1537 Responder a solicitudes de elicitación de MCP

memory.md +3 −3

Details

521* Reglas de Copilot en `.github/copilot-instructions.md`521* Reglas de Copilot en `.github/copilot-instructions.md`

522* Con `CLAUDE_CODE_NEW_INIT=1` establecido: `AGENTS.md`, `.devin/rules/`, `.windsurf/rules/` o `.windsurfrules`, y `.clinerules`522* Con `CLAUDE_CODE_NEW_INIT=1` establecido: `AGENTS.md`, `.devin/rules/`, `.windsurf/rules/` o `.windsurfrules`, y `.clinerules`

523 523 

524También puede ejecutar [`/import`](/docs/es/commands) para traer la configuración de un agente de codificación compatible a Claude Code, que agrega una copia única de archivos de instrucciones como `AGENTS.md` al `CLAUDE.md` coincidente y traslada servidores MCP, comandos, subagentes y skills. Requiere Claude Code v2.1.213 o posterior.524También puedes ejecutar [`/import`](/docs/es/commands) para traer la configuración de un agente de codificación compatible a Claude Code, lo que agrega una copia única de archivos de instrucciones como `AGENTS.md` al `CLAUDE.md` correspondiente y traslada servidores MCP, comandos, subagentes y skills.

525 525 

526<h2 id="auto-memory">526<h2 id="auto-memory">

527 Auto memory527 Auto memory


605 605 

606Las primeras 200 líneas de `MEMORY.md`, o los primeros 25KB, lo que sea menor, se cargan al inicio de cada conversación. El contenido más allá de ese umbral no se carga al inicio de la sesión. Claude mantiene `MEMORY.md` conciso moviendo notas detalladas a archivos de tema separados.606Las primeras 200 líneas de `MEMORY.md`, o los primeros 25KB, lo que sea menor, se cargan al inicio de cada conversación. El contenido más allá de ese umbral no se carga al inicio de la sesión. Claude mantiene `MEMORY.md` conciso moviendo notas detalladas a archivos de tema separados.

607 607 

608Después de que Claude escribe en `MEMORY.md`, Claude Code mide el archivo contra los límites de lectura de 200 líneas y 25KB. Si el archivo está cerca de un límite, Claude Code le recuerda a Claude que lo acorte: mantenga una línea por entrada, mueva detalles a archivos de tema y combine o elimine entradas obsoletas. Si el archivo supera un límite, la escritura aún tiene éxito, pero Claude Code devuelve un [error indicándole a Claude que reescriba el índice](/docs/es/errors#memory-index-is-over-its-read-limit), porque todo lo que está más allá del límite se descarta en la siguiente carga.608Después de que Claude escribe en `MEMORY.md`, Claude Code mide el archivo contra los límites de lectura de 200 líneas y 25KB. Si el archivo está cerca de un límite, Claude Code le recuerda a Claude que lo acorte: mantener una línea por entrada, mover detalles a archivos de tema y combinar o eliminar entradas obsoletas. Si el archivo supera un límite, la escritura aún tiene éxito, pero Claude Code devuelve un [error indicándole a Claude que reescriba el índice](/docs/es/errors#memory-index-is-over-its-read-limit), porque todo lo que está más allá del límite se descarta en la siguiente carga.

609 609 

610Este límite se aplica solo a `MEMORY.md`. Claude Code carga un archivo CLAUDE.md de hasta 4 MiB en su totalidad y omite un archivo más grande. Los archivos más cortos producen mejor adherencia.610Este límite se aplica solo a `MEMORY.md`. Claude Code carga un archivo CLAUDE.md de hasta 4 MiB en su totalidad y omite un archivo más grande. Los archivos más cortos producen mejor adherencia.

611 611 


615 615 

616Claude lee y escribe archivos de memoria durante su sesión. Cuando ve mensajes como "Saved 2 memories" o "Recalled 2 memories" en la interfaz de Claude Code, Claude está actualizando o leyendo activamente desde `~/.claude/projects/<project>/memory/`.616Claude lee y escribe archivos de memoria durante su sesión. Cuando ve mensajes como "Saved 2 memories" o "Recalled 2 memories" en la interfaz de Claude Code, Claude está actualizando o leyendo activamente desde `~/.claude/projects/<project>/memory/`.

617 617 

618Cuando Claude escribe un archivo de memoria que comienza con frontmatter YAML, Claude Code registra la hora de escritura en un campo `modified` del frontmatter como una marca de tiempo ISO 8601. La marca de tiempo muestra cuán actual es el hecho, tanto para usted como para Claude cuando lo vuelve a leer. Cualquier archivo que tenga frontmatter obtiene el campo la próxima vez que Claude lo escribe, incluidos los archivos creados en versiones anteriores; Claude Code nunca agrega frontmatter a un archivo que no lo tenga. El campo `modified` requiere Claude Code v2.1.214 o posterior.618Cuando Claude escribe un archivo de memoria que comienza con frontmatter YAML, Claude Code registra la hora de escritura en un campo `modified` del frontmatter como una marca de tiempo ISO 8601. La marca de tiempo muestra cuán actual es el hecho, tanto para ti como para Claude cuando lo vuelve a leer.

619 619 

620<h3 id="audit-and-edit-your-memory">620<h3 id="audit-and-edit-your-memory">

621 Auditar y editar su memoria621 Auditar y editar su memoria

model-config.md +2 −1

Details

274* **Anulación de skill o comando**: Claude Code ignora la anulación, incluido un alias de familia bloqueado, y el skill o comando se ejecuta en el modelo de sesión. Un skill o comando que [se ejecuta en un subagente](/docs/es/skills#run-skills-in-a-subagent) sigue el comportamiento del subagente anterior en su lugar274* **Anulación de skill o comando**: Claude Code ignora la anulación, incluido un alias de familia bloqueado, y el skill o comando se ejecuta en el modelo de sesión. Un skill o comando que [se ejecuta en un subagente](/docs/es/skills#run-skills-in-a-subagent) sigue el comportamiento del subagente anterior en su lugar

275* **Configuración `advisorModel`**: el asesor se deshabilita para la sesión275* **Configuración `advisorModel`**: el asesor se deshabilita para la sesión

276* **Bandera `--advisor`**: Claude Code sale con un error al inicio. En una [sesión de fondo](/docs/es/agent-view), inicia la sesión sin el asesor en lugar de salir276* **Bandera `--advisor`**: Claude Code sale con un error al inicio. En una [sesión de fondo](/docs/es/agent-view), inicia la sesión sin el asesor en lugar de salir

277* **`CLAUDE_CODE_AUTO_MODE_MODEL`**: Claude Code ignora la variable y elige el modelo para sus [solicitudes del clasificador de modo automático](/docs/es/permission-modes#default-classifier-model) como si no la hubieras establecido

277 278 

278Claude Code oculta los modelos excluidos del selector `/model`. Que un ID de modelo que enumeres también obtenga una fila propia difiere según el proveedor:279Claude Code oculta los modelos excluidos del selector `/model`. Que un ID de modelo que enumeres también obtenga una fila propia difiere según el proveedor:

279 280 


285* **[Cadenas de modelo de respaldo](#fallback-model-chains)**: las entradas fuera de la lista de permitidos se descartan286* **[Cadenas de modelo de respaldo](#fallback-model-chains)**: las entradas fuera de la lista de permitidos se descartan

286* **Actualizaciones de modo de plan**: en la API de Anthropic y Claude Platform en AWS, una actualización como [`opusplan`](#opusplan-model-setting) a un modelo excluido usa la versión más nueva permitida de la familia de actualización. En proveedores con IDs de modelo específicos del proveedor, y cuando no se permite ninguna versión, la actualización se omite y la planificación continúa en el modelo de la sesión287* **Actualizaciones de modo de plan**: en la API de Anthropic y Claude Platform en AWS, una actualización como [`opusplan`](#opusplan-model-setting) a un modelo excluido usa la versión más nueva permitida de la familia de actualización. En proveedores con IDs de modelo específicos del proveedor, y cuando no se permite ninguna versión, la actualización se omite y la planificación continúa en el modelo de la sesión

287* **[Respaldo automático de modelo](#automatic-model-fallback)**: un respaldo cuyo destino está excluido no se ejecuta, por lo que la solicitud marcada termina con un rechazo en su lugar288* **[Respaldo automático de modelo](#automatic-model-fallback)**: un respaldo cuyo destino está excluido no se ejecuta, por lo que la solicitud marcada termina con un rechazo en su lugar

288* **[Clasificador de modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode)**: el valor predeterminado de Claude Sonnet 5 del clasificador se aplica solo cuando la lista de permitidos permite Sonnet 5. Cuando está excluido, el clasificador se ejecuta en el modelo de la sesión, que la lista de permitidos ya rige, o en un modelo Opus cuando la sesión se ejecuta en un [modelo Fable](#work-with-fable). En proveedores distintos de la API de Anthropic, ese respaldo de Opus se ejecuta en el modelo que establezcas en `ANTHROPIC_DEFAULT_OPUS_MODEL` o, en caso contrario, en Opus 5, sin consultar la lista de permitidos. Requiere Claude Code v2.1.210 o posterior289* **[Clasificador de modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode)**: cuando la lista de permitidos excluye el [modelo predeterminado del clasificador](/docs/es/permission-modes#default-classifier-model), las solicitudes del clasificador que usarían ese modelo se ejecutan en el modelo de la sesión, o en un modelo Opus en sesiones de [Fable](#work-with-fable). En proveedores distintos de la API de Anthropic, ese respaldo de Opus se ejecuta en el modelo que establezcas en `ANTHROPIC_DEFAULT_OPUS_MODEL` o, en caso contrario, en Opus 5, sin consultar la lista de permitidos. Requiere Claude Code v2.1.210 o posterior

289* **[Modo rápido](/docs/es/fast-mode)**: habilitar el modo rápido se rechaza cuando el modelo en el que se ejecutaría la sesión después está fuera de la lista de permitidos290* **[Modo rápido](/docs/es/fast-mode)**: habilitar el modo rápido se rechaza cuando el modelo en el que se ejecutaría la sesión después está fuera de la lista de permitidos

290* **Respaldo por disponibilidad en Amazon Bedrock y Agent Platform de Google Cloud**: cuando tu cuenta pierde el acceso a un modelo a mitad de sesión, el cambio a otro modelo omite los modelos excluidos. Las verificaciones de modelo al inicio en [Amazon Bedrock](/docs/es/amazon-bedrock#when-your-organization-enforces-a-model-allowlist) y [Agent Platform de Google Cloud](/docs/es/google-vertex-ai#when-your-organization-enforces-a-model-allowlist) omiten los modelos excluidos solo cuando la configuración administrada también establece [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model)291* **Respaldo por disponibilidad en Amazon Bedrock y Agent Platform de Google Cloud**: cuando tu cuenta pierde el acceso a un modelo a mitad de sesión, el cambio a otro modelo omite los modelos excluidos. Las verificaciones de modelo al inicio en [Amazon Bedrock](/docs/es/amazon-bedrock#when-your-organization-enforces-a-model-allowlist) y [Agent Platform de Google Cloud](/docs/es/google-vertex-ai#when-your-organization-enforces-a-model-allowlist) omiten los modelos excluidos solo cuando la configuración administrada también establece [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model)

291 292 

Details

137| `OTEL_LOG_TOOL_CONTENT` | Habilitar el registro del contenido de la herramienta en el [evento de tramo `tool.output`](#tool-output-span-event) (predeterminado: deshabilitado). Los atributos de tramo llevan contenido de herramientas bajo [sus propias compuertas](#new-context-gates). Requiere [tracing](#traces-beta). El contenido se trunca en el límite de contenido (60 KB de forma predeterminada) | `1` para habilitar |137| `OTEL_LOG_TOOL_CONTENT` | Habilitar el registro del contenido de la herramienta en el [evento de tramo `tool.output`](#tool-output-span-event) (predeterminado: deshabilitado). Los atributos de tramo llevan contenido de herramientas bajo [sus propias compuertas](#new-context-gates). Requiere [tracing](#traces-beta). El contenido se trunca en el límite de contenido (60 KB de forma predeterminada) | `1` para habilitar |

138| `OTEL_LOG_MANAGED_SETTINGS` | Agregar la configuración administrada redactada y un resumen SHA-256 de la configuración antes de la redacción a eventos [managed settings resolved](#managed-settings-resolved-event) (predeterminado: deshabilitado). Un valor en la configuración del proyecto o local no lo activa. Requiere Claude Code v2.1.274 o posterior | `1` para habilitar |138| `OTEL_LOG_MANAGED_SETTINGS` | Agregar la configuración administrada redactada y un resumen SHA-256 de la configuración antes de la redacción a eventos [managed settings resolved](#managed-settings-resolved-event) (predeterminado: deshabilitado). Un valor en la configuración del proyecto o local no lo activa. Requiere Claude Code v2.1.274 o posterior | `1` para habilitar |

139| `OTEL_LOG_RAW_API_BODIES` | Emitir la solicitud y respuesta JSON completa de la API de Mensajes de Anthropic como eventos de registro `api_request_body` / `api_response_body` (predeterminado: deshabilitado). Los cuerpos incluyen todo el historial de conversación. Habilitar esto implica consentimiento para todo lo que `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_DETAILS` y `OTEL_LOG_TOOL_CONTENT` revelarían | `1` para cuerpos en línea truncados en el límite de contenido (60 KB de forma predeterminada), o `file:<dir>` para cuerpos sin truncar en disco con un puntero `body_ref` en el evento |139| `OTEL_LOG_RAW_API_BODIES` | Emitir la solicitud y respuesta JSON completa de la API de Mensajes de Anthropic como eventos de registro `api_request_body` / `api_response_body` (predeterminado: deshabilitado). Los cuerpos incluyen todo el historial de conversación. Habilitar esto implica consentimiento para todo lo que `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_DETAILS` y `OTEL_LOG_TOOL_CONTENT` revelarían | `1` para cuerpos en línea truncados en el límite de contenido (60 KB de forma predeterminada), o `file:<dir>` para cuerpos sin truncar en disco con un puntero `body_ref` en el evento |

140| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Límite de contenido: la longitud máxima de atributos que contienen contenido como respuestas del modelo, contenido de herramientas, mensajes del sistema y cuerpos de API sin procesar, incluido el marcador de truncamiento, en unidades de código UTF-16 (predeterminado: 61440, es decir, 60 KB). El predeterminado está dimensionado para backends que limitan valores de atributos a 64 KB; auméntelo solo si su backend acepta valores más grandes, o redúzcalo para reducir el volumen de telemetría. Cuando un límite de atributo del SDK de OpenTelemetry, `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` o uno de sus variantes de logrecord y span, se establece más bajo, Claude Code trunca en ese valor más pequeño para que el marcador `[TRUNCATED ...]` permanezca dentro del límite del SDK. Requiere Claude Code v2.1.214 o posterior | `262144` |140| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Límite de contenido: la longitud máxima de los atributos que llevan contenido, como respuestas del modelo, contenido de herramientas, prompts del sistema y cuerpos de API sin procesar, incluido el marcador de truncamiento, en unidades de código UTF-16 (predeterminado: 61440, es decir, 60 KB). El valor predeterminado está dimensionado para backends que limitan los valores de atributos a 64 KB; auméntalo solo si tu backend acepta valores más grandes, o redúcelo para disminuir el volumen de telemetría. Cuando un límite de atributos del SDK de OpenTelemetry, `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` o una de sus variantes de logrecord y span, se establece en un valor menor, Claude Code trunca en ese valor más pequeño para que el marcador `[TRUNCATED ...]` permanezca dentro del límite del SDK | `262144` |

141| `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | Preferencia de temporalidad de métricas (predeterminado: `delta`). Establezca en `cumulative` si su backend espera temporalidad acumulativa | `delta`, `cumulative` |141| `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | Preferencia de temporalidad de métricas (predeterminado: `delta`). Establezca en `cumulative` si su backend espera temporalidad acumulativa | `delta`, `cumulative` |

142| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Intervalo para actualizar encabezados dinámicos (predeterminado: 1740000ms / 29 minutos) | `900000` |142| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Intervalo para actualizar encabezados dinámicos (predeterminado: 1740000ms / 29 minutos) | `900000` |

143 143 

144Para los protocolos `http/protobuf` e `http/json`, Claude Code envía cada solicitud de exportación con un encabezado `Content-Length`. Antes de v2.1.212, las versiones de Claude Code desde v2.1.191 en adelante enviaban estas solicitudes con codificación de transferencia fragmentada; Azure Monitor y otros puntos finales que requieren una longitud declarada las rechazaban con errores `411 Length Required` o `400`.144Para los protocolos `http/protobuf` y `http/json`, Claude Code envía cada solicitud de exportación con un encabezado `Content-Length`.

145 145 

146<h3 id="mtls-authentication">146<h3 id="mtls-authentication">

147 Autenticación mTLS147 Autenticación mTLS


202 202 

203El contexto de traza entrante también se aplica a [eventos](#events). En sesiones de SDK de Agent y `-p` con `TRACEPARENT` establecido, cada registro de registro de evento OTLP lleva valores `trace_id` y `span_id` que lo unen a la traza de su aplicación, incluso cuando el exportador de trazas no está configurado, para que su backend de registro pueda correlacionar eventos con el resto de la traza.203El contexto de traza entrante también se aplica a [eventos](#events). En sesiones de SDK de Agent y `-p` con `TRACEPARENT` establecido, cada registro de registro de evento OTLP lleva valores `trace_id` y `span_id` que lo unen a la traza de su aplicación, incluso cuando el exportador de trazas no está configurado, para que su backend de registro pueda correlacionar eventos con el resto de la traza.

204 204 

205Un registro emitido mientras una interacción está activa lleva los IDs del tramo de interacción, incluso cuando Claude Code lo emite fuera del contexto asincrónico del tramo, como en una devolución de llamada de solicitud de permiso o para un registro almacenado en búfer durante el inicio y exportado más tarde. Un registro emitido sin un tramo de interacción activo lleva los IDs de `TRACEPARENT` entrante directamente. Antes de v2.1.214, los registros emitidos fuera del contexto asincrónico del tramo llevaban los IDs de `TRACEPARENT` entrante en lugar de los IDs del tramo. Antes de v2.1.212, los registros de eventos emitidos fuera de un tramo activo no llevaban `trace_id` o `span_id`.205Un registro emitido mientras una interacción está activa lleva los IDs del tramo de interacción, incluso cuando Claude Code lo emite fuera del contexto asíncrono del tramo, como en una devolución de llamada de una solicitud de permiso o en un registro almacenado en búfer durante el inicio y exportado más tarde. Un registro emitido sin un tramo de interacción activo lleva directamente los IDs del `TRACEPARENT` entrante.

206 206 

207<h4 id="span-hierarchy">207<h4 id="span-hierarchy">

208 Jerarquía de tramos208 Jerarquía de tramos


328| Atributo | Descripción | Controlado por |328| Atributo | Descripción | Controlado por |

329| - | - | - |329| - | - | - |

330| `duration_ms` | Tiempo dedicado a esperar la decisión de permiso | |330| `duration_ms` | Tiempo dedicado a esperar la decisión de permiso | |

331| `decision` | `accept` o `reject` | |331| `decision` | `accept`, `reject` o `cancelled`, donde `cancelled` significa que Claude Code dejó de esperar una decisión de permiso sobre la llamada a herramienta y no la ejecutó | |

332| `source` | Fuente de decisión, que coincide con el [evento Tool decision](#tool-decision-event) | |332| `source` | Para un `accept` o `reject`, de dónde provino la decisión, como `config`, `hook` o `user_temporary`, con los significados indicados en el [evento Tool decision](#tool-decision-event). Para un `cancelled`, qué terminó la espera antes de que se tomara alguna decisión, como `user_abort` | |

333 

334Una decisión `cancelled` con `source` `user_abort` significa que un mensaje que necesitaba entrega inmediata interrumpió el turno mientras la solicitud de permiso o la comprobación del [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) estaba pendiente. Por ejemplo, durante una comprobación del modo automático, el usuario tenía un mensaje en cola y [lo envió de inmediato](/docs/es/interactive-mode#when-claude-code-sends-what-you-queued).

333 335 

334**`claude_code.tool.execution`**336**`claude_code.tool.execution`**

335 337 


820| - | - |822| - | - |

821| `prompt.id` | Identificador UUID v4 que vincula todos los eventos producidos mientras se procesa un único mensaje del usuario |823| `prompt.id` | Identificador UUID v4 que vincula todos los eventos producidos mientras se procesa un único mensaje del usuario |

822| `event.sequence` | Contador basado en 0 para ordenar eventos, contado por proceso de Claude Code en lugar de por sesión |824| `event.sequence` | Contador basado en 0 para ordenar eventos, contado por proceso de Claude Code en lugar de por sesión |

823| `message.uuid` | UUID del mensaje tal como se persiste en la transcripción de sesión, los archivos `~/.claude/projects/*/*.jsonl`. Presente en `assistant_response`, en `api_response_body`, y en `user_prompt` excepto para envíos de comandos, que pueden producir cero o muchos mensajes. En `assistant_response` y `api_response_body`, esta es la entrada de transcripción final de la respuesta, desde la cual el `parentUuid` del siguiente turno se encadena. Requiere Claude Code v2.1.214 o posterior, o v2.1.274 o posterior en `api_response_body` |825| `message.uuid` | UUID del mensaje tal como se guarda en la transcripción de la sesión, los archivos `~/.claude/projects/*/*.jsonl`. Presente en `assistant_response`, en `api_response_body` y en `user_prompt`, excepto en los despachos de comandos, que pueden producir cero o muchos mensajes. En `assistant_response` y `api_response_body`, es la entrada final de la transcripción de la respuesta, de la que se encadena el `parentUuid` del siguiente turno. Requiere Claude Code v2.1.274 o posterior en `api_response_body` |

824| `request_id` | ID asignado por el servidor de la solicitud de API, leído del encabezado de respuesta `request-id`, como `req_011...`. En una respuesta sin encabezado `request-id`, como en [Amazon Bedrock](/docs/es/amazon-bedrock), el valor proviene del encabezado `x-amzn-requestid` en su lugar. Presente en `api_request`, `api_error`, `api_refusal`, `assistant_response`, y `api_response_body` cuando la respuesta lleva cualquiera de los encabezados. Coincide con el mismo atributo en el tramo de rastreo `llm_request`. La fuente `x-amzn-requestid` requiere Claude Code v2.1.282 o posterior |826| `request_id` | ID asignado por el servidor de la solicitud de API, leído del encabezado de respuesta `request-id`, como `req_011...`. En una respuesta sin encabezado `request-id`, como en [Amazon Bedrock](/docs/es/amazon-bedrock), el valor proviene del encabezado `x-amzn-requestid` en su lugar. Presente en `api_request`, `api_error`, `api_refusal`, `assistant_response`, y `api_response_body` cuando la respuesta lleva cualquiera de los encabezados. Coincide con el mismo atributo en el tramo de rastreo `llm_request`. La fuente `x-amzn-requestid` requiere Claude Code v2.1.282 o posterior |

825| `client_request_id` | UUID generado por el cliente enviado como encabezado de solicitud `x-client-request-id`. Presente en `api_request` y `api_error` en conexiones de API de primera parte; ausente en backends de proveedores de terceros y cuando la solicitud se reintentó a través de la alternativa sin transmisión. Empareja una solicitud con su respuesta y permanece disponible para fallos como tiempos de espera que nunca produjeron un `request_id` de servidor. Coincide con el mismo atributo en el tramo de rastreo `llm_request`. Requiere Claude Code v2.1.214 o posterior |827| `client_request_id` | UUID generado por el cliente y enviado como el encabezado de solicitud `x-client-request-id`. Presente en `api_request` y `api_error` en conexiones de API de primera parte; ausente en backends de proveedores de terceros y cuando la solicitud se reintentó mediante el respaldo sin streaming. Empareja una solicitud con su respuesta y sigue disponible en fallos como los tiempos de espera agotados que nunca produjeron un `request_id` del servidor. Coincide con el mismo atributo en el span de traza `llm_request` |

826 828 

827Para rastrear toda la actividad desencadenada por un único mensaje, filtre sus eventos por un valor específico de `prompt.id`. Esto devuelve el evento user\_prompt, cualquier evento api\_request, y cualquier evento tool\_result que ocurrió mientras se procesaba ese mensaje.829Para rastrear toda la actividad desencadenada por un único mensaje, filtre sus eventos por un valor específico de `prompt.id`. Esto devuelve el evento user\_prompt, cualquier evento api\_request, y cualquier evento tool\_result que ocurrió mientras se procesaba ese mensaje.

828 830 


851* `prompt_length`: Longitud del mensaje853* `prompt_length`: Longitud del mensaje

852* `prompt`: Contenido del mensaje. Redactado de forma predeterminada. Establezca `OTEL_LOG_USER_PROMPTS=1` para incluirlo854* `prompt`: Contenido del mensaje. Redactado de forma predeterminada. Establezca `OTEL_LOG_USER_PROMPTS=1` para incluirlo

853* `prompt_text`: Mismo valor que `prompt`, oculto bajo la misma condición. Un backend que almacena nombres de atributos con puntos como objetos anidados lee `prompt.id` como `id` dentro de un objeto llamado `prompt` y puede perder la cadena del prompt. En ese caso, lee `prompt_text`. Requiere Claude Code v2.1.287 o posterior855* `prompt_text`: Mismo valor que `prompt`, oculto bajo la misma condición. Un backend que almacena nombres de atributos con puntos como objetos anidados lee `prompt.id` como `id` dentro de un objeto llamado `prompt` y puede perder la cadena del prompt. En ese caso, lee `prompt_text`. Requiere Claude Code v2.1.287 o posterior

854* `message.uuid`: UUID del mensaje del usuario resultante, que coincide con la entrada de transcripción persistida. Ausente en envíos de comandos, que pueden producir cero o muchos mensajes. Requiere Claude Code v2.1.214 o posterior856* `message.uuid`: UUID del mensaje de usuario resultante, que coincide con la entrada guardada en la transcripción. Ausente en los despachos de comandos, que pueden producir cero o muchos mensajes.

855* `command_name`: Nombre del comando cuando el mensaje invoca uno. Los nombres de comandos integrados y agrupados como `compact` o `debug` se emiten tal cual; los alias como `reset` se emiten tal como se escribieron en lugar del nombre canónico. Los nombres de comandos personalizados, de plugin y MCP se contraen a `custom` o `mcp` a menos que se establezca `OTEL_LOG_TOOL_DETAILS=1`857* `command_name`: Nombre del comando cuando el mensaje invoca uno. Los nombres de comandos integrados y agrupados como `compact` o `debug` se emiten tal cual; los alias como `reset` se emiten tal como se escribieron en lugar del nombre canónico. Los nombres de comandos personalizados, de plugin y MCP se contraen a `custom` o `mcp` a menos que se establezca `OTEL_LOG_TOOL_DETAILS=1`

856* `command_source`: Origen del comando cuando está presente: `builtin`, `custom`, o `mcp`. Los comandos proporcionados por plugins reportan como `custom`858* `command_source`: Origen del comando cuando está presente: `builtin`, `custom`, o `mcp`. Los comandos proporcionados por plugins reportan como `custom`

857 859 


873* `response`: Texto de respuesta, truncado en el límite de contenido (60 KB de forma predeterminada). Redactado a `<REDACTED>` de forma predeterminada. Establezca `OTEL_LOG_ASSISTANT_RESPONSES=1` para incluirlo. Cuando `OTEL_LOG_ASSISTANT_RESPONSES` no está establecido, `OTEL_LOG_USER_PROMPTS` lo controla en su lugar, por lo que establezca `OTEL_LOG_ASSISTANT_RESPONSES=0` para mantener las respuestas redactadas mientras el registro de mensajes está activado875* `response`: Texto de respuesta, truncado en el límite de contenido (60 KB de forma predeterminada). Redactado a `<REDACTED>` de forma predeterminada. Establezca `OTEL_LOG_ASSISTANT_RESPONSES=1` para incluirlo. Cuando `OTEL_LOG_ASSISTANT_RESPONSES` no está establecido, `OTEL_LOG_USER_PROMPTS` lo controla en su lugar, por lo que establezca `OTEL_LOG_ASSISTANT_RESPONSES=0` para mantener las respuestas redactadas mientras el registro de mensajes está activado

874* `model`: Identificador de modelo (por ejemplo, "claude-sonnet-5")876* `model`: Identificador de modelo (por ejemplo, "claude-sonnet-5")

875* `request_id`: ID de solicitud de API, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)877* `request_id`: ID de solicitud de API, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

876* `message.uuid`: UUID de la entrada de transcripción final de la respuesta. Una respuesta de API se persiste como una entrada de transcripción por bloque de contenido; esta es la última, desde la cual el `parentUuid` del siguiente turno se encadena. Requiere Claude Code v2.1.214 o posterior878* `message.uuid`: UUID de la entrada final de la transcripción de la respuesta. Una respuesta de la API se guarda como una entrada de transcripción por bloque de contenido; esta es la última, de la que se encadena el `parentUuid` del siguiente turno.

877* `query_source`: Subsistema que emitió la solicitud, como `"repl_main_thread"`, `"compact"`, o un nombre de subagente879* `query_source`: Subsistema que emitió la solicitud, como `"repl_main_thread"`, `"compact"`, o un nombre de subagente

878 880 

879<h4 id="tool-result-event">881<h4 id="tool-result-event">


902* `tool_result_size_bytes`: Tamaño del resultado de la herramienta en bytes904* `tool_result_size_bytes`: Tamaño del resultado de la herramienta en bytes

903* `mcp_server_scope`: Identificador de alcance del servidor MCP (para herramientas MCP)905* `mcp_server_scope`: Identificador de alcance del servidor MCP (para herramientas MCP)

904* `vcs.ref.head.revision`, `vcs.ref.head.name`, `vcs.ref.head.type` (cuando `OTEL_LOG_TOOL_DETAILS=1`): la identidad de confirmación de una ejecución exitosa de `git commit` ejecutada por la herramienta Bash o PowerShell. `vcs.ref.head.revision` es el SHA de confirmación, `vcs.ref.head.name` es la rama en la que se confirmó, y `vcs.ref.head.type` es `branch`. El nombre y tipo se omiten cuando la confirmación se realizó en un HEAD desconectado. Requiere Claude Code v2.1.269 o posterior906* `vcs.ref.head.revision`, `vcs.ref.head.name`, `vcs.ref.head.type` (cuando `OTEL_LOG_TOOL_DETAILS=1`): la identidad de confirmación de una ejecución exitosa de `git commit` ejecutada por la herramienta Bash o PowerShell. `vcs.ref.head.revision` es el SHA de confirmación, `vcs.ref.head.name` es la rama en la que se confirmó, y `vcs.ref.head.type` es `branch`. El nombre y tipo se omiten cuando la confirmación se realizó en un HEAD desconectado. Requiere Claude Code v2.1.269 o posterior

905* `tool_parameters` (cuando `OTEL_LOG_TOOL_DETAILS=1`): Cadena JSON que contiene parámetros específicos de la herramienta. Para los servidores integrados de Claude Desktop, en sesiones que Claude Desktop posee, el par `mcp_server_name`/`mcp_tool_name` se incluye incluso con la bandera desactivada, la misma excepción creada por el host que el [evento de decisión de herramienta](#tool-decision-event), requiriendo Claude Code v2.1.214 o posterior. Los parámetros varían según la herramienta:907* `tool_parameters` (cuando `OTEL_LOG_TOOL_DETAILS=1`): Cadena JSON que contiene parámetros específicos de la herramienta. Para los servidores integrados de Claude Desktop, en sesiones que pertenecen a Claude Desktop, el par `mcp_server_name`/`mcp_tool_name` se incluye incluso con el flag desactivado, la misma excepción definida por el host que en el [evento de decisión de herramienta](#tool-decision-event). Los parámetros varían según la herramienta:

906 * Para herramienta Bash: incluye `bash_command`, `full_command`, `timeout`, `description`, y `dangerouslyDisableSandbox`, más `git_commit_id` y `git_branch` cuando un comando `git commit` tiene éxito. `git_commit_id` es el SHA de confirmación completo cuando la confirmación es el HEAD del directorio de trabajo de la sesión, y el SHA abreviado de git de lo contrario. `git_branch` es la rama en la que se confirmó, omitida en un HEAD desconectado908 * Para la herramienta Bash: incluye `bash_command`, `full_command`, `timeout`, `description` y `dangerouslyDisableSandbox`, además de `git_commit_id` y `git_branch` cuando un comando `git commit` tiene éxito. `git_commit_id` es el SHA completo del commit cuando el commit es el HEAD del directorio de trabajo de la sesión, y el SHA abreviado de git en caso contrario. `git_branch` es la rama en la que se hizo el commit, omitida en un HEAD desacoplado

907 * Para la herramienta Bash del espacio de trabajo de la aplicación de escritorio, que también reporta `tool_name` como `Bash`: incluye solo `bash_command`, `full_command`, y `timeout`909 * Para la herramienta Bash del espacio de trabajo de la aplicación de escritorio, que también informa `tool_name` como `Bash`: incluye solo `bash_command`, `full_command` y `timeout`

908 * Para herramientas MCP: incluye `mcp_server_name`, `mcp_tool_name`910 * Para herramientas MCP: incluye `mcp_server_name`, `mcp_tool_name`

909 * Para herramienta Skill: incluye `skill_name`911 * Para la herramienta Skill: incluye `skill_name`

910 * Para herramienta Agent o herramienta Task heredada: incluye `subagent_type`912 * Para la herramienta Agent o la herramienta Task heredada: incluye `subagent_type`

911* `tool_input` (cuando `OTEL_LOG_TOOL_DETAILS=1`): Argumentos de herramienta serializados en JSON. Los valores individuales superiores a 512 caracteres se truncan, y la carga útil completa se limita a aproximadamente 4 K caracteres. Se aplica a todas las herramientas, incluidas las herramientas MCP.913* `tool_input` (cuando `OTEL_LOG_TOOL_DETAILS=1`): Argumentos de herramienta serializados en JSON. Los valores individuales superiores a 512 caracteres se truncan, y la carga útil completa se limita a aproximadamente 4 K caracteres. Se aplica a todas las herramientas, incluidas las herramientas MCP.

912 914 

913<h4 id="api-request-event">915<h4 id="api-request-event">


933* `cache_read_tokens`: Número de tokens leídos de la caché935* `cache_read_tokens`: Número de tokens leídos de la caché

934* `cache_creation_tokens`: Número de tokens utilizados para la creación de caché936* `cache_creation_tokens`: Número de tokens utilizados para la creación de caché

935* `request_id`: ID de solicitud de API, como `"req_011..."`, descrito en [Atributos de correlación de eventos](#event-correlation-attributes).937* `request_id`: ID de solicitud de API, como `"req_011..."`, descrito en [Atributos de correlación de eventos](#event-correlation-attributes).

936* `client_request_id`: UUID generado por el cliente enviado como encabezado de solicitud `x-client-request-id`; consulte la tabla [atributos de correlación de eventos](#event-correlation-attributes) para saber cuándo está presente. Requiere Claude Code v2.1.214 o posterior938* `client_request_id`: UUID generado por el cliente y enviado como el encabezado de solicitud `x-client-request-id`; consulta la tabla de [atributos de correlación de eventos](#event-correlation-attributes) para saber cuándo está presente

937* `speed`: `"fast"` o `"normal"`, indicando si el modo rápido estaba activo939* `speed`: `"fast"` o `"normal"`, indicando si el modo rápido estaba activo

938* `query_source`: Subsistema que emitió la solicitud, como `"repl_main_thread"`, `"compact"`, o un nombre de subagente940* `query_source`: Subsistema que emitió la solicitud, como `"repl_main_thread"`, `"compact"`, o un nombre de subagente

939* `effort`: [Nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) aplicado a la solicitud: `"low"`, `"medium"`, `"high"`, `"xhigh"`, o `"max"`. Ausente cuando Claude Code no envía nivel de esfuerzo, por ejemplo en un modelo que no admite esfuerzo.941* `effort`: [Nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) aplicado a la solicitud: `"low"`, `"medium"`, `"high"`, `"xhigh"`, o `"max"`. Ausente cuando Claude Code no envía nivel de esfuerzo, por ejemplo en un modelo que no admite esfuerzo.


959* `duration_ms`: Duración de la solicitud en milisegundos961* `duration_ms`: Duración de la solicitud en milisegundos

960* `attempt`: Número de intentos realizados, incluida la solicitud inicial. [Detectar el agotamiento de reintentos](#detect-retry-exhaustion) indica cuándo vuelve a empezar el conteo962* `attempt`: Número de intentos realizados, incluida la solicitud inicial. [Detectar el agotamiento de reintentos](#detect-retry-exhaustion) indica cuándo vuelve a empezar el conteo

961* `request_id`: ID de solicitud de API, como `"req_011..."`, descrito en [Atributos de correlación de eventos](#event-correlation-attributes).963* `request_id`: ID de solicitud de API, como `"req_011..."`, descrito en [Atributos de correlación de eventos](#event-correlation-attributes).

962* `client_request_id`: UUID generado por el cliente enviado como encabezado de solicitud `x-client-request-id`. Disponible incluso cuando un fallo como un tiempo de espera o error de conexión nunca produjo un `request_id` de servidor; consulte la tabla [atributos de correlación de eventos](#event-correlation-attributes) para saber cuándo está presente. Requiere Claude Code v2.1.214 o posterior964* `client_request_id`: UUID generado por el cliente y enviado como el encabezado de solicitud `x-client-request-id`. Disponible incluso cuando un fallo, como un tiempo de espera agotado o un error de conexión, nunca produjo un `request_id` del servidor; consulta la tabla de [atributos de correlación de eventos](#event-correlation-attributes) para saber cuándo está presente.

963* `speed`: `"fast"` o `"normal"`, indicando si el modo rápido estaba activo965* `speed`: `"fast"` o `"normal"`, indicando si el modo rápido estaba activo

964* `query_source`: Subsistema que emitió la solicitud, como `"repl_main_thread"`, `"compact"`, o un nombre de subagente966* `query_source`: Subsistema que emitió la solicitud, como `"repl_main_thread"`, `"compact"`, o un nombre de subagente

965* `effort`: [Nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) aplicado a la solicitud. Ausente cuando Claude Code no envía nivel de esfuerzo, por ejemplo en un modelo que no admite esfuerzo.967* `effort`: [Nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) aplicado a la solicitud. Ausente cuando Claude Code no envía nivel de esfuerzo, por ejemplo en un modelo que no admite esfuerzo.


1057* `tool_name`: Nombre de la herramienta (por ejemplo, "Read", "Edit", "Write", "NotebookEdit")1059* `tool_name`: Nombre de la herramienta (por ejemplo, "Read", "Edit", "Write", "NotebookEdit")

1058* `tool_use_id`: Identificador único para esta invocación de herramienta. Coincide con el `tool_use_id` pasado a hooks, permitiendo correlación entre eventos OTel y datos capturados por hooks.1060* `tool_use_id`: Identificador único para esta invocación de herramienta. Coincide con el `tool_use_id` pasado a hooks, permitiendo correlación entre eventos OTel y datos capturados por hooks.

1059* `decision`: Ya sea `"accept"` o `"reject"`1061* `decision`: Ya sea `"accept"` o `"reject"`

1060* `tool_source`: Siempre presente. La procedencia de la herramienta, como un conjunto cerrado de valores creados por CLI. Requiere Claude Code v2.1.214 o posterior1062* `tool_source`: Siempre presente. La procedencia de la herramienta, como un conjunto cerrado de valores definidos por la CLI:

1061 * `"builtin"`: las propias herramientas de la CLI1063 * `"builtin"`: las herramientas propias de la CLI

1062 * `"mcp"`: servidores MCP en general1064 * `"mcp"`: servidores MCP en general

1063 * `"sdk_host_builtin_mcp"`: un servidor en proceso integrado en Claude Desktop mismo, en una sesión que Claude Desktop posee. Claude Desktop posee una sesión que inició desde uno de sus propios puntos de entrada, `claude-desktop`, `claude-desktop-3p`, o `local-agent`, cuando esa sesión no es un hijo anidado; las sesiones anidadas, incluidas las sesiones que Claude Code mismo genera, reportan estos servidores como `"mcp"`1065 * `"sdk_host_builtin_mcp"`: un servidor en proceso integrado en el propio Claude Desktop, en una sesión que pertenece a Claude Desktop. Una sesión pertenece a Claude Desktop cuando este la inició desde uno de sus propios puntos de entrada, `claude-desktop`, `claude-desktop-3p` o `local-agent`, y esa sesión no es una hija anidada; las sesiones anidadas, incluidas las que genera el propio Claude Code, informan estos servidores como `"mcp"`

1064* `source`: De dónde vino la decisión:1066* `source`: De dónde provino la decisión:

1065 * `"config"`: Decidido automáticamente sin preguntar, basado en la configuración del proyecto, reglas de permitir o denegar en la configuración personal del usuario, política gestionada por la empresa, banderas `--allowedTools` o `--disallowedTools`, el modo de permiso activo, una concesión con alcance de sesión de un mensaje anterior en la misma sesión de CLI interactiva, o porque la herramienta es inherentemente segura. El evento no indica cuál de estas fuentes coincidió. Claude Code también reporta `"config"` cuando la solicitud de mensaje de permiso en sí falla, por ejemplo cuando la devolución de llamada [`canUseTool`](/docs/es/agent-sdk/typescript#canusetool) del SDK del Agente o la herramienta [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags) devuelve un resultado inválido, o cuando el flujo de entrada se cierra mientras la solicitud está pendiente. Antes de v2.1.216, Claude Code reportaba estos fallos como `"user_reject"`.1067 * `"config"`: Se decidió automáticamente sin preguntar, por uno de estos orígenes:

1068 

1069 * Configuración del proyecto

1070 * Reglas de permitir o denegar en la configuración personal del usuario

1071 * Política administrada empresarial

1072 * Flags `--allowedTools` o `--disallowedTools`

1073 * El modo de permisos activo

1074 * El clasificador del modo automático, cuyo veredicto el mismo evento registra en `classifier_verdict`

1075 * Una concesión para el resto de la sesión, otorgada en una solicitud de permiso anterior en la misma sesión interactiva de la CLI

1076 * Que la herramienta sea inherentemente segura

1077 

1078 El valor de `source` no indica cuál de estos orígenes coincidió.

1079 

1080 Claude Code también informa `"config"` cuando falla la propia solicitud de permiso. Por ejemplo, esa solicitud falla cuando el callback [`canUseTool`](/docs/es/agent-sdk/typescript#canusetool) del Agent SDK o la herramienta [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags) devuelve un resultado no válido, o cuando el flujo de entrada se cierra mientras la solicitud está pendiente. Antes de v2.1.216, Claude Code informaba estas fallas como `"user_reject"`.

1066 * `"hook"`: Un hook `PreToolUse` o `PermissionRequest` devolvió la decisión.1081 * `"hook"`: Un hook `PreToolUse` o `PermissionRequest` devolvió la decisión.

1067 * `"user_permanent"`: Se emite cuando el usuario eligió "Sí, y no preguntar de nuevo para ..." en un mensaje de permiso, que guarda una regla de permitir en su configuración personal. En la CLI interactiva esto se emite solo para esa opción en sí; las llamadas posteriores que coinciden con la regla guardada emiten `"config"` en su lugar. En sesiones del SDK del Agente o no interactivas `-p`, tanto la opción inicial como las coincidencias de reglas posteriores emiten `"user_permanent"`. Se trata como una aceptación.1082 * `"user_permanent"`: Se emite cuando el usuario eligió "Yes, and don't ask again for ..." en una solicitud de permiso, lo que guarda una regla de permitir en su configuración personal. En la CLI interactiva solo se emite para esa elección; las llamadas posteriores que coinciden con la regla guardada emiten `"config"` en su lugar. En sesiones del Agent SDK o no interactivas con `-p`, tanto la elección inicial como las coincidencias posteriores con la regla emiten `"user_permanent"`. Se trata como una aceptación.

1068 * `"user_temporary"`: Se emite cuando el usuario eligió "Sí" en un mensaje de permiso para una aprobación única, u optó por una opción que otorga acceso para el resto de la sesión en un mensaje de edición o lectura de archivo. En la CLI interactiva esto se emite solo para la opción en sí; las llamadas posteriores permitidas por esa concesión con alcance de sesión emiten `"config"` en su lugar. En sesiones del SDK del Agente o no interactivas `-p`, tanto la opción como las coincidencias posteriores emiten `"user_temporary"`. Se trata como una aceptación.1083 * `"user_temporary"`: Se emite cuando el usuario eligió "Yes" en una solicitud de permiso para una aprobación única, o eligió una opción que otorga acceso durante el resto de la sesión en una solicitud de edición o lectura de archivos. En la CLI interactiva solo se emite para la elección en sí; las llamadas posteriores permitidas por esa concesión limitada a la sesión emiten `"config"` en su lugar. En sesiones del Agent SDK o no interactivas con `-p`, tanto la elección como las coincidencias posteriores emiten `"user_temporary"`. Se trata como una aceptación.

1069 * `"user_abort"`: Se emite cuando el usuario desestimó el mensaje de permiso sin responder. En sesiones del SDK del Agente y no interactivas `-p`, esto incluye interrumpir el turno mientras una solicitud de permiso `canUseTool` o `--permission-prompt-tool` está pendiente; antes de v2.1.216, Claude Code reportaba esa interrupción como `"user_reject"`. Se trata como un rechazo.1084 * `"user_abort"`: Se emite cuando el usuario descartó la solicitud de permiso sin responder. En sesiones del Agent SDK y no interactivas con `-p`, esto incluye interrumpir el turno mientras hay una solicitud de permiso de `canUseTool` o `--permission-prompt-tool` pendiente; antes de v2.1.216, Claude Code informaba esa interrupción como `"user_reject"`. Se trata como un rechazo.

1070 * `"user_reject"`: Se emite cuando el usuario eligió "No" cuando se le preguntó. En la CLI interactiva esto se emite solo para esa opción en sí; las llamadas que coinciden con una regla de denegar en la configuración personal del usuario emiten `"config"` en su lugar. En sesiones del SDK del Agente o no interactivas `-p`, las llamadas que coinciden con una regla de denegar en la configuración personal emiten `"user_reject"`. Se trata como un rechazo.1085 * `"user_reject"`: Se emite cuando el usuario eligió "No" al pedírsele. En la CLI interactiva solo se emite para esa elección; las llamadas que coinciden con una regla de denegar en la configuración personal del usuario emiten `"config"` en su lugar. En sesiones del Agent SDK o no interactivas con `-p`, las llamadas que coinciden con una regla de denegar en la configuración personal emiten `"user_reject"`. Se trata como un rechazo.

1071* `tool_parameters` (cuando `OTEL_LOG_TOOL_DETAILS=1`): Cadena JSON que contiene parámetros específicos de la herramienta. Misma forma que el [evento de resultado de herramienta](#tool-result-event), menos campos posteriores a la ejecución como `git_commit_id`. Los valores pueden diferir de `tool_result` para una llamada aceptada si la decisión de permiso reescribe la entrada de herramienta a través de `updatedInput`. Use este atributo para ver qué comando fue rechazado cuando `decision` es `"reject"`.1086* `classifier_verdict`: El veredicto del [clasificador](/docs/es/permission-modes#how-the-classifier-evaluates-actions) del modo automático para la llamada, o el motivo por el que Claude Code denegó la llamada cuando no llegó ninguno. Requiere Claude Code v2.1.301 o posterior

1072 * Para herramientas `"sdk_host_builtin_mcp"`: `mcp_server_name` y `mcp_tool_name` se incluyen incluso cuando `OTEL_LOG_TOOL_DETAILS` está desactivado, porque la aplicación host define estos nombres; sin ellos, una llamada rechazada a uno de estos servidores integrados sería no atribuible en la transmisión predeterminada. Para servidores MCP configurados por el usuario, el `tool_name` del evento es siempre el literal `"mcp_tool"`, y los nombres del servidor y herramienta aparecen solo en `tool_parameters` con la bandera activada; el contenido del argumento requiere la bandera en todas partes. Requiere Claude Code v2.1.214 o posterior1087 

1073 * Para herramienta Bash: incluye `bash_command`, `full_command`, `timeout`, `description`, `dangerouslyDisableSandbox`. La herramienta bash del espacio de trabajo de la aplicación de escritorio también reporta `tool_name` como `Bash`, pero incluye solo `bash_command`, `full_command`, y `timeout`1088 * `"allow"`: el clasificador aprobó la llamada

1089 * `"block"`: el clasificador bloqueó la llamada. Una verificación del clasificador que falla a mitad de camino también puede terminar como `"block"`, por lo que una interrupción parcial del clasificador puede aparecer como más bloqueos en lugar de como `"unavailable"`

1090 * `"no_verdict"`: la verificación se ejecutó pero no dio [ningún veredicto utilizable](/docs/es/errors#auto-mode-cannot-determine-the-safety-of-an-action), por lo que Claude Code denegó la llamada. La denegación no significa que el clasificador haya considerado insegura la llamada

1091 * `"unavailable"`: la solicitud al clasificador falló, por ejemplo por un rate limit, un tiempo de espera agotado o un error de conexión, por lo que Claude Code denegó la llamada. Con la [revisión del clasificador del lado del servidor](/docs/es/permission-modes#server-side-classifier-review), también marca una llamada denegada porque [el servidor no devolvió ningún veredicto de seguridad](/docs/es/errors#the-server-returned-no-safety-verdict)

1092 

1093 El atributo también aparece en las llamadas en modo plan cuando [el clasificador revisa los comandos en modo plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode). El atributo está ausente en estos casos:

1094 

1095 * Una [regla de permisos](/docs/es/permissions#manage-permissions) de permitir o denegar decidió la llamada

1096 * Claude Code aprobó la llamada en modo automático sin consultar al clasificador

1097 * El usuario respondió la solicitud que Claude Code mostró después de [bloqueos repetidos](/docs/es/permission-modes#repeated-block-thresholds)

1098 * En una ejecución con `-p` sin `--permission-prompt-tool`, Claude Code denegó la llamada después de bloqueos repetidos porque no había nadie para responder una solicitud. Ese evento informa `decision` como `"reject"` y `source` como `"config"`

1099* `classifier_category` (cuando `OTEL_LOG_TOOL_DETAILS=1`): El nombre de la [regla integrada](/docs/es/auto-mode-config#inspect-the-defaults-and-your-effective-config) que el clasificador señaló cuando bloqueó la llamada, en minúsculas y con guiones bajos, como `"data_exfiltration"` para la regla Data Exfiltration. Requiere Claude Code v2.1.301 o posterior. El atributo está presente cuando se cumplen todas estas condiciones:

1100 * `classifier_verdict` es `"block"`

1101 * Claude Code envió la solicitud al clasificador por sí mismo, en lugar de usar la [revisión del clasificador del lado del servidor](/docs/es/permission-modes#server-side-classifier-review)

1102 * El clasificador señaló exactamente una regla, y esa regla es integrada y no una que escribiste tú

1103* `permission_mode`: [Modo de permisos](/docs/es/permission-modes) activo cuando comenzó la verificación de permisos de esta llamada: `"default"`, `"plan"`, `"acceptEdits"`, `"bypassPermissions"`, `"dontAsk"` o `"auto"`. El modo manual aparece como `"default"`. Una llamada de un [subagente](/docs/es/sub-agents#permission-modes) informa el modo de permisos del subagente y no el de la sesión. Requiere Claude Code v2.1.301 o posterior

1104* `tool_parameters` (cuando `OTEL_LOG_TOOL_DETAILS=1`): Cadena JSON que contiene parámetros específicos de la herramienta. Misma forma que en el [evento de resultado de herramienta](#tool-result-event), sin los campos posteriores a la ejecución como `git_commit_id`. Los valores pueden diferir de `tool_result` en una llamada aceptada si la decisión de permisos reescribe la entrada de la herramienta mediante `updatedInput`. Usa este atributo para ver qué comando se rechazó cuando `decision` es `"reject"`.

1105 * Para herramientas `"sdk_host_builtin_mcp"`: `mcp_server_name` y `mcp_tool_name` se incluyen incluso cuando `OTEL_LOG_TOOL_DETAILS` está desactivada, porque la aplicación host define estos nombres; sin ellos, una llamada rechazada a uno de estos servidores integrados no podría atribuirse en el stream predeterminado. Para servidores MCP configurados por el usuario, el `tool_name` del evento es siempre el literal `"mcp_tool"`, y los nombres del servidor y de la herramienta aparecen solo en `tool_parameters` con el flag activado; el contenido de los argumentos requiere el flag en todos los casos.

1106 * Para la herramienta Bash: incluye `bash_command`, `full_command`, `timeout`, `description`, `dangerouslyDisableSandbox`. La herramienta bash del espacio de trabajo de la aplicación de escritorio también informa `tool_name` como `Bash`, pero incluye solo `bash_command`, `full_command` y `timeout`

1074 * Para herramientas MCP: incluye `mcp_server_name`, `mcp_tool_name`1107 * Para herramientas MCP: incluye `mcp_server_name`, `mcp_tool_name`

1075 * Para herramienta Skill: incluye `skill_name`1108 * Para la herramienta Skill: incluye `skill_name`

1076 * Para herramienta Agent o herramienta Task heredada: incluye `subagent_type`1109 * Para la herramienta Agent o la herramienta Task heredada: incluye `subagent_type`

1077 1110 

1078<h4 id="permission-mode-changed-event">1111<h4 id="permission-mode-changed-event">

1079 Evento de cambio de modo de permiso1112 Evento de cambio de modo de permiso


1081 1114 

1082Se registra cuando cambia el modo de permisos, por ejemplo al alternar con `Shift+Tab`, al salir del modo plan o por una comprobación de control del modo automático.1115Se registra cuando cambia el modo de permisos, por ejemplo al alternar con `Shift+Tab`, al salir del modo plan o por una comprobación de control del modo automático.

1083 1116 

1117Para agrupar las llamadas a herramientas según el modo de permisos en el que se verificó cada una, usa `permission_mode` en el [Evento de decisión de herramienta](#tool-decision-event).

1118 

1084**Nombre del evento**: `claude_code.permission_mode_changed`1119**Nombre del evento**: `claude_code.permission_mode_changed`

1085 1120 

1086**Atributos**:1121**Atributos**:


1091* `event.sequence`: Contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)1126* `event.sequence`: Contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

1092* `from_mode`: El modo de permiso anterior, por ejemplo `"default"`, `"plan"`, `"acceptEdits"`, `"auto"`, o `"bypassPermissions"`1127* `from_mode`: El modo de permiso anterior, por ejemplo `"default"`, `"plan"`, `"acceptEdits"`, `"auto"`, o `"bypassPermissions"`

1093* `to_mode`: El nuevo modo de permiso1128* `to_mode`: El nuevo modo de permiso

1094* `trigger`: Qué causó el cambio. Uno de `"shift_tab"`, `"exit_plan_mode"`, `"auto_gate_denied"` o `"auto_opt_in"`. Ausente en algunos cambios, como cuando el SDK establece el modo de permisos mediante [`setPermissionMode()`](/docs/es/agent-sdk/typescript#query-object)1129* `trigger`: Qué causó el cambio, por ejemplo `"shift_tab"`, `"exit_plan_mode"` o `"auto_gate_denied"`. Ausente en algunos cambios, como cuando el SDK establece el modo de permisos mediante [`setPermissionMode()`](/docs/es/agent-sdk/typescript#query-object)

1095 1130 

1096<h4 id="auth-event">1131<h4 id="auth-event">

1097 Evento de autenticación1132 Evento de autenticación


1402* `total_tool_uses`: Número de llamadas de herramientas que realizó el subagente en toda la ejecución1437* `total_tool_uses`: Número de llamadas de herramientas que realizó el subagente en toda la ejecución

1403* `duration_ms`: Tiempo de ejecución en milisegundos1438* `duration_ms`: Tiempo de ejecución en milisegundos

1404* `model`: El modelo en el que se resolvió el subagente para ejecutarse1439* `model`: El modelo en el que se resolvió el subagente para ejecutarse

1405* `final_model`: El modelo que produjo la respuesta final del subagente, que difiere de `model` después de un cambio a mitad de ejecución como una alternativa. Requiere Claude Code v2.1.212 o posterior1440* `final_model`: El modelo que produjo la respuesta final del subagente, que difiere de `model` después de un cambio a mitad de la ejecución, como un respaldo

1406* `model_swapped`: Si más de un modelo sirvió las solicitudes del subagente. Requiere Claude Code v2.1.212 o posterior1441* `model_swapped`: Si más de un modelo atendió las solicitudes del subagente

1407* `plugin_id_hash`, `plugin.name`: Presente para agentes proporcionados por plugins. Los nombres de plugins del mercado oficial aparecen literalmente; otros nombres de plugins se reemplazan con `"third-party"` a menos que `OTEL_LOG_TOOL_DETAILS=1` esté establecido1442* `plugin_id_hash`, `plugin.name`: Presente para agentes proporcionados por plugins. Los nombres de plugins del mercado oficial aparecen literalmente; otros nombres de plugins se reemplazan con `"third-party"` a menos que `OTEL_LOG_TOOL_DETAILS=1` esté establecido

1408 1443 

1409<h4 id="feedback-survey-event">1444<h4 id="feedback-survey-event">


1548 Las métricas de costo son aproximaciones. Para datos de facturación oficiales, consulte su proveedor de API (Claude Console, Amazon Bedrock, o Google Cloud's Agent Platform).1583 Las métricas de costo son aproximaciones. Para datos de facturación oficiales, consulte su proveedor de API (Claude Console, Amazon Bedrock, o Google Cloud's Agent Platform).

1549</Note>1584</Note>

1550 1585 

1551Claude Code cuenta cada respuesta de transmisión hacia las métricas de costo y token exactamente una vez, incluyendo cuando una puerta de enlace o proxy detrás de `ANTHROPIC_BASE_URL` transmite el uso progresivamente a través de múltiples fotogramas. Antes de v2.1.214, las transmisiones que llevaban uso en más de un fotograma inflaban `claude_code.cost.usage` y `claude_code.token.usage` aproximadamente una solicitud completa adicional por fotograma adicional.1586Claude Code cuenta cada respuesta en streaming para las métricas de costo y token exactamente una vez, incluso cuando un gateway o proxy detrás de `ANTHROPIC_BASE_URL` envía el uso en streaming de forma progresiva a lo largo de múltiples frames.

1552 1587 

1553<h3 id="alerting-and-segmentation">1588<h3 id="alerting-and-segmentation">

1554 Alertas y segmentación1589 Alertas y segmentación


1570 1605 

1571Claude Code reintenta solicitudes de API fallidas internamente y emite un único evento `claude_code.api_error` solo después de rendirse, por lo que el evento en sí es la señal terminal para esa solicitud. Los intentos de reintento intermedios no se registran como eventos separados.1606Claude Code reintenta solicitudes de API fallidas internamente y emite un único evento `claude_code.api_error` solo después de rendirse, por lo que el evento en sí es la señal terminal para esa solicitud. Los intentos de reintento intermedios no se registran como eventos separados.

1572 1607 

1573El atributo `attempt` en el evento registra el número de intentos. `CLAUDE_CODE_MAX_RETRIES` tiene un valor predeterminado de 10 y está limitado a 15. A partir de v2.1.199, puedes establecer `CLAUDE_CODE_RETRY_WATCHDOG` para aumentar el valor predeterminado y eliminar el límite.1608El atributo `attempt` en el evento registra el número de intentos. `CLAUDE_CODE_MAX_RETRIES` tiene un valor predeterminado de 10 y está limitado a 15; con [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/es/env-vars) establecido, el valor predeterminado es mayor y no hay límite.

1574 1609 

1575Cuando la solicitud agota todos los reintentos en un error transitorio, `attempt` es como máximo uno más que ese límite efectivo: 11 por defecto.1610Cuando la solicitud agota todos los reintentos en un error transitorio, `attempt` es como máximo uno más que ese límite efectivo: 11 por defecto.

1576 1611 


1646 1681 

1647Sin `OTEL_LOG_TOOL_DETAILS`, estos eventos descartan el detalle de identificación:1682Sin `OTEL_LOG_TOOL_DETAILS`, estos eventos descartan el detalle de identificación:

1648 1683 

1649* `tool_result`: mantiene `mcp_server_scope` y un `tool_name` redactado al literal `"mcp_tool"` para servidores configurados por el usuario, omite contenido de argumentos. Para los servidores integrados de Claude Desktop, en sesiones que Claude Desktop posee, también mantiene el par `mcp_server_name`/`mcp_tool_name` dentro de `tool_parameters`, la misma excepción autorizada por el host que `tool_decision`, requiere Claude Code v2.1.214 o posterior1684* `tool_result`: mantiene `mcp_server_scope` y un `tool_name` redactado al literal `"mcp_tool"` para servidores configurados por el usuario, omite el contenido de los argumentos. Para los servidores integrados de Claude Desktop, en sesiones que Claude Desktop posee, también mantiene el par `mcp_server_name`/`mcp_tool_name` dentro de `tool_parameters`, la misma excepción autorizada por el host que `tool_decision`

1650* `tool_decision`: mantiene `tool_source` y un `tool_name` redactado al literal `"mcp_tool"` para servidores configurados por el usuario, omite contenido de argumentos. Para los servidores integrados de Claude Desktop, en sesiones que Claude Desktop posee, también mantiene el par `mcp_server_name`/`mcp_tool_name` dentro de `tool_parameters`; `tool_source` y el par de nombres requieren Claude Code v2.1.214 o posterior1685* `tool_decision`: mantiene `tool_source` y un `tool_name` redactado al literal `"mcp_tool"` para servidores configurados por el usuario, omite el contenido de los argumentos. Para los servidores integrados de Claude Desktop, en sesiones que Claude Desktop posee, también mantiene el par `mcp_server_name`/`mcp_tool_name` dentro de `tool_parameters`

1651* `mcp_server_connection`: omite `server_name` y el mensaje de error, pero mantiene `is_plugin`, `plugin_id_hash`, y `plugin.name`, con nombres de plugins que no son de Anthropic redactados al literal `"third-party"`, por lo que los servidores proporcionados por plugins siguen siendo distinguibles sin registro detallado1686* `mcp_server_connection`: omite `server_name` y el mensaje de error, pero mantiene `is_plugin`, `plugin_id_hash`, y `plugin.name`, con nombres de plugins que no son de Anthropic redactados al literal `"third-party"`, por lo que los servidores proporcionados por plugins siguen siendo distinguibles sin registro detallado

1652 1687 

1653<h3 id="map-security-questions-to-events">1688<h3 id="map-security-questions-to-events">


1658 1693 

1659| Señal | Evento | Atributos Clave |1694| Señal | Evento | Atributos Clave |

1660| - | - | - |1695| - | - | - |

1661| Llamada de herramienta permitida o denegada, y por qué | `tool_decision` | `decision`, `source`, `tool_name`, `tool_parameters` |1696| Llamada a herramienta permitida o denegada, y de dónde provino la decisión, como una regla, un hook o el usuario | [`tool_decision`](#tool-decision-event) | `decision`, `source`, `classifier_verdict`, `permission_mode`, `tool_name`; `tool_parameters` cuando estableces `OTEL_LOG_TOOL_DETAILS=1` |

1697| El clasificador del modo automático permitió o bloqueó una llamada a herramienta, o Claude Code denegó la llamada sin un veredicto del clasificador | [`tool_decision`](#tool-decision-event) donde `classifier_verdict` está presente. Para una denegación sin veredicto, `classifier_verdict` es `"no_verdict"` o `"unavailable"` | `classifier_verdict`, `permission_mode`, `tool_name`; `classifier_category` cuando estableces `OTEL_LOG_TOOL_DETAILS=1` |

1662| Escalada de modo de permiso | `permission_mode_changed` | `from_mode`, `to_mode`, `trigger` |1698| Escalada de modo de permiso | `permission_mode_changed` | `from_mode`, `to_mode`, `trigger` |

1699| En qué modo de permisos se verificó cada llamada a herramienta, incluidas las llamadas que hacen los subagentes | [`tool_decision`](#tool-decision-event) | `permission_mode`, `session.id` |

1663| Hook de política bloqueó una acción | `hook_execution_complete` | `hook_event`, `num_blocking` |1700| Hook de política bloqueó una acción | `hook_execution_complete` | `hook_event`, `num_blocking` |

1664| Inicio de sesión, cierre de sesión y fallo de autenticación | `auth` | `action`, `success`, `error_category` |1701| Inicio de sesión, cierre de sesión y fallo de autenticación | `auth` | `action`, `success`, `error_category` |

1665| Conexión del servidor MCP o fallo | `mcp_server_connection` | `status`, `server_name`, `is_plugin`, `error_code` |1702| Conexión del servidor MCP o fallo | `mcp_server_connection` | `status`, `server_name`, `is_plugin`, `error_code` |


1824 1861 

1825 * Bajo el rastreo beta detallado, los spans también llevan los nuevos mensajes del usuario, resultados de herramientas y recordatorios del sistema enviados con cada solicitud, el texto del prompt del sistema y la salida del modelo. [Atributos de contenido bajo el rastreo beta detallado](#new-context-gates) enumera cada atributo. El evento `claude_code.system_prompt` lleva el prompt del sistema completo1862 * Bajo el rastreo beta detallado, los spans también llevan los nuevos mensajes del usuario, resultados de herramientas y recordatorios del sistema enviados con cada solicitud, el texto del prompt del sistema y la salida del modelo. [Atributos de contenido bajo el rastreo beta detallado](#new-context-gates) enumera cada atributo. El evento `claude_code.system_prompt` lleva el prompt del sistema completo

1826* El texto de respuesta del asistente no se recopila por defecto. Solo se registra la longitud de la respuesta. Para incluir texto de respuesta, establece `OTEL_LOG_ASSISTANT_RESPONSES=1`. Como todos los datos de OpenTelemetry de Claude Code, el texto de respuesta se envía solo al endpoint de OTel que configures, nunca a Anthropic. Cuando esta variable no está establecida, `OTEL_LOG_USER_PROMPTS` se utiliza como respaldo, así que establece `OTEL_LOG_ASSISTANT_RESPONSES=0` si deseas contenido del prompt sin contenido de respuesta en los eventos. Bajo el rastreo beta detallado, el span `claude_code.llm_request` sigue llevando la salida del modelo en [`response.model_output`](#new-context-gates), que sigue a `OTEL_LOG_USER_PROMPTS` en lugar de a esta variable1863* El texto de respuesta del asistente no se recopila por defecto. Solo se registra la longitud de la respuesta. Para incluir texto de respuesta, establece `OTEL_LOG_ASSISTANT_RESPONSES=1`. Como todos los datos de OpenTelemetry de Claude Code, el texto de respuesta se envía solo al endpoint de OTel que configures, nunca a Anthropic. Cuando esta variable no está establecida, `OTEL_LOG_USER_PROMPTS` se utiliza como respaldo, así que establece `OTEL_LOG_ASSISTANT_RESPONSES=0` si deseas contenido del prompt sin contenido de respuesta en los eventos. Bajo el rastreo beta detallado, el span `claude_code.llm_request` sigue llevando la salida del modelo en [`response.model_output`](#new-context-gates), que sigue a `OTEL_LOG_USER_PROMPTS` en lugar de a esta variable

1827* Los argumentos de entrada de herramientas y parámetros no se registran por defecto. Para incluirlos, establece `OTEL_LOG_TOOL_DETAILS=1`. Para los servidores integrados de Claude Desktop, en sesiones que Claude Desktop posee, `tool_decision` y `tool_result` llevan el par `mcp_server_name`/`mcp_tool_name`, nombres creados por el host en lugar de contenido de argumentos, incluso con el flag desactivado. La excepción requiere Claude Code v2.1.214 o posterior. Estos datos se envían solo al endpoint de OTEL que configures, nunca a Anthropic. Los argumentos aún pueden contener valores sensibles, así que configura tu backend de telemetría para filtrar o redactar estos atributos según sea necesario. Cuando está habilitado:1864* Los argumentos de entrada de herramientas y parámetros no se registran por defecto. Para incluirlos, establece `OTEL_LOG_TOOL_DETAILS=1`. Para los servidores integrados de Claude Desktop, en sesiones que Claude Desktop posee, `tool_decision` y `tool_result` llevan el par `mcp_server_name`/`mcp_tool_name`, nombres creados por el host en lugar de contenido de argumentos, incluso con el flag desactivado. Estos datos se envían solo al endpoint de OTEL que configures, nunca a Anthropic. Los argumentos aún pueden contener valores sensibles, así que configura tu backend de telemetría para filtrar o redactar estos atributos según sea necesario. Cuando está habilitado:

1828 * Los eventos `tool_result` y `tool_decision` incluyen un atributo `tool_parameters` con comandos Bash, nombres de servidor MCP y herramienta, y nombres de skills. Los campos como `full_command` se emiten sin truncar1865 * Los eventos `tool_result` y `tool_decision` incluyen un atributo `tool_parameters` con comandos Bash, nombres de servidor MCP y herramienta, y nombres de skills. Los campos como `full_command` se emiten sin truncar

1829 * Los eventos `tool_result` además incluyen un atributo `tool_input` con rutas de archivo, URLs, patrones de búsqueda y otros argumentos. Los valores individuales superiores a 512 caracteres se truncan y el total está limitado a aproximadamente 4 K caracteres1866 * Los eventos `tool_result` además incluyen un atributo `tool_input` con rutas de archivo, URLs, patrones de búsqueda y otros argumentos. Los valores individuales superiores a 512 caracteres se truncan y el total está limitado a aproximadamente 4 K caracteres

1830 * Los eventos `user_prompt` incluyen el `command_name` verbatim para comandos personalizados, de plugin y MCP1867 * Los eventos `user_prompt` incluyen el `command_name` verbatim para comandos personalizados, de plugin y MCP

Details

223* `CLAUDE_STREAM_IDLE_TIMEOUT_MS` establece el tiempo de espera de ambos perros guardianes. Claude Code eleva los valores por debajo de 5 minutos a 5 minutos, y limita el valor a 30 minutos para el perro guardián a nivel de byte.223* `CLAUDE_STREAM_IDLE_TIMEOUT_MS` establece el tiempo de espera de ambos perros guardianes. Claude Code eleva los valores por debajo de 5 minutos a 5 minutos, y limita el valor a 30 minutos para el perro guardián a nivel de byte.

224* `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` establece el tiempo de espera del perro guardián a nivel de byte sin cambiar el del perro guardián a nivel de evento, limitado entre 10 segundos y 30 minutos, y tiene prioridad sobre `CLAUDE_STREAM_IDLE_TIMEOUT_MS` para ese perro guardián.224* `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` establece el tiempo de espera del perro guardián a nivel de byte sin cambiar el del perro guardián a nivel de evento, limitado entre 10 segundos y 30 minutos, y tiene prioridad sobre `CLAUDE_STREAM_IDLE_TIMEOUT_MS` para ese perro guardián.

225* `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` establece el plazo de primer byte directamente. Déjelo sin establecer y Claude Code usa el tiempo de espera del perro guardián a nivel de byte, de modo que `CLAUDE_STREAM_IDLE_TIMEOUT_MS` y `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` también cambian el plazo. Para los límites, la asignación de carga, el límite de `API_TIMEOUT_MS` y cuánto tiempo espera el reintento después de un aborto sin respuesta, consulte [Sin respuesta de la API](/docs/es/errors#no-response-from-api).225* `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` establece el plazo de primer byte directamente. Déjelo sin establecer y Claude Code usa el tiempo de espera del perro guardián a nivel de byte, de modo que `CLAUDE_STREAM_IDLE_TIMEOUT_MS` y `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` también cambian el plazo. Para los límites, la asignación de carga, el límite de `API_TIMEOUT_MS` y cuánto tiempo espera el reintento después de un aborto sin respuesta, consulte [Sin respuesta de la API](/docs/es/errors#no-response-from-api).

226* `API_TIMEOUT_MS` limita la espera de encabezados de respuesta. Donde no se ejecuta el plazo de primer byte, como en una sesión de Claude apps gateway, establécelo por debajo de `300000`, que equivale a 5 minutos, para reintentar antes una solicitud sin respuesta. Mantenlo por encima de la espera de encabezados más larga, y de la [solicitud sin streaming](/docs/es/errors#streaming-response-ended-before-any-complete-data-was-received) más larga, que esperes: en una solicitud que necesite más tiempo se vuelve a agotar el tiempo de espera en cada reintento.226* `API_TIMEOUT_MS` limita la espera de encabezados de respuesta, no cuánto tiempo se transmite una respuesta en streaming después de ellos. Donde no se ejecuta el plazo de primer byte, como en una sesión de Claude apps gateway, establécelo por debajo de `300000`, que equivale a 5 minutos, para reintentar antes una solicitud sin respuesta. Mantenlo por encima de la espera de encabezados más larga, y de la [solicitud sin streaming](/docs/es/errors#streaming-response-ended-before-any-complete-data-was-received) más larga, que esperes: en una solicitud que necesite más tiempo se vuelve a agotar el tiempo de espera en cada reintento.

227* `API_FORCE_IDLE_TIMEOUT` establecido en `0` desactiva el tiempo de espera de inactividad del cuerpo, y establecido en `1` lo activa para cada proveedor. Los perros guardianes se ejecutan independientemente de él, por lo que para permitir que un stream se pause más tiempo que sus umbrales, también aumente o desactive los perros guardianes.227* `API_FORCE_IDLE_TIMEOUT` establecido en `0` desactiva el tiempo de espera de inactividad del cuerpo, y establecido en `1` lo activa para cada proveedor. Los perros guardianes se ejecutan independientemente de él, por lo que para permitir que un stream se pause más tiempo que sus umbrales, también aumente o desactive los perros guardianes.

228 228 

229Cuando un perro guardián aborta un stream estancado, Claude Code trata el aborto como una falla a mitad de stream, y lo que ve depende de cuán lejos haya llegado la respuesta. Claude Code reintenta la solicitud o termina el turno con un error, mantiene la salida completada y muestra un [aviso de respuesta incompleta](/docs/es/errors#the-response-above-may-be-incomplete), o termina el turno normalmente. [Reintentos automáticos](/docs/es/errors#automatic-retries) dice dónde se aplica cada resultado.229Cuando un perro guardián aborta un stream estancado, Claude Code trata el aborto como una falla a mitad de stream, y lo que ve depende de cuán lejos haya llegado la respuesta. Claude Code reintenta la solicitud o termina el turno con un error, mantiene la salida completada y muestra un [aviso de respuesta incompleta](/docs/es/errors#the-response-above-may-be-incomplete), o termina el turno normalmente. [Reintentos automáticos](/docs/es/errors#automatic-retries) dice dónde se aplica cada resultado.

permission-modes.md +108 −11

Details

86| Cómo ejecutas Claude Code | Modo de permisos inicial integrado |86| Cómo ejecutas Claude Code | Modo de permisos inicial integrado |

87| :- | :- |87| :- | :- |

88| Cualquier archivo de configuración establece `disableAutoMode` en `"disable"` | `default` |88| Cualquier archivo de configuración establece `disableAutoMode` en `"disable"` | `default` |

89| `claude -p` o el [Agent SDK](/docs/es/agent-sdk/permissions#permission-modes) | `default` en sesiones que [obtienen banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching). En sesiones que no lo hacen, como en un proveedor de terceros o con telemetría desactivada, `auto` con Claude Code v2.1.285 o posterior y `default` en versiones anteriores. Una sesión en una organización cuya política retiene el valor predeterminado `auto` comienza en `default` en su lugar |89| `claude -p` o el [Agent SDK](/docs/es/agent-sdk/permissions#permission-modes) | `default` |

90| Tu organización tiene aplicada la [configuración HIPAA](#hipaa-configuration) y la sesión [cumple los requisitos para ella](/docs/es/hipaa-setup#check-how-developers-sign-in-and-connect) | `default` con Claude Code v2.1.285 o posterior; el modo automático sigue disponible para cambiar a él |90| Tu organización tiene aplicada la [configuración HIPAA](#hipaa-configuration) y la sesión [cumple los requisitos para ella](/docs/es/hipaa-setup#check-how-developers-sign-in-and-connect) | `default` con Claude Code v2.1.285 o posterior; el modo automático sigue disponible para cambiar a él |

91| En una terminal o a través de la [extensión de VS Code](/docs/es/vs-code) | `auto` con Claude Code v2.1.283 o posterior; en versiones anteriores, `auto` en planes Pro, Max o Team en sesiones que [obtienen banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching), y `default` en caso contrario |91| En una terminal o a través de la [extensión de VS Code](/docs/es/vs-code) | `auto` con Claude Code v2.1.283 o posterior; en versiones anteriores, `auto` en planes Pro, Max o Team en sesiones que [obtienen banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching), y `default` en caso contrario |

92 92 

93En tu [primera sesión después de una instalación o actualización](/docs/es/env-vars#first-session-after-an-install-or-upgrade), Claude Code puede elegir el modo de permisos inicial antes de que lleguen sus banderas de características. Esa sesión puede iniciarse en un modo de permisos diferente al que proporciona la tabla.

94 

95Cuando la bandera, un archivo de configuración o el valor predeterminado integrado selecciona `auto` pero el modo automático no está disponible para la sesión, Claude Code inicia la sesión en Manual en su lugar. El modo automático no está disponible cuando la sesión no cumple con los [requisitos de disponibilidad](#eliminate-prompts-with-auto-mode), como un archivo de configuración desactivándolo o un modelo que no lo admite, o cuando Anthropic lo ha desactivado temporalmente del lado del servidor.93Cuando la bandera, un archivo de configuración o el valor predeterminado integrado selecciona `auto` pero el modo automático no está disponible para la sesión, Claude Code inicia la sesión en Manual en su lugar. El modo automático no está disponible cuando la sesión no cumple con los [requisitos de disponibilidad](#eliminate-prompts-with-auto-mode), como un archivo de configuración desactivándolo o un modelo que no lo admite, o cuando Anthropic lo ha desactivado temporalmente del lado del servidor.

96 94 

97La primera vez que el valor predeterminado integrado inicia una de tus sesiones en modo automático, Claude Code muestra un aviso que enlaza a esta página:95La primera vez que el valor predeterminado integrado inicia una de tus sesiones en modo automático, Claude Code muestra un aviso que enlaza a esta página:


101 99 

102Si tu `~/.claude/settings.json` establece un `defaultMode` distinto de `auto` y ningún otro archivo de configuración establece uno, tus sesiones siguen iniciándose en ese modo. En planes Pro, Max y Team, y en sesiones que [no obtienen banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching), Claude Code pregunta una vez, en la terminal o en la extensión de VS Code, si deseas cambiar el ajuste a modo automático. Si rechazas, tu ajuste permanece como está.100Si tu `~/.claude/settings.json` establece un `defaultMode` distinto de `auto` y ningún otro archivo de configuración establece uno, tus sesiones siguen iniciándose en ese modo. En planes Pro, Max y Team, y en sesiones que [no obtienen banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching), Claude Code pregunta una vez, en la terminal o en la extensión de VS Code, si deseas cambiar el ajuste a modo automático. Si rechazas, tu ajuste permanece como está.

103 101 

102<h3 id="which-mode-a-non-interactive-run-starts-in">

103 Llamadas a herramientas denegadas en ejecuciones de `claude -p` y del Agent SDK

104</h3>

105 

106En Claude Code v2.1.302 o posterior, las ejecuciones de `claude -p` y del [Agent SDK](/docs/es/agent-sdk/permissions#permission-modes) [sin un modo de permisos establecido](#which-mode-a-session-starts-in) comienzan en modo Manual. Este modo aparece como `default` en las opciones del SDK y en la configuración. Las llamadas que necesitan aprobación se deniegan a menos que las apruebes con una regla de permiso, un hook, un callback `canUseTool` o `--permission-prompt-tool`.

107 

108Para que estas llamadas se aprueben, agrega reglas de permiso o comienza en modo automático:

109 

110* **[Agrega reglas de permiso](/docs/es/permissions#manage-permissions)**: Claude ejecuta las llamadas que enumeres. Pasa [`--allowedTools "Bash(npm test)"`](/docs/es/headless#auto-approve-tools) a `claude -p`, o establece la [opción de herramientas permitidas](/docs/es/agent-sdk/permissions#allow-and-deny-rules) de tu SDK.

111* **Comienza en [modo automático](#eliminate-prompts-with-auto-mode)**: un modelo clasificador revisa las llamadas, así que no necesitas enumerar nada de antemano. Pasa `--permission-mode auto` a `claude -p`, o establece la [opción de modo de permisos](/docs/es/agent-sdk/permissions#set-permission-mode) de tu SDK.

112 

113Estos ejemplos muestran la forma del modo automático para la CLI y cada SDK:

114 

115<Tabs>

116 <Tab title="CLI">

117 ```bash theme={null}

118 claude -p "Run the test suite and fix any failures" --permission-mode auto

119 ```

120 </Tab>

121 

122 <Tab title="TypeScript">

123 ```typescript theme={null}

124 const options = {

125 permissionMode: "auto"

126 };

127 ```

128 </Tab>

129 

130 <Tab title="Python">

131 ```python theme={null}

132 from claude_agent_sdk import ClaudeAgentOptions

133 

134 options = ClaudeAgentOptions(permission_mode="auto")

135 ```

136 </Tab>

137</Tabs>

138 

139Antes de v2.1.302, estas ejecuciones podían comenzar en modo automático si no [obtenían banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching), por ejemplo en un [proveedor de terceros](/docs/es/third-party-integrations) o con `DISABLE_TELEMETRY`.

140 

104<h3 id="start-in-a-different-mode">141<h3 id="start-in-a-different-mode">

105 Comienza en un modo de permisos diferente142 Comienza en un modo de permisos diferente

106</h3>143</h3>


208 245 

209 Omitir permisos requiere el toggle **Allow dangerously skip permissions** en la configuración de la extensión. Sin él, el modo de permisos no aparece en el indicador, y un valor `bypassPermissions` del elemento 1 o elemento 3 comienza la conversación en Manual en su lugar. Auto de cualquier elemento asimismo comienza la conversación en Manual cuando el modo automático no está disponible.246 Omitir permisos requiere el toggle **Allow dangerously skip permissions** en la configuración de la extensión. Sin él, el modo de permisos no aparece en el indicador, y un valor `bypassPermissions` del elemento 1 o elemento 3 comienza la conversación en Manual en su lugar. Auto de cualquier elemento asimismo comienza la conversación en Manual cuando el modo automático no está disponible.

210 247 

211 Consulte la [guía de VS Code](/docs/es/vs-code) para obtener detalles específicos de la extensión.248 Consulta la [guía de VS Code](/docs/es/vs-code) para obtener detalles específicos de la extensión.

212 </Tab>249 </Tab>

213 250 

214 <Tab title="JetBrains">251 <Tab title="JetBrains">

215 El plugin de JetBrains ejecuta Claude Code en la terminal del IDE, por lo que cambiar modos de permisos funciona igual que en la CLI: presione `Shift+Tab` para ciclar, o pase `--permission-mode` al iniciar.252 El plugin de JetBrains ejecuta Claude Code en la terminal del IDE, por lo que cambiar modos de permisos funciona igual que en la CLI: presiona `Shift+Tab` para alternar, o pasa `--permission-mode` al iniciar.

216 </Tab>253 </Tab>

217 254 

218 <Tab title="Desktop">255 <Tab title="Desktop">

219 **Durante una sesión**: en la pestaña Code, use el selector de modo junto al botón de envío. No todos los modos aparecen en el selector:256 **Durante una sesión**: en la pestaña Code, usa el selector de modo en la fila debajo del cuadro de prompt. No todos los modos aparecen en el selector:

220 257 

221 * **Auto**: aparece cuando [modo automático está disponible](#eliminate-prompts-with-auto-mode)258 * **Auto**: aparece cuando [modo automático está disponible](#eliminate-prompts-with-auto-mode)

222 * **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 lugar259 * **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


345 Modo automático en Bedrock, Agent Platform o Foundry382 Modo automático en Bedrock, Agent Platform o Foundry

346</h3>383</h3>

347 384 

348En [Amazon Bedrock](/docs/es/amazon-bedrock), [Google Cloud's Agent Platform](/docs/es/google-vertex-ai), [Microsoft Foundry](/docs/es/microsoft-foundry) y sesiones del [gateway de aplicaciones de Claude](/docs/es/claude-apps-gateway) con sesión iniciada, el modo automático está disponible de forma predeterminada. Cuando nada más establece un modo de permisos, también es el [modo de permisos de inicio integrado](#which-mode-a-session-starts-in), en las versiones que enumera la tabla de esa sección. Para elegir tú mismo el modo de permisos de inicio, establece `permissions.defaultMode` como describe [Comenzar en un modo de permisos diferente](#start-in-a-different-mode), o selecciona un modo de permisos en el indicador de modo de la extensión de VS Code.385En [Amazon Bedrock](/docs/es/amazon-bedrock), [Google Cloud's Agent Platform](/docs/es/google-vertex-ai), [Microsoft Foundry](/docs/es/microsoft-foundry) y sesiones del [gateway de aplicaciones de Claude](/docs/es/claude-apps-gateway) con sesión iniciada, el modo automático está disponible de forma predeterminada. Si no estableces allí un modo de permisos, las sesiones interactivas comienzan en modo automático, y las ejecuciones de `claude -p` o del Agent SDK comienzan en modo Manual, cuyo valor de configuración es `default`:

386 

387* **Sesiones interactivas de terminal y de VS Code**: para iniciarlas en un modo de permisos distinto del automático, establece `permissions.defaultMode` como describe [Comenzar en un modo de permisos diferente](#start-in-a-different-mode), o elige uno en el [indicador de modo](#switch-permission-modes) de la extensión de VS Code. [En qué modo comienza una sesión](#which-mode-a-session-starts-in) enumera las versiones de Claude Code que las inician en modo automático.

388* **Ejecuciones de `claude -p` y del Agent SDK**: para iniciar una en modo automático, pasa `--permission-mode auto` a `claude -p`, o pasa `permissionMode: "auto"` en TypeScript o `permission_mode="auto"` en Python. Si no pasas ningún modo de permisos, consulta [Llamadas a herramientas denegadas en ejecuciones de `claude -p` y del Agent SDK](#which-mode-a-non-interactive-run-starts-in), que también cubre versiones anteriores de Claude Code.

349 389 

350Solo Claude Sonnet 5 o posterior, Opus 4.7 o posterior, Haiku 5.5 y los modelos Fable son compatibles en estos proveedores. En cualquier otro modelo, la sesión comienza en Manual. El modo automático con Haiku 5.5 en estos proveedores requiere Claude Code v2.1.293 o posterior.390Solo Claude Sonnet 5 o posterior, Opus 4.7 o posterior, Haiku 5.5 y los modelos Fable son compatibles en estos proveedores. En cualquier otro modelo, la sesión comienza en Manual. El modo automático con Haiku 5.5 en estos proveedores requiere Claude Code v2.1.293 o posterior.

351 391 


368 408 

369Para no pedírselo al servidor y usar siempre las propias solicitudes al clasificador de Claude Code, establece [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/es/env-vars). En una conexión directa a la API de Anthropic, la variable requiere Claude Code v2.1.281 o posterior. Establecerla en `1` en ese caso activa la revisión del servidor en una sesión que aún no la tiene, a menos que también hayas establecido `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`. Si estableces `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` y dejas `CLAUDE_CODE_AUTO_MODE_SERVER` sin establecer, Claude Code también deja de pedírselo al servidor, salvo en lo que describe [Deshabilitar capacidades previas al lanzamiento](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities).409Para no pedírselo al servidor y usar siempre las propias solicitudes al clasificador de Claude Code, establece [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/es/env-vars). En una conexión directa a la API de Anthropic, la variable requiere Claude Code v2.1.281 o posterior. Establecerla en `1` en ese caso activa la revisión del servidor en una sesión que aún no la tiene, a menos que también hayas establecido `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`. Si estableces `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` y dejas `CLAUDE_CODE_AUTO_MODE_SERVER` sin establecer, Claude Code también deja de pedírselo al servidor, salvo en lo que describe [Deshabilitar capacidades previas al lanzamiento](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities).

370 410 

411<h3 id="default-classifier-model">

412 Modelo clasificador predeterminado

413</h3>

414 

415De forma predeterminada, las solicitudes al clasificador van a Claude Sonnet 5. Si `/status` muestra `Auto mode server` como `Enabled`, se envían solo para las llamadas que quedan fuera de [la revisión del servidor](#server-side-classifier-review).

416 

417Busca la primera fila de esta tabla que coincida con tu sesión. Obtienes el modelo de esa fila en lugar de Sonnet 5.

418 

419| Tu sesión | Modelo clasificador |

420| - | - |

421| Tiene un modelo clasificador configurado por Anthropic | El modelo configurado. [Revisa el registro de depuración](#classifier-model-check) para ver cuál |

422| Se ejecuta en Claude Sonnet 4.6 | Sonnet 4.6 |

423| Tiene establecida [`ANTHROPIC_DEFAULT_SONNET_MODEL`](/docs/es/model-config#environment-variables) | Su valor, o Sonnet 5 si su valor es Claude Sonnet 5.5 o Claude Opus 5.5 |

424 

425Si Sonnet 5 o el modelo de `ANTHROPIC_DEFAULT_SONNET_MODEL` no está disponible en tu proveedor o lo excluye la [política de modelos](/docs/es/model-config#restrict-model-selection) de tu organización, Claude Code usa un modelo de respaldo. Ese es el modelo de tu sesión, o un modelo Opus en una [sesión de Fable](/docs/es/model-config#work-with-fable).

426 

427<h3 id="choose-the-classifier-model">

428 Elegir el modelo clasificador

429</h3>

430 

431Con Claude Code v2.1.302 o posterior, establece [`CLAUDE_CODE_AUTO_MODE_MODEL`](/docs/es/env-vars) en un ID de modelo completo para ejecutar el clasificador en un modelo distinto del [predeterminado](#default-classifier-model). También funcionan los propios ID de modelo completos de tu proveedor de nube. Este ejemplo de `~/.claude/settings.json` establece Claude Sonnet 4.6:

432 

433```json theme={null}

434{

435 "env": {

436 "CLAUDE_CODE_AUTO_MODE_MODEL": "claude-sonnet-4-6"

437 }

438}

439```

440 

441<h4 id="classifier-model-not-reviewing">

442 Cuando tu modelo no es el que revisa

443</h4>

444 

445| Situación | Qué sucede | Qué hacer |

446| - | - | - |

447| En una sesión, `/status` muestra [`Auto mode server`](#server-side-classifier-review) como `Enabled` | Tu modelo revisa solo lo que el servidor no revisa | No es necesario hacer nada |

448| Estableciste Claude Opus 5, Claude Sonnet 5.5, Claude Opus 5.5 o un modelo que excluye la [política de modelos](/docs/es/model-config#restrict-model-selection) de tu organización | Revisa el [modelo clasificador predeterminado](#default-classifier-model) | Establece un modelo diferente |

449| Anthropic configuró un modelo clasificador para tu sesión | Ese modelo revisa | No es necesario hacer nada |

450| Tu proveedor no puede servir el modelo | Las solicitudes fallan y Claude Code [deniega todas las acciones revisadas](/docs/es/errors#auto-mode-cannot-determine-the-safety-of-an-action) | Establece un modelo que sirva, o elimina la variable |

451 

452<h4 id="classifier-model-check">

453 Comprobar qué modelo usó el clasificador

454</h4>

455 

456Desde tu shell, inicia una sesión en modo automático con [`--debug-file`](/docs/es/cli-reference#cli-flags):

457 

458```bash theme={null}

459claude --permission-mode auto --debug-file classifier-debug.log

460```

461 

462Pide a Claude que ejecute un comando de shell que no sea de solo lectura y luego busca `classifier_request_started` en el registro:

463 

464* **Tu modelo después de `model=`**: la variable entró en vigor

465* **Un modelo diferente después de `model=`**: busca `ignoring CLAUDE_CODE_AUTO_MODE_MODEL` en el registro, que indica el motivo y cualquier paso que debas seguir

466* **No hay ninguna línea así**: consulta `Auto mode server` en `/status` en el prompt de Claude Code:

467 * **`Enabled`**: el [servidor](#server-side-classifier-review) está configurado para revisar las llamadas de esta sesión. No hay nada que cambiar.

468 * **`Disabled`**: asegúrate de que el [modo de permisos](#switch-permission-modes) sea auto y luego pide a Claude que ejecute otro comando que no sea de solo lectura.

469 

371<h3 id="what-the-classifier-blocks-by-default">470<h3 id="what-the-classifier-blocks-by-default">

372 Lo que el clasificador bloquea de forma predeterminada471 Lo que el clasificador bloquea de forma predeterminada

373</h3>472</h3>


384* Modificar infraestructura compartida483* Modificar infraestructura compartida

385* Destruir de forma irreversible archivos que existían antes de la sesión484* Destruir de forma irreversible archivos que existían antes de la sesión

386* Push forzado485* Push forzado

387* Hacer commit o push de un cambio que, al ejecutarse, enviaría secretos o datos sensibles fuera del repositorio, o ampliaría lo que expone una implementación. Esto cubre un workflow de CI o una configuración de implementación que pasa un secreto a un destino que aún no lo recibe, un script o paso de configuración que lee un almacén de secretos y envía los datos hacia fuera, y un cambio de configuración que amplía lo que publica una implementación, como un ajuste de registro, visibilidad, artefacto o sourcemap. La verificación se aplica en cualquier rama, se aplica incluso cuando el repositorio es público y se activa cuando se hace commit o push del cambio, independientemente de si ese commit o push desencadena el pipeline; para superarla hay que nombrar el efecto de la ejecución, no solo el commit o el push. Antes de v2.1.211, esta verificación se limitaba en cambio a la rama predeterminada: un push allí se bloqueaba cuando llevaba contenido sensible, cambios ocultos o mal descritos respecto de lo que pediste, contenido traído desde fuera del repositorio, o cuando eludía una revisión que pediste486* Hacer commit o push de un cambio que, al ejecutarse, enviaría secretos o datos sensibles fuera del repositorio, o ampliaría lo que expone una implementación. Esto cubre un workflow de CI o una configuración de implementación que pasa un secreto a un destino que aún no lo recibe, un script o paso de configuración que lee un almacén de secretos y envía los datos hacia fuera, y un cambio de configuración que amplía lo que publica una implementación, como un ajuste de registro, visibilidad, artefacto o sourcemap. La verificación se aplica en cualquier rama, se aplica incluso cuando el repositorio es público y se activa cuando se hace commit o push del cambio, independientemente de si ese commit o push desencadena el pipeline; para superarla hay que nombrar el efecto de la ejecución, no solo el commit o el push

388* `git reset --hard`, `git checkout -- .`, `git restore .`, `git clean -fd`, `git stash drop` o `git stash clear`, que el clasificador presume que descartarían cambios sin confirmar487* `git reset --hard`, `git checkout -- .`, `git restore .`, `git clean -fd`, `git stash drop` o `git stash clear`, que el clasificador presume que descartarían cambios sin confirmar

389* `git commit --amend` cuando el commit en HEAD no se creó en esta sesión488* `git commit --amend` cuando el commit en HEAD no se creó en esta sesión

390* Desde v2.1.198, `git commit --amend` cuando ya se hizo push del commit en HEAD. Una reescritura solo del mensaje no se bloquea: `--amend -m` sin nada recién preparado, en un commit que Claude creó durante esta sesión489* Desde v2.1.198, `git commit --amend` cuando ya se hizo push del commit en HEAD. Una reescritura solo del mensaje no se bloquea: `--amend -m` sin nada recién preparado, en un commit que Claude creó durante esta sesión


568 </Accordion>667 </Accordion>

569 668 

570 <Accordion title="Costo y latencia">669 <Accordion title="Costo y latencia">

571 El clasificador se ejecuta en Claude Sonnet 5 de forma predeterminada, en lugar de en tu selección de `/model`. Un modelo clasificador que Anthropic configura del lado del servidor tiene precedencia sobre ese valor predeterminado. Cuando el modelo de tu sesión es Claude Sonnet 4.6, o cuando [`availableModels`](/docs/es/model-config#restrict-model-selection) excluye Sonnet 5, el clasificador se ejecuta en cambio en el modelo de la sesión, o en un modelo Opus cuando la sesión se ejecuta en un [modelo Fable](/docs/es/model-config#work-with-fable). En proveedores distintos de la API de Anthropic, ese respaldo de Opus es el modelo que establezcas en [`ANTHROPIC_DEFAULT_OPUS_MODEL`](/docs/es/model-config#environment-variables), u Opus 5 si no has establecido ninguno.670 Las solicitudes al clasificador de Claude Code pueden ejecutarse en un modelo distinto de tu selección de `/model`. Consulta [en qué modelo se ejecutan](#default-classifier-model).

572 

573 La primera solicitud de modo automático de la sesión valida el predeterminado de Sonnet 5: si la solicitud tiene éxito, Sonnet 5 permanece como el modelo clasificador de la sesión, y si falla porque el modelo no está disponible, la sesión usa el respaldo en su lugar.

574 671 

575 En los planes Enterprise y en cuentas que usan la API de Claude, [Claude Platform on AWS](/docs/es/claude-platform-on-aws), Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry, las llamadas al clasificador cuentan para tu uso de tokens. Cada verificación envía una parte de la transcripción más la acción pendiente, lo que agrega un viaje de ida y vuelta antes de la ejecución. Las lecturas y las ediciones en el directorio de trabajo fuera de rutas protegidas omiten el clasificador, por lo que la sobrecarga proviene principalmente de los comandos de shell y las operaciones de red. Donde el servidor revisa las acciones como parte de las solicitudes al modelo de la sesión, no hay llamadas separadas al clasificador que contar; consulta [Revisión del clasificador del lado del servidor](#server-side-classifier-review).672 En los planes Enterprise y en cuentas que usan la API de Claude, [Claude Platform on AWS](/docs/es/claude-platform-on-aws), Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry, las llamadas al clasificador cuentan para tu uso de tokens. Cada verificación envía una parte de la transcripción más la acción pendiente, lo que agrega un viaje de ida y vuelta antes de la ejecución. Las lecturas y las ediciones en el directorio de trabajo fuera de rutas protegidas omiten el clasificador, por lo que la sobrecarga proviene principalmente de los comandos de shell y las operaciones de red. Donde el servidor revisa las acciones como parte de las solicitudes al modelo de la sesión, no hay llamadas separadas al clasificador que contar; consulta [Revisión del clasificador del lado del servidor](#server-side-classifier-review).

576 673 

permissions.md +3 −3

Details

391 391 

392Claude Code verifica las rutas de imágenes pegadas y los listados de directorios en v2.1.290 y posteriores.392Claude Code verifica las rutas de imágenes pegadas y los listados de directorios en v2.1.290 y posteriores.

393 393 

394Una regla de negación `Read` también bloquea las [herramientas Edit y Write](/docs/es/errors#file-is-covered-by-a-read-deny-rule) en la misma ruta, incluida la creación de un archivo nuevo allí. NotebookEdit no está cubierta, así que agrega una regla de negación `Edit` para las rutas que ninguna herramienta debe modificar. La verificación requiere Claude Code v2.1.208 o posterior para ediciones, y v2.1.228 o posterior para escrituras.394Una regla de negación `Read` también bloquea las [herramientas Edit y Write](/docs/es/errors#file-is-covered-by-a-read-deny-rule) en la misma ruta, incluida la creación de un archivo nuevo allí. NotebookEdit no está cubierta, así que agrega una regla de negación `Edit` para las rutas que ninguna herramienta debe modificar. Para la herramienta Write, la verificación requiere Claude Code v2.1.228 o posterior.

395 395 

396Claude Code verifica los permisos de archivos solo contra las reglas `Edit(path)` y `Read(path)`. Si escribes en su lugar una regla de ruta para `Write`, `NotebookEdit`, `Glob` o la herramienta heredada `MultiEdit`, Claude Code acepta la regla pero nunca la consulta, y [muestra una advertencia al iniciar](/docs/es/errors#is-not-matched-by-file-permission-checks), excepto para una regla `Glob` pasada en `--allowedTools`. Usa `Edit(docs/**)` en lugar de `Write(docs/**)`, `NotebookEdit(docs/**)` o `MultiEdit(docs/**)`, y `Read(docs/**)` en lugar de `Glob(docs/**)`. Claude Code no muestra advertencias para una regla de nombre de herramienta sin ruta, como una regla de negación para `Write`; aplica esa regla a nivel de herramienta en todas partes. Requiere Claude Code v2.1.210 o posterior.396Claude Code verifica los permisos de archivos solo contra las reglas `Edit(path)` y `Read(path)`. Si escribes en su lugar una regla de ruta para `Write`, `NotebookEdit`, `Glob` o la herramienta heredada `MultiEdit`, Claude Code acepta la regla pero nunca la consulta, y [muestra una advertencia al iniciar](/docs/es/errors#is-not-matched-by-file-permission-checks), excepto para una regla `Glob` pasada en `--allowedTools`. Usa `Edit(docs/**)` en lugar de `Write(docs/**)`, `NotebookEdit(docs/**)` o `MultiEdit(docs/**)`, y `Read(docs/**)` en lugar de `Glob(docs/**)`. Claude Code no muestra advertencias para una regla de nombre de herramienta sin ruta, como una regla de negación para `Write`; aplica esa regla a nivel de herramienta en todas partes.

397 397 

398<Warning>398<Warning>

399 Las reglas de negación Read y Edit se aplican a las herramientas de archivos integradas de Claude, a los comandos de archivos que Claude Code reconoce en Bash, como `cat`, `head`, `tail`, `sed` y `tee`, y a los destinos de las [redirecciones](#redirections) de Bash como `> file` y `< file`. No se aplican a un comando que lee archivos sin nombrarlos, como `grep -r pattern .` ejecutado desde el directorio que contiene el archivo, ni a subprocesos arbitrarios que leen o escriben archivos indirectamente, como un script de Python o Node que abre archivos por sí mismo. Para una aplicación a nivel del sistema operativo que impida a todos los procesos acceder a una ruta, [habilita el sandbox](/docs/es/sandboxing).399 Las reglas de negación Read y Edit se aplican a las herramientas de archivos integradas de Claude, a los comandos de archivos que Claude Code reconoce en Bash, como `cat`, `head`, `tail`, `sed` y `tee`, y a los destinos de las [redirecciones](#redirections) de Bash como `> file` y `< file`. No se aplican a un comando que lee archivos sin nombrarlos, como `grep -r pattern .` ejecutado desde el directorio que contiene el archivo, ni a subprocesos arbitrarios que leen o escriben archivos indirectamente, como un script de Python o Node que abre archivos por sí mismo. Para una aplicación a nivel del sistema operativo que impida a todos los procesos acceder a una ruta, [habilita el sandbox](/docs/es/sandboxing).


762 762 

763Cuando el sandboxing está habilitado y deja `autoAllowBashIfSandboxed` en su valor predeterminado de `true`, los comandos Bash en sandbox se ejecutan sin solicitar incluso si sus permisos incluyen una regla ask `Bash` simple, o la [forma equivalente `Bash(*)`](#match-all-uses-of-a-tool): el límite del sandbox sustituye ese aviso de herramienta completa.763Cuando el sandboxing está habilitado y deja `autoAllowBashIfSandboxed` en su valor predeterminado de `true`, los comandos Bash en sandbox se ejecutan sin solicitar incluso si sus permisos incluyen una regla ask `Bash` simple, o la [forma equivalente `Bash(*)`](#match-all-uses-of-a-tool): el límite del sandbox sustituye ese aviso de herramienta completa.

764 764 

765En [plan mode](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode), Claude Code omite esta sustitución. Sin una regla ask, los [comandos de solo lectura integrados](#read-only-commands) aún se ejecutan sin solicitar, y cualquier otro comando de shell pasa por el flujo de permisos regular mientras aún está planificando; consulte [plan mode](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode) para saber cómo Claude Code controla los comandos allí. Con una regla ask `Bash` simple, cada comando Bash solicita, incluyendo comandos de solo lectura en sandbox, igual que fuera del sandboxing. Antes de v2.1.212, la sustitución se aplicaba en plan mode también.765En [modo plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode), Claude Code omite esta sustitución. Sin una regla ask, los [comandos de solo lectura integrados](#read-only-commands) aún se ejecutan sin pedir permiso, y cualquier otro comando de shell pasa por el flujo de permisos regular mientras todavía estás planificando; consulta [modo plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode) para saber cómo Claude Code controla los comandos allí. Con una regla ask `Bash` simple, cada comando Bash pide permiso, incluidos los comandos de solo lectura en el sandbox, igual que fuera del sandboxing.

766 766 

767Estas comprobaciones aún se aplican:767Estas comprobaciones aún se aplican:

768 768 

Details

94 En una sesión local o SSH en la pestaña **Code** de la aplicación de escritorio:94 En una sesión local o SSH en la pestaña **Code** de la aplicación de escritorio:

95 95 

96 <Steps>96 <Steps>

97 <Step title="Abra el navegador de plugins">97 <Step title="Abre el navegador de plugins">

98 Haga clic en el botón **+** junto a la caja de prompt y seleccione **Plugins**, luego **Add plugin**. Se abre el navegador de plugins con los plugins de sus marketplaces.98 Haz clic en el botón **+** junto a la caja de prompt y selecciona **Add plugins**. Si el menú **+** muestra **Plugins** en lugar de **Add plugins**, selecciona **Plugins** y luego **Browse plugins**. Se abre el navegador de plugins con los plugins de tus marketplaces.

99 </Step>99 </Step>

100 100 

101 <Step title="Seleccione el plugin">101 <Step title="Selecciona el plugin">

102 Encuentre `commit-commands` y selecciónelo.102 Encuentra `commit-commands` y selecciónalo.

103 </Step>103 </Step>

104 104 

105 <Step title="Elija un alcance">105 <Step title="Elige un alcance">

106 Elija un [alcance](#choose-an-install-scope): su cuenta de usuario, este proyecto o solo local.106 Elige un [alcance](#choose-an-install-scope): tu cuenta de usuario, este proyecto o solo local.

107 </Step>107 </Step>

108 </Steps>108 </Steps>

109 109 

110 Para habilitar, deshabilitar o desinstalar más tarde, use **+ > Plugins > Manage plugins**. El navegador de plugins no está disponible en las sesiones en la nube de la aplicación de escritorio. Consulte [Install plugins in the desktop app](/docs/es/desktop#install-plugins).110 Para habilitar, deshabilitar o desinstalar un plugin más tarde, consulta [Install plugins in the desktop app](/docs/es/desktop#install-plugins).

111 </Tab>111 </Tab>

112 112 

113 <Tab title="VS Code">113 <Tab title="VS Code">

Details

48* **Nombres de marketplace comunitario**: `claude-community`, `claude-plugins-community` y `healthcare`. Reservado bajo la misma regla que los nombres oficiales.48* **Nombres de marketplace comunitario**: `claude-community`, `claude-plugins-community` y `healthcare`. Reservado bajo la misma regla que los nombres oficiales.

49* **Nombres de directorio de plugins**: `anthropic-plugin-directory` y `claude-plugin-directory`. Reservado bajo la misma regla que los nombres oficiales.49* **Nombres de directorio de plugins**: `anthropic-plugin-directory` y `claude-plugin-directory`. Reservado bajo la misma regla que los nombres oficiales.

50* **Nombres que suplanten un marketplace oficial**: nombres como `official-claude-plugins` o `claude-plugins-v2`, y cualquier nombre que contenga un carácter no ASCII. El error es `Marketplace name impersonates an official Anthropic/Claude marketplace`. Un carácter de control o de formato bidireccional en un nombre también reporta `Marketplace name cannot contain control or bidirectional-formatting characters`. Un marketplace ya registrado bajo tal nombre deja de cargarse, junto con sus plugins.50* **Nombres que suplanten un marketplace oficial**: nombres como `official-claude-plugins` o `claude-plugins-v2`, y cualquier nombre que contenga un carácter no ASCII. El error es `Marketplace name impersonates an official Anthropic/Claude marketplace`. Un carácter de control o de formato bidireccional en un nombre también reporta `Marketplace name cannot contain control or bidirectional-formatting characters`. Un marketplace ya registrado bajo tal nombre deja de cargarse, junto con sus plugins.

51* <span id="reserved-name-spellings" />**Otra ortografía de un nombre reservado**: un nombre que difiere de un nombre reservado solo por un punto final, o por un símbolo distinto de un guión bajo en lugar de un guión, por lo que `claude.code.plugins` cuenta como `claude-code-plugins`. Agregar el marketplace falla con [`is another spelling of "<reserved>", a reserved marketplace name`](/docs/es/errors#marketplace-name-is-another-spelling-of-a-reserved-name), y un marketplace ya registrado bajo uno deja de cargarse. Esta verificación requiere Claude Code v2.1.280 o posterior.51* <span id="reserved-name-spellings" />**Otra ortografía de un nombre reservado**: un nombre que difiere de un nombre reservado solo por un punto final, o por un símbolo distinto de un guion bajo en lugar de un guion, por lo que `claude.code.plugins` cuenta como `claude-code-plugins`. Agregar el marketplace falla con [`is another spelling of "<reserved>", a reserved marketplace name`](/docs/es/errors#marketplace-name-is-another-spelling-of-a-reserved-name), y un marketplace ya registrado bajo uno deja de cargarse. Esta verificación requiere Claude Code v2.1.280 o posterior.

52* **Nombres que Claude Code usa para plugins que no provienen de un marketplace**: `inline` para plugins cargados con [`--plugin-dir`](/docs/es/cli-reference), `builtin` para plugins integrados, `skills-dir` para plugins cargados automáticamente desde [`.claude/skills/`](/docs/es/skills) y `synced` para plugins sincronizados desde su cuenta claude.ai. `claude-plugin-test` también está reservado. `skills-dir` también aparece como `{"source": "skills-dir"}` en `strictKnownMarketplaces` y `blockedMarketplaces`, descrito bajo [Valores de fuente válidos solo en listas de políticas](#source-values-valid-only-in-policy-lists).52* **Nombres que Claude Code usa para plugins que no provienen de un marketplace**: `inline` para plugins cargados con [`--plugin-dir`](/docs/es/cli-reference), `builtin` para plugins integrados, `skills-dir` para plugins cargados automáticamente desde [`.claude/skills/`](/docs/es/skills) y `synced` para plugins sincronizados desde su cuenta claude.ai. `claude-plugin-test` también está reservado. `skills-dir` también aparece como `{"source": "skills-dir"}` en `strictKnownMarketplaces` y `blockedMarketplaces`, descrito bajo [Valores de fuente válidos solo en listas de políticas](#source-values-valid-only-in-policy-lists).

53* **`npm`, `pip`, `uv`, `cargo`, `github` y `gh`**: reservado en cualquier mayúscula. Esta verificación requiere Claude Code v2.1.275 o posterior.53* **`npm`, `pip`, `uv`, `cargo`, `github` y `gh`**: reservado en cualquier mayúscula. Esta verificación requiere Claude Code v2.1.275 o posterior.

54* **Nombres de miembros que tiene todo objeto de JavaScript**: `constructor`, `hasOwnProperty`, `isPrototypeOf`, `propertyIsEnumerable`, `toLocaleString`, `toString` y `valueOf`. `claude plugin marketplace add` rechaza un marketplace que use uno con [`Claude Code reserves this name and cannot register a marketplace under it`](/docs/es/plugins/troubleshooting#claude-code-reserves-this-name). Esta verificación requiere Claude Code v2.1.296 o posterior.54* **Nombres de miembros que tiene todo objeto de JavaScript**: `constructor`, `hasOwnProperty`, `isPrototypeOf`, `propertyIsEnumerable`, `toLocaleString`, `toString` y `valueOf`. `claude plugin marketplace add` rechaza un marketplace que use uno con [`Claude Code reserves this name and cannot register a marketplace under it`](/docs/es/plugins/troubleshooting#claude-code-reserves-this-name). Esta verificación requiere Claude Code v2.1.296 o posterior.

Details

362 Dibuja en la extensión de VS Code362 Dibuja en la extensión de VS Code

363</h3>363</h3>

364 364 

365En la extensión de VS Code, lo que dibuja un mod aparece en el panel de chat con la versión 2.1.299 o posterior de la extensión, en una sesión que [obtiene feature flags](/docs/es/env-vars#features-that-need-feature-flag-fetching). En un hook `ui.render` para el panel, `e.surface` es `vscode`. Para comprobar qué puntos y elementos dibuja el panel, y qué props ignora, consulta las tablas de [puntos de renderizado](/docs/es/plugins/mods/reference#render-sites) y de [elementos](/docs/es/plugins/mods/reference#elements).365En la extensión de VS Code, lo que dibuja un mod aparece en el panel de chat con la versión 2.1.299 o posterior de la extensión. Una sesión que [no obtiene feature flags](/docs/es/env-vars#features-that-need-feature-flag-fetching), como una en Amazon Bedrock, necesita la versión 2.1.304 o posterior. En un hook `ui.render` para el panel, `e.surface` es `vscode`. Para comprobar qué puntos y elementos dibuja el panel, y qué props ignora, consulta las tablas de [puntos de renderizado](/docs/es/plugins/mods/reference#render-sites) y de [elementos](/docs/es/plugins/mods/reference#elements).

366 366 

367Para que un mod funcione en el panel además de en la terminal, ten en cuenta estas diferencias:367Para que un mod funcione en el panel además de en la terminal, ten en cuenta estas diferencias:

368 368 

Details

219| `claude` en una terminal, incluida la terminal integrada de un editor y el plugin de JetBrains | Sí | Sí |219| `claude` en una terminal, incluida la terminal integrada de un editor y el plugin de JetBrains | Sí | Sí |

220| La pestaña Code de la app de escritorio, excepto en una sesión de WSL | Sí | Sí, excepto los elementos que la [tabla de elementos](/docs/es/plugins/mods/reference#elements) marca como exclusivos de la terminal |220| La pestaña Code de la app de escritorio, excepto en una sesión de WSL | Sí | Sí, excepto los elementos que la [tabla de elementos](/docs/es/plugins/mods/reference#elements) marca como exclusivos de la terminal |

221| Una [sesión de WSL](/docs/es/desktop-wsl) en la app de escritorio | No, porque los plugins no están disponibles en las sesiones de WSL | No |221| Una [sesión de WSL](/docs/es/desktop-wsl) en la app de escritorio | No, porque los plugins no están disponibles en las sesiones de WSL | No |

222| El panel de chat de la extensión de VS Code | Sí | Sí, con la versión 2.1.299 o posterior de la extensión, en una sesión que [obtiene feature flags](/docs/es/env-vars#features-that-need-feature-flag-fetching). Las tablas de [puntos de renderizado](/docs/es/plugins/mods/reference#render-sites) y de [elementos](/docs/es/plugins/mods/reference#elements) marcan lo que dibuja el panel. |222| El panel de chat de la extensión de VS Code | Sí | Sí, con la versión 2.1.299 o posterior de la extensión. Una sesión que [no obtiene feature flags](/docs/es/env-vars#features-that-need-feature-flag-fetching), como una en Amazon Bedrock, necesita la versión 2.1.304 o posterior. Las tablas de [puntos de renderizado](/docs/es/plugins/mods/reference#render-sites) y de [elementos](/docs/es/plugins/mods/reference#elements) marcan lo que dibuja el panel. |

223| `claude -p` y el [Agent SDK](/docs/es/agent-sdk/overview) | Sí | No |223| `claude -p` y el [Agent SDK](/docs/es/agent-sdk/overview) | Sí | No |

224| [Remote Control](/docs/es/remote-control) desde claude.ai o la app móvil | Sí, en la sesión de tu máquina | En la terminal de tu máquina |224| [Remote Control](/docs/es/remote-control) desde claude.ai o la app móvil | Sí, en la sesión de tu máquina | En la terminal de tu máquina |

225| Una [sesión en la nube](/docs/es/claude-code-on-the-web) | Sí, para un plugin que [llega a la sesión en la nube](/docs/es/cloud-environments#what-carries-over-from-your-setup) | No |225| Una [sesión en la nube](/docs/es/claude-code-on-the-web) | Sí, para un plugin que [llega a la sesión en la nube](/docs/es/cloud-environments#what-carries-over-from-your-setup) | No |

Details

257 257 

258Un punto de renderizado es un punto de extensión en la interfaz de Claude Code. Cada fila es un valor de `e.component` en un hook `ui.render`, con los campos de `e.props` y las apps que lo renderizan. `e.surface` indica la app que está dibujando, como `terminal`, `desktop` o `vscode`. [Cambiar lo que Claude Code ya dibuja](/docs/es/plugins/mods/interface#change-what-claude-code-already-draws) muestra lo que un hook puede hacer en un punto de renderizado, con un ejemplo de cada opción.258Un punto de renderizado es un punto de extensión en la interfaz de Claude Code. Cada fila es un valor de `e.component` en un hook `ui.render`, con los campos de `e.props` y las apps que lo renderizan. `e.surface` indica la app que está dibujando, como `terminal`, `desktop` o `vscode`. [Cambiar lo que Claude Code ya dibuja](/docs/es/plugins/mods/interface#change-what-claude-code-already-draws) muestra lo que un hook puede hacer en un punto de renderizado, con un ejemplo de cada opción.

259 259 

260Renderizar en la extensión de VS Code requiere la versión 2.1.299 o posterior de la extensión y una sesión que [obtenga los feature flags](/docs/es/env-vars#features-that-need-feature-flag-fetching). [Dibujar en la extensión de VS Code](/docs/es/plugins/mods/interface#draw-in-the-vs-code-extension) enumera lo que la extensión dibuja de forma diferente.260Renderizar en la extensión de VS Code requiere la versión 2.1.299 o posterior de la extensión. Una sesión que [no obtiene los feature flags](/docs/es/env-vars#features-that-need-feature-flag-fetching) necesita la versión 2.1.304 o posterior. [Dibujar en la extensión de VS Code](/docs/es/plugins/mods/interface#draw-in-the-vs-code-extension) enumera lo que la extensión dibuja de forma diferente.

261 261 

262| Punto de renderizado | `e.props` | `e.requestId` | Se renderiza en |262| Punto de renderizado | `e.props` | `e.requestId` | Se renderiza en |

263| :- | :- | :- | :- |263| :- | :- | :- | :- |

Details

315 315 

316* **El punto de renderizado o el elemento no se dibuja en esa app**: busca tu punto de renderizado en la tabla de [puntos de renderizado](/docs/es/plugins/mods/reference#render-sites) y tus elementos en la tabla de [elementos](/docs/es/plugins/mods/reference#elements). Para un elemento que la app no tiene, revisa `e.surface` en el hook y devuelve un árbol que la app pueda dibujar.316* **El punto de renderizado o el elemento no se dibuja en esa app**: busca tu punto de renderizado en la tabla de [puntos de renderizado](/docs/es/plugins/mods/reference#render-sites) y tus elementos en la tabla de [elementos](/docs/es/plugins/mods/reference#elements). Para un elemento que la app no tiene, revisa `e.surface` en el hook y devuelve un árbol que la app pueda dibujar.

317* **La extensión de VS Code es anterior a 2.1.299**: el panel de chat dibuja para los mods a partir de la [versión de la extensión](/docs/es/vs-code#install-the-extension) 2.1.299. Revisa la versión en la vista Extensions de VS Code y actualiza la extensión ahí.317* **La extensión de VS Code es anterior a 2.1.299**: el panel de chat dibuja para los mods a partir de la [versión de la extensión](/docs/es/vs-code#install-the-extension) 2.1.299. Revisa la versión en la vista Extensions de VS Code y actualiza la extensión ahí.

318* **La sesión de VS Code no obtiene los feature flags**: dibujar en el panel de chat lo requiere. Las sesiones en Amazon Bedrock, Agent Platform de Google Cloud o Microsoft Foundry, o a través de un [gateway de apps de Claude](/docs/es/claude-apps-gateway), lo omiten, entre otras que se enumeran en [Funciones que necesitan obtener feature flags](/docs/es/env-vars#features-that-need-feature-flag-fetching). Para ver el dibujo en una sesión así, ejecuta `claude` en una terminal, como la terminal integrada de VS Code.318* **La extensión es anterior a 2.1.304 y la sesión no obtiene los feature flags**: actualiza la extensión, o ejecuta `claude` en la terminal integrada de VS Code en su lugar. Las sesiones en Amazon Bedrock, Agent Platform de Google Cloud o Microsoft Foundry omiten la obtención. Para las demás que la omiten, como una sesión a través de un [gateway de apps de Claude](/docs/es/claude-apps-gateway), consulta [Funciones que necesitan obtener feature flags](/docs/es/env-vars#features-that-need-feature-flag-fetching).

319 319 

320<h2 id="an-edit-or-a-value-is-lost">320<h2 id="an-edit-or-a-value-is-lost">

321 Se pierde una edición o un valor321 Se pierde una edición o un valor

Details

40 40 

41Instale el plugin desde la superficie en la que se encuentra:41Instale el plugin desde la superficie en la que se encuentra:

42 42 

43* **Aplicación de escritorio Claude, sesión local o SSH**: haga clic en el botón **+** junto al prompt, luego **Plugins**, luego **Add plugin** para abrir el [plugin browser](/docs/es/desktop#install-plugins)43* **Aplicación de escritorio de Claude, sesión local o SSH**: usa la pestaña **Desktop app** en [Instalar un plugin](/docs/es/plugins/install#install-a-plugin)

44* **Extensión de VS Code**: use la pestaña **VS Code** bajo [Install a plugin](/docs/es/plugins/install#install-a-plugin)44* **Extensión de VS Code**: use la pestaña **VS Code** bajo [Install a plugin](/docs/es/plugins/install#install-a-plugin)

45* **Claude Code en la web, o una sesión de escritorio en la nube**: una sesión en la nube no tiene navegador de plugins. Vea la pestaña **Cloud session** bajo [Install a plugin](/docs/es/plugins/install#install-a-plugin) para lo que carga una sesión en la nube45* **Claude Code en la web, o una sesión de escritorio en la nube**: una sesión en la nube no tiene navegador de plugins. Vea la pestaña **Cloud session** bajo [Install a plugin](/docs/es/plugins/install#install-a-plugin) para lo que carga una sesión en la nube

46* **Una terminal a la que tiene acceso**: ejecute `claude` y escriba `/plugin` allí, o ejecute `claude plugin install <plugin>@<marketplace>` en su shell sin iniciar una sesión46* **Una terminal a la que tiene acceso**: ejecute `claude` y escriba `/plugin` allí, o ejecute `claude plugin install <plugin>@<marketplace>` en su shell sin iniciar una sesión

Details

122mkdir -p ~/.claude && { [ -f ~/.claude.json ] || echo '{}' > ~/.claude.json; }122mkdir -p ~/.claude && { [ -f ~/.claude.json ] || echo '{}' > ~/.claude.json; }

123```123```

124 124 

125Una vez que el archivo de configuración esté en su lugar, lanza Claude Code con `npx` y pasa `claude` como el comando a envolver:125Instala el tiempo de ejecución globalmente, bajo un prefijo fuera de todas las rutas a las que permites escritura:

126 126 

127```bash theme={null}127```bash theme={null}

128npx @anthropic-ai/sandbox-runtime claude128npm install -g @anthropic-ai/sandbox-runtime

129```129```

130 130 

131Claude Code se inicia dentro del sandbox con los límites de sistema de archivos y red que configuraste. El mismo comando funciona para aislar servidores MCP independientes u otros procesos auxiliares.131Una vez que el archivo de configuración esté en su lugar, lanza Claude Code a través del tiempo de ejecución desde tu directorio de proyecto:

132 

133```bash theme={null}

134srt claude

135```

136 

137Claude Code se inicia dentro del sandbox con los límites de sistema de archivos y red que configuraste. El mismo comando `srt` funciona para aislar servidores MCP independientes u otros procesos auxiliares.

132 138 

133<h3 id="what-the-runtime-blocks-on-its-own">139<h3 id="what-the-runtime-blocks-on-its-own">

134 Qué bloquea el tiempo de ejecución por su cuenta140 Qué bloquea el tiempo de ejecución por su cuenta

Details

33 33 

34`/plugin` abre un panel interactivo en la CLI de terminal. Si Claude responde que `/plugin` no está disponible en este entorno, instale de otra manera:34`/plugin` abre un panel interactivo en la CLI de terminal. Si Claude responde que `/plugin` no está disponible en este entorno, instale de otra manera:

35 35 

36* **Aplicación de escritorio Claude, sesión local o SSH**: abra el [navegador de plugins](/docs/es/desktop#install-plugins) haciendo clic en el botón **+** junto al prompt, luego **Plugins**, luego **Agregar plugin**36* **Aplicación de escritorio Claude, sesión local o SSH**: usa la pestaña **Aplicación de escritorio** en [Instalar un plugin](/docs/es/plugins/install#install-a-plugin)

37* **Extensión de VS Code**: instale desde el [diálogo **Administrar plugins**](/docs/es/vs-code#manage-plugins)37* **Extensión de VS Code**: instale desde el [diálogo **Administrar plugins**](/docs/es/vs-code#manage-plugins)

38* **Sesiones en la nube**: una sesión en la nube no carga plugins de su configuración de usuario o del archivo `.claude/settings.json` del repositorio, como explica [Lo que se transfiere de su configuración](/docs/es/cloud-environments#what-carries-over-from-your-setup). Para plugins que su organización distribuye a través de configuración administrada, consulte [Administrar plugins para su organización](/docs/es/plugins/org)38* **Sesiones en la nube**: una sesión en la nube no carga plugins de su configuración de usuario o del archivo `.claude/settings.json` del repositorio, como explica [Lo que se transfiere de su configuración](/docs/es/cloud-environments#what-carries-over-from-your-setup). Para plugins que su organización distribuye a través de configuración administrada, consulte [Administrar plugins para su organización](/docs/es/plugins/org)

39 39 

Details

554* **Con [`--retire-at`](/docs/es/self-hosted-environments-reference#runner-cli-flags)**: deja suficiente tiempo entre el tiempo de retiro y el momento en que el host se detiene para que terminen los turnos típicos, más la espera de las tareas en segundo plano que describe [Ciclo de vida del runner](/docs/es/self-hosted-environments#runner-lifecycle), más el tiempo registrado. Calcula el tiempo de retiro en cada lanzamiento, por ejemplo `date +%s` más la vida útil prevista del runner.554* **Con [`--retire-at`](/docs/es/self-hosted-environments-reference#runner-cli-flags)**: deja suficiente tiempo entre el tiempo de retiro y el momento en que el host se detiene para que terminen los turnos típicos, más la espera de las tareas en segundo plano que describe [Ciclo de vida del runner](/docs/es/self-hosted-environments#runner-lifecycle), más el tiempo registrado. Calcula el tiempo de retiro en cada lanzamiento, por ejemplo `date +%s` más la vida útil prevista del runner.

555* **Con [`--defer-shutdown-max-min`](#defer-the-drain-past-the-first-signal)**: el tiempo de parada también debe cubrir los minutos que configuras y una espera adicional antes de que comience el drenaje, 75 segundos con la configuración predeterminada. [Diferir el drenaje más allá de la primera señal](#defer-the-drain-past-the-first-signal) explica ambos. El runner también registra este tiempo más largo al inicio.555* **Con [`--defer-shutdown-max-min`](#defer-the-drain-past-the-first-signal)**: el tiempo de parada también debe cubrir los minutos que configuras y una espera adicional antes de que comience el drenaje, 75 segundos con la configuración predeterminada. [Diferir el drenaje más allá de la primera señal](#defer-the-drain-past-the-first-signal) explica ambos. El runner también registra este tiempo más largo al inicio.

556 556 

557<h3 id="post-a-status-message-before-a-restart">

558 Publicar un mensaje de estado antes de un reinicio

559</h3>

560 

561Antes de un reinicio que vaya a interrumpir sesiones, pide a un [Owner](/docs/es/cloud-environments#organization-shared-environments) que publique un mensaje de estado en el entorno desde la [página de administración **Cloud environments**](https://claude.ai/admin-settings/cloud-environments). En [claude.ai/code](https://claude.ai/code), los miembros ven el mensaje en sus sesiones de ese entorno. Pide al Owner que establezca una fecha de vencimiento al publicarlo, o que elimine el mensaje una vez que los runners vuelvan a estar activos.

562 

557<h3 id="defer-the-drain-past-the-first-signal">563<h3 id="defer-the-drain-past-the-first-signal">

558 Diferir el drenaje más allá de la primera señal564 Diferir el drenaje más allá de la primera señal

559</h3>565</h3>


632 Fije la versión638 Fije la versión

633</h2>639</h2>

634 640 

635El proceso hijo de Claude Code de cada sesión ejecuta el binario propio del runner, y el runner desactiva la actualización automática dentro de las sesiones que genera, por lo que cada sesión ejecuta la versión que instaló en el host o construyó en la imagen. Una actualización a nivel de host entra en vigor la próxima vez que el runner comienza.641De forma predeterminada, el proceso hijo de cada sesión ejecuta el binario propio del runner, y el runner desactiva la actualización automática dentro de las sesiones que genera. Con ese valor predeterminado, cada sesión ejecuta la versión que instalaste en el host o que incluiste en la imagen. Una actualización a nivel de host entra en vigor la próxima vez que el runner se inicia.

636 642 

637Elige qué versión ejecutan tus sesiones y cuándo cambia:643Elige qué versión ejecutan tus sesiones y cuándo cambia:

638 644 


640* **Para mantener una flota en una versión**: construya la imagen con una versión fijada, o en un host desnudo instale una versión específica y [desactive las actualizaciones automáticas](/docs/es/setup#disable-auto-updates)646* **Para mantener una flota en una versión**: construya la imagen con una versión fijada, o en un host desnudo instale una versión específica y [desactive las actualizaciones automáticas](/docs/es/setup#disable-auto-updates)

641* **Para actualizar una flota fija**: lee las entradas del [changelog](/docs/en/changelog) entre tu versión y la que vas a instalar; luego instala la versión más reciente o vuelve a crear la imagen y reinicia los runners647* **Para actualizar una flota fija**: lee las entradas del [changelog](/docs/en/changelog) entre tu versión y la que vas a instalar; luego instala la versión más reciente o vuelve a crear la imagen y reinicia los runners

642* **Para actualizar runners bajo demanda**: lee las entradas del [changelog](/docs/en/changelog) entre tu versión y la que vas a instalar; luego cambia la imagen que inicia tu [hook `spawn-runner`](/docs/es/self-hosted-environments-configuration#the-spawn-runner-hook). Cada runner nuevo obtiene la nueva versión. Un runner que ya está en ejecución, incluido un runner en espera que inició [`--min-idle`](/docs/es/self-hosted-environments-reference#orchestrator-cli-flags), conserva su versión hasta que termina. No lo reinicies, porque su orden de trabajo es de un solo uso.648* **Para actualizar runners bajo demanda**: lee las entradas del [changelog](/docs/en/changelog) entre tu versión y la que vas a instalar; luego cambia la imagen que inicia tu [hook `spawn-runner`](/docs/es/self-hosted-environments-configuration#the-spawn-runner-hook). Cada runner nuevo obtiene la nueva versión. Un runner que ya está en ejecución, incluido un runner en espera que inició [`--min-idle`](/docs/es/self-hosted-environments-reference#orchestrator-cli-flags), conserva su versión hasta que termina. No lo reinicies, porque su orden de trabajo es de un solo uso.

649* **Si las sesiones inician un binario diferente**: si usas [`--exec-path`](/docs/es/self-hosted-environments-reference#runner-cli-flags) o un [hook `command`](/docs/es/self-hosted-environments-configuration#command) para iniciar un binario de Claude Code distinto del propio del runner, las sesiones ejecutan la versión de ese binario. Actualiza ese binario cuando actualices el runner.

643* **Plugins**: los mercados de plugins tampoco se actualizan automáticamente; establezca `FORCE_AUTOUPDATE_PLUGINS=1` en el entorno del runner para permitir que los plugins se actualicen automáticamente mientras el binario permanece fijado650* **Plugins**: los mercados de plugins tampoco se actualizan automáticamente; establezca `FORCE_AUTOUPDATE_PLUGINS=1` en el entorno del runner para permitir que los plugins se actualicen automáticamente mientras el binario permanece fijado

644 651 

645<h2 id="scale-the-fleet">652<h2 id="scale-the-fleet">


699 * **Antes de habilitar el flag**: restringe quién puede hacer push a las refs `claude/*` en el remoto de origen. Al reanudar, el runner obtiene la rama a la que se hizo push previamente sin verificar quién hizo el push.706 * **Antes de habilitar el flag**: restringe quién puede hacer push a las refs `claude/*` en el remoto de origen. Al reanudar, el runner obtiene la rama a la que se hizo push previamente sin verificar quién hizo el push.

700* **Un repositorio agregado a mitad de sesión puede fallar al clonarse**: Claude lo clona con `git clone` a través de HTTPS. En un runner sin [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy), la clonación falla con un error de autenticación de git si nada en el host puede leer el repositorio. Siempre que puedas, selecciona todos los repositorios que la sesión necesita al crearla.707* **Un repositorio agregado a mitad de sesión puede fallar al clonarse**: Claude lo clona con `git clone` a través de HTTPS. En un runner sin [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy), la clonación falla con un error de autenticación de git si nada en el host puede leer el repositorio. Siempre que puedas, selecciona todos los repositorios que la sesión necesita al crearla.

701* **Algunos conectores no aparecen en sesiones autohospedadas**: un conector que aún no ha conectado en la configuración de claude.ai no se enumera en una sesión autohospedada, y la sesión no le pedirá que lo conecte. Conéctelo en Configuración primero, luego inicie una sesión nueva. Agregar un conector a una sesión ya en ejecución tampoco hace que sus herramientas estén disponibles para Claude; inicie una sesión nueva para recoger un conector recién agregado.708* **Algunos conectores no aparecen en sesiones autohospedadas**: un conector que aún no ha conectado en la configuración de claude.ai no se enumera en una sesión autohospedada, y la sesión no le pedirá que lo conecte. Conéctelo en Configuración primero, luego inicie una sesión nueva. Agregar un conector a una sesión ya en ejecución tampoco hace que sus herramientas estén disponibles para Claude; inicie una sesión nueva para recoger un conector recién agregado.

709* **Cuando alguien archiva o elimina una sesión, o libera su runner desde el menú de la sesión**: no cuentes con el push de [`--push-outcome-on-release`](/docs/es/self-hosted-environments-reference#runner-cli-flags). Para guardar los commits en esos casos, haz push de `HEAD` a una rama de rescate desde un [hook `post-session`](/docs/es/self-hosted-environments-configuration#post-session). Si partes del ejemplo de esa sección, haz que haga push incluso cuando no haya nada sin commit, porque solo hace push después de un commit de instantánea.

702 710 

703<h3 id="report-an-issue">711<h3 id="report-an-issue">

704 Reportar un problema712 Reportar un problema


745 Si cada llamada comienza a fallar aproximadamente 30 minutos en una sesión, un script contenedor probablemente ha cortado stdin de la sesión, por lo que las rotaciones de token no pueden alcanzarlo; consulte [Keep stdin and file descriptor 3 attached](/docs/es/self-hosted-environments-configuration#keep-stdin-and-file-descriptor-3-attached).753 Si cada llamada comienza a fallar aproximadamente 30 minutos en una sesión, un script contenedor probablemente ha cortado stdin de la sesión, por lo que las rotaciones de token no pueden alcanzarlo; consulte [Keep stdin and file descriptor 3 attached](/docs/es/self-hosted-environments-configuration#keep-stdin-and-file-descriptor-3-attached).

746 754 

747 Antes de v2.1.274, el runner dejaba de reintentar una obtención fallida después de algunos intentos y esperaba la siguiente programada. Un turno fallido no desencadenaba una obtención, por lo que cada turno fallaba con un 401 hasta la siguiente obtención programada.755 Antes de v2.1.274, el runner dejaba de reintentar una obtención fallida después de algunos intentos y esperaba la siguiente programada. Un turno fallido no desencadenaba una obtención, por lo que cada turno fallaba con un 401 hasta la siguiente obtención programada.

756* **Un turno falla en claude.ai/code con `This model needs a newer version of Claude Code`**: la versión de Claude Code con la que tus runners inician sesiones es más antigua que la que requiere el modelo de la sesión, así que la API [rechaza la solicitud](/docs/es/errors#claude-code-does-not-support-this-model). Actualiza los runners a la versión que pide el mensaje, o a una posterior, como se describe en [Fijar la versión](#pin-the-version). Mientras tanto, las personas pueden elegir otro modelo en la sesión.

748* **El pod se mata a mitad del drenaje**: aumente `terminationGracePeriodSeconds` al menos al valor que el runner registra al inicio. Consulte [Shutdown timing](#shutdown-timing).757* **El pod se mata a mitad del drenaje**: aumente `terminationGracePeriodSeconds` al menos al valor que el runner registra al inicio. Consulte [Shutdown timing](#shutdown-timing).

749 758 

750Una vez que se inicializa el registro, el runner escribe su registro de ciclo de vida, incluidas las líneas `[runner:fatal]`, en stdout, y la salida de depuración en stderr, todo como líneas de texto sin formato en lugar de JSON. Las fallas del directorio base descritas en las entradas de solución de problemas anteriores se imprimen en stderr antes de ese punto. Captura ambas secuencias con `--log-file`, que también permite que `self-hosted-runner doctor` las siga, o con la recopilación de registros de tu plataforma.759Una vez que se inicializa el registro, el runner escribe su registro de ciclo de vida, incluidas las líneas `[runner:fatal]`, en stdout, y la salida de depuración en stderr, todo como líneas de texto sin formato en lugar de JSON. Las fallas del directorio base descritas en las entradas de solución de problemas anteriores se imprimen en stderr antes de ese punto. Captura ambas secuencias con `--log-file`, que también permite que `self-hosted-runner doctor` las siga, o con la recopilación de registros de tu plataforma.

Details

201* La configuración en caché persiste a través de fallos de red. Si la búsqueda de inicio falla, Claude Code advierte en sesiones interactivas que la política en caché está en vigor201* La configuración en caché persiste a través de fallos de red. Si la búsqueda de inicio falla, Claude Code advierte en sesiones interactivas que la política en caché está en vigor

202* Hasta que una búsqueda tenga éxito, los valores retenidos al inicio permanecen retenidos202* Hasta que una búsqueda tenga éxito, los valores retenidos al inicio permanecen retenidos

203 203 

204Claude Code retiene varias categorías de variables en el bloque `env` en caché hasta que el servidor confirma la carga útil para la sesión. Esto evita que un valor de proxy, autoridad de certificado, punto final o credencial en caché redirija, intercepte o reautentique la búsqueda de configuración que confirma la carga útil. El endurecimiento se aplica solo al caché de configuración obtenido del servidor: la [configuración administrada por endpoint](/docs/es/managed-settings#delivery-mechanisms) implementada a través de MDM o `managed-settings.json` no se ve afectada. La retención requiere Claude Code v2.1.198 o posterior; antes de v2.1.198, todo el bloque `env` en caché se aplica al inicio. Las categorías retenidas incluyen:204Claude Code retiene varias categorías de variables en el bloque `env` en caché hasta que el servidor confirma el payload para la sesión. Esto evita que un valor de proxy, autoridad de certificación, endpoint o credencial en caché redirija, intercepte o reautentique la búsqueda de configuración que confirma el payload. El endurecimiento se aplica solo a la caché de configuración obtenida del servidor: la [configuración administrada por endpoint](/docs/es/managed-settings#delivery-mechanisms) desplegada a través de MDM o `managed-settings.json` no se ve afectada. Las categorías retenidas incluyen:

205 205 

206* Configuración de proxy y TLS, como `HTTPS_PROXY`, `NODE_EXTRA_CA_CERTS` y las variables de certificado de cliente mTLS `CLAUDE_CODE_CLIENT_CERT` y `CLAUDE_CODE_CLIENT_KEY`206* Configuración de proxy y TLS, como `HTTPS_PROXY`, `NODE_EXTRA_CA_CERTS` y las variables de certificado de cliente mTLS `CLAUDE_CODE_CLIENT_CERT` y `CLAUDE_CODE_CLIENT_KEY`

207* Enrutamiento de API y selección de proveedor, incluido `ANTHROPIC_BASE_URL`, las variables de selección de proveedor como `CLAUDE_CODE_USE_BEDROCK` y `CLAUDE_CODE_USE_VERTEX`, y las URL de punto final del proveedor como `ANTHROPIC_BEDROCK_BASE_URL`207* Enrutamiento de API y selección de proveedor, incluido `ANTHROPIC_BASE_URL`, las variables de selección de proveedor como `CLAUDE_CODE_USE_BEDROCK` y `CLAUDE_CODE_USE_VERTEX`, y las URL de punto final del proveedor como `ANTHROPIC_BEDROCK_BASE_URL`


312 312 

313Claude Code no siempre puede mostrar el diálogo. Cada caso a continuación dice qué configuración se aplica cuando no puede y cuándo ve el diálogo a continuación:313Claude Code no siempre puede mostrar el diálogo. Cada caso a continuación dice qué configuración se aplica cuando no puede y cuándo ve el diálogo a continuación:

314 314 

315* **Una sesión interactiva que no puede mostrar el diálogo**: Claude Code no aplica la configuración entregada y mantiene la última configuración aprobada. El diálogo aparece en la siguiente sesión que puede mostrarlo. Requiere Claude Code v2.1.211 o posterior.315* **Una sesión interactiva que no puede mostrar el diálogo**: Claude Code no aplica la configuración entregada y mantiene la última configuración aprobada. El diálogo aparece en la siguiente sesión que pueda mostrarlo.

316* **`claude install` o `claude update`**: Claude Code no muestra el diálogo durante ninguno de los comandos. El comando se ejecuta con la última configuración aprobada, y el diálogo aparece en su siguiente sesión interactiva. Si Claude Code espera la búsqueda de configuración al inicio, como con [`forceRemoteSettingsRefresh`](#enforce-fail-closed-startup) establecido o en una implementación de [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway), muestra el diálogo durante el comando en su lugar, y una ejecución de instalación desde una tubería falla; consulte [`Raw mode is not supported` durante la instalación](/docs/es/troubleshoot-install#raw-mode-is-not-supported-during-install). Antes de v2.1.246, Claude Code intentaba mostrar el diálogo durante estos comandos también.316* **`claude install` o `claude update`**: Claude Code no muestra el diálogo durante ninguno de los comandos. El comando se ejecuta con la última configuración aprobada, y el diálogo aparece en su siguiente sesión interactiva. Si Claude Code espera la búsqueda de configuración al inicio, como con [`forceRemoteSettingsRefresh`](#enforce-fail-closed-startup) establecido o en una implementación de [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway), muestra el diálogo durante el comando en su lugar, y una ejecución de instalación desde una tubería falla; consulte [`Raw mode is not supported` durante la instalación](/docs/es/troubleshoot-install#raw-mode-is-not-supported-during-install). Antes de v2.1.246, Claude Code intentaba mostrar el diálogo durante estos comandos también.

317* **Un error cierra el diálogo antes de que responda**: Claude Code no aplica la configuración entregada y mantiene la última configuración aprobada. Lo muestra nuevamente en la siguiente sesión que puede mostrarlo.317* **Un error cierra el diálogo antes de que responda**: Claude Code no aplica la configuración entregada y mantiene la última configuración aprobada. Lo muestra nuevamente en la siguiente sesión que puede mostrarlo.

318* **Una ejecución no interactiva**, como `claude -p`, una sesión del SDK del Agente, o una sesión en el panel de chat de la extensión VS Code o la pestaña Code de la aplicación de escritorio: Claude Code no puede mostrar el diálogo, por lo que cuando la configuración entregada requeriría aprobación, la aplica solo para esa ejecución. No la registra como aprobada ni la escribe en el [caché local](#fetch-and-caching-behavior), y la siguiente sesión interactiva muestra el diálogo. Hasta que un usuario apruebe en una sesión interactiva, cada ejecución no interactiva obtiene la configuración nuevamente al inicio. Antes de v2.1.207, una ejecución no interactiva guardaba la configuración como aprobada, por lo que las sesiones interactivas posteriores nunca mostraban el diálogo para ellas.318* **Una ejecución no interactiva**, como `claude -p`, una sesión del SDK del Agente, o una sesión en el panel de chat de la extensión VS Code o la pestaña Code de la aplicación de escritorio: Claude Code no puede mostrar el diálogo, por lo que cuando la configuración entregada requeriría aprobación, la aplica solo para esa ejecución. No la registra como aprobada ni la escribe en el [caché local](#fetch-and-caching-behavior), y la siguiente sesión interactiva muestra el diálogo. Hasta que un usuario apruebe en una sesión interactiva, cada ejecución no interactiva obtiene la configuración nuevamente al inicio. Antes de v2.1.207, una ejecución no interactiva guardaba la configuración como aprobada, por lo que las sesiones interactivas posteriores nunca mostraban el diálogo para ellas.

sessions.md +4 −3

Details

51 51 

52Cuando Claude Code carga una conversación desde su transcripción, la sesión reanudada restaura la conversación junto con el estado guardado en ella:52Cuando Claude Code carga una conversación desde su transcripción, la sesión reanudada restaura la conversación junto con el estado guardado en ella:

53 53 

54* Historial de conversación: el historial completo, incluidas las llamadas a herramientas y los resultados. Una herramienta que aún se estaba ejecutando cuando terminó el proceso anterior, por ejemplo en un bloqueo, no termina ni se ejecuta de nuevo cuando reanudas. Claude ve la llamada marcada como cortada antes de que se registrara su resultado y se le indica que verifique si tuvo efecto antes de ejecutarla de nuevo, a menos que [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/es/env-vars#variables) esté configurado.54* Historial de conversación: los mensajes, las llamadas a herramientas y los resultados. Si la sesión fue [compactada](/docs/es/context-window#what-survives-compaction), la conversación se abre en una fila `Conversation compacted`. Claude continúa con el resumen de la última compactación, los mensajes que esa compactación dejó sin resumir y todos los mensajes desde entonces. Los mensajes que resumió la última compactación no se cargan de nuevo.

55* Llamadas a herramientas interrumpidas: una herramienta que aún se estaba ejecutando cuando terminó el proceso anterior, por ejemplo en un bloqueo, no termina ni se ejecuta de nuevo cuando reanudas. Claude ve la llamada marcada como cortada antes de que se registrara su resultado y se le indica que verifique si tuvo efecto antes de ejecutarla de nuevo, a menos que [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/es/env-vars#variables) esté configurado.

55* Modelo: la sesión continúa en el modelo que estaba usando, excepto en los casos descritos en [Configurar tu modelo](/docs/es/model-config#setting-your-model).56* Modelo: la sesión continúa en el modelo que estaba usando, excepto en los casos descritos en [Configurar tu modelo](/docs/es/model-config#setting-your-model).

56* Agente: una sesión iniciada con [`--agent`](/docs/es/sub-agents#invoke-subagents-explicitly) o el ajuste `agent` continúa como ese agente, manteniendo sus restricciones de herramientas y modelo. Pasa `--agent` al reanudar para elegir uno diferente; para el prompt del sistema en cualquier caso, consulta [Flags del prompt del sistema en conversaciones reanudadas](/docs/es/cli-reference#system-prompt-flags-in-resumed-conversations). Claude Code busca el agente en dos lugares: el directorio original de la sesión, siempre que hayas [confiado en ese espacio de trabajo](/docs/es/permissions#project-allow-rules-and-workspace-trust), y luego el directorio desde el que reanudas, por lo que un agente con alcance de proyecto aún se carga cuando reanudas desde otro directorio. Si Claude Code no encuentra el agente en ninguno de los dos lugares, la sesión se reanuda con las herramientas predeterminadas y muestra una [advertencia que nombra el agente](/docs/es/errors#session-agent-no-longer-available).57* Agente: una sesión iniciada con [`--agent`](/docs/es/sub-agents#invoke-subagents-explicitly) o el ajuste `agent` continúa como ese agente, manteniendo sus restricciones de herramientas y modelo. Pasa `--agent` al reanudar para elegir uno diferente; para el prompt del sistema en cualquier caso, consulta [Flags del prompt del sistema en conversaciones reanudadas](/docs/es/cli-reference#system-prompt-flags-in-resumed-conversations). Claude Code busca el agente en dos lugares: el directorio original de la sesión, siempre que hayas [confiado en ese espacio de trabajo](/docs/es/permissions#project-allow-rules-and-workspace-trust), y luego el directorio desde el que reanudas, por lo que un agente con alcance de proyecto aún se carga cuando reanudas desde otro directorio. Si Claude Code no encuentra el agente en ninguno de los dos lugares, la sesión se reanuda con las herramientas predeterminadas y muestra una [advertencia que nombra el agente](/docs/es/errors#session-agent-no-longer-available).

57* Modo de permisos: si reanudas desde una terminal con `claude --continue`, `claude --resume <session-id>` o `claude --resume <name>` cuando el nombre coincide con una sesión, sin `-p`, Claude Code restaura el modo de permisos en el que estaba la sesión, excepto en los casos en [modo de permisos al reanudar](#permission-mode-on-resume), que también cubre el selector de sesiones, `/resume` y reanudar con `claude -p`. Pasa `--permission-mode` o `--dangerously-skip-permissions` para sobrescribir el modo restaurado.58* Modo de permisos: si reanudas desde una terminal con `claude --continue`, `claude --resume <session-id>` o `claude --resume <name>` cuando el nombre coincide con una sesión, sin `-p`, Claude Code restaura el modo de permisos en el que estaba la sesión, excepto en los casos en [modo de permisos al reanudar](#permission-mode-on-resume), que también cubre el selector de sesiones, `/resume` y reanudar con `claude -p`. Pasa `--permission-mode` o `--dangerously-skip-permissions` para sobrescribir el modo restaurado.


162| Desde el selector de sesiones | Resalte una sesión y presione `Ctrl+R` |163| Desde el selector de sesiones | Resalte una sesión y presione `Ctrl+R` |

163| Al aceptar un plan | Aceptar un plan en [modo de plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode) da a la sesión un título generado basado en el plan a menos que ya la haya nombrado |164| Al aceptar un plan | Aceptar un plan en [modo de plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode) da a la sesión un título generado basado en el plan a menos que ya la haya nombrado |

164| Desde claude.ai o la aplicación Claude | Renombre una [sesión de Control Remoto](/docs/es/remote-control#connect-from-another-device); Claude Code aplica el mismo nombre en la CLI. Requiere Claude Code v2.1.221 o posterior |165| Desde claude.ai o la aplicación Claude | Renombre una [sesión de Control Remoto](/docs/es/remote-control#connect-from-another-device); Claude Code aplica el mismo nombre en la CLI. Requiere Claude Code v2.1.221 o posterior |

165| Desde la aplicación de escritorio | Renombre una sesión en la [aplicación de escritorio](/docs/es/desktop#work-in-parallel-with-sessions) |166| Desde la aplicación de escritorio | Renombra una sesión en la [aplicación de escritorio](/docs/es/desktop#organize-and-find-sessions) |

166 167 

167Una vez que nombre una sesión a través de una ruta CLI o desde claude.ai, vuelva a ella con `claude --resume <name>` o `/resume <name>`; una sesión de la aplicación de escritorio se reanuda en la [aplicación de escritorio](/docs/es/desktop#work-in-parallel-with-sessions). Vea [Reanude una sesión](#resume-a-session) para saber cómo se comporta la resolución de nombres en worktrees.168Una vez que nombre una sesión a través de una ruta CLI o desde claude.ai, vuelva a ella con `claude --resume <name>` o `/resume <name>`; una sesión de la aplicación de escritorio se reanuda en la [aplicación de escritorio](/docs/es/desktop#work-in-parallel-with-sessions). Vea [Reanude una sesión](#resume-a-session) para saber cómo se comporta la resolución de nombres en worktrees.

168 169 

169Las sesiones que no nombra aún obtienen dos etiquetas que Claude Code asigna. Solo el título generado funciona como identificador de reanudación:170Las sesiones que no nombra aún obtienen dos etiquetas que Claude Code asigna. Solo el título generado funciona como identificador de reanudación:

170 171 

171* Nombre de visualización predeterminado: las sesiones interactivas que nunca nombras aún obtienen un nombre de visualización predeterminado cuando se inician. Requiere Claude Code v2.1.196 o posterior. El valor predeterminado combina el nombre del directorio de trabajo con un sufijo de dos caracteres, por ejemplo `my-app-3f`, e identifica la sesión en los listados de sesiones en ejecución, como la [vista de agente](/docs/es/agent-view) y la salida de `claude agents --json`. El valor predeterminado no es un identificador para reanudar. Si lo pasas a `claude --resume` o `/resume`, Claude Code no encuentra la sesión.172* Nombre de visualización predeterminado: las sesiones interactivas que nunca nombras aún obtienen un nombre de visualización predeterminado cuando se inician. El valor predeterminado combina el nombre del directorio de trabajo con un sufijo de dos caracteres, por ejemplo `my-app-3f`, e identifica la sesión en los listados de sesiones en ejecución, como la [vista de agente](/docs/es/agent-view) y la salida de `claude agents --json`. El valor predeterminado no es un identificador para reanudar. Si lo pasas a `claude --resume` o `/resume`, Claude Code no encuentra la sesión.

172* Título generado: si no nombra una sesión, Claude Code genera un título de sesión para ella. El título es un resumen breve de su primer indicador, escrito por una solicitud en segundo plano al modelo pequeño/rápido, normalmente un modelo de clase Haiku. Una ejecución `claude -p` que inicia directamente desde un shell o script no obtiene uno.173* Título generado: si no nombra una sesión, Claude Code genera un título de sesión para ella. El título es un resumen breve de su primer indicador, escrito por una solicitud en segundo plano al modelo pequeño/rápido, normalmente un modelo de clase Haiku. Una ejecución `claude -p` que inicia directamente desde un shell o script no obtiene uno.

173 174 

174 Aceptar un plan reemplaza el título generado con un título basado en el plan. Puedes pasar cualquiera de los dos títulos a `claude --resume` o `/resume`, y Claude Code lo resuelve de la misma manera que un nombre que tú estableces.175 Aceptar un plan reemplaza el título generado con un título basado en el plan. Puedes pasar cualquiera de los dos títulos a `claude --resume` o `/resume`, y Claude Code lo resuelve de la misma manera que un nombre que tú estableces.

Details

795| [`spinnerTipsEnabled`](#spinnertipsenabled) | Oculta los consejos en el spinner mientras Claude trabaja | Interfaz y terminal | Any file |795| [`spinnerTipsEnabled`](#spinnertipsenabled) | Oculta los consejos en el spinner mientras Claude trabaja | Interfaz y terminal | Any file |

796| [`spinnerTipsOverride`](#spinnertipsoverride) | Agrega tus propios consejos a la rotación del spinner, o reemplaza los consejos integrados | Interfaz y terminal | Any file |796| [`spinnerTipsOverride`](#spinnertipsoverride) | Agrega tus propios consejos a la rotación del spinner, o reemplaza los consejos integrados | Interfaz y terminal | Any file |

797| [`spinnerVerbs`](#spinnerverbs) | Agrega o reemplaza los verbos que se muestran mientras se ejecuta un turno | Interfaz y terminal | Any file |797| [`spinnerVerbs`](#spinnerverbs) | Agrega o reemplaza los verbos que se muestran mientras se ejecuta un turno | Interfaz y terminal | Any file |

798| [`sshConfigs`](#sshconfigs) | Agrega [conexiones SSH](/docs/es/desktop#pre-configure-ssh-connections-for-your-team) al menú desplegable de entornos de Desktop | Remoto, escritorio y notificaciones | User or managed |798| [`sshConfigs`](#sshconfigs) | Agrega [conexiones SSH](/docs/es/desktop#pre-configure-ssh-connections-for-your-team) al selector de entornos de Desktop | Remoto, escritorio y notificaciones | User or managed |

799| [`sshHostAllowlist`](#sshhostallowlist) | Limita a qué hosts pueden conectarse las [sesiones SSH de Desktop](/docs/es/desktop#restrict-which-ssh-hosts-users-can-connect-to) | Remoto, escritorio y notificaciones | Managed |799| [`sshHostAllowlist`](#sshhostallowlist) | Limita a qué hosts pueden conectarse las [sesiones SSH de Desktop](/docs/es/desktop#restrict-which-ssh-hosts-users-can-connect-to) | Remoto, escritorio y notificaciones | Managed |

800| [`statusLine`](#statusline) | Ejecuta tu propio comando para mostrar una [línea de estado](/docs/es/statusline) debajo del prompt | Interfaz y terminal | Any file |800| [`statusLine`](#statusline) | Ejecuta tu propio comando para mostrar una [línea de estado](/docs/es/statusline) debajo del prompt | Interfaz y terminal | Any file |

801| [`strictKnownMarketplaces`](#strictknownmarketplaces) | Define una lista de permitidos de las fuentes de [marketplaces](/docs/es/plugins/overview) que los usuarios pueden agregar y desde las que pueden instalar | Plugins y skills | Managed |801| [`strictKnownMarketplaces`](#strictknownmarketplaces) | Define una lista de permitidos de las fuentes de [marketplaces](/docs/es/plugins/overview) que los usuarios pueden agregar y desde las que pueden instalar | Plugins y skills | Managed |


4096 `vimInsertModeRemaps`4096 `vimInsertModeRemaps`

4097</h3>4097</h3>

4098 4098 

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

4100 4100 

4101* **Scope**: [`User or managed`](#scopes). Un repositorio no puede remapear tus pulsaciones de tecla.4101* **Scope**: [`User or managed`](#scopes). Un repositorio no puede remapear tus pulsaciones de tecla.

4102* **Type**: objeto mapeando una secuencia de dos caracteres a `"<Esc>"`4102* **Type**: objeto mapeando una secuencia de dos caracteres a `"<Esc>"`


4110}4110}

4111```4111```

4112 4112 

4113No tiene efecto a menos que `editorMode` sea `"vim"`. Consulta [Remapea secuencias de tecla de modo INSERT](/docs/es/interactive-mode#remap-insert-mode-key-sequences). Requiere Claude Code v2.1.208 o posterior.4113No tiene efecto a menos que `editorMode` sea `"vim"`. Consulta [Remapea secuencias de tecla de modo INSERT](/docs/es/interactive-mode#remap-insert-mode-key-sequences).

4114 4114 

4115<h3 id="voice">4115<h3 id="voice">

4116 `voice`4116 `voice`


5850 `disableDesktopLocalSessions`5850 `disableDesktopLocalSessions`

5851</h3>5851</h3>

5852 5852 

5853Desactive las sesiones de Code que se ejecutan en el dispositivo en la [aplicación de escritorio](/docs/es/desktop#local-sessions-on-managed-devices), para implementaciones donde los desarrolladores deben trabajar en máquinas remotas a través de SSH. En la pestaña Code, el entorno **Local** permanece en el menú desplegable de entornos pero está atenuado y no se puede seleccionar, con una información sobre herramientas que dice que su organización lo desactivó; en Windows, la entrada WSL está atenuada de la misma manera, aunque si las sesiones WSL se ejecutan en un dispositivo administrado o no se [rige por separado](/docs/es/admin-setup#wsl-sessions-in-claude-code-desktop). Las nuevas sesiones tienen como valor predeterminado la primera [conexión SSH](/docs/es/desktop#ssh-sessions) si una está configurada, y la aplicación se niega a iniciar o reanudar una sesión en el dispositivo, incluida una conexión SSH de vuelta a la misma máquina. Las sesiones SSH a otros hosts y las sesiones en la nube no se ven afectadas. La aplicación de escritorio lee esta clave; la CLI del terminal la ignora. Requiere Claude Desktop v1.37937.0 o posterior.5853Desactiva las sesiones de Code que se ejecutan en el dispositivo en la [aplicación de escritorio](/docs/es/desktop#local-sessions-on-managed-devices), para despliegues donde los desarrolladores deben trabajar en máquinas remotas a través de SSH. Con la clave establecida en `true`, los usuarios ven esto en la pestaña Code:

5854 

5855* **Selector de entorno**: la entrada del equipo del usuario aparece atenuada y no se puede seleccionar, con la información sobre herramientas **Disabled by your organization**. En Windows, la entrada WSL aparece atenuada de la misma manera, aunque si las sesiones WSL se ejecutan o no en un dispositivo administrado se [rige por separado](/docs/es/admin-setup#wsl-sessions-in-claude-code-desktop).

5856* **Sesiones nuevas**: usan de forma predeterminada la primera [conexión SSH](/docs/es/desktop#ssh-sessions) si hay una configurada

5857* **Sesiones en el dispositivo**: la aplicación se niega a iniciar o reanudar una sesión en el dispositivo, incluida una conexión SSH de vuelta a la misma máquina

5858* **Sesiones SSH a otros hosts y sesiones en la nube**: no se ven afectadas

5859 

5860La aplicación de escritorio lee esta clave; la CLI de la terminal la ignora. Requiere Claude Desktop v1.37937.0 o posterior.

5854 5861 

5855* **Scope**: [`Managed`](#scopes). De forma predeterminada, la aplicación de escritorio lee la clave desde [una fuente administrada](/docs/es/managed-settings#how-claude-code-combines-managed-sources).5862* **Scope**: [`Managed`](#scopes). De forma predeterminada, la aplicación de escritorio lee la clave desde [una fuente administrada](/docs/es/managed-settings#how-claude-code-combines-managed-sources).

5856* **Type**: Boolean; solo el Boolean JSON `true` tiene efecto5863* **Type**: Boolean; solo el Boolean JSON `true` tiene efecto


5997 `sshConfigs`6004 `sshConfigs`

5998</h3>6005</h3>

5999 6006 

6000Agrega conexiones SSH al menú desplegable de entornos de [Desktop](/docs/es/desktop#pre-configure-ssh-connections-for-your-team). Los administradores lo usan para distribuir conexiones compartidas a un equipo. Las conexiones que defines en la configuración administrada se muestran como administradas. Los usuarios pueden seleccionarlas y [establecer su propia **Worktree folder**](/docs/es/desktop#choose-where-ssh-session-worktrees-go) para ellas, pero no pueden editar nada más ni eliminarlas en la aplicación.6007Agrega conexiones SSH al selector de entornos de [Desktop](/docs/es/desktop#pre-configure-ssh-connections-for-your-team). Los administradores usan `sshConfigs` para distribuir conexiones compartidas a un equipo. Los usuarios pueden seleccionar una conexión administrada y [establecer su propia **Worktree folder**](/docs/es/desktop#set-the-worktree-folder-on-an-existing-connection) para ella. No pueden editar sus otros campos ni eliminarla en la aplicación.

6001 6008 

6002* **Scope**: [`User or managed`](#scopes). La aplicación de escritorio lee esta clave. De forma predeterminada, lee las conexiones administradas desde [una fuente administrada](/docs/es/managed-settings#how-claude-code-combines-managed-sources).6009* **Scope**: [`User or managed`](#scopes). La aplicación de escritorio lee esta clave. De forma predeterminada, lee las conexiones administradas desde [una fuente administrada](/docs/es/managed-settings#how-claude-code-combines-managed-sources).

6003* **Type**: matriz de objetos, cada uno con `id`, `name` y `sshHost` requeridos y `sshPort` y `sshIdentityFile` opcionales6010* **Type**: matriz de objetos, cada uno con `id`, `name` y `sshHost` requeridos y `sshPort` y `sshIdentityFile` opcionales

statusline.md +2 −2

Details

199| `workspace.added_dirs` | Directorios adicionales agregados a través de `/add-dir` o `--add-dir`. Array vacío si no se ha agregado ninguno |199| `workspace.added_dirs` | Directorios adicionales agregados a través de `/add-dir` o `--add-dir`. Array vacío si no se ha agregado ninguno |

200| `workspace.git_worktree` | Nombre de git worktree cuando el directorio actual está dentro de un worktree vinculado creado con `git worktree add`. Ausente en el árbol de trabajo principal. Poblado para cualquier git worktree, a diferencia de `worktree.*`, que está presente solo mientras la sesión está en una [sesión de worktree](/docs/es/worktrees) |200| `workspace.git_worktree` | Nombre de git worktree cuando el directorio actual está dentro de un worktree vinculado creado con `git worktree add`. Ausente en el árbol de trabajo principal. Poblado para cualquier git worktree, a diferencia de `worktree.*`, que está presente solo mientras la sesión está en una [sesión de worktree](/docs/es/worktrees) |

201| `workspace.repo.host`, `workspace.repo.owner`, `workspace.repo.name` | Identidad del repositorio analizada desde el remoto `origin`, por ejemplo, `"github.com"`, `"anthropics"`, `"claude-code"`. Ausente fuera de un repositorio git o cuando no hay un remoto `origin` configurado. Para un proyecto de gitlab.com anidado en subgrupos, `owner` es la ruta de espacio de nombres completa con barras, como `"group/subgroup"`. Antes de v2.1.260, `workspace.repo` estaba ausente para estos proyectos |201| `workspace.repo.host`, `workspace.repo.owner`, `workspace.repo.name` | Identidad del repositorio analizada desde el remoto `origin`, por ejemplo, `"github.com"`, `"anthropics"`, `"claude-code"`. Ausente fuera de un repositorio git o cuando no hay un remoto `origin` configurado. Para un proyecto de gitlab.com anidado en subgrupos, `owner` es la ruta de espacio de nombres completa con barras, como `"group/subgroup"`. Antes de v2.1.260, `workspace.repo` estaba ausente para estos proyectos |

202| `cost.total_cost_usd` | Costo total estimado de la sesión en USD, calculado del lado del cliente al precio de lista a menos que una tabla [`modelPricing`](/docs/es/settings-reference#modelpricing) esté en vigor. Puede diferir de tu factura real. Se reinicia a \$0 cuando `/clear` inicia una nueva sesión. Antes de v2.1.211, el total se mantenía después de `/clear` |202| `cost.total_cost_usd` | Costo estimado de la sesión en USD, calculado del lado del cliente al precio de lista a menos que una tabla [`modelPricing`](/docs/es/settings-reference#modelpricing) esté en vigor. Puede diferir de tu factura real. Se reinicia a \$0 cuando `/clear` inicia una nueva sesión |

203| `cost.total_duration_ms` | Tiempo total transcurrido desde que comenzó la sesión, en milisegundos. Se acumula entre reanudaciones y no incluye el tiempo mientras la sesión no está en ejecución |203| `cost.total_duration_ms` | Tiempo total transcurrido desde que comenzó la sesión, en milisegundos. Se acumula entre reanudaciones y no incluye el tiempo mientras la sesión no está en ejecución |

204| `cost.total_api_duration_ms` | Tiempo total dedicado a esperar respuestas de API en milisegundos |204| `cost.total_api_duration_ms` | Tiempo total dedicado a esperar respuestas de API en milisegundos |

205| `cost.total_lines_added`, `cost.total_lines_removed` | Líneas de código cambiadas |205| `cost.total_lines_added`, `cost.total_lines_removed` | Líneas de código cambiadas |


1199| `label` | string | Resumen breve del progreso de la tarea cuando Claude Code tiene uno; de lo contrario, el mismo texto que `description` |1199| `label` | string | Resumen breve del progreso de la tarea cuando Claude Code tiene uno; de lo contrario, el mismo texto que `description` |

1200| `startTime` | number | Momento en que comenzó la tarea, en milisegundos desde la época Unix |1200| `startTime` | number | Momento en que comenzó la tarea, en milisegundos desde la época Unix |

1201| `model` | string, opcional | ID del modelo resuelto en el que se ejecuta la tarea. Se omite hasta que el modelo se resuelve |1201| `model` | string, opcional | ID del modelo resuelto en el que se ejecuta la tarea. Se omite hasta que el modelo se resuelve |

1202| `effort` | string o number, opcional | Esfuerzo de razonamiento establecido para el subagente en su [frontmatter de definición](/docs/es/sub-agents#supported-frontmatter-fields) o en la invocación individual: `low`, `medium`, `high`, `xhigh`, `max` o un presupuesto de tokens numérico. Es el valor configurado, y el esfuerzo que Claude Code aplica puede diferir cuando el modelo no admite ese nivel. Se omite cuando no se establece ningún esfuerzo. Requiere Claude Code v2.1.213 o posterior |1202| `effort` | string o number, opcional | Esfuerzo de razonamiento establecido para el subagente en su [frontmatter de definición](/docs/es/sub-agents#supported-frontmatter-fields) o en la invocación individual: `low`, `medium`, `high`, `xhigh`, `max` o un presupuesto de tokens numérico. Es el valor configurado, y el esfuerzo que Claude Code aplica puede diferir cuando el modelo no admite ese nivel. Se omite cuando no se establece ningún esfuerzo |

1203| `contextWindowSize` | number, opcional | Ventana de contexto de `model` en tokens, calculada de la misma manera que [`context_window.context_window_size`](#context-window-fields) de la línea de estado principal, por lo que puedes renderizar un porcentaje por fila desde `tokenCount`. Se omite cuando se omite `model` |1203| `contextWindowSize` | number, opcional | Ventana de contexto de `model` en tokens, calculada de la misma manera que [`context_window.context_window_size`](#context-window-fields) de la línea de estado principal, por lo que puedes renderizar un porcentaje por fila desde `tokenCount`. Se omite cuando se omite `model` |

1204| `tokenCount` | number | Recuento acumulado de tokens del subagente, la cifra que muestra la fila predeterminada |1204| `tokenCount` | number | Recuento acumulado de tokens del subagente, la cifra que muestra la fila predeterminada |

1205| `tokenSamples` | array de numbers | Hasta las últimas 16 lecturas de `tokenCount`, una por tick de actualización, de la más antigua a la más reciente y terminando con la actual |1205| `tokenSamples` | array de numbers | Hasta las últimas 16 lecturas de `tokenCount`, una por tick de actualización, de la más antigua a la más reciente y terminando con la actual |

sub-agents.md +53 −35

Details

287 287 

288Un subagente con `isolation: worktree` ejecuta sus comandos Bash y PowerShell dentro de su worktree. Un comando cuyo directorio de trabajo se resuelve a tu checkout principal en su lugar, por ejemplo porque el directorio del worktree fue eliminado mientras el subagente estaba ejecutándose, falla con un error.288Un subagente con `isolation: worktree` ejecuta sus comandos Bash y PowerShell dentro de su worktree. Un comando cuyo directorio de trabajo se resuelve a tu checkout principal en su lugar, por ejemplo porque el directorio del worktree fue eliminado mientras el subagente estaba ejecutándose, falla con un error.

289 289 

290Esta verificación de directorio de trabajo cubre todo el repositorio que contiene el directorio desde el que lanzó Claude Code. Cuando su sesión se ejecuta en un [worktree](/docs/es/worktrees) vinculado de su propiedad, la verificación también cubre el checkout principal desde el que ese worktree está vinculado. Antes de v2.1.210, la verificación cubría solo el directorio de lanzamiento en sí. Un comando cuyo directorio de trabajo se resolvía en otro lugar en el mismo repositorio, como la raíz del repositorio cuando lanzó Claude Code desde un subdirectorio de monorepo, se ejecutaba allí en lugar de fallar.290Esta verificación de directorio de trabajo cubre todo el repositorio que contiene el directorio desde el que lanzaste Claude Code. Cuando tu sesión se ejecuta en un [worktree](/docs/es/worktrees) vinculado propio, la verificación también cubre el checkout principal desde el que ese worktree está vinculado.

291 291 

292Para comandos Bash, Claude Code también verifica el comando en sí de dos maneras:292Para comandos Bash, Claude Code también verifica el comando en sí de dos maneras:

293 293 


325| `mcpServers` | No | [Servidores MCP](/docs/es/mcp) disponibles para este subagente. Cada entrada es un nombre de servidor que hace referencia a un servidor ya configurado (por ejemplo, `"slack"`) o una definición en línea con el nombre del servidor como clave y una [configuración completa del servidor MCP](/docs/es/mcp#installing-mcp-servers) como valor. Se ignora para [subagentes de plugin](#choose-the-subagent-scope) |325| `mcpServers` | No | [Servidores MCP](/docs/es/mcp) disponibles para este subagente. Cada entrada es un nombre de servidor que hace referencia a un servidor ya configurado (por ejemplo, `"slack"`) o una definición en línea con el nombre del servidor como clave y una [configuración completa del servidor MCP](/docs/es/mcp#installing-mcp-servers) como valor. Se ignora para [subagentes de plugin](#choose-the-subagent-scope) |

326| `hooks` | No | [Hooks de ciclo de vida](#define-hooks-for-subagents) limitados a este subagente. Se ignora para [subagentes de plugin](#choose-the-subagent-scope) |326| `hooks` | No | [Hooks de ciclo de vida](#define-hooks-for-subagents) limitados a este subagente. Se ignora para [subagentes de plugin](#choose-the-subagent-scope) |

327| `memory` | No | [Alcance de memoria persistente](#enable-persistent-memory): `user`, `project`, o `local`. Habilita aprendizaje entre sesiones |327| `memory` | No | [Alcance de memoria persistente](#enable-persistent-memory): `user`, `project`, o `local`. Habilita aprendizaje entre sesiones |

328| `background` | No | Establecer en `true` para mantener este subagente en segundo plano incluso cuando Claude pide ejecutarlo en primer plano. Donde [fork mode](#turn-fork-mode-on-or-off) está activado, Claude Code ya ejecuta los subagentes que Claude genera [en segundo plano](#run-subagents-in-foreground-or-background) |328| `background` | No | Establecer en `true` para mantener este subagente en segundo plano incluso cuando Claude pide esperarlo. De forma predeterminada, los subagentes que Claude genera desde la conversación principal ya [comienzan en segundo plano](#run-subagents-in-foreground-or-background) |

329| `omitClaudeMd` | No | Establecer en `true` para iniciar este subagente sin los archivos CLAUDE.md de usuario, proyecto y local en su [contexto inicial](#what-loads-at-startup); los [archivos de política administrada](/docs/es/memory#how-claude-md-files-load) aún se cargan, excepto para [subagentes administrados](#choose-the-subagent-scope). Úsalo para subagentes que toman todo lo que necesitan del prompt de delegación. Se ignora cuando el agente se ejecuta como el agente de sesión principal a través de `--agent` o el ajuste `agent`. Requiere Claude Code v2.1.271 o posterior |329| `omitClaudeMd` | No | Establecer en `true` para iniciar este subagente sin los archivos CLAUDE.md de usuario, proyecto y local en su [contexto inicial](#what-loads-at-startup); los [archivos de política administrada](/docs/es/memory#how-claude-md-files-load) aún se cargan, excepto para [subagentes administrados](#choose-the-subagent-scope). Úsalo para subagentes que toman todo lo que necesitan del prompt de delegación. Se ignora cuando el agente se ejecuta como el agente de sesión principal a través de `--agent` o el ajuste `agent`. Requiere Claude Code v2.1.271 o posterior |

330| `effort` | No | Nivel de esfuerzo cuando este subagente está activo. Sobrescribe el nivel de esfuerzo de la sesión, pero no la variable de entorno [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/es/env-vars#variables). Opciones: `low`, `medium`, `high`, `xhigh`, `max`; los niveles disponibles dependen del modelo. Consulta [Elegir un nivel de esfuerzo](#choose-an-effort-level) |330| `effort` | No | Nivel de esfuerzo cuando este subagente está activo. Sobrescribe el nivel de esfuerzo de la sesión, pero no la variable de entorno [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/es/env-vars#variables). Opciones: `low`, `medium`, `high`, `xhigh`, `max`; los niveles disponibles dependen del modelo. Consulta [Elegir un nivel de esfuerzo](#choose-an-effort-level) |

331| `isolation` | No | Establecer en `worktree` para ejecutar el subagente en un [git worktree](/docs/es/worktrees) temporal, dándole una copia aislada del repositorio ramificada por defecto desde su [rama predeterminada](/docs/es/worktrees#choose-the-base-branch) en lugar del `HEAD` de la sesión principal. El worktree se limpia automáticamente si el subagente no realiza cambios |331| `isolation` | No | Establecer en `worktree` para ejecutar el subagente en un [git worktree](/docs/es/worktrees) temporal, dándole una copia aislada del repositorio ramificada por defecto desde su [rama predeterminada](/docs/es/worktrees#choose-the-base-branch) en lugar del `HEAD` de la sesión principal. El worktree se limpia automáticamente si el subagente no realiza cambios |


405 405 

406Para comprobar con qué modelo se ejecuta un subagente, ejecuta [`/tasks`](/docs/es/commands). Claude Code muestra el modelo en la fila del subagente y agrega el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) establecido para ese subagente, si lo hay. Requiere Claude Code v2.1.242 o posterior.406Para comprobar con qué modelo se ejecuta un subagente, ejecuta [`/tasks`](/docs/es/commands). Claude Code muestra el modelo en la fila del subagente y agrega el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) establecido para ese subagente, si lo hay. Requiere Claude Code v2.1.242 o posterior.

407 407 

408Un parámetro `model` por invocación también se aplica cuando el subagente se [reanuda o se le envía un mensaje de seguimiento](#resume-subagents), por lo que el subagente permanece en ese modelo. Antes de v2.1.211, reanudar eliminaba el valor por invocación y el subagente revertía al campo `model` de su definición o, sin uno, al modelo de la conversación principal.408Un parámetro `model` por invocación también se aplica cuando el subagente se [reanuda o se le envía un mensaje de seguimiento](#resume-subagents), por lo que el subagente permanece en ese modelo.

409 409 

410A partir de v2.1.198, los subagentes también heredan la configuración de [pensamiento extendido](/docs/es/model-config#extended-thinking) de la conversación principal: si el pensamiento está activado en su sesión, está activado para el subagente, y si está desactivado, permanece desactivado. No hay una configuración de pensamiento por subagente. Antes de v2.1.198, los subagentes se ejecutaban con pensamiento extendido deshabilitado independientemente de la configuración de la conversación principal.410A partir de v2.1.198, los subagentes también heredan la configuración de [pensamiento extendido](/docs/es/model-config#extended-thinking) de la conversación principal: si el pensamiento está activado en su sesión, está activado para el subagente, y si está desactivado, permanece desactivado. No hay una configuración de pensamiento por subagente. Antes de v2.1.198, los subagentes se ejecutaban con pensamiento extendido deshabilitado independientemente de la configuración de la conversación principal.

411 411 


501---501---

502```502```

503 503 

504Cuando nada en la lista `tools` se resuelve a una herramienta, por ejemplo porque cada entrada está mal escrita o nombra una herramienta que no está disponible para subagentes, Claude Code generalmente se niega a lanzar el subagente y la herramienta Agent devuelve un error nombrando las entradas no resueltas; consulte [Agent sería generado con cero herramientas](/docs/es/errors#agent-would-be-spawned-with-zero-tools) para el mensaje y cómo corregir cada entrada. Antes de v2.1.208, ese subagente se lanzaba sin herramientas y podría devolver un resultado vacío o confuso.504Cuando nada en la lista `tools` se resuelve a una herramienta, por ejemplo porque cada entrada está mal escrita o nombra una herramienta que no está disponible para subagentes, Claude Code generalmente se niega a lanzar el subagente y la herramienta Agent devuelve un error nombrando las entradas no resueltas; consulta [Agent would be spawned with zero tools](/docs/es/errors#agent-would-be-spawned-with-zero-tools) para el mensaje y cómo corregir cada entrada.

505 505 

506Los campos `tools` y `disallowedTools` también aceptan entradas para un servidor MCP completo:506Los campos `tools` y `disallowedTools` también aceptan entradas para un servidor MCP completo:

507 507 


969* **Subagentes en primer plano** bloquean la conversación principal hasta completarse. Las solicitudes de permiso se te pasan a medida que surgen.969* **Subagentes en primer plano** bloquean la conversación principal hasta completarse. Las solicitudes de permiso se te pasan a medida que surgen.

970* **Subagentes en segundo plano** se ejecutan concurrentemente mientras continúas trabajando. Cuando un subagente en segundo plano llega a una llamada a herramienta que necesita permiso, Claude Code muestra la solicitud en tu sesión principal y nombra el subagente que está pidiendo. Aprueba para permitir que el subagente continúe, o presiona Esc para negar esa llamada a herramienta sin detener el subagente.970* **Subagentes en segundo plano** se ejecutan concurrentemente mientras continúas trabajando. Cuando un subagente en segundo plano llega a una llamada a herramienta que necesita permiso, Claude Code muestra la solicitud en tu sesión principal y nombra el subagente que está pidiendo. Aprueba para permitir que el subagente continúe, o presiona Esc para negar esa llamada a herramienta sin detener el subagente.

971 971 

972Para cada subagente que Claude genera con la herramienta Agent, Claude Code elige primer plano o segundo plano según el primero de estos casos que se aplique:972<h4 id="which-subagents-run-in-the-background">

973 Qué subagentes se ejecutan en segundo plano

974</h4>

975 

976Sin nada configurado, un subagente que Claude genera desde tu conversación principal comienza en segundo plano.

973 977 

974* Si un compañero de [equipo de agentes](/docs/es/agent-teams#limitations) en proceso generó el subagente, Claude Code lo ejecuta en primer plano. Claude Code rechaza con un error generar un subagente de compañero cuya definición establece [`background: true`](#supported-frontmatter-fields). Donde el [modo fork](#turn-fork-mode-on-or-off) está desactivado y no has [desactivado las tareas en segundo plano](/docs/es/env-vars), Claude Code también rechaza con un error cuando un compañero establece `run_in_background: true`.978* **`claude -p` y el Agent SDK**: Claude puede esperar, por su propio criterio o cuando se lo pides.

975* Si estableces [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/es/env-vars) en `1`, Claude Code ejecuta el subagente en primer plano, en todo tipo de sesión y si el modo fork está activado o no.979* **Sesiones interactivas en la terminal, VS Code y la aplicación de escritorio en tu máquina**: para permitir que Claude espere a un subagente, [desactiva el modo fork](#let-claude-wait-for-a-subagent), que está [activado por defecto](#turn-fork-mode-on-or-off).

976* Donde el [modo fork](#turn-fork-mode-on-or-off) está activado, como lo está por defecto en una sesión interactiva, Claude Code ejecuta el subagente en segundo plano, subagentes fork y no-fork por igual, y Claude no puede pedir el primer plano.

977* Donde el modo fork está desactivado, Claude ejecuta el subagente en segundo plano por defecto y en primer plano cuando necesita el resultado antes de continuar. El modo fork está desactivado en [modo no interactivo](/docs/es/headless) con `-p` y en el Agent SDK a menos que lo actives. Para mantener un subagente particular en segundo plano incluso cuando Claude quiere el resultado, establece su campo frontmatter [`background`](#supported-frontmatter-fields) en `true`.

978 980 

979Para un skill con `context: fork`, Claude Code sigue las reglas en [Ejecutar skills en un subagente](/docs/es/skills#run-skills-in-a-subagent) en su lugar, independientemente de si el modo fork está activado o no.981Para un skill con `context: fork`, Claude Code sigue las reglas en [Ejecutar skills en un subagente](/docs/es/skills#run-skills-in-a-subagent) en su lugar, independientemente de si el modo fork está activado o no.

980 982 

983<h4 id="let-claude-wait-for-a-subagent">

984 Permitir que Claude espere a un subagente

985</h4>

986 

9871. Desactiva el [modo fork](#turn-fork-mode-on-or-off) estableciendo `CLAUDE_CODE_FORK_SUBAGENT` en `0`, por ejemplo en [`settings.json`](/docs/es/settings):

988 

989 ```json theme={null}

990 {

991 "env": {

992 "CLAUDE_CODE_FORK_SUBAGENT": "0"

993 }

994 }

995 ```

996 

9972. Ejecuta `claude` de nuevo desde tu shell, o abre una nueva conversación de VS Code.

998 

9993. Pide a Claude que espere cuando necesites un resultado primero, por ejemplo "run the reviewer subagent and wait for its report".

1000 

1001Para seguir trabajando mientras Claude espera, presiona **Ctrl+B** en la terminal o haz clic en [**Run in background**](/docs/es/vs-code#move-a-running-command-or-subagent-to-the-background) en VS Code.

1002 

1003Si estableces la variable de entorno [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/es/env-vars) en `1` en lugar de desactivar el modo fork, Claude espera a cada subagente y las tareas en segundo plano quedan desactivadas, **Ctrl+B** incluido.

1004 

1005<h4 id="tools-permissions-and-results-of-background-subagents">

1006 Herramientas, permisos y resultados de los subagentes en segundo plano

1007</h4>

1008 

981Los subagentes en segundo plano se ejecutan con un [conjunto de herramientas integradas más pequeño](#available-tools) que los subagentes en primer plano, excepto para forks de conversación y subagentes en primer plano [reanudados](#resume-subagents).1009Los subagentes en segundo plano se ejecutan con un [conjunto de herramientas integradas más pequeño](#available-tools) que los subagentes en primer plano, excepto para forks de conversación y subagentes en primer plano [reanudados](#resume-subagents).

982 1010 

983Los subagentes en segundo plano muestran cada solicitud de permiso en tu sesión principal. Cuando respondes una de esas solicitudes con una opción que dura más allá de esa llamada a herramienta, como una concesión que dura el resto de la sesión, Claude Code aplica tu respuesta a toda la sesión, incluyendo tu conversación principal.1011Los subagentes en segundo plano muestran cada solicitud de permiso en tu sesión principal. Cuando respondes una de esas solicitudes con una opción que dura más allá de esa llamada a herramienta, como una concesión que dura el resto de la sesión, Claude Code aplica tu respuesta a toda la sesión, incluyendo tu conversación principal.

984 1012 

985Un subagente en segundo plano puede dejar un comando [Bash o PowerShell](/docs/es/tools-reference#background-commands) en segundo plano [ejecutándose más allá del final de su turno](/docs/es/interactive-mode#how-backgrounding-works). Cuando ese comando termina, Claude Code envía al subagente una notificación.1013Un subagente en segundo plano puede dejar un comando [Bash o PowerShell](/docs/es/tools-reference#background-commands) en segundo plano [ejecutándose más allá del final de su turno](/docs/es/interactive-mode#how-backgrounding-works). Cuando ese comando termina, Claude Code envía al subagente una notificación.

986 1014 

987Los resultados de un subagente en segundo plano llegan a Claude como una notificación de finalización en un turno posterior. Claude espera esa notificación antes de reportar los resultados del subagente, y si preguntas sobre el progreso primero, reporta que el subagente aún se está ejecutando. Antes de v2.1.211, Claude a veces reportaba resultados para un subagente en segundo plano que no había terminado.1015Los resultados de un subagente en segundo plano llegan a Claude como una notificación de finalización en un turno posterior. Claude espera esa notificación antes de reportar los resultados del subagente, y si preguntas sobre el progreso primero, reporta que el subagente aún se está ejecutando.

988 1016 

989También puedes dirigir esto tú mismo:1017<h4 id="finished-subagents-in-the-panel-and-task-list">

990 1018 Subagentes terminados en el panel y la lista de tareas

991* Donde el modo fork está desactivado, pide a Claude que ejecute una tarea en segundo plano o en primer plano1019</h4>

992* Presiona **Ctrl+B** para poner en segundo plano una tarea en ejecución

993 1020 

994Claude Code borra la fila de un subagente en segundo plano del panel de subagentes debajo de la entrada del prompt de una de dos maneras, dependiendo de cómo terminó el subagente:1021Claude Code borra la fila de un subagente en segundo plano del panel de subagentes debajo de la entrada del prompt de una de dos maneras, dependiendo de cómo terminó el subagente:

995 1022 


1036 1063 

1037Un [informe de subagente en segundo plano](#run-subagents-in-foreground-or-background) llega dentro de una notificación de finalización, que se marca como un evento automatizado en lugar de un mensaje de tu parte.1064Un [informe de subagente en segundo plano](#run-subagents-in-foreground-or-background) llega dentro de una notificación de finalización, que se marca como un evento automatizado en lugar de un mensaje de tu parte.

1038 1065 

1039<Note>

1040 El escaneo de salida de subagentes requiere Claude Code v2.1.210 o posterior.

1041</Note>

1042 

1043<h3 id="common-patterns">1066<h3 id="common-patterns">

1044 Patrones comunes1067 Patrones comunes

1045</h3>1068</h3>


1109 1132 

1110Por defecto, un subagente puede generar subagentes propios, hasta tres capas debajo de la conversación principal. En el límite de profundidad, Claude Code retiene la herramienta `Agent` de cada subagente excepto un [fork](#fork-the-current-conversation), por lo que un subagente en el límite hace su trabajo delegado él mismo y devuelve un resumen. Un fork en el límite mantiene `Agent` en su lista de herramientas heredada, pero la herramienta devuelve un error en lugar de generar.1133Por defecto, un subagente puede generar subagentes propios, hasta tres capas debajo de la conversación principal. En el límite de profundidad, Claude Code retiene la herramienta `Agent` de cada subagente excepto un [fork](#fork-the-current-conversation), por lo que un subagente en el límite hace su trabajo delegado él mismo y devuelve un resumen. Un fork en el límite mantiene `Agent` en su lista de herramientas heredada, pero la herramienta devuelve un error en lugar de generar.

1111 1134 

1112Los subagentes anidados se adaptan a una tarea delegada que a su vez se divide en subtareas paralelas, como un subagente revisor que envía un verificador por hallazgo. En una sesión interactiva, solo el resumen del subagente de nivel superior regresa a ti y la salida intermedia permanece fuera de tu conversación principal: un subagente que lanza subagentes en segundo plano espera sus resultados antes de terminar. En [modo no interactivo](/docs/es/headless) y el Agent SDK, el subagente de lanzamiento no espera, por lo que un subagente en segundo plano anidado que termina después de que su lanzador ha terminado reporta a tu conversación principal en su lugar.1135Los subagentes anidados se adaptan a una tarea delegada que a su vez se divide en subtareas paralelas, como un subagente revisor que envía un verificador por hallazgo. Por defecto, el subagente que los genera espera el informe de cada subagente anidado:

1136 

1137* **Sesión interactiva en la terminal**: solo el resumen del subagente de nivel superior regresa a ti, porque un subagente que lanza subagentes en segundo plano espera sus resultados antes de terminar.

1138* **`claude -p` y el Agent SDK**: el subagente que los genera espera mientras el [modo fork](#turn-fork-mode-on-or-off) está activado. Si desactivas el modo fork, los subagentes anidados comienzan en [segundo plano](#run-subagents-in-foreground-or-background) en su lugar. El subagente que los genera no espera a un subagente anidado en segundo plano, que reporta a tu conversación principal si dura más que el subagente que lo generó.

1113 1139 

1114Para cambiar el límite, establece [`CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH`](/docs/es/env-vars) al número de capas de subagentes que quieres debajo de tu conversación principal. Por ejemplo, esta entrada en [`settings.json`](/docs/es/settings) limita el anidamiento a dos capas:1140Para cambiar el límite, establece [`CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH`](/docs/es/env-vars) al número de capas de subagentes que quieres debajo de tu conversación principal. Por ejemplo, esta entrada en [`settings.json`](/docs/es/settings) limita el anidamiento a dos capas:

1115 1141 


1277</h2>1303</h2>

1278 1304 

1279<Note>1305<Note>

1280 Ejecute un subagente bifurcado con `/subtask`, que requiere Claude Code v2.1.212 o posterior. Cuando [la vista de agente está desactivada](/docs/es/agent-view#turn-off-agent-view), `/subtask` no está disponible y `/fork` inicia el subagente bifurcado en su lugar; de lo contrario, `/fork` copia toda la sesión en una nueva [sesión de fondo](/docs/es/agent-view#from-inside-a-session).1306 Cuando [la vista de agente está desactivada](/docs/es/agent-view#turn-off-agent-view), `/subtask` no está disponible y `/fork` inicia el subagente bifurcado en su lugar; de lo contrario, `/fork` copia toda la sesión en una nueva [sesión en segundo plano](/docs/es/agent-view#from-inside-a-session).

1281</Note>1307</Note>

1282 1308 

1283Un fork es un subagente que hereda toda la conversación hasta ahora en lugar de comenzar de nuevo. Esto elimina el aislamiento de entrada que los subagentes de otra manera proporcionan: un fork ve el mismo mensaje del sistema, herramientas, modelo e historial de mensajes que la sesión principal, para que pueda entregarle una tarea secundaria sin re-explicar la situación. Las propias llamadas de herramientas del fork aún permanecen fuera de su conversación y solo su resultado final regresa, por lo que su ventana de contexto principal permanece limpia. Use un fork cuando cualquier otro subagente necesitaría demasiado contexto para ser útil, o cuando desee probar varios enfoques en paralelo desde el mismo punto de partida.1309Un fork es un subagente que hereda toda la conversación hasta ahora en lugar de comenzar de nuevo. Esto elimina el aislamiento de entrada que los subagentes de otra manera proporcionan: un fork ve el mismo mensaje del sistema, herramientas, modelo e historial de mensajes que la sesión principal, para que pueda entregarle una tarea secundaria sin re-explicar la situación. Las propias llamadas de herramientas del fork aún permanecen fuera de su conversación y solo su resultado final regresa, por lo que su ventana de contexto principal permanece limpia. Use un fork cuando cualquier otro subagente necesitaría demasiado contexto para ser útil, o cuando desee probar varios enfoques en paralelo desde el mismo punto de partida.

1284 1310 

1285Claude inicia un fork solicitando el tipo de subagente `fork` a través de la herramienta Agent. Usted controla si puede hacerlo con [modo fork](#turn-fork-mode-on-or-off), que está activado de forma predeterminada en sesiones interactivas.1311Claude puede iniciar un fork por sí mismo mientras el modo fork está activado, como lo está de forma predeterminada. Para detener los forks, consulta [Desactivar el modo fork](#turn-fork-mode-on-or-off).

1286 1312 

1287Puede iniciar un fork usted mismo con `/subtask` seguido de una tarea, independientemente de si el modo fork está activado o no. En v2.1.161 a v2.1.211, el comando es `/fork`. Claude Code nombra el fork a partir de las primeras palabras de la tarea. El siguiente ejemplo bifurca la conversación para redactar casos de prueba mientras continúa con la implementación en la sesión principal:1313Puedes iniciar un fork tú mismo con `/subtask` seguido de una tarea, independientemente de si el modo fork está activado o no. Claude Code nombra el fork a partir de las primeras palabras de la tarea. El siguiente ejemplo bifurca la conversación para redactar casos de prueba mientras continúas con la implementación en la sesión principal:

1288 1314 

1289```text wrap theme={null}1315```text wrap theme={null}

1290/subtask draft unit tests for the parser changes so far1316/subtask draft unit tests for the parser changes so far


1327| Contexto | Historial de conversación completo | Contexto fresco con la solicitud que pasa |1353| Contexto | Historial de conversación completo | Contexto fresco con la solicitud que pasa |

1328| Mensaje del sistema y herramientas | Igual que la sesión principal | Del [archivo de definición](#write-subagent-files) del subagente, [filtrado para ejecuciones de fondo](#available-tools) |1354| Mensaje del sistema y herramientas | Igual que la sesión principal | Del [archivo de definición](#write-subagent-files) del subagente, [filtrado para ejecuciones de fondo](#available-tools) |

1329| Modelo | Igual que la sesión principal | Del campo `model` del subagente |1355| Modelo | Igual que la sesión principal | Del campo `model` del subagente |

1330| Permisos | Las solicitudes aparecen en su terminal | [Las solicitudes aparecen en su sesión principal](#run-subagents-in-foreground-or-background) cuando se ejecutan en el fondo |

1331| Caché de solicitud | Compartido con la sesión principal | Caché separado |1356| Caché de solicitud | Compartido con la sesión principal | Caché separado |

1332 1357 

1333Como el prompt del sistema y las definiciones de herramientas del fork son idénticos a los del principal, su primera solicitud reutiliza la [caché de prompts](/docs/es/prompt-caching#subagents-and-the-cache) del principal. Gracias a esa reutilización, un fork cuesta menos que un subagente nuevo para tareas que necesitan el mismo contexto.1358Como el prompt del sistema y las definiciones de herramientas del fork son idénticos a los del principal, su primera solicitud reutiliza la [caché de prompts](/docs/es/prompt-caching#subagents-and-the-cache) del principal. Gracias a esa reutilización, un fork cuesta menos que un subagente nuevo para tareas que necesitan el mismo contexto.


1335Cuando Claude genera un fork a través de la herramienta Agent, puede pasar `isolation: "worktree"` para que las ediciones de archivo del fork se escriban en un git worktree separado en lugar de su checkout. Un fork no puede generar más forks.1360Cuando Claude genera un fork a través de la herramienta Agent, puede pasar `isolation: "worktree"` para que las ediciones de archivo del fork se escriban en un git worktree separado en lugar de su checkout. Un fork no puede generar más forks.

1336 1361 

1337<h3 id="turn-fork-mode-on-or-off">1362<h3 id="turn-fork-mode-on-or-off">

1338 Activar o desactivar el modo fork1363 Desactivar el modo fork

1339</h3>1364</h3>

1340 1365 

1341Claude Code activa el modo fork de forma predeterminada en sesiones interactivas y lo deja desactivado de forma predeterminada en [modo no interactivo](/docs/es/headless) con `-p` y en el Agent SDK. El valor predeterminado interactivo requiere Claude Code v2.1.232 o posterior. En versiones anteriores, establezca `CLAUDE_CODE_FORK_SUBAGENT` en `1` para activar el modo fork.1366El modo fork permite que Claude inicie un fork por sí mismo. Para evitar que Claude inicie forks:

1342 

1343Puede saber que el modo fork está activado por cómo Claude Code maneja la herramienta Agent:

1344 

1345* Claude puede generar un fork solicitando el tipo de subagente `fork`. Cuando Claude no solicita un tipo, obtiene el subagente [general-purpose](#built-in-subagents), si la sesión aún tiene ese tipo. Los subagentes generados a partir de una definición, como Explore, funcionan como de costumbre.

1346* Claude Code ejecuta los subagentes que Claude genera en el fondo, forks y subagentes que no son fork por igual, aparte de los [casos que permanecen en primer plano](#run-subagents-in-foreground-or-background). Claude Code también elimina el parámetro `run_in_background` de la herramienta Agent, por lo que Claude no puede solicitar el primer plano.

1347 

1348Establezca la variable de entorno [`CLAUDE_CODE_FORK_SUBAGENT`](/docs/es/env-vars) para anular los valores predeterminados:

1349 1367 

1350* `1` activa el modo fork en modo no interactivo y el Agent SDK también1368* **Detener solo los forks**: agrega `"Agent(fork)"` a `permissions.deny` en tu [configuración](#disable-specific-subagents).

1351* `0` desactiva el modo fork en todo tipo de sesión1369* **Desactivar el modo fork**: establece `CLAUDE_CODE_FORK_SUBAGENT` en `0`, siguiendo los pasos de [Permitir que Claude espere a un subagente](#let-claude-wait-for-a-subagent).

1352 1370 

1353Para mantener el modo fork activado pero evitar que Claude genere forks, [deniegue el tipo de subagente `fork`](#disable-specific-subagents) con una regla `Agent(fork)`. Claude Code aún ejecuta los subagentes que Claude genera en el fondo, aparte de los mismos [casos que permanecen en primer plano](#run-subagents-in-foreground-or-background).1371Mientras el modo fork está activado, Claude tampoco puede [esperar a un subagente](#run-subagents-in-foreground-or-background) en sesiones interactivas de terminal, VS Code o escritorio en tu máquina. El modo fork está activado de forma predeterminada desde Claude Code v2.1.302, y en una sesión interactiva de terminal desde v2.1.232.

1354 1372 

1355<h2 id="example-subagents">1373<h2 id="example-subagents">

1356 Subagentes de ejemplo1374 Subagentes de ejemplo

Details

58 58 

59 Si aceptó la solicitud de configuración del terminal de primera ejecución de Claude Code, esto ya está hecho. Esa solicitud ejecuta `/terminal-setup` para usted, que habilita Opción como Meta y desactiva la campana audible en su perfil de Apple Terminal.59 Si aceptó la solicitud de configuración del terminal de primera ejecución de Claude Code, esto ya está hecho. Esa solicitud ejecuta `/terminal-setup` para usted, que habilita Opción como Meta y desactiva la campana audible en su perfil de Apple Terminal.

60 60 

61 En [modo lector de pantalla](/docs/es/accessibility), `/terminal-setup` deja la configuración de campana sin cambios para que la campana del terminal permanezca audible. Antes de v2.1.211, `/terminal-setup` desactivaba la campana incluso en modo lector de pantalla. Si una ejecución anterior desactivó la campana, vuelva a activarla en Configuración → Perfiles → Avanzado → "Audible bell".61 En [modo lector de pantalla](/docs/es/accessibility), `/terminal-setup` deja sin cambios el ajuste de la campana para que la campana de la terminal permanezca audible. Si una ejecución anterior desactivó la campana, vuelve a activarla en Configuración → Perfiles → Avanzado → "Audible bell".

62 </Tab>62 </Tab>

63 63 

64 <Tab title="iTerm2">64 <Tab title="iTerm2">

65 Abra Configuración → Perfiles → Teclas → General y establezca Left Option key y Right Option key en "Esc+".65 Abre Configuración → Perfiles → Teclas → General y establece Left Option key y Right Option key en "Esc+".

66 66 

67 Ejecutar `/terminal-setup` en iTerm2 habilita "Applications in terminal may access clipboard" en Configuración → General → Selection para que el comando `/copy` pueda escribir en su portapapeles del sistema. El comando detecta iTerm2 incluso cuando se ejecuta desde dentro de tmux. Reinicie iTerm2 para que el cambio surta efecto.67 Ejecutar `/terminal-setup` en iTerm2 habilita "Applications in terminal may access clipboard" en Configuración → General → Selection para que el comando `/copy` pueda escribir en su portapapeles del sistema. El comando detecta iTerm2 incluso cuando se ejecuta desde dentro de tmux. Reinicie iTerm2 para que el cambio surta efecto.

68 </Tab>68 </Tab>

tools-reference.md +43 −43

Details

26| `CronDelete` | Cancela una tarea programada por ID | No |26| `CronDelete` | Cancela una tarea programada por ID | No |

27| `CronList` | Lista todas las tareas programadas en la sesión | No |27| `CronList` | Lista todas las tareas programadas en la sesión | No |

28| `Edit` | Realiza ediciones dirigidas a archivos específicos. Consulta [Comportamiento de la herramienta Edit](#edit-tool-behavior) | Sí |28| `Edit` | Realiza ediciones dirigidas a archivos específicos. Consulta [Comportamiento de la herramienta Edit](#edit-tool-behavior) | Sí |

29| `EndConversation` | Finaliza la sesión, en casos raros de entrada abusiva sostenida o cuando solicitas a Claude que demuestre la herramienta. Requiere Claude Code v2.1.213 o posterior. Consulta [Comportamiento de la herramienta EndConversation](#endconversation-tool-behavior) | No |29| `EndConversation` | Finaliza la sesión, en casos raros de entrada abusiva sostenida o cuando solicitas a Claude que demuestre la herramienta. Consulta [Comportamiento de la herramienta EndConversation](#endconversation-tool-behavior) | No |

30| `EnterPlanMode` | Cambia a Plan Mode para diseñar un enfoque antes de codificar | No |30| `EnterPlanMode` | Cambia a Plan Mode para diseñar un enfoque antes de codificar | No |

31| `EnterWorktree` | Crea un [git worktree](/docs/es/worktrees) aislado y cambia a él. Pasa una `path` para cambiar a un worktree existente en lugar de crear uno nuevo. En la primera entrada, el destino puede ser un worktree del repositorio actual o, en un espacio de trabajo de múltiples repositorios, de un repositorio anidado dentro de él. Antes de v2.1.203, se rechazaba un worktree de un repositorio anidado. Una `path` fuera de `.claude/worktrees/` solicita tu aprobación antes de entrar, ya que mueve el directorio de trabajo de la sesión y el acceso de escritura a esa ubicación. La creación de nuevos worktrees y las rutas bajo `.claude/worktrees/` no solicitan permiso. Antes de v2.1.206, Claude entraba en rutas fuera de `.claude/worktrees/` sin solicitar permiso. Desde dentro de una sesión de worktree, o desde un subagente con un directorio de trabajo fijado como [`isolation: worktree`](/docs/es/sub-agents#supported-frontmatter-fields), solo está disponible la forma `path` y el destino debe estar bajo `.claude/worktrees/` del repositorio de la sesión | Sí |31| `EnterWorktree` | Crea un [git worktree](/docs/es/worktrees) aislado y cambia a él. Pasa una `path` para cambiar a un worktree existente en lugar de crear uno nuevo. En la primera entrada, el destino puede ser un worktree del repositorio actual o, en un espacio de trabajo de múltiples repositorios, de un repositorio anidado dentro de él. Antes de v2.1.203, se rechazaba un worktree de un repositorio anidado. Una `path` fuera de `.claude/worktrees/` solicita tu aprobación antes de entrar, ya que mueve el directorio de trabajo de la sesión y el acceso de escritura a esa ubicación. La creación de nuevos worktrees y las rutas bajo `.claude/worktrees/` no solicitan permiso. Antes de v2.1.206, Claude entraba en rutas fuera de `.claude/worktrees/` sin solicitar permiso. Desde dentro de una sesión de worktree, o desde un subagente con un directorio de trabajo fijado como [`isolation: worktree`](/docs/es/sub-agents#supported-frontmatter-fields), solo está disponible la forma `path` y el destino debe estar bajo `.claude/worktrees/` del repositorio de la sesión | Sí |

32| `ExitPlanMode` | Presenta un plan para aprobación y sale de Plan Mode | Sí |32| `ExitPlanMode` | Presenta un plan para aprobación y sale de Plan Mode | Sí |


48| `SendFeedback` | Redacta un informe de retroalimentación sobre Claude Code, cubriendo un problema del producto o el comportamiento de Claude en la sesión, y lo pone en cola en tu máquina para que lo revises. Claude Code no envía nada hasta que elijas enviar el borrador. Consulta [Comportamiento de la herramienta SendFeedback](#sendfeedback-tool-behavior). Requiere Claude Code v2.1.238 o posterior | No |48| `SendFeedback` | Redacta un informe de retroalimentación sobre Claude Code, cubriendo un problema del producto o el comportamiento de Claude en la sesión, y lo pone en cola en tu máquina para que lo revises. Claude Code no envía nada hasta que elijas enviar el borrador. Consulta [Comportamiento de la herramienta SendFeedback](#sendfeedback-tool-behavior). Requiere Claude Code v2.1.238 o posterior | No |

49| `SendMessage` | Envía un mensaje a otro agente: un compañero de [equipo de agentes](/docs/es/agent-teams), un [subagente que reanuda](/docs/es/sub-agents#resume-subagents) por ID o nombre de agente, o una de tus otras sesiones de Claude Code, en esta máquina o más allá. La mensajería de otras sesiones requiere Claude Code v2.1.224 o posterior. [Mensajería entre sesiones](/docs/es/cross-session-messaging) cubre qué sesiones puede alcanzar Claude, [cómo se ve un mensaje cuando llega](/docs/es/cross-session-messaging#what-a-message-looks-like), y [cómo Claude recibe un aviso cuando otra sesión se queda inactiva](/docs/es/cross-session-messaging#get-a-notice-when-another-session-goes-idle). Claude puede incluir una entrada `summary` opcional, típicamente de 5-10 palabras, que Claude Code muestra como una vista previa de una línea. Cuando Claude la omite en un [mensaje de texto plano](/docs/es/cross-session-messaging#limitations), Claude Code usa la primera línea del mensaje como resumen. Claude Code trunca un resumen más largo que 200 caracteres con puntos suspensivos | No |49| `SendMessage` | Envía un mensaje a otro agente: un compañero de [equipo de agentes](/docs/es/agent-teams), un [subagente que reanuda](/docs/es/sub-agents#resume-subagents) por ID o nombre de agente, o una de tus otras sesiones de Claude Code, en esta máquina o más allá. La mensajería de otras sesiones requiere Claude Code v2.1.224 o posterior. [Mensajería entre sesiones](/docs/es/cross-session-messaging) cubre qué sesiones puede alcanzar Claude, [cómo se ve un mensaje cuando llega](/docs/es/cross-session-messaging#what-a-message-looks-like), y [cómo Claude recibe un aviso cuando otra sesión se queda inactiva](/docs/es/cross-session-messaging#get-a-notice-when-another-session-goes-idle). Claude puede incluir una entrada `summary` opcional, típicamente de 5-10 palabras, que Claude Code muestra como una vista previa de una línea. Cuando Claude la omite en un [mensaje de texto plano](/docs/es/cross-session-messaging#limitations), Claude Code usa la primera línea del mensaje como resumen. Claude Code trunca un resumen más largo que 200 caracteres con puntos suspensivos | No |

50| `SendUserFile` | Envía archivos de la sesión a ti con un título opcional, para que un informe generado, diagrama, captura de pantalla o artefacto construido llegue a tu dispositivo en lugar de solo ser mencionado en la transcripción. La entrada `display` opcional controla la presentación: `render` abre el archivo en línea en el cliente, `attach` muestra solo una tarjeta de descarga, y cuando no está establecida el cliente decide por tipo de archivo. Disponible cuando un cliente [Remote Control](/docs/es/remote-control) está conectado o en una [sesión en la nube](/docs/es/claude-code-on-the-web). La entrega se ejecuta a través de infraestructura alojada por Anthropic, por lo que la herramienta no está disponible en Amazon Bedrock, Agent Platform de Google Cloud, o Microsoft Foundry | No |50| `SendUserFile` | Envía archivos de la sesión a ti con un título opcional, para que un informe generado, diagrama, captura de pantalla o artefacto construido llegue a tu dispositivo en lugar de solo ser mencionado en la transcripción. La entrada `display` opcional controla la presentación: `render` abre el archivo en línea en el cliente, `attach` muestra solo una tarjeta de descarga, y cuando no está establecida el cliente decide por tipo de archivo. Disponible cuando un cliente [Remote Control](/docs/es/remote-control) está conectado o en una [sesión en la nube](/docs/es/claude-code-on-the-web). La entrega se ejecuta a través de infraestructura alojada por Anthropic, por lo que la herramienta no está disponible en Amazon Bedrock, Agent Platform de Google Cloud, o Microsoft Foundry | No |

51| `ShareOnboardingGuide` | Carga `ONBOARDING.md` y devuelve un enlace de uso compartido que los compañeros de equipo pueden abrir en Claude Code. Llamado desde `/team-onboarding` después de que se escribe la guía. Disponible para suscriptores de claude.ai en los planes Pro, Max, Team y Enterprise | Sí |51| `ShareOnboardingGuide` | Carga `ONBOARDING.md` y devuelve un enlace de uso compartido que los compañeros de equipo pueden abrir en Claude Code. Llamado desde `/team-onboarding` después de que se escribe la guía. Disponible para suscriptores de claude.ai en los planes Team y Enterprise | Sí |

52| `Skill` | Ejecuta una [skill](/docs/es/skills#control-who-invokes-a-skill) dentro de la conversación principal | Sí |52| `Skill` | Ejecuta una [skill](/docs/es/skills#control-who-invokes-a-skill) dentro de la conversación principal | Sí |

53| `SubagentHandback` | Entrega el informe final de un subagente a cualquier conversación que reciba el resultado de ese subagente. Proporcionado solo en [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), a subagentes que la herramienta Agent ejecuta localmente que no sean [bifurcaciones](/docs/es/sub-agents#fork-the-current-conversation), y disponible en la CLI de terminal, extensiones de IDE, sesiones en la nube y el Agent SDK; el clasificador revisa el informe antes de que se entregue. Requiere Claude Code v2.1.271 o posterior | No |53| `SubagentHandback` | Entrega el informe final de un subagente a cualquier conversación que reciba el resultado de ese subagente. Proporcionado solo en [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), a subagentes que la herramienta Agent ejecuta localmente que no sean [bifurcaciones](/docs/es/sub-agents#fork-the-current-conversation), y disponible en la CLI de terminal, extensiones de IDE, sesiones en la nube y el Agent SDK; el clasificador revisa el informe antes de que se entregue. Requiere Claude Code v2.1.271 o posterior | No |

54| `TaskCreate` | Crea una nueva tarea en la lista de tareas. Proporcionado de forma predeterminada solo en los modelos enumerados en [Disponibilidad de la herramienta Task](#task-tool-availability), y en otros modelos cuando optas por participar | No |54| `TaskCreate` | Crea una nueva tarea en la lista de tareas. Proporcionado de forma predeterminada solo en los modelos enumerados en [Disponibilidad de la herramienta Task](#task-tool-availability), y en otros modelos cuando optas por participar | No |


66| `Write` | Crea o sobrescribe archivos. Consulta [Comportamiento de la herramienta Write](#write-tool-behavior) | Sí |66| `Write` | Crea o sobrescribe archivos. Consulta [Comportamiento de la herramienta Write](#write-tool-behavior) | Sí |

67 67 

68<h2 id="configure-tools-with-permission-rules-and-hooks">68<h2 id="configure-tools-with-permission-rules-and-hooks">

69 Configurar herramientas con reglas de permisos y hooks69 Configura herramientas con reglas de permisos y hooks

70</h2>70</h2>

71 71 

72En la mayoría de los casos, Claude decide cuándo usar estas herramientas y no es necesario que las nombre usted mismo al interactuar con Claude. Usted hace referencia a los nombres de las herramientas directamente al definir permisos y otras configuraciones:72En la mayoría de los casos, Claude decide cuándo usar estas herramientas y no necesitas nombrarlas tú mismo al interactuar con Claude. Haces referencia a los nombres de las herramientas directamente al definir permisos y otra configuración:

73 73 

74* en [`permissions.allow`](/docs/es/settings-reference#permissions-allow) y [`permissions.deny`](/docs/es/settings-reference#permissions-deny) en la configuración, y la interfaz `/permissions`74* en [`permissions.allow`](/docs/es/settings-reference#permissions-allow) y [`permissions.deny`](/docs/es/settings-reference#permissions-deny) en la configuración, y en la interfaz de `/permissions`

75* en los indicadores CLI [`--allowedTools` y `--disallowedTools`](/docs/es/cli-reference)75* en los [flags de la CLI](/docs/es/cli-reference) `--allowedTools` y `--disallowedTools`

76* en las opciones [`allowedTools` y `disallowedTools`](/docs/es/agent-sdk/permissions#allow-and-deny-rules) del Agent SDK76* en las opciones [`allowedTools` y `disallowedTools`](/docs/es/agent-sdk/permissions#allow-and-deny-rules) del Agent SDK

77* en el frontmatter [`allowed-tools`](/docs/es/skills#frontmatter-reference) de una skill77* en el frontmatter [`allowed-tools` de un skill](/docs/es/skills#frontmatter-reference)

78* en la condición [`if`](/docs/es/hooks-guide#filter-by-tool-name-and-arguments-with-the-if-field) de un hook78* en la [condición `if`](/docs/es/hooks-guide#filter-by-tool-name-and-arguments-with-the-if-field) de un hook

79 79 

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

81 81 

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

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

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

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

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

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

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

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

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

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

92 92 

93Las herramientas no listadas aquí, como `ExitPlanMode` o `ShareOnboardingGuide`, aceptan solo el nombre de la herramienta sin especificador.93Las herramientas que no aparecen aquí, como `ExitPlanMode` o `ShareOnboardingGuide`, solo aceptan el nombre de la herramienta por sí solo, sin especificador.

94 94 

95Una regla de permiso `Edit(...)` también otorga acceso de lectura a la misma ruta, por lo que no necesita una regla `Read(...)` coincidente. Una regla de denegación `Read(...)` también bloquea las herramientas Edit y Write en la misma ruta, incluida la creación de un archivo nuevo allí, porque ambas herramientas cambian contenido que Claude debe poder leer nuevamente. La verificación de denegación `Read` requiere Claude Code v2.1.208 o posterior en ediciones, y v2.1.228 o posterior en escrituras.95Una regla de permiso `Edit(...)` también concede acceso de lectura a la misma ruta, por lo que no necesitas una regla `Read(...)` correspondiente. Una regla de denegación `Read(...)` también bloquea las herramientas Edit y Write en la misma ruta, incluida la creación de un archivo nuevo allí, porque ambas herramientas cambian contenido que Claude debe poder volver a leer. Para la herramienta Write, la comprobación de denegación de `Read` requiere Claude Code v2.1.228 o posterior.

96 96 

97Los campos `matcher` de hooks usan nombres de herramientas sin formato entre paréntesis, no el formato de regla entre paréntesis. Consulte [patrones de coincidencia](/docs/es/hooks#matcher-patterns) para las reglas de coincidencia. Para los nombres de campo que cada herramienta pasa a `tool_input` en hooks, consulte la [referencia de entrada PreToolUse](/docs/es/hooks#pretooluse-input).97Los campos `matcher` de los hooks usan solo el nombre de la herramienta, sin paréntesis, no el formato de regla con paréntesis. Consulta [patrones de matcher](/docs/es/hooks#matcher-patterns) para conocer las reglas de coincidencia. Para ver los nombres de campo que cada herramienta pasa a `tool_input` en los hooks, consulta la [referencia de entrada de PreToolUse](/docs/es/hooks#pretooluse-input).

98 98 

99<h2 id="agent-tool-behavior">99<h2 id="agent-tool-behavior">

100 Comportamiento de la herramienta Agent100 Comportamiento de la herramienta Agent

101</h2>101</h2>

102 102 

103La herramienta Agent genera un subagente en una ventana de contexto separada. El subagente trabaja en su tarea de forma autónoma y luego devuelve su resultado a la conversación principal. El principal no ve las llamadas a herramientas intermedias ni las salidas del subagente, solo ese resultado final. Con [agent teams](/docs/es/agent-teams) habilitados, una llamada que lleve un `name` puede lanzar un [teammate](/docs/es/agent-teams#how-claude-starts-agent-teams) en su lugar, que informa a través de mensajes de equipo en lugar de devolver un resultado.103La herramienta Agent genera un subagente en una ventana de contexto separada. El subagente trabaja en su tarea de forma autónoma y luego devuelve su resultado a la conversación principal. El principal no ve las llamadas a herramientas intermedias ni las salidas del subagente, solo ese resultado final. La misma herramienta también puede lanzar un compañero de equipo o una bifurcación:

104 104 

105Para limitar cuántos turnos ejecuta un subagente, establezca `maxTurns` en la [definición del subagente](/docs/es/sub-agents#supported-frontmatter-fields). Cuando el subagente alcanza el límite, Claude Code marca el resultado devuelto como salida parcial, y Claude puede [reanudar el subagente](/docs/es/sub-agents#resume-subagents) para continuar.105* **Compañero de equipo**: con [equipos de agentes](/docs/es/agent-teams) habilitados, una llamada que lleve un `name` puede lanzar un [compañero de equipo](/docs/es/agent-teams#how-claude-starts-agent-teams) en su lugar, que informa a través de mensajes de equipo en lugar de devolver un resultado

106* **Bifurcación**: dondequiera que [fork mode](/docs/es/sub-agents#turn-fork-mode-on-or-off) esté activado, la herramienta puede lanzar un [subagente bifurcado](/docs/es/sub-agents#fork-the-current-conversation), que hereda la conversación principal completa en lugar de comenzar desde cero

106 107 

107La misma herramienta Agent también lanza [subagentes bifurcados](/docs/es/sub-agents#fork-the-current-conversation) dondequiera que [fork mode](/docs/es/sub-agents#turn-fork-mode-on-or-off) esté activado. Una bifurcación hereda la conversación principal completa en lugar de comenzar desde cero, se ejecuta en segundo plano aparte de los [casos que permanecen en primer plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background), y aún muestra solicitudes de permiso en su terminal. El resto de esta sección describe subagentes que no son bifurcaciones.108Para limitar cuántos turnos ejecuta un subagente, establezca `maxTurns` en la [definición del subagente](/docs/es/sub-agents#supported-frontmatter-fields). Cuando el subagente alcanza el límite, Claude Code marca el resultado devuelto como salida parcial, y Claude puede [reanudar el subagente](/docs/es/sub-agents#resume-subagents) para continuar.

108 109 

109Las herramientas que un subagente que no es bifurcación puede usar dependen de los campos `tools` y `disallowedTools` en la [definición del subagente](/docs/es/sub-agents):110Las herramientas que un subagente que no es bifurcación puede usar dependen de los campos `tools` y `disallowedTools` en la [definición del subagente](/docs/es/sub-agents):

110 111 


279 280 

280La herramienta Edit realiza reemplazo exacto de cadenas. Toma un `old_string` y un `new_string` y reemplaza el primero con el segundo. No utiliza expresiones regulares ni coincidencia aproximada.281La herramienta Edit realiza reemplazo exacto de cadenas. Toma un `old_string` y un `new_string` y reemplaza el primero con el segundo. No utiliza expresiones regulares ni coincidencia aproximada.

281 282 

282Estas comprobaciones deben pasar para que se aplique una edición. Antes de cualquiera de ellas, se rechaza una ruta coincidente con una [regla de denegación `Read`](/docs/es/permissions#tool-specific-permission-rules), incluida la creación de un archivo nuevo allí. El rechazo requiere Claude Code v2.1.208 o posterior.283Estas comprobaciones deben pasar para que se aplique una edición. Antes de cualquiera de ellas, se rechaza una ruta coincidente con una [regla de denegación `Read`](/docs/es/permissions#tool-specific-permission-rules), incluida la creación de un archivo nuevo allí.

283 284 

284* **Read-before-edit**: Claude lee el archivo en la conversación actual antes de editarlo, y una lectura interrumpida con un aviso [`PARTIAL view`](#large-files) no cuenta. Claude Opus 4.6, Claude Haiku 4.5 y modelos más antiguos siempre requieren la lectura. Los modelos más nuevos pueden editar un archivo no leído cuando leerlo no requeriría una solicitud de permiso y la herramienta Read está disponible.285* **Read-before-edit**: Claude lee el archivo en la conversación actual antes de editarlo, y una lectura interrumpida con un aviso [`PARTIAL view`](#large-files) no cuenta. Claude Opus 4.6, Claude Haiku 4.5 y modelos más antiguos siempre requieren la lectura. Los modelos más nuevos pueden editar un archivo no leído cuando leerlo no requeriría una solicitud de permiso y la herramienta Read está disponible.

285* **Match**: `old_string` debe aparecer en el archivo exactamente como está escrito. Una sola diferencia de carácter de espacio en blanco o indentación es suficiente para no coincidir.286* **Match**: `old_string` debe aparecer en el archivo exactamente como está escrito. Una sola diferencia de carácter de espacio en blanco o indentación es suficiente para no coincidir.

286* **Uniqueness**: `old_string` debe aparecer exactamente una vez. Cuando aparece más de una vez, Claude proporciona una cadena más larga con suficiente contexto circundante para identificar una ocurrencia, o establece `replace_all: true` para reemplazarlas todas.287* **Uniqueness**: `old_string` debe aparecer exactamente una vez. Cuando aparece más de una vez, Claude proporciona una cadena más larga con suficiente contexto circundante para identificar una ocurrencia, o establece `replace_all: true` para reemplazarlas todas.

287 288 

288Un archivo que cambió en el disco después de que Claude lo leyó por última vez aún puede editarse cuando `old_string` coincide exactamente con el contenido actual de forma inequívoca y Claude Code puede leer el archivo sin solicitar permiso. La coincidencia con el contenido actual del archivo mantiene esto seguro, y el resultado indica que el archivo contiene otros cambios para que Claude lo vuelva a leer antes de ediciones que dependan del contenido circundante. En cualquier otro caso, como un `old_string` obsoleto o uno que coincida más de una vez sin `replace_all`, Claude lee el archivo nuevamente antes de editar. El manejo relajado de archivos no leídos y modificados requiere Claude Code v2.1.208 o posterior; antes de eso, Claude Code rechazaba cualquier edición a un archivo que no hubiera leído en la conversación o que hubiera cambiado en el disco después de la lectura.289Un archivo que cambió en el disco después de que Claude lo leyó por última vez aún puede editarse cuando `old_string` coincide exactamente con el contenido actual de forma inequívoca y Claude Code puede leer el archivo sin solicitar permiso. La coincidencia con el contenido actual del archivo mantiene esto seguro, y el resultado indica que el archivo contiene otros cambios para que Claude lo vuelva a leer antes de ediciones que dependan del contenido circundante. En cualquier otro caso, como un `old_string` obsoleto o uno que coincida más de una vez sin `replace_all`, Claude lee el archivo nuevamente antes de editar.

289 290 

290Claude también puede editar un archivo sin un Read por separado después de verlo con un comando Bash como `cat` o `grep`. Esos comandos son `cat`, `nl`, `bat`, `batcat`, `head`, `tail`, `sed -n 'X,Yp'`, `grep`, `egrep`, `fgrep` y `rg`, cada uno ejecutado en un único archivo sin tuberías ni redirecciones. Una búsqueda que no imprime coincidencias no cuenta como lectura, ni tampoco ningún comando fuera de esta lista.291Claude también puede editar un archivo sin un Read por separado después de verlo con un comando Bash como `cat` o `grep`. Esos comandos son `cat`, `nl`, `bat`, `batcat`, `head`, `tail`, `sed -n 'X,Yp'`, `grep`, `egrep`, `fgrep` y `rg`, cada uno ejecutado en un único archivo sin tuberías ni redirecciones. Una búsqueda que no imprime coincidencias no cuenta como lectura, ni tampoco ningún comando fuera de esta lista.

291 292 


322 323 

323La herramienta aparece solo cuando se cumplen todas las siguientes condiciones:324La herramienta aparece solo cuando se cumplen todas las siguientes condiciones:

324 325 

325* **Versión**: Claude Code v2.1.213 o posterior.

326* **Modelo**: el modelo de la sesión es Claude Opus 4.8, Claude Sonnet 5, Claude Fable 5, o una versión posterior de una de esas familias.326* **Modelo**: el modelo de la sesión es Claude Opus 4.8, Claude Sonnet 5, Claude Fable 5, o una versión posterior de una de esas familias.

327* **Superficie**: una sesión de terminal interactiva, incluida una sesión `claude` en el terminal integrado de un IDE, que es cómo lo ejecuta el [plugin de JetBrains](/docs/es/jetbrains). Otras superficies no incluyen la herramienta, tales como:327* **Superficie**: una sesión de terminal interactiva, incluida una sesión `claude` en el terminal integrado de un IDE, que es cómo lo ejecuta el [plugin de JetBrains](/docs/es/jetbrains). Otras superficies no incluyen la herramienta, tales como:

328 * ejecuciones no interactivas `-p`328 * ejecuciones no interactivas `-p`


337 Comportamiento de la herramienta Glob337 Comportamiento de la herramienta Glob

338</h2>338</h2>

339 339 

340La herramienta Glob encuentra archivos por patrón de nombre. En Windows, es parte del conjunto de herramientas predeterminado. En macOS, Linux y WSL, Claude Code deja Glob y [Grep](#grep-tool-behavior) fuera del conjunto de herramientas predeterminado, y Claude busca con `find` y `grep` a través de la herramienta Bash en su lugar. En el shell de Claude esos dos comandos ejecutan versiones integradas de `bfs` y `ugrep`, y las búsquedas llegan a sus hooks y reglas de permisos como llamadas `Bash`.340La herramienta Glob encuentra archivos por patrón de nombre. En Windows, es parte del conjunto de herramientas predeterminado. En macOS, Linux y WSL, Claude Code deja Glob y [Grep](#grep-tool-behavior) fuera del conjunto de herramientas predeterminado, y Claude busca con `find` y `grep` a través de la herramienta Bash en su lugar. En el shell de Claude esos dos comandos ejecutan versiones integradas de `bfs` y `ugrep`, y las búsquedas llegan a tus hooks y reglas de permisos como llamadas `Bash`.

341 341 

342En macOS, Linux y WSL, obtiene las herramientas Glob y Grep de vuelta en estos casos:342En macOS, Linux y WSL, recuperas las herramientas Glob y Grep en estos casos:

343 343 

344* Nombra `Glob` o `Grep` en [`--tools` o `--allowedTools`](/docs/es/cli-reference#cli-flags) cuando inicia la sesión, o en las opciones equivalentes de [Agent SDK](/docs/es/agent-sdk/overview). Con `--tools` obtiene los que enumera, y nombrar cualquiera de las herramientas en `--allowedTools` restaura ambas. Una regla de permiso en un archivo de configuración no tiene este efecto.344* Nombras `Glob` o `Grep` en [`--tools` o `--allowedTools`](/docs/es/cli-reference#cli-flags) cuando inicias la sesión, o en las opciones equivalentes de [Agent SDK](/docs/es/agent-sdk/overview). Con `--tools` obtienes las que enumeras, y nombrar cualquiera de las herramientas en `--allowedTools` restaura ambas. Una regla allow en un archivo de configuración no tiene este efecto.

345* Una regla de permisos [deny](/docs/es/permissions#match-all-uses-of-a-tool), la bandera `--disallowedTools`, o [`--restricted`](/docs/es/cli-reference#cli-flags) elimina `Bash` de la sesión.345* Una regla de permisos [deny](/docs/es/permissions#match-all-uses-of-a-tool), la bandera `--disallowedTools`, o [`--restricted`](/docs/es/cli-reference#cli-flags) elimina `Bash` de la sesión.

346* Un [subagente](/docs/es/sub-agents#available-tools) enumera `Glob` o `Grep` en su campo `tools` y deja fuera `Bash`. Las herramientas enumeradas vuelven solo para ese subagente, o para toda la sesión cuando se ejecuta como el agente de sesión principal a través de [`--agent`](/docs/es/sub-agents#invoke-subagents-explicitly) o la configuración `agent`.346* Un [subagente](/docs/es/sub-agents#available-tools) enumera `Glob` o `Grep` en su campo `tools` y deja fuera `Bash`. Las herramientas enumeradas vuelven solo para ese subagente, o para toda la sesión cuando se ejecuta como el agente de sesión principal a través de [`--agent`](/docs/es/sub-agents#invoke-subagents-explicitly) o el ajuste `agent`.

347 347 

348Glob admite sintaxis glob estándar incluyendo `**` para coincidencia de directorio recursivo:348Glob admite sintaxis glob estándar incluyendo `**` para coincidencia de directorio recursivo:

349 349 


353 353 

354Los resultados se ordenan por tiempo de modificación y se limitan a 100 archivos. Si se alcanza el límite, Claude ve una bandera de truncamiento en el resultado y puede estrechar el patrón.354Los resultados se ordenan por tiempo de modificación y se limitan a 100 archivos. Si se alcanza el límite, Claude ve una bandera de truncamiento en el resultado y puede estrechar el patrón.

355 355 

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

357 357 

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

359 359 

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

361 361 

362<h2 id="grep-tool-behavior">362<h2 id="grep-tool-behavior">

363 Comportamiento de la herramienta Grep363 Comportamiento de la herramienta Grep


373 373 

374* `files_with_matches`: solo rutas de archivo, sin contenido de línea. Este es el predeterminado.374* `files_with_matches`: solo rutas de archivo, sin contenido de línea. Este es el predeterminado.

375* `content`: líneas coincidentes con número de archivo y línea. Cuando el parámetro `offset` de la herramienta apunta más allá de la última coincidencia para un patrón que tiene coincidencias, Grep devuelve `No entries at this offset`, por lo que Claude amplía o reinicia el offset en lugar de concluir que el patrón no coincide.375* `content`: líneas coincidentes con número de archivo y línea. Cuando el parámetro `offset` de la herramienta apunta más allá de la última coincidencia para un patrón que tiene coincidencias, Grep devuelve `No entries at this offset`, por lo que Claude amplía o reinicia el offset en lugar de concluir que el patrón no coincide.

376* `count`: recuento de coincidencias por archivo, seguido de un total en todos los archivos coincidentes. El total cubre cada coincidencia incluso cuando los parámetros `head_limit` u `offset` de la herramienta truncan las entradas por archivo listadas. Antes de v2.1.208, el total solo sumaba las entradas listadas.376* `count`: recuento de coincidencias por archivo, seguido de un total en todos los archivos coincidentes. El total cubre cada coincidencia incluso cuando los parámetros `head_limit` u `offset` de la herramienta truncan las entradas por archivo listadas.

377 377 

378Claude puede limitar resultados por archivo con el parámetro `glob`, como `**/*.tsx`, o por lenguaje con el parámetro `type`, como `py` o `rust`. Por defecto, los patrones coinciden dentro de una sola línea. Claude puede establecer `multiline: true` para coincidir entre límites de línea.378Claude puede limitar resultados por archivo con el parámetro `glob`, como `**/*.tsx`, o por lenguaje con el parámetro `type`, como `py` o `rust`. Por defecto, los patrones coinciden dentro de una sola línea. Claude puede establecer `multiline: true` para coincidir entre límites de línea.

379 379 


536 Codificación de Windows y códigos de salida536 Codificación de Windows y códigos de salida

537</h3>537</h3>

538 538 

539En Windows, los siguientes comportamientos de codificación y código de salida de PowerShell requieren Claude Code v2.1.214 o posterior:

540 

541* La redirección con `>` y `>>` escribe archivos UTF-8 en PowerShell 5.1539* La redirección con `>` y `>>` escribe archivos UTF-8 en PowerShell 5.1

542* Claude Code codifica el texto canalizando a la entrada estándar de un comando nativo como UTF-8540* Claude Code codifica el texto canalizando a la entrada estándar de un comando nativo como UTF-8

543* Claude Code captura la salida de error sin secuencias de escape ANSI541* Claude Code captura la salida de error sin secuencias de escape ANSI

544* Un comando cuyo proceso secundario espera en la entrada estándar recibe fin de archivo en lugar de colgarse542* Un comando cuyo proceso secundario espera en la entrada estándar recibe fin de archivo en lugar de colgarse

545* 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 1543* 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 1

546 544 

547Antes de v2.1.214, `>` en PowerShell 5.1 escribía archivos UTF-16LE, la entrada canalizadora no ASCII llegaba como `?`, y los scripts de Python podrían fallar con un `UnicodeEncodeError` al imprimir caracteres no ASCII.

548 

549<h3 id="preview-limitations">545<h3 id="preview-limitations">

550 Limitaciones de vista previa546 Limitaciones de vista previa

551</h3>547</h3>


561 557 

562La herramienta Read toma una ruta de archivo y devuelve el contenido con números de línea. Claude recibe instrucciones para pasar siempre rutas absolutas.558La herramienta Read toma una ruta de archivo y devuelve el contenido con números de línea. Claude recibe instrucciones para pasar siempre rutas absolutas.

563 559 

564Leer un archivo vacío devuelve un aviso de que el archivo existe pero su contenido está vacío, y un `offset` más allá de la última línea devuelve un aviso que proporciona el recuento de líneas del archivo. Antes de v2.1.208, leer un archivo vacío devolvía el aviso de fin de archivo en su lugar.560Leer un archivo vacío devuelve un aviso de que el archivo existe pero su contenido está vacío, y un `offset` más allá de la última línea devuelve un aviso que proporciona el recuento de líneas del archivo.

565 561 

566Read maneja varios tipos de archivo más allá del texto sin formato:562Read maneja varios tipos de archivo más allá del texto sin formato:

567 563 

568* **Imágenes**: PNG, JPG y otros formatos de imagen 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. Una imagen que sigue siendo más grande que 500KB después de ese redimensionamiento se recodifica como JPEG con calidad reducida con sus dimensiones de píxeles sin cambios. Si Claude pierde detalles a nivel de píxel fino en una imagen grande, pídele que primero recorte la región de interés, por ejemplo con ImageMagick a través de Bash.564* **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.

565 

566 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.

569* **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`.567* **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`.

570* **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.568* **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.

571 569 

572Read solo lee archivos, no directorios. Claude enumera el contenido del directorio con un comando de shell como `ls`.570Read solo lee archivos, no directorios. Claude enumera el contenido del directorio con un comando de shell como `ls`.

573 571 

572Read rechaza un archivo cuya extensión trata como binaria, como `.xlsx`, `.parquet`, `.heic` o `.zip`. Claude sigue trabajando después de un rechazo: el error sugiere un skill para ese tipo de archivo si hay uno disponible, o bien un comando de shell o un script que lea el formato. Si [mencionas con `@`](/docs/es/common-workflows#reference-files-and-directories) un archivo que Read rechaza, Claude recibe la ruta del archivo pero no su contenido.

573 

574<h3 id="large-files">574<h3 id="large-files">

575 Archivos grandes575 Archivos grandes

576</h3>576</h3>


691* WebFetch almacena en caché cada respuesta durante 15 minutos de forma predeterminada, por lo que las búsquedas repetidas de la misma URL se devuelven rápidamente. En Claude Code v2.1.233 o posterior, establezca [`CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS`](/docs/es/env-vars#variables) para cambiar cuánto tiempo WebFetch mantiene cada respuesta.691* WebFetch almacena en caché cada respuesta durante 15 minutos de forma predeterminada, por lo que las búsquedas repetidas de la misma URL se devuelven rápidamente. En Claude Code v2.1.233 o posterior, establezca [`CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS`](/docs/es/env-vars#variables) para cambiar cuánto tiempo WebFetch mantiene cada respuesta.

692* Una página que no haya terminado de descargar dentro de cinco minutos, incluidos los redireccionamientos que WebFetch sigue, falla con un error de límite de tiempo. En Claude Code v2.1.268 o posterior, establezca [`CLAUDE_CODE_WEBFETCH_DEADLINE_MS`](/docs/es/env-vars#variables) para cambiar el límite, o a `0` para eliminarlo.692* Una página que no haya terminado de descargar dentro de cinco minutos, incluidos los redireccionamientos que WebFetch sigue, falla con un error de límite de tiempo. En Claude Code v2.1.268 o posterior, establezca [`CLAUDE_CODE_WEBFETCH_DEADLINE_MS`](/docs/es/env-vars#variables) para cambiar el límite, o a `0` para eliminarlo.

693* Cuando una URL se redirige a un host diferente, WebFetch devuelve un resultado de texto que nombra la URL original y el destino de redirección en lugar de seguirlo. Claude luego obtiene la nueva URL con una segunda llamada a WebFetch.693* Cuando una URL se redirige a un host diferente, WebFetch devuelve un resultado de texto que nombra la URL original y el destino de redirección en lugar de seguirlo. Claude luego obtiene la nueva URL con una segunda llamada a WebFetch.

694* Cuando el paso de extracción golpea una API sobrecargada, Claude Code lo reintenta con retroceso; una búsqueda que aún falla devuelve un resultado de error. Antes de v2.1.212, el texto de error de la API podría llegar a Claude como si fuera el contenido de la página extraída.694* Cuando el paso de extracción se encuentra con una API sobrecargada, Claude Code lo reintenta con retroceso; una obtención que aún falla devuelve un resultado de error.

695 695 

696En los modos Manual y `acceptEdits` [de permisos](/docs/es/permission-modes), WebFetch solicita antes de obtener, excepto para dominios que sus [reglas de permisos](/docs/es/permissions#manage-permissions) ya permiten o deniegan y un conjunto integrado de dominios de documentación preaprobados que se obtienen sin solicitud. Sea cual sea lo que sus reglas permitan, una búsqueda también pasa primero la [verificación de seguridad del dominio WebFetch](/docs/es/data-usage#webfetch-domain-safety-check); esa sección cubre qué envía la verificación y la configuración que la omite. El mensaje ofrece tres opciones:696En los modos Manual y `acceptEdits` [de permisos](/docs/es/permission-modes), WebFetch solicita antes de obtener, excepto para dominios que sus [reglas de permisos](/docs/es/permissions#manage-permissions) ya permiten o deniegan y un conjunto integrado de dominios de documentación preaprobados que se obtienen sin solicitud. Sea cual sea lo que sus reglas permitan, una búsqueda también pasa primero la [verificación de seguridad del dominio WebFetch](/docs/es/data-usage#webfetch-domain-safety-check); esa sección cubre qué envía la verificación y la configuración que la omite. El mensaje ofrece tres opciones:

697 697 


727 727 

728La herramienta puede emitir hasta ocho búsquedas de backend por llamada, refinando la búsqueda internamente antes de devolver resultados. Claude puede limitar los resultados con `allowed_domains` para incluir solo ciertos hosts, o `blocked_domains` para excluirlos. Las dos listas no se pueden combinar en una sola llamada.728La herramienta puede emitir hasta ocho búsquedas de backend por llamada, refinando la búsqueda internamente antes de devolver resultados. Claude puede limitar los resultados con `allowed_domains` para incluir solo ciertos hosts, o `blocked_domains` para excluirlos. Las dos listas no se pueden combinar en una sola llamada.

729 729 

730Cuando la solicitud de búsqueda afecta a una API sobrecargada, Claude Code la reintenta con retroceso; una llamada que aún falla devuelve un resultado de error. Antes de v2.1.212, el texto de error de la API podría llegar a Claude como si fueran resultados de búsqueda.730Cuando la solicitud de búsqueda afecta a una API sobrecargada, Claude Code la reintenta con retroceso; una llamada que aún falla devuelve un resultado de error.

731 731 

732Las reglas de permisos de WebSearch no requieren especificador. Una entrada `WebSearch` simple en `allow` o `deny` es la única forma.732Las reglas de permisos de WebSearch no requieren especificador. Una entrada `WebSearch` simple en `allow` o `deny` es la única forma.

733 733 


741 Límite de búsqueda de sesión741 Límite de búsqueda de sesión

742</h3>742</h3>

743 743 

744Una sesión interactiva de terminal tiene un límite de 200 llamadas de WebSearch. Las búsquedas de la conversación principal y de los [subagentes](/docs/es/sub-agents), como una expansión de investigación paralela, cuentan contra el mismo límite. El límite requiere Claude Code v2.1.212 o posterior.744Una sesión interactiva de terminal tiene un límite de 200 llamadas de WebSearch. Las búsquedas de la conversación principal y de los [subagentes](/docs/es/sub-agents), como una expansión de investigación paralela, cuentan contra el mismo límite.

745 745 

746Mientras una sesión está en el límite, las búsquedas aparecen en la conversación como llamadas que no hicieron nada. Claude recibe un aviso que le indica que continúe con la información que ya ha recopilado y, si necesita más búsquedas, que te pida que aumentes el límite.746Mientras una sesión está en el límite, las búsquedas aparecen en la conversación como llamadas que no hicieron nada. Claude recibe un aviso que le indica que continúe con la información que ya ha recopilado, que lo mencione en su respuesta y, si necesita más búsquedas, que te pida que aumentes el límite.

747 747 

748Para obtener más búsquedas, aumenta el tope, espera a que el límite se recargue o inicia una nueva conversación:748Para obtener más búsquedas, aumenta el tope, espera a que el límite se recargue o inicia una nueva conversación:

749 749 

Details

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) |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) |

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) |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) |

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) |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) |

18| Después de actualizar Claude Code o el Agent SDK, se deniegan las llamadas a herramientas en `claude -p` o en ejecuciones del SDK que no pasan `--permission-mode`, `permissionMode` o `permission_mode` | [Llamadas a herramientas denegadas en `claude -p` y ejecuciones del Agent SDK](/docs/es/permission-modes#which-mode-a-non-interactive-run-starts-in) |

18| `API Error: 5xx`, `529 Overloaded`, `429`, errores de validación de solicitudes | [Referencia de errores](/docs/es/errors) |19| `API Error: 5xx`, `529 Overloaded`, `429`, errores de validación de solicitudes | [Referencia de errores](/docs/es/errors) |

19| `model not found` o `you may not have access to it` | [Referencia de errores](/docs/es/errors#theres-an-issue-with-the-selected-model) |20| `model not found` o `you may not have access to it` | [Referencia de errores](/docs/es/errors#theres-an-issue-with-the-selected-model) |

20| Un comando que ejecuta Claude falla con `Your disk quota is full`, `is full (ENOSPC)`, o `Command output was lost` | [Referencia de errores](/docs/es/errors#disk-quota-or-temp-filesystem-is-full) |21| Un comando que ejecuta Claude falla con `Your disk quota is full`, `is full (ENOSPC)`, o `Command output was lost` | [Referencia de errores](/docs/es/errors#disk-quota-or-temp-filesystem-is-full) |

vs-code.md +25 −9

Details

268 268 

269Haz clic en el botón **Session history** en la parte superior del panel de Claude Code para acceder a tu historial de conversaciones. Puedes buscar por palabra clave o explorar por fecha.269Haz clic en el botón **Session history** en la parte superior del panel de Claude Code para acceder a tu historial de conversaciones. Puedes buscar por palabra clave o explorar por fecha.

270 270 

271Haz clic en cualquier conversación para reanudarla con el historial completo de mensajes. Si la conversación ya está abierta en otra pestaña de la ventana actual, al hacer clic se cambia a esa pestaña. Si los mensajes aparecen en blanco al principio, consulta [por qué están en blanco y cuándo aparecen](#a-resumed-conversation-is-blank-at-first). Para obtener más información sobre cómo reanudar sesiones, consulta [Administrar sesiones](/docs/es/sessions).271Haz clic en cualquier conversación para reanudarla. Si la conversación ya está abierta en otra pestaña de la ventana actual, al hacer clic se cambia a esa pestaña. Si la conversación se abre sin mostrar ningún mensaje, consulta [por qué una conversación reanudada aparece en blanco al principio](#a-resumed-conversation-is-blank-at-first). Para obtener más información sobre cómo reanudar sesiones, consulta [Administrar sesiones](/docs/es/sessions).

272 272 

273* **Títulos de sesión**: las sesiones nuevas reciben títulos generados por IA a partir de tu primer mensaje.273* **Títulos de sesión**: las sesiones nuevas reciben títulos generados por IA a partir de tu primer mensaje.

274* **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.274* **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.


414 414 

415Una apertura no termina cuando el panel falla o deja de responder mientras carga la conversación, o cuando recargas o cierras la ventana unos tres segundos después de que se abra. La conversación no cambia y permanece en el [historial de sesiones](#resume-past-conversations).415Una apertura no termina cuando el panel falla o deja de responder mientras carga la conversación, o cuando recargas o cierras la ventana unos tres segundos después de que se abra. La conversación no cambia y permanece en el [historial de sesiones](#resume-past-conversations).

416 416 

417* **Para abrirla de todos modos**: haz clic en **Open it anyway** o elige la conversación desde el historial de sesiones. Si se abre y el panel sigue funcionando, vuelve después de recargas posteriores como de costumbre. Si el panel deja de responder otra vez, recarga la ventana para volver a un chat nuevo con el aviso.417* **Para abrirla de todos modos**: haz clic en **Open it anyway** o elige la conversación desde el historial de sesiones. Una vez que la conversación termina de abrirse, [vuelve después de recargas posteriores como de costumbre](#continue-conversations-after-a-reload).

418* **Si el panel deja de responder mientras se carga la conversación**: recarga la ventana. Se abre un chat nuevo.

418* **Para dejarla cerrada**: sigue trabajando en el chat nuevo. El aviso desaparece cuando envías un prompt.419* **Para dejarla cerrada**: sigue trabajando en el chat nuevo. El aviso desaparece cuando envías un prompt.

419 420 

420<h3 id="run-multiple-conversations">421<h3 id="run-multiple-conversations">


556 Plugins que dibujan en el panel557 Plugins que dibujan en el panel

557</h3>558</h3>

558 559 

559Un plugin que contiene un [mod](/docs/es/plugins/mods/overview) puede dibujar en el panel de chat. Dibujar requiere la versión 2.1.299 o posterior de la extensión y una sesión que [obtenga feature flags](/docs/es/env-vars#features-that-need-feature-flag-fetching). De un plugin así puedes ver:560Un plugin que contiene un [mod](/docs/es/plugins/mods/overview) puede dibujar en el panel de chat. Dibujar requiere la versión 2.1.299 o posterior de la extensión. Una sesión que [no obtiene feature flags](/docs/es/env-vars#features-that-need-feature-flag-fetching), como una en Amazon Bedrock, necesita la versión 2.1.304 o posterior. De un plugin así puedes ver:

560 561 

561* Un panel junto a la conversación o encima del cuadro del prompt562* Un panel junto a la conversación o encima del cuadro del prompt

562* Una notificación emergente o una línea de estado encima del cuadro del prompt563* Una notificación emergente o una línea de estado encima del cuadro del prompt


624 625 

625Cuando un comando o un [subagente](/docs/es/sub-agents) hace que Claude espere más de lo que quieres, haz clic en **Run in background** debajo de su llamada a herramienta en la conversación. Requiere Claude Code v2.1.287 o posterior.626Cuando un comando o un [subagente](/docs/es/sub-agents) hace que Claude espere más de lo que quieres, haz clic en **Run in background** debajo de su llamada a herramienta en la conversación. Requiere Claude Code v2.1.287 o posterior.

626 627 

627* **Momento**: la acción aparece una vez que un comando lleva unos dos segundos en ejecución, o tan pronto como se inicia un subagente.628* **Momento**: la acción aparece una vez que un comando lleva unos dos segundos en ejecución, o tan pronto como Claude empieza a esperar a un [subagente](/docs/es/sub-agents#run-subagents-in-foreground-or-background) que generó desde la conversación principal.

628* **Después de hacer clic**: Claude deja de esperar y continúa el turno. El comando o subagente sigue ejecutándose como una [tarea en segundo plano](/docs/es/tools-reference#background-commands) que notifica a Claude cuando termina.629* **Después de hacer clic**: Claude deja de esperar y continúa el turno. El comando o subagente sigue ejecutándose como una [tarea en segundo plano](/docs/es/tools-reference#background-commands) que notifica a Claude cuando termina.

629 630 

630Para consultar el estado de la tarea o detenerla mientras tanto, escribe `/tasks` en el cuadro de prompt para abrir el [mapa de agentes](#use-the-prompt-box). Un subagente conserva su lugar en el árbol de agentes allí, y un comando aparece debajo de los agentes con su [salida más reciente en su tarjeta](#monitor-background-processes).631Para consultar el estado de la tarea o detenerla mientras tanto, escribe `/tasks` en el cuadro de prompt para abrir el [mapa de agentes](#use-the-prompt-box). Un subagente conserva su lugar en el árbol de agentes allí, y un comando aparece debajo de los agentes con su [salida más reciente en su tarjeta](#monitor-background-processes).

631 632 

633<h4 id="the-run-in-background-action-is-missing-under-a-subagent">

634 Falta la acción Run in background debajo de un subagente

635</h4>

636 

637De forma predeterminada en VS Code, los subagentes no muestran esta acción. Para ver el motivo en el caso de un subagente, abre su tarjeta en el [mapa de agentes](#use-the-prompt-box) y lee la línea `Spawned by`:

638 

639* **`Spawned by the main agent`**: el subagente se inició en segundo plano, así que Claude no lo está esperando y no necesitas hacer nada. Para que Claude espere a los subagentes, consulta [Hacer que Claude espere a un subagente](/docs/es/sub-agents#let-claude-wait-for-a-subagent).

640* **`Spawned by` nombra a otro subagente**: la acción solo aparece para los subagentes que generó el agente principal, no para un [subagente anidado](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents) al que espera otro subagente. Para finalizar antes el subagente anidado, haz clic en **Stop agent** en su tarjeta. El subagente que estaba esperando continúa entonces sin ese resultado.

641 

632<h3 id="monitor-background-processes">642<h3 id="monitor-background-processes">

633 Supervisar procesos en segundo plano643 Supervisar procesos en segundo plano

634</h3>644</h3>


1028 1038 

1029Si una fórmula se muestra tal como está escrita mientras que otras cercanas sí tienen formato tipográfico, revisa si se debe a alguna de estas causas:1039Si una fórmula se muestra tal como está escrita mientras que otras cercanas sí tienen formato tipográfico, revisa si se debe a alguna de estas causas:

1030 1040 

1031* **Se interpreta como algo distinto de matemáticas**: el texto `$…$` que se lee como una palabra se mantiene tal como está escrito, por ejemplo `$O(n log n)$`. El texto `$…$` que empieza con un dígito, como `$30$` o `$1/N$`, también se mantiene tal como está escrito, a menos que un carácter como `=`, `+` o `^` lo marque como matemáticas. Pídele a Claude un bloque `$$` en sus propias líneas, que el panel formatea sin esta comprobación.1041* **La fórmula está en línea y el panel no la trata como matemáticas**: pídele a Claude que la vuelva a enviar como un bloque `$$` en sus propias líneas. El panel deja una fórmula en línea tal como está escrita cuando el texto entre sus delimitadores `$…$`:

1032* **Tiene espacios de relleno, es largo o está dividido en varias líneas**: `$ x^2 $` con espacios dentro de los signos de dólar, el contenido `$…$` de más de 60 caracteres y `$…$` o `\(…\)` divididos en dos líneas no reciben formato tipográfico. Pídele a Claude un bloque `$$` en sus propias líneas, que no tiene ninguno de estos límites.1042 * Es más que aritmética simple pero no tiene ningún carácter como `=`, `+` o `^` que lo marque como matemáticas, como en `$O(n log n)$`

1033* **El TeX no se puede formatear**: una fórmula con un error de sintaxis, una definición de macro como `\newcommand` o `\def`, o un `%` sin escapar se muestra tal como está escrita. Pídele a Claude que la reescriba con el error corregido, sin la macro o con `\%` para el signo de porcentaje.1043 * Empieza con un dígito y no tiene ningún carácter de ese tipo, como en `$30$` y `$1/N$`

1034* **Es demasiado grande**: una fórmula de más de 8,192 caracteres, o una que se dibujaría mucho más grande que su código fuente, se muestra tal como está escrita. Pídele a Claude que la divida en fórmulas más pequeñas o que la escriba de forma más compacta.1044 * Tiene espacios dentro de los signos de dólar, como en `$ x^2 $`

1035* **Viene después de una gran cantidad de matemáticas**: dentro de un mismo bloque de texto de una respuesta, el panel formatea las fórmulas en orden hasta un límite. Una fórmula posterior que superaría el límite se muestra tal como está escrita. Pídele a Claude que vuelva a enviar la fórmula que necesitas por sí sola.1045 * Tiene más de 60 caracteres

1046 * Está dividido en dos líneas. Una fórmula `\(…\)` dividida en dos líneas tampoco recibe formato tipográfico.

1047* **La fórmula tiene un error de sintaxis de TeX**: pídele a Claude que la reescriba con el error corregido.

1048* **La fórmula define una macro**: una fórmula con una definición de macro como `\newcommand` o `\def` se muestra tal como está escrita. Pídele a Claude que la reescriba sin la macro.

1049* **La fórmula contiene un `%` sin escapar**: pídele a Claude que la reescriba con `\%` para el signo de porcentaje.

1050* **La fórmula es demasiado grande**: una fórmula de más de 8,192 caracteres, o una cuya salida con formato tipográfico sería mucho más grande que su código fuente TeX, se muestra tal como está escrita. Pídele a Claude que la divida en fórmulas más pequeñas o que la escriba de forma más compacta.

1051* **La fórmula viene después de una gran cantidad de matemáticas**: dentro de un mismo bloque de texto de una respuesta, el panel formatea las fórmulas en orden hasta un límite. Una fórmula posterior que superaría el límite se muestra tal como está escrita. Pídele a Claude que vuelva a enviar la fórmula que necesitas por sí sola.

1036 1052 

1037<h3 id="claude-code-never-responds">1053<h3 id="claude-code-never-responds">

1038 Claude Code nunca responde1054 Claude Code nunca responde

Details

78 <p className="digest-wins-title">Otros logros</p>78 <p className="digest-wins-title">Otros logros</p>

79 79 

80 <div className="digest-wins-grid">80 <div className="digest-wins-grid">

81 <div><code>claude agents</code> ganó banderas de envío (<code>--add-dir</code>, <code>--settings</code>, <code>--mcp-config</code>, <code>--plugin-dir</code>, <code>--permission-mode</code>, <code>--model</code>, <code>--effort</code>, <code>--dangerously-skip-permissions</code>) para configurar sesiones en segundo plano, y <code>claude agents --cwd \<path></code> limita la lista de sesiones a un directorio</div>81 <div><code>claude agents</code> ganó banderas de envío (`--add-dir`, `--settings`, `--mcp-config`, `--plugin-dir`, `--permission-mode`, `--model`, `--effort`, `--dangerously-skip-permissions`) para configurar sesiones en segundo plano, y `claude agents --cwd <path>` limita la lista de sesiones a un directorio</div>

82 <div>Nuevo hook <code>args: string\[]</code> la forma exec genera el comando directamente sin un shell, por lo que los marcadores de posición de ruta nunca necesitan entrecomillarse</div>82 <div>Nuevo hook <code>args: string\[]</code> la forma exec genera el comando directamente sin un shell, por lo que los marcadores de posición de ruta nunca necesitan entrecomillarse</div>

83 <div>Nueva opción de configuración <code>continueOnBlock</code> para hooks <code>PostToolUse</code> devuelve la razón del rechazo del hook a Claude y continúa el turno en lugar de terminarlo</div>83 <div>Nueva opción de configuración <code>continueOnBlock</code> para hooks <code>PostToolUse</code> devuelve la razón del rechazo del hook a Claude y continúa el turno en lugar de terminarlo</div>

84 <div>Nuevo campo <code>terminalSequence</code> en la salida JSON del hook permite que los hooks emitan notificaciones de escritorio, títulos de ventana y campanas sin una terminal de control</div>84 <div>Nuevo campo <code>terminalSequence</code> en la salida JSON del hook permite que los hooks emitan notificaciones de escritorio, títulos de ventana y campanas sin una terminal de control</div>

85 <div>El menú Rewind agregó "Resumir hasta aquí" para comprimir el contexto anterior mientras se mantienen intactos los turnos recientes</div>85 <div>El menú Rewind agregó "Resumir hasta aquí" para comprimir el contexto anterior mientras se mantienen intactos los turnos recientes</div>

86 <div>Control Remoto, <code>/schedule</code>, conectores MCP de Claude.ai y preferencias de notificación ahora están deshabilitados cuando <code>ANTHROPIC\_API\_KEY</code>, <code>apiKeyHelper</code>, o <code>ANTHROPIC\_AUTH\_TOKEN</code> está establecido, incluso junto con un inicio de sesión de Claude.ai; desestablezca la clave API para usar estas características</div>86 <div>Control Remoto, <code>/schedule</code>, conectores MCP de claude.ai y preferencias de notificación ahora están deshabilitados cuando <code>ANTHROPIC\_API\_KEY</code>, <code>apiKeyHelper</code>, o <code>ANTHROPIC\_AUTH\_TOKEN</code> está establecido, incluso junto con un inicio de sesión de claude.ai; desestablezca la clave API para usar estas características</div>

87 <div>Los servidores stdio de MCP ahora reciben <code>CLAUDE\_PROJECT\_DIR</code> en su entorno, coincidiendo con hooks, y las configuraciones de plugins pueden hacer referencia a <code>\${"{"}CLAUDE\_PROJECT\_DIR{"}"}</code> en comandos</div>87 <div>Los servidores stdio de MCP ahora reciben <code>CLAUDE\_PROJECT\_DIR</code> en su entorno, coincidiendo con hooks, y las configuraciones de plugins pueden hacer referencia a <code>\${"{"}CLAUDE\_PROJECT\_DIR{"}"}</code> en comandos</div>

88 <div><code>claude plugin details \<name></code> muestra el inventario de componentes de un plugin y el costo de token proyectado por sesión, y el panel de detalles <code>/plugin</code> ahora también enumera los servidores LSP que proporciona un plugin</div>88 <div><code>claude plugin details \<name></code> muestra el inventario de componentes de un plugin y el costo de token proyectado por sesión, y el panel de detalles <code>/plugin</code> ahora también enumera los servidores LSP que proporciona un plugin</div>

89 <div>Los plugins con un <code>SKILL.md</code> de nivel raíz y sin subdirectorio <code>skills/</code> ahora se muestran como una skill</div>89 <div>Los plugins con un <code>SKILL.md</code> de nivel raíz y sin subdirectorio <code>skills/</code> ahora se muestran como una skill</div>

workflows.md +0 −4

Details

153* un prompt de tarea programada153* un prompt de tarea programada

154* una carga útil de webhook o comentario de solicitud de extracción retransmitido a la conversación154* una carga útil de webhook o comentario de solicitud de extracción retransmitido a la conversación

155 155 

156<Note>

157 Antes de v2.1.210, la palabra clave iniciaba un workflow desde cualquiera de estas rutas también, incluyendo una carga útil de webhook o comentario de solicitud de extracción retransmitido a la conversación.

158</Note>

159 

160<h3 id="let-claude-decide-with-ultracode">156<h3 id="let-claude-decide-with-ultracode">

161 Dejar que Claude decida con ultracode157 Dejar que Claude decida con ultracode

162</h3>158</h3>

worktrees.md +6 −3

Details

9Un [git worktree](https://git-scm.com/docs/git-worktree) es un directorio de trabajo separado con sus propios archivos y rama, que comparte el mismo historial de repositorio y remoto que tu checkout principal. Ejecutar cada sesión de Claude Code en su propio worktree le da una copia separada de los archivos para editar, por lo que una sesión puede crear una funcionalidad mientras una segunda corrige un error.9Un [git worktree](https://git-scm.com/docs/git-worktree) es un directorio de trabajo separado con sus propios archivos y rama, que comparte el mismo historial de repositorio y remoto que tu checkout principal. Ejecutar cada sesión de Claude Code en su propio worktree le da una copia separada de los archivos para editar, por lo que una sesión puede crear una funcionalidad mientras una segunda corrige un error.

10 10 

11<Note>11<Note>

12 Los worktrees requieren un repositorio de git; para otros sistemas de control de versiones, [configure hooks para reemplazar la lógica de git](#non-git-version-control). En la [aplicación de escritorio](/docs/es/desktop#work-in-parallel-with-sessions), seleccione la opción **worktree** cuando inicie una sesión para darle su propio worktree.12 Si usas otro sistema de control de versiones o la aplicación de escritorio, sigue las instrucciones para tu configuración:

13 

14 * **Otros sistemas de control de versiones**: los worktrees requieren un repositorio de git; [configura hooks para reemplazar la lógica de git](#non-git-version-control)

15 * **Aplicación de escritorio**: consulta [Ejecutar una sesión en su propio worktree](/docs/es/desktop#run-a-session-in-its-own-worktree)

13</Note>16</Note>

14 17 

15Los worktrees son una de varias formas de ejecutar Claude en paralelo. Aíslan ediciones de archivos. Los [subagentes](/docs/es/sub-agents) dividen el trabajo dentro de una sesión, y la [mensajería entre sesiones](/docs/es/cross-session-messaging) permite que Claude pase hallazgos entre las sesiones en sus worktrees. Consulte [Ejecutar agentes en paralelo](/docs/es/agents) para comparar los enfoques, o salte directamente a [Aislar subagentes con worktrees](#isolate-subagents-with-worktrees) para usar worktrees y subagentes juntos.18Los worktrees son una de varias formas de ejecutar Claude en paralelo. Aíslan ediciones de archivos. Los [subagentes](/docs/es/sub-agents) dividen el trabajo dentro de una sesión, y la [mensajería entre sesiones](/docs/es/cross-session-messaging) permite que Claude pase hallazgos entre las sesiones en sus worktrees. Consulte [Ejecutar agentes en paralelo](/docs/es/agents) para comparar los enfoques, o salte directamente a [Aislar subagentes con worktrees](#isolate-subagents-with-worktrees) para usar worktrees y subagentes juntos.


270 273 

271Todos estos se aplican tanto si creas el worktree con `--worktree` como con `git worktree add`.274Todos estos se aplican tanto si creas el worktree con `--worktree` como con `git worktree add`.

272 275 

273En una sesión de worktree que inicias desde la [aplicación de escritorio](/docs/es/desktop#work-in-parallel-with-sessions), Claude Code lee la configuración del proyecto, como ajustes, hooks, skills, agentes, comandos y servidores de [`.mcp.json`](/docs/es/mcp#project-scope), desde la raíz del checkout principal en lugar de desde el worktree. Los comandos de los hooks se ejecutan en esa raíz, y `${CLAUDE_PROJECT_DIR}` apunta a ella. Para acceder a los archivos en los que Claude está trabajando, lee la ruta del worktree desde el [campo de entrada `cwd`](/docs/es/hooks#common-input-fields) del hook. Los archivos `CLAUDE.md` y `.claude/rules/` se siguen cargando desde el worktree.276En una sesión de worktree que inicias desde la [aplicación de escritorio](/docs/es/desktop#run-a-session-in-its-own-worktree), Claude Code lee la configuración del proyecto, como ajustes, hooks, skills, agentes, comandos y servidores de [`.mcp.json`](/docs/es/mcp#project-scope), desde la raíz del checkout principal. Los comandos de los hooks se ejecutan en esa raíz, y `${CLAUDE_PROJECT_DIR}` apunta a ella. Para acceder a los archivos en los que Claude está trabajando, lee la ruta del worktree desde el [campo de entrada `cwd`](/docs/es/hooks#common-input-fields) del hook. Los archivos `CLAUDE.md` y `.claude/rules/` se siguen cargando desde el worktree.

274 277 

275<h2 id="manage-worktrees-manually">278<h2 id="manage-worktrees-manually">

276 Administre worktrees manualmente279 Administre worktrees manualmente


434* [Mensajería entre sesiones](/docs/es/cross-session-messaging): deje que las sesiones en sus worktrees pasen hallazgos entre sí437* [Mensajería entre sesiones](/docs/es/cross-session-messaging): deje que las sesiones en sus worktrees pasen hallazgos entre sí

435* [Equipos de agentes](/docs/es/agent-teams): coordine múltiples sesiones de Claude automáticamente438* [Equipos de agentes](/docs/es/agent-teams): coordine múltiples sesiones de Claude automáticamente

436* [Administrar sesiones](/docs/es/sessions): nombre, reanude y cambie entre conversaciones439* [Administrar sesiones](/docs/es/sessions): nombre, reanude y cambie entre conversaciones

437* [Sesiones paralelas de escritorio](/docs/es/desktop#work-in-parallel-with-sessions): sesiones respaldadas por worktree en la aplicación de escritorio440* [Ejecutar una sesión de escritorio en su propio worktree](/docs/es/desktop#run-a-session-in-its-own-worktree): sesiones respaldadas por worktree en la aplicación de escritorio