SpyBara
Go Premium

Documentation 2026-10-08 22:58 UTC to 2026-10-09 22:01 UTC

64 files changed +1,770 −915. View all changes and history on the product overview
2026
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

216| Opción | Qué controla | Predeterminado |216| Opción | Qué controla | Predeterminado |

217| :- | :- | :- |217| :- | :- | :- |

218| Máximo de turnos (`max_turns` / `maxTurns`) | Máximo de viajes de ida y vuelta de uso de herramientas | Sin límite |218| Máximo de turnos (`max_turns` / `maxTurns`) | Máximo de viajes de ida y vuelta de uso de herramientas | Sin límite |

219| Presupuesto máximo (`max_budget_usd` / `maxBudgetUsd`) | Costo máximo antes de detener | Sin límite |219| Presupuesto máximo (`max_budget_usd` / `maxBudgetUsd`) | Gasto estimado en el que se detiene el bucle | Sin límite |

220 220 

221Cuando se alcanza cualquiera de los límites, el SDK devuelve un `ResultMessage` con un subtipo de error correspondiente (`error_max_turns` o `error_max_budget_usd`). Vea [Manejar el resultado](#handle-the-result) para cómo verificar estos subtipos y [`ClaudeAgentOptions`](/docs/es/agent-sdk/python#claudeagentoptions) / [`Options`](/docs/es/agent-sdk/typescript#options) para la sintaxis.221Cuando se alcanza cualquiera de los límites, el SDK devuelve un `ResultMessage` con un subtipo de error correspondiente (`error_max_turns` o `error_max_budget_usd`). Vea [Manejar el resultado](#handle-the-result) para cómo verificar estos subtipos y [`ClaudeAgentOptions`](/docs/es/agent-sdk/python#claudeagentoptions) / [`Options`](/docs/es/agent-sdk/typescript#options) para la sintaxis.

222 222 


224 224 

225Con [entrada de transmisión](/docs/es/agent-sdk/streaming-vs-single-mode), un mensaje que aún está en cola cuando un turno termina en el límite de máximo de turnos permanece en cola. Claude Code no lo agrega a la última llamada del modelo de ese turno. Inicia un nuevo turno para el mensaje, y el conteo de máximo de turnos comienza de nuevo para ese turno. El total de presupuesto sigue acumulándose entre mensajes, y una vez que el gasto alcanza `maxBudgetUsd`, los mensajes posteriores en la misma conversación terminan con el resultado `error_max_budget_usd`. Un [`/clear`](/docs/es/agent-sdk/cost-tracking) reinicia el presupuesto.225Con [entrada de transmisión](/docs/es/agent-sdk/streaming-vs-single-mode), un mensaje que aún está en cola cuando un turno termina en el límite de máximo de turnos permanece en cola. Claude Code no lo agrega a la última llamada del modelo de ese turno. Inicia un nuevo turno para el mensaje, y el conteo de máximo de turnos comienza de nuevo para ese turno. El total de presupuesto sigue acumulándose entre mensajes, y una vez que el gasto alcanza `maxBudgetUsd`, los mensajes posteriores en la misma conversación terminan con el resultado `error_max_budget_usd`. Un [`/clear`](/docs/es/agent-sdk/cost-tracking) reinicia el presupuesto.

226 226 

227<h4 id="budget-headroom">

228 Margen del presupuesto

229</h4>

230 

231Claude Code compara el gasto con el límite `max_budget_usd` / `maxBudgetUsd` después de que llegan las respuestas del modelo, porque el costo de cada respuesta proviene del uso de tokens que la API devuelve con ella. La respuesta que alcanza el límite aún se completa y cuenta para [`total_cost_usd`](/docs/es/agent-sdk/cost-tracking#get-the-total-cost-of-a-query). Por lo tanto, el gasto puede superar el límite hasta en el costo de esa respuesta, más lo que gasten los subagentes que aún se estén ejecutando en ese momento antes de detenerse. Deja un margen para esto cuando establezcas el límite.

232 

227<h3 id="effort-level">233<h3 id="effort-level">

228 Nivel de esfuerzo234 Nivel de esfuerzo

229</h3>235</h3>

Details

78 78 

79Puede configurar servidores MCP en código al llamar a `query()`, o en un archivo `.mcp.json` cargado mediante [`settingSources`](#from-a-config-file).79Puede configurar servidores MCP en código al llamar a `query()`, o en un archivo `.mcp.json` cargado mediante [`settingSources`](#from-a-config-file).

80 80 

81<h3 id="in-code">81<span id="in-code" />

82 En código82 

83<h3 id="add-a-server-in-code">

84 Agregar un servidor en código

83</h3>85</h3>

84 86 

85Pase servidores MCP directamente en la opción `mcpServers`. Este ejemplo inicia un servidor MCP del sistema de archivos local para `/Users/me/projects`. Reemplace esa ruta con un directorio en su máquina:87Pase servidores MCP directamente en la opción `mcpServers`. Este ejemplo inicia un servidor MCP del sistema de archivos local para `/Users/me/projects`. Reemplace esa ruta con un directorio en su máquina:


135 ```137 ```

136</CodeGroup>138</CodeGroup>

137 139 

138<h3 id="from-a-config-file">140<span id="from-a-config-file" />

139 Desde un archivo de configuración141 

142<h3 id="add-a-server-from-a-config-file">

143 Agregar un servidor desde un archivo de configuración

140</h3>144</h3>

141 145 

142Cree un archivo `.mcp.json` en la raíz de su proyecto. El archivo se carga cuando la fuente de configuración `project` está habilitada, que lo está para las opciones predeterminadas de `query()`. Si establece `settingSources` explícitamente, incluya `"project"` para que este archivo se cargue. Reemplace `/Users/me/projects` con un directorio en su máquina:146Cree un archivo `.mcp.json` en la raíz de su proyecto. El archivo se carga cuando la fuente de configuración `project` está habilitada, que lo está para las opciones predeterminadas de `query()`. Si establece `settingSources` explícitamente, incluya `"project"` para que este archivo se cargue. Reemplace `/Users/me/projects` con un directorio en su máquina:


301 Servidores stdio305 Servidores stdio

302</h3>306</h3>

303 307 

304Procesos locales que se comunican a través de stdin/stdout. Utilice esto para servidores MCP que ejecuta en la misma máquina. Para el formulario `.mcp.json`, use los mismos campos que se muestran en [Desde un archivo de configuración](#from-a-config-file). En código, pase el comando y sus argumentos. Reemplace `/Users/me/projects` con un directorio en su máquina:308Procesos locales que se comunican a través de stdin/stdout. Utiliza esto para servidores MCP que ejecutas en la misma máquina. Para el formato `.mcp.json`, usa los mismos campos que se muestran en [Agregar un servidor desde un archivo de configuración](#from-a-config-file). En código, pasa el comando y sus argumentos. Reemplaza `/Users/me/projects` con un directorio en tu máquina:

305 309 

306<CodeGroup>310<CodeGroup>

307 ```typescript TypeScript hidelines={1,-1} theme={null}311 ```typescript TypeScript hidelines={1,-1} theme={null}

Details

28 Pasos de migración28 Pasos de migración

29</h2>29</h2>

30 30 

31<h3 id="for-typescript/javascript-projects">31<span id="for-typescript/javascript-projects" />

32 Para proyectos de TypeScript/JavaScript32 

33<h3 id="migrate-a-typescript-or-javascript-project">

34 Migrar un proyecto de TypeScript o JavaScript

33</h3>35</h3>

34 36 

35**1. Desinstale el paquete antiguo:**37**1. Desinstala el paquete antiguo:**

36 38 

37```bash theme={null}39```bash theme={null}

38npm uninstall @anthropic-ai/claude-code40npm uninstall @anthropic-ai/claude-code

39```41```

40 42 

41**2. Instale el nuevo paquete:**43**2. Instala el nuevo paquete:**

42 44 

43```bash theme={null}45```bash theme={null}

44npm install @anthropic-ai/claude-agent-sdk46npm install @anthropic-ai/claude-agent-sdk

45```47```

46 48 

47**3. Actualice sus importaciones:**49**3. Actualiza tus importaciones:**

48 50 

49Cambie todas las importaciones de `@anthropic-ai/claude-code` a `@anthropic-ai/claude-agent-sdk`:51Cambia todas las importaciones de `@anthropic-ai/claude-code` a `@anthropic-ai/claude-agent-sdk`:

50 52 

51```typescript theme={null}53```typescript theme={null}

52// Antes54// Antes


56import { query, tool, createSdkMcpServer } from "@anthropic-ai/claude-agent-sdk";58import { query, tool, createSdkMcpServer } from "@anthropic-ai/claude-agent-sdk";

57```59```

58 60 

59**4. Actualice package.json:**61**4. Actualiza package.json:**

62 

63Si `@anthropic-ai/claude-code` aún aparece en tu `package.json`, reemplázalo con `@anthropic-ai/claude-agent-sdk` y actualiza también el rango de versión, por ejemplo de `"^0.0.42"` a `"^0.3.0"`.

60 64 

61Si `@anthropic-ai/claude-code` aún aparece en su `package.json`, reemplácelo con `@anthropic-ai/claude-agent-sdk` y actualice también el rango de versión, por ejemplo de `"^0.0.42"` a `"^0.3.0"`.65**5. Revisa los [cambios importantes](#breaking-changes)**

62 66 

63**5. Revise [cambios importantes](#breaking-changes)**67Realiza los cambios de código necesarios para completar la migración.

64 68 

65Realice los cambios de código necesarios para completar la migración.69<span id="for-python-projects" />

66 70 

67<h3 id="for-python-projects">71<h3 id="migrate-a-python-project">

68 Para proyectos de Python72 Migrar un proyecto de Python

69</h3>73</h3>

70 74 

71**1. Desinstale el paquete antiguo:**75**1. Desinstala el paquete antiguo:**

72 76 

73```bash theme={null}77```bash theme={null}

74pip uninstall -y claude-code-sdk78pip uninstall -y claude-code-sdk

75```79```

76 80 

77Si el paquete antiguo no está instalado, pip imprime `WARNING: Skipping claude-code-sdk as it is not installed.` Esto es esperado y puede continuar al siguiente paso.81Si el paquete antiguo no está instalado, pip imprime `WARNING: Skipping claude-code-sdk as it is not installed.` Esto es esperado y puedes continuar con el siguiente paso.

78 82 

79**2. Instale el nuevo paquete:**83**2. Instala el nuevo paquete:**

80 84 

81```bash theme={null}85```bash theme={null}

82pip install claude-agent-sdk86pip install claude-agent-sdk

83```87```

84 88 

85Si `claude-code-sdk` aparece en su `requirements.txt` o `pyproject.toml`, reemplácelo con `claude-agent-sdk`.89Si `claude-code-sdk` aparece en tu `requirements.txt` o `pyproject.toml`, reemplázalo con `claude-agent-sdk`.

86 90 

87**3. Actualice sus importaciones:**91**3. Actualiza tus importaciones:**

88 92 

89Cambie todas las importaciones de `claude_code_sdk` a `claude_agent_sdk`:93Cambia todas las importaciones de `claude_code_sdk` a `claude_agent_sdk`:

90 94 

91```python theme={null}95```python theme={null}

92# Antes96# Antes


96from claude_agent_sdk import query, ClaudeAgentOptions100from claude_agent_sdk import query, ClaudeAgentOptions

97```101```

98 102 

99**4. Revise [cambios importantes](#breaking-changes)**103**4. Revisa los [cambios importantes](#breaking-changes)**

100 104 

101Realice los cambios de código necesarios para completar la migración.105Realiza los cambios de código necesarios para completar la migración.

102 106 

103<h2 id="breaking-changes">107<h2 id="breaking-changes">

104 Cambios importantes108 Cambios importantes

Details

146| `auto` | Aprobaciones clasificadas por modelo | Un clasificador de modelo revisa acciones como comandos de shell y solicitudes de red, permitiendo o bloqueando cada una que revisa. Consulte [Modo Auto](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) para disponibilidad y el orden de decisión |146| `auto` | Aprobaciones clasificadas por modelo | Un clasificador de modelo revisa acciones como comandos de shell y solicitudes de red, permitiendo o bloqueando cada una que revisa. Consulte [Modo Auto](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) para disponibilidad y el orden de decisión |

147 147 

148<Warning>148<Warning>

149 **Herencia de subagentes:** Un subagente se ejecuta en el modo de permisos de la sesión principal a menos que establezca `permissionMode` en su [`AgentDefinition`](/docs/es/agent-sdk/typescript#agentdefinition) y la sesión principal esté en modo `default`, `dontAsk` o `plan`. Incluso entonces, Claude Code nunca aplica un valor `"bypassPermissions"`. Un subagente se ejecuta en modo `bypassPermissions` solo cuando la sesión principal lo hace. La excepción `bypassPermissions` requiere Claude Code v2.1.267 o posterior.149 **Herencia de subagentes:** Un subagente se ejecuta en el modo de permisos de la sesión principal a menos que establezcas `permissionMode` en su [`AgentDefinition`](/docs/es/agent-sdk/typescript#agentdefinition) y la sesión principal esté en modo `default`, `dontAsk` o `plan`. Incluso entonces, Claude Code nunca aplica un valor `"bypassPermissions"`, y aplica un valor `"auto"` solo cuando el [modo automático está disponible](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) para ese subagente. Un subagente se ejecuta en modo `bypassPermissions` solo cuando la propia sesión principal está en ese modo. La excepción `bypassPermissions` requiere Claude Code v2.1.267 o posterior.

150 150 

151 Los subagentes pueden tener indicaciones del sistema diferentes y un comportamiento menos restringido que su agente principal, por lo que heredar `bypassPermissions` les otorga acceso completo y autónomo al sistema. Las [acciones que ningún modo aprueba automáticamente](/docs/es/permission-modes#actions-no-mode-auto-approves) aún se aplican.151 Los subagentes pueden tener indicaciones del sistema diferentes y un comportamiento menos restringido que su agente principal, por lo que heredar `bypassPermissions` les otorga acceso completo y autónomo al sistema. Las [acciones que ningún modo aprueba automáticamente](/docs/es/permission-modes#actions-no-mode-auto-approves) aún se aplican.

152</Warning>152</Warning>

Details

928| `resume` | `str \| None` | `None` | ID de sesión para reanudar |928| `resume` | `str \| None` | `None` | ID de sesión para reanudar |

929| `session_id` | `str \| None` | `None` | Usar un ID de sesión específico en lugar de uno generado automáticamente. Debe ser un UUID válido. No se puede combinar con `continue_conversation` o `resume` a menos que `fork_session` también esté establecido |929| `session_id` | `str \| None` | `None` | Usar un ID de sesión específico en lugar de uno generado automáticamente. Debe ser un UUID válido. No se puede combinar con `continue_conversation` o `resume` a menos que `fork_session` también esté establecido |

930| `max_turns` | `int \| None` | `None` | Máximo de turnos agénticos (ciclos de ida y vuelta de uso de herramientas) |930| `max_turns` | `int \| None` | `None` | Máximo de turnos agénticos (ciclos de ida y vuelta de uso de herramientas) |

931| `max_budget_usd` | `float \| None` | `None` | Detener la consulta cuando la estimación de costo del lado del cliente alcance este valor en USD. Cuenta solo el gasto propio de la llamada; los totales restaurados de una sesión reanudada no cuentan. Para advertencias de precisión y comportamiento de reinicio, consulta [Rastrear costo y uso](/docs/es/agent-sdk/cost-tracking) |931| `max_budget_usd` | `float \| None` | `None` | Detener la consulta cuando la estimación de costo del lado del cliente alcance este valor en USD. La estimación puede superar este valor, así que [deja margen](/docs/es/agent-sdk/agent-loop#budget-headroom). Cuenta solo el gasto propio de la llamada; los totales restaurados de una sesión reanudada no cuentan. Para advertencias de precisión y comportamiento de reinicio, consulta [Rastrear costo y uso](/docs/es/agent-sdk/cost-tracking) |

932| `disallowed_tools` | `list[str]` | `[]` | Herramientas a denegar. Un nombre simple como `"Bash"` elimina la herramienta del contexto de Claude. Una regla con alcance como `"Bash(rm *)"` deja la herramienta disponible y deniega las llamadas coincidentes en todos los modos de permisos, incluido `bypassPermissions`, para el comando [tal como está escrito](/docs/es/permissions#bash-rule-limits). Consulta [Permisos](/docs/es/agent-sdk/permissions#allow-and-deny-rules) |932| `disallowed_tools` | `list[str]` | `[]` | Herramientas a denegar. Un nombre simple como `"Bash"` elimina la herramienta del contexto de Claude. Una regla con alcance como `"Bash(rm *)"` deja la herramienta disponible y deniega las llamadas coincidentes en todos los modos de permisos, incluido `bypassPermissions`, para el comando [tal como está escrito](/docs/es/permissions#bash-rule-limits). Consulta [Permisos](/docs/es/agent-sdk/permissions#allow-and-deny-rules) |

933| `enable_file_checkpointing` | `bool` | `False` | Habilitar el seguimiento de cambios de archivos para rebobinar. Consulta [Checkpointing de archivos](/docs/es/agent-sdk/file-checkpointing) |933| `enable_file_checkpointing` | `bool` | `False` | Habilitar el seguimiento de cambios de archivos para rebobinar. Consulta [Checkpointing de archivos](/docs/es/agent-sdk/file-checkpointing) |

934| `model` | `str \| None` | `None` | Alias de modelo de Claude o nombre de modelo completo. Consulta [valores aceptados e IDs específicos del proveedor](/docs/es/model-config#available-models) |934| `model` | `str \| None` | `None` | Alias de modelo de Claude o nombre de modelo completo. Consulta [valores aceptados e IDs específicos del proveedor](/docs/es/model-config#available-models) |


987```987```

988 988 

989* `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.989* `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.

990* `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`, por lo que el tiempo real en el peor caso es aproximadamente `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` más el backoff. 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.990* `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`.

991 

992 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.

991* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: watchdog de estancamiento para subagentes. Mientras el watchdog de stream está activado, el predeterminado es `CLAUDE_STREAM_IDLE_TIMEOUT_MS` más 5 minutos, lo que da `600000` a menos que aumentes esa variable. Con el watchdog de stream desactivado, el predeterminado es `600000`. Antes de v2.1.257, el predeterminado era siempre `600000`.993* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: watchdog de estancamiento para subagentes. Mientras el watchdog de stream está activado, el predeterminado es `CLAUDE_STREAM_IDLE_TIMEOUT_MS` más 5 minutos, lo que da `600000` a menos que aumentes esa variable. Con el watchdog de stream desactivado, el predeterminado es `600000`. Antes de v2.1.257, el predeterminado era siempre `600000`.

992 994 

993 El temporizador se reinicia con cada evento de stream. Ante un estancamiento, Claude Code aborta el subagente e informa el estancamiento al padre. Para un subagente en segundo plano, también marca la tarea como fallida y adjunta cualquier resultado parcial.995 El temporizador se reinicia con cada evento de stream. Ante un estancamiento, Claude Code aborta el subagente e informa el estancamiento al padre. Para un subagente en segundo plano, también marca la tarea como fallida y adjunta cualquier resultado parcial.


3327{3329{

3328 "url": str, # The URL to fetch content from3330 "url": str, # The URL to fetch content from

3329 "prompt": str, # The prompt to run on the fetched content3331 "prompt": str, # The prompt to run on the fetched content

3332 "offset": int | None, # Number of characters to skip from the start of the page. Requires Python Agent SDK 0.2.164 or later

3330}3333}

3331```3334```

3332 3335 

Details

323 Detectar invocación de subagente323 Detectar invocación de subagente

324</h2>324</h2>

325 325 

326Claude invoca subagentes a través de la herramienta Agent. Para detectar cuándo se invoca un subagente, busque bloques `tool_use` donde `name` sea `"Agent"`. Los mensajes desde dentro del contexto de un subagente incluyen un campo `parent_tool_use_id`.326Claude invoca subagentes a través de la herramienta Agent. Para detectar cuándo se invoca un subagente, busca bloques `tool_use` donde `name` sea `"Agent"`.

327 

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

327 329 

328<Note>330<Note>

329 La herramienta aparece como `"Agent"` en bloques `tool_use` pero como `"Task"` en la lista de herramientas `system:init`. Antes de Claude Code v2.1.63, los bloques `tool_use` también la nombraban `"Task"`. Para mantener la detección funcionando en todas las versiones del SDK, haga coincidir ambos valores en `block.name`.331 La herramienta aparece como `"Agent"` en bloques `tool_use` pero como `"Task"` en la lista de herramientas `system:init`. Antes de Claude Code v2.1.63, los bloques `tool_use` también la nombraban `"Task"`. Para mantener la detección funcionando en todas las versiones del SDK, haga coincidir ambos valores en `block.name`.


331 333 

332La estructura del mensaje difiere entre SDKs. En Python, accede a los bloques de contenido directamente a través de `message.content`. En TypeScript, `SDKAssistantMessage` envuelve el mensaje de la API de Claude, por lo que accede al contenido a través de `message.message.content`.334La estructura del mensaje difiere entre SDKs. En Python, accede a los bloques de contenido directamente a través de `message.content`. En TypeScript, `SDKAssistantMessage` envuelve el mensaje de la API de Claude, por lo que accede al contenido a través de `message.message.content`.

333 335 

334Este ejemplo itera a través de mensajes transmitidos, registrando cuándo se invoca un subagente y cuándo los mensajes posteriores se originan desde dentro del contexto de ejecución de ese subagente.336Este ejemplo itera a través de mensajes transmitidos, registrando cuándo se invoca un subagente y cuándo los mensajes posteriores se originan desde dentro del contexto de ejecución de ese subagente. La versión de TypeScript también registra el `agent_id` de cada mensaje de subagente que lo incluye.

335 337 

336<CodeGroup>338<CodeGroup>

337 ```python Python theme={null}339 ```python Python theme={null}


403 // Check if this message is from within a subagent's context405 // Check if this message is from within a subagent's context

404 if (msg.parent_tool_use_id) {406 if (msg.parent_tool_use_id) {

405 console.log(" (running inside subagent)");407 console.log(" (running inside subagent)");

408 // On assistant and user messages, agent_id matches the task_id

409 // on that subagent's task_started and other task events

410 if (msg.agent_id) {

411 console.log(` agent_id: ${msg.agent_id}`);

412 }

406 }413 }

407 414 

408 if ("result" in message) {415 if ("result" in message) {

Details

569| `includePartialMessages` | `boolean` | `false` | Incluye eventos de mensajes parciales |569| `includePartialMessages` | `boolean` | `false` | Incluye eventos de mensajes parciales |

570| `loadTimeoutMs` | `number` | `60000` | *Alfa.* Tiempo de espera en milisegundos para cada llamada a `sessionStore.load()` y `sessionStore.listSubkeys()` durante la materialización de la reanudación. Si el adaptador no se resuelve dentro de este intervalo, la consulta falla en lugar de quedarse colgada. Se ignora cuando `sessionStore` no está establecido |570| `loadTimeoutMs` | `number` | `60000` | *Alfa.* Tiempo de espera en milisegundos para cada llamada a `sessionStore.load()` y `sessionStore.listSubkeys()` durante la materialización de la reanudación. Si el adaptador no se resuelve dentro de este intervalo, la consulta falla en lugar de quedarse colgada. Se ignora cuando `sessionStore` no está establecido |

571| `managedSettings` | `Settings` | `undefined` | Configuración de nivel de política que tu proceso host proporciona a la sesión generada. En máquinas con configuración administrada implementada por un administrador, Claude Code la ignora a menos que la fuente administrada de mayor prioridad del administrador establezca `parentSettingsBehavior: 'merge'`, y nunca la combina mientras un [`policyHelper`](/docs/es/settings-reference#policyhelper) proporcione configuración administrada. Los valores combinados pasan por un filtro solo restrictivo; [Restringir la configuración principal](/docs/es/claude-apps-gateway#restrict-parent-settings) explica lo que admite el filtro y los bloqueos `allowManaged*Only`. Un host que establece [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/es/env-vars) hace que, en cambio, se lean tres claves directamente de este payload: su [configuración de modelos](/docs/es/model-config#restrict-model-selection) en Claude Code v2.1.222 o posterior, [`modelPricing`](/docs/es/settings-reference#modelpricing) cuando ninguna fuente administrada lo establece en v2.1.246 o posterior, y su entrada env `ENABLE_TOOL_SEARCH` en v2.1.247 o posterior |571| `managedSettings` | `Settings` | `undefined` | Configuración de nivel de política que tu proceso host proporciona a la sesión generada. En máquinas con configuración administrada implementada por un administrador, Claude Code la ignora a menos que la fuente administrada de mayor prioridad del administrador establezca `parentSettingsBehavior: 'merge'`, y nunca la combina mientras un [`policyHelper`](/docs/es/settings-reference#policyhelper) proporcione configuración administrada. Los valores combinados pasan por un filtro solo restrictivo; [Restringir la configuración principal](/docs/es/claude-apps-gateway#restrict-parent-settings) explica lo que admite el filtro y los bloqueos `allowManaged*Only`. Un host que establece [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/es/env-vars) hace que, en cambio, se lean tres claves directamente de este payload: su [configuración de modelos](/docs/es/model-config#restrict-model-selection) en Claude Code v2.1.222 o posterior, [`modelPricing`](/docs/es/settings-reference#modelpricing) cuando ninguna fuente administrada lo establece en v2.1.246 o posterior, y su entrada env `ENABLE_TOOL_SEARCH` en v2.1.247 o posterior |

572| `maxBudgetUsd` | `number` | `undefined` | Detiene la consulta cuando la estimación de costo del lado del cliente alcanza este valor en USD. Cuenta solo el gasto propio de la llamada; los totales restaurados de una sesión reanudada no cuentan. Para las advertencias sobre precisión y el comportamiento de restablecimiento, consulta [Seguimiento de costos y uso](/docs/es/agent-sdk/cost-tracking) |572| `maxBudgetUsd` | `number` | `undefined` | Detiene la consulta cuando la estimación de costo del lado del cliente alcanza este valor en USD. La estimación puede superar este valor, así que [deja margen](/docs/es/agent-sdk/agent-loop#budget-headroom). Solo cuenta el gasto propio de la llamada; los totales restaurados de una sesión reanudada no cuentan. Para advertencias sobre la precisión y el comportamiento de restablecimiento, consulta [Seguimiento de costos y uso](/docs/es/agent-sdk/cost-tracking) |

573| `maxThinkingTokens` | `number` | `undefined` | *Obsoleto:* usa `thinking` en su lugar. Máximo de tokens para el proceso de pensamiento |573| `maxThinkingTokens` | `number` | `undefined` | *Obsoleto:* usa `thinking` en su lugar. Máximo de tokens para el proceso de pensamiento |

574| `maxTurns` | `number` | `undefined` | Máximo de turnos agénticos (ciclos de ida y vuelta de uso de herramientas) |574| `maxTurns` | `number` | `undefined` | Máximo de turnos agénticos (ciclos de ida y vuelta de uso de herramientas) |

575| `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | Configuraciones de servidores MCP |575| `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | Configuraciones de servidores MCP |


631```631```

632 632 

633* `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.633* `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.

634* `CLAUDE_CODE_MAX_RETRIES`: máximo de reintentos de la API. Valor predeterminado `10`, con un tope de `15`. Cada reintento obtiene su propia ventana de `API_TIMEOUT_MS`, por lo que el tiempo real en el peor caso es aproximadamente `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` más el tiempo de backoff. 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 valor predeterminado para otros errores transitorios a `300` y elimina el tope de esta variable.634* `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`.

635 

636 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.

635* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: watchdog de bloqueos para subagentes. Mientras el watchdog del stream está activado, el valor predeterminado es `CLAUDE_STREAM_IDLE_TIMEOUT_MS` más 5 minutos, lo que da `600000` a menos que aumentes esa variable. Con el watchdog del stream desactivado, el valor predeterminado es `600000`. Antes de v2.1.257, el valor predeterminado siempre era `600000`.637* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: watchdog de bloqueos para subagentes. Mientras el watchdog del stream está activado, el valor predeterminado es `CLAUDE_STREAM_IDLE_TIMEOUT_MS` más 5 minutos, lo que da `600000` a menos que aumentes esa variable. Con el watchdog del stream desactivado, el valor predeterminado es `600000`. Antes de v2.1.257, el valor predeterminado siempre era `600000`.

636 638 

637 El temporizador se reinicia con cada evento del stream. Ante un bloqueo, Claude Code aborta el subagente e informa el bloqueo al padre. Para un subagente en segundo plano, también marca la tarea como fallida y adjunta cualquier resultado parcial.639 El temporizador se reinicia con cada evento del stream. Ante un bloqueo, Claude Code aborta el subagente e informa el bloqueo al padre. Para un subagente en segundo plano, también marca la tarea como fallida y adjunta cualquier resultado parcial.


1561 parent_tool_use_id: string | null;1563 parent_tool_use_id: string | null;

1562 error?: SDKAssistantMessageError;1564 error?: SDKAssistantMessageError;

1563 aborted?: true;1565 aborted?: true;

1566 agent_id?: string;

1564 timestamp?: string;1567 timestamp?: string;

1565 context_usage?: SDKContextUsage;1568 context_usage?: SDKContextUsage;

1569 usage_report?: SDKUsageReport;

1566 user_message_uuid?: string;1570 user_message_uuid?: string;

1567 user_message_uuids?: string[];1571 user_message_uuids?: string[];

1568 resume_reason?: string;1572 resume_reason?: string;


1580 1584 

1581`aborted` es `true` cuando una interrupción o cancelación truncó el mensaje del asistente antes de que el stream se completara: el mensaje no tiene `stop_reason` y el contenido puede terminar a mitad de una palabra. El campo está ausente en los mensajes que se completaron normalmente. Requiere Agent SDK v0.3.214 o posterior.1585`aborted` es `true` cuando una interrupción o cancelación truncó el mensaje del asistente antes de que el stream se completara: el mensaje no tiene `stop_reason` y el contenido puede terminar a mitad de una palabra. El campo está ausente en los mensajes que se completaron normalmente. Requiere Agent SDK v0.3.214 o posterior.

1582 1586 

1587`agent_id` identifica el subagente que produjo el mensaje y está ausente en los mensajes del hilo principal. El valor es igual al `task_id` del evento [`task_started`](#sdktaskstartedmessage) de ese subagente y de sus demás eventos de tarea, y no cambia cuando el subagente se [reanuda](/docs/es/agent-sdk/subagents#resume-subagents). El campo requiere Agent SDK v0.3.292 o posterior.

1588 

1589Asocia los mensajes de un subagente con sus eventos de tarea mediante `agent_id`, en lugar de emparejar el `parent_tool_use_id` de un mensaje con el `tool_use_id` de un evento de tarea. Cuando una llamada a herramienta reanuda el subagente, los eventos de tarea llevan el `tool_use_id` de esa llamada, mientras que los mensajes conservan el `parent_tool_use_id` de la llamada a herramienta que inició el subagente por primera vez, así que ambos ya no coinciden.

1590 

1583Claude Code establece `user_message_uuid` y `user_message_uuids` en el primer mensaje del asistente del turno, bajo las condiciones descritas en [`user_message_uuid`](#user_message_uuid). Cuando Claude Code vuelve a ejecutar un turno que un reinicio interrumpió, los mensajes del asistente de la nueva ejecución que llevan esos campos también llevan [`resume_reason`](#resume_reason).1591Claude Code establece `user_message_uuid` y `user_message_uuids` en el primer mensaje del asistente del turno, bajo las condiciones descritas en [`user_message_uuid`](#user_message_uuid). Cuando Claude Code vuelve a ejecutar un turno que un reinicio interrumpió, los mensajes del asistente de la nueva ejecución que llevan esos campos también llevan [`resume_reason`](#resume_reason).

1584 1592 

1585`timestamp` es la hora ISO 8601 en que el contenido del mensaje terminó de generarse en el proceso que lo produjo. El valor proviene del reloj de esa máquina, así que úsalo solo para mostrarlo y no ordenes los mensajes según él. Un turno de API puede producir varios mensajes del asistente que comparten un `message.id`, cada uno con su propio `timestamp`. Cuando el campo está ausente, recurre a la hora en que recibiste el mensaje.1593`timestamp` es la hora ISO 8601 en que el contenido del mensaje terminó de generarse en el proceso que lo produjo. El valor proviene del reloj de esa máquina, así que úsalo solo para mostrarlo y no ordenes los mensajes según él. Un turno de API puede producir varios mensajes del asistente que comparten un `message.id`, cada uno con su propio `timestamp`. Cuando el campo está ausente, recurre a la hora en que recibiste el mensaje.

1586 1594 

1587`context_usage` es una copia estructurada del informe de `/context`, con el tipo [`SDKContextUsage`](#sdkcontextusage), y requiere Agent SDK v0.3.232 o posterior. Cuando envías `/context` como prompt, Claude Code entrega el informe como un mensaje del asistente cuyo `message.content` contiene la tabla en markdown, y adjunta `context_usage` a ese mismo mensaje. Claude Code no establece el campo en ningún otro mensaje del asistente, y las versiones anteriores entregan la tabla de `/context` sin él, así que lee el desglose del campo cuando esté presente y recurre al texto en markdown cuando no lo esté.1595`context_usage` es una copia estructurada del informe de `/context`, con el tipo [`SDKContextUsage`](#sdkcontextusage), y requiere Agent SDK v0.3.232 o posterior. Cuando envías `/context` como prompt, Claude Code entrega el informe como un mensaje del asistente cuyo `message.content` contiene la tabla en markdown, y adjunta `context_usage` a ese mismo mensaje. Claude Code no establece el campo en ningún otro mensaje del asistente, y las versiones anteriores entregan la tabla de `/context` sin él, así que lee el desglose del campo cuando esté presente y recurre al texto en markdown cuando no lo esté.

1588 1596 

1597`usage_report` es una copia estructurada del informe de `/usage`, con el tipo [`SDKUsageReport`](#sdkusagereport), y requiere Agent SDK v0.3.273 o posterior. Cuando envías `/usage` como prompt, Claude Code entrega el informe como un mensaje del asistente cuyo `message.content` contiene el texto. Adjunta `usage_report` a ese mismo mensaje solo cuando la sesión cumple todas estas condiciones:

1598 

1599* La sesión se autentica con una credencial de claude.ai

1600* La credencial muestra un tipo de plan conocido o tiene el alcance `user:profile`

1601* La cuenta no tiene facturación basada en el uso

1602 

1603Un token de `claude setup-token` pasado como `CLAUDE_CODE_OAUTH_TOKEN` no cumple los requisitos de forma predeterminada, porque solo tiene el alcance `user:inference`. Otras sesiones, como las sesiones con clave de API, entregan el texto sin el campo, y lo mismo hacen las versiones anteriores. Lee el informe desde el campo cuando esté presente y recurre al texto cuando no lo esté.

1604 

1589<h3 id="sdkusermessage">1605<h3 id="sdkusermessage">

1590 `SDKUserMessage`1606 `SDKUserMessage`

1591</h3>1607</h3>


1597 type: "user";1613 type: "user";

1598 uuid?: UUID;1614 uuid?: UUID;

1599 session_id?: string;1615 session_id?: string;

1616 agent_id?: string;

1600 message: MessageParam; // From Anthropic SDK1617 message: MessageParam; // From Anthropic SDK

1601 pasted_content?: MessageParam["content"][];1618 pasted_content?: MessageParam["content"][];

1602 parent_tool_use_id: string | null;1619 parent_tool_use_id: string | null;


1636};1653};

1637```1654```

1638 1655 

1656Un mensaje de usuario que produce un subagente, como el `tool_result` de una de sus propias llamadas a herramientas, lleva `agent_id`. Consulta [`SDKAssistantMessage`](#sdkassistantmessage), que define el campo y su requisito de versión.

1657 

1639En un mensaje que lleva un bloque `tool_result`, `tool_use_result` es el objeto de salida estructurada de la herramienta y no el texto enviado al modelo. Su forma depende de la herramienta nombrada por el bloque `tool_use` correspondiente, por lo que el campo tiene el tipo `unknown`; las formas integradas se enumeran en [Tipos de salida de herramientas](#tool-output-types). Estos resultados requieren un manejo más allá de su forma listada:1658En un mensaje que lleva un bloque `tool_result`, `tool_use_result` es el objeto de salida estructurada de la herramienta y no el texto enviado al modelo. Su forma depende de la herramienta nombrada por el bloque `tool_use` correspondiente, por lo que el campo tiene el tipo `unknown`; las formas integradas se enumeran en [Tipos de salida de herramientas](#tool-output-types). Estos resultados requieren un manejo más allá de su forma listada:

1640 1659 

1641* La herramienta `Agent`: `tool_use_result` es [`AgentOutput`](#agent-2). Renderiza a partir de él en lugar de analizar el texto de `tool_result`. El `content` de un resultado `completed` contiene el informe del subagente o, para un subagente cuyo informe pasa por una llamada a la herramienta `SubagentHandback`, una nota breve sobre esa entrega en lugar del informe. En [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) en Claude Code v2.1.271 o posterior, todo subagente que produce un resultado `completed` informa de esa manera a menos que sea un [fork](/docs/es/sub-agents#fork-the-current-conversation), y Claude recibe el informe como un mensaje separado del subagente.1660* La herramienta `Agent`: `tool_use_result` es [`AgentOutput`](#agent-2). Renderiza a partir de él en lugar de analizar el texto de `tool_result`. El `content` de un resultado `completed` contiene el informe del subagente o, para un subagente cuyo informe pasa por una llamada a la herramienta `SubagentHandback`, una nota breve sobre esa entrega en lugar del informe. En [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) en Claude Code v2.1.271 o posterior, todo subagente que produce un resultado `completed` informa de esa manera a menos que sea un [fork](/docs/es/sub-agents#fork-the-current-conversation), y Claude recibe el informe como un mensaje separado del subagente.


1992 `SDKPartialAssistantMessage`2011 `SDKPartialAssistantMessage`

1993</h3>2012</h3>

1994 2013 

1995Mensaje parcial en streaming (solo cuando `includePartialMessages` es true). El campo `parent_tool_use_id` siempre es `null`: los eventos de streaming se emiten solo para la sesión principal. Para atribuir contenido a subagentes, usa los mensajes completos, que llevan `parent_tool_use_id`, o habilita [`forwardSubagentText`](#options) para recibir el texto y el pensamiento de los subagentes como mensajes completos.2014Mensaje parcial en streaming (solo cuando `includePartialMessages` es true).

2015 

2016El campo `parent_tool_use_id` siempre es `null`: los eventos de stream se emiten solo para la sesión principal. Para atribuir a subagentes, usa los mensajes completos, que llevan [`agent_id`](#sdkassistantmessage) y `parent_tool_use_id`, o habilita [`forwardSubagentText`](#options) para recibir el texto y el pensamiento de los subagentes como mensajes completos.

1996 2017 

1997```typescript theme={null}2018```typescript theme={null}

1998type SDKPartialAssistantMessage = {2019type SDKPartialAssistantMessage = {


2229* `buffer`: la reserva para la compactación2250* `buffer`: la reserva para la compactación

2230* `deferred`: esquemas de herramientas que Claude Code mantiene fuera de la ventana y excluye del cálculo de uso, enumerados a título informativo2251* `deferred`: esquemas de herramientas que Claude Code mantiene fuera de la ventana y excluye del cálculo de uso, enumerados a título informativo

2231 2252 

2253<h3 id="sdkusagereport">

2254 `SDKUsageReport`

2255</h3>

2256 

2257Forma estructurada del informe de `/usage`, que se lleva como `usage_report` en el [`SDKAssistantMessage`](#sdkassistantmessage) que entrega un resultado de `/usage`. Agent SDK v0.3.273 y posteriores exportan el tipo. El tipo es experimental: su forma puede cambiar.

2258 

2259```typescript theme={null}

2260type SDKUsageReport = {

2261 session: {

2262 total_cost_usd: number;

2263 total_api_duration_ms: number;

2264 total_duration_ms: number;

2265 total_lines_added: number;

2266 total_lines_removed: number;

2267 model_usage: { [modelName: string]: ModelUsage };

2268 };

2269 rate_limits: {

2270 limits:

2271 | {

2272 kind: string;

2273 group: string;

2274 percent: number;

2275 resets_at: string | null;

2276 scope?: {

2277 model?: { display_name: string } | null;

2278 surface?: { display_name: string } | null;

2279 } | null;

2280 severity: string;

2281 is_active: boolean;

2282 }[]

2283 | null;

2284 extra_usage?: {

2285 is_enabled: boolean;

2286 monthly_limit: number | null;

2287 used_credits: number | null;

2288 utilization: number | null;

2289 currency?: string | null;

2290 } | null;

2291 } | null;

2292};

2293```

2294 

2295Los campos de nivel superior son `session` y `rate_limits`:

2296 

2297* `session`: los totales acumulados de costo y uso de Claude Code, leídos del mismo registro contable que `total_cost_usd` y `modelUsage` en [`SDKResultMessage`](#sdkresultmessage). Cada entrada de `model_usage` es un [`ModelUsage`](#modelusage).

2298* `rate_limits`: las filas de uso del plan en `limits` y el gasto de créditos de uso en `extra_usage`. Es `null` cuando Claude Code no pudo obtener el uso del plan, por ejemplo cuando el token OAuth de la sesión no tiene el alcance `user:profile`.

2299 

2300Claude Code calcula `session.total_cost_usd` localmente a partir de los conteos de tokens, así que es una estimación y no lo que factura tu plan. El gasto de créditos de uso que reporta el servidor es el bloque separado `extra_usage`. Consulta [Rastrear costos y uso](/docs/es/agent-sdk/cost-tracking) para las advertencias sobre precisión.

2301 

2302`limits` contiene las filas de uso del servidor tal como las envió el servidor: qué medidores se aplican, su alcance, sus etiquetas, su severidad y su orden son los del servidor, así que renderiza las filas literalmente.

2303 

2304* Un array vacío significa que el servidor no reportó ningún medidor.

2305* `null` significa que Claude Code no tiene filas que reportar.

2306 

2307Cada fila de `limits` describe un medidor de uso:

2308 

2309| Campo | Tipo | Descripción |

2310| - | - | - |

2311| `kind` | `string` | El tipo de medidor del servidor, como `session`, `weekly_all` o `weekly_scoped`. Clasifica una fila por esto, nunca por una etiqueta |

2312| `group` | `string` | El grupo de filas del servidor, como `session` o `weekly`. Las filas se renderizan agrupadas bajo él, en el orden del servidor |

2313| `percent` | `number` | Proporción de la ventana usada, 0-100 |

2314| `resets_at` | `string \| null` | Marca de tiempo ISO 8601 en la que se reinicia la ventana |

2315| `scope` | `object \| null` | Opcional. Para qué es una fila con alcance, un modelo o una superficie, con la etiqueta para mostrar del servidor |

2316| `severity` | `string` | La interpretación del servidor de la fila para el color de un medidor, como `normal`, `warning` o `critical` |

2317| `is_active` | `boolean` | `true` en la fila que el servidor elige para que la muestre un indicador de valor único |

2318 

2319Antes de Agent SDK v0.3.277, el tipo declaraba `severity` e `is_active` como opcionales y anulables, y una fila podía llegar sin ellos.

2320 

2321`extra_usage` es el gasto y el tope de [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) del período de facturación tal como los reporta el servidor, presente cuando el plan tiene créditos de uso. Los importes están en unidades menores de `currency`, centavos para USD.

2322 

2323* `monthly_limit` es `null` cuando esta cuenta no tiene un tope de gasto propio. En los planes Team y Enterprise, no muestres `null` como ilimitado.

2324* `is_enabled` es `false` mientras los créditos de uso no pueden pagar las solicitudes.

2325 

2232<h3 id="sdkmessageorigin">2326<h3 id="sdkmessageorigin">

2233 `SDKMessageOrigin`2327 `SDKMessageOrigin`

2234</h3>2328</h3>


3415type WebFetchInput = {3509type WebFetchInput = {

3416 url: string;3510 url: string;

3417 prompt: string;3511 prompt: string;

3512 offset?: number;

3418};3513};

3419```3514```

3420 3515 

3421Obtiene contenido de una URL y lo procesa con un modelo de IA.3516Obtiene contenido de una URL y lo procesa con un modelo de IA.

3422 3517 

3518`offset` es el número de caracteres que se omiten desde el inicio de la página. Claude lo establece para seguir leyendo una página larga. El campo requiere Agent SDK v0.3.290 o posterior.

3519 

3423<h3 id="websearch">3520<h3 id="websearch">

3424 WebSearch3521 WebSearch

3425</h3>3522</h3>


5602 task_id: string;5699 task_id: string;

5603 tool_use_id?: string;5700 tool_use_id?: string;

5604 status: "completed" | "failed" | "stopped";5701 status: "completed" | "failed" | "stopped";

5702 reason?: "worker_restart";

5605 output_file: string;5703 output_file: string;

5606 summary: string;5704 summary: string;

5607 ambient?: boolean;5705 ambient?: boolean;


5616};5714};

5617```5715```

5618 5716 

5717`reason` se establece cuando una tarea termina por una causa distinta de su propia finalización, fallo o detención, y requiere Agent SDK v0.3.273 o posterior. Claude Code lo establece solo en sesiones que se conectan a través de claude.ai: sesiones en la nube, incluidas las que se ejecutan en runners autohospedados, y sesiones de Remote Control. Una llamada local a `query()` nunca lo establece. Su único valor, `worker_restart`, significa que el proceso de Claude Code que ejecutaba la tarea se reinició. La notificación lleva el estado `"stopped"`, así que trata la tarea como ni completada ni fallida.

5718 

5619Cuando Claude Code [mueve una llamada a herramienta MCP larga a segundo plano](/docs/es/mcp#automatic-backgrounding-of-long-tool-calls), el bloque `tool_result` de esa llamada contiene solo un marcador de posición y el resultado real de la llamada llega en esta notificación. Asocia la notificación con la llamada mediante `tool_use_id`. En una notificación `completed`, `resource_links` enumera los archivos que la herramienta devolvió por referencia como entradas [`SDKMcpResourceLink`](#sdkmcpresourcelink), con los mismos límites de 50 enlaces y 64 KiB que [`tool_use_result.resourceLinks`](#sdkusermessage). Claude Code omite `resource_links` cuando el resultado no tenía enlaces y en notificaciones de tareas que no son llamadas a herramientas MCP. `resource_links` requiere Agent SDK v0.3.257 o posterior.5719Cuando Claude Code [mueve una llamada a herramienta MCP larga a segundo plano](/docs/es/mcp#automatic-backgrounding-of-long-tool-calls), el bloque `tool_result` de esa llamada contiene solo un marcador de posición y el resultado real de la llamada llega en esta notificación. Asocia la notificación con la llamada mediante `tool_use_id`. En una notificación `completed`, `resource_links` enumera los archivos que la herramienta devolvió por referencia como entradas [`SDKMcpResourceLink`](#sdkmcpresourcelink), con los mismos límites de 50 enlaces y 64 KiB que [`tool_use_result.resourceLinks`](#sdkusermessage). Claude Code omite `resource_links` cuando el resultado no tenía enlaces y en notificaciones de tareas que no son llamadas a herramientas MCP. `resource_links` requiere Agent SDK v0.3.257 o posterior.

5620 5720 

5621Claude Code antepone un aviso a cada notificación de tarea que envía al modelo, excepto en las entregas marcadas con el [subtipo `scheduled-trigger`](#task-notification-subkinds), que en su lugar llevan un encuadre de tarea asignada. El aviso indica que no ha habido ninguna entrada humana, para que el modelo no trate la notificación como una instrucción o aprobación del usuario.5721Claude Code antepone un aviso a cada notificación de tarea que envía al modelo, excepto en las entregas marcadas con el [subtipo `scheduled-trigger`](#task-notification-subkinds), que en su lugar llevan un encuadre de tarea asignada. El aviso indica que no ha habido ninguna entrada humana, para que el modelo no trate la notificación como una instrucción o aprobación del usuario.


5774 task_type?: string;5874 task_type?: string;

5775 is_backgrounded?: boolean;5875 is_backgrounded?: boolean;

5776 spawn_depth?: number;5876 spawn_depth?: number;

5877 parent_task_id?: string;

5777 ambient?: boolean;5878 ambient?: boolean;

5778 uuid: UUID;5879 uuid: UUID;

5779 session_id: string;5880 session_id: string;


5791 5892 

5792Un [subagente reanudado](/docs/es/agent-sdk/subagents#resume-subagents) siempre reporta `is_backgrounded: true`, porque Claude Code ejecuta todos los subagentes reanudados en segundo plano. Cuando una tarea en primer plano pasa más tarde a segundo plano, Claude Code reporta el nuevo valor de `is_backgrounded` en un mensaje [`task_updated`](#sdktaskupdatedmessage) en lugar de enviar un segundo `task_started`.5893Un [subagente reanudado](/docs/es/agent-sdk/subagents#resume-subagents) siempre reporta `is_backgrounded: true`, porque Claude Code ejecuta todos los subagentes reanudados en segundo plano. Cuando una tarea en primer plano pasa más tarde a segundo plano, Claude Code reporta el nuevo valor de `is_backgrounded` en un mensaje [`task_updated`](#sdktaskupdatedmessage) en lugar de enviar un segundo `task_started`.

5793 5894 

5895`parent_task_id` contiene el `task_id` del subagente que lanzó esta tarea. Úsalo para agrupar cada tarea bajo el subagente que la inició. Claude Code lo establece en tareas de subagente, Bash y [Monitor](#monitor). El campo requiere Agent SDK v0.3.292 o posterior. Está ausente cuando:

5896 

5897* El hilo principal lanzó la tarea

5898* Claude Code ya no rastrea la tarea padre

5899* Un [compañero de equipo](/docs/es/agent-teams) o un agente dentro de un flujo de trabajo lanzó la tarea

5900 

5901La tarea padre puede ser una tarea en primer plano o una que ya terminó, así que trata un ID que no reconozcas como si no hubiera padre.

5902 

5794<h3 id="sdktaskprogressmessage">5903<h3 id="sdktaskprogressmessage">

5795 `SDKTaskProgressMessage`5904 `SDKTaskProgressMessage`

5796</h3>5905</h3>


5847 `SDKBackgroundTasksChangedMessage`5956 `SDKBackgroundTasksChangedMessage`

5848</h3>5957</h3>

5849 5958 

5850Se emite siempre que cambia el conjunto de tareas en segundo plano activas: una tarea comienza, se completa o se termina, un agente en primer plano pasa a segundo plano, o cambia el campo `description` o `ambient` de una tarea.5959Se emite siempre que cambia el conjunto de tareas en segundo plano activas: una tarea comienza, se completa o se termina, un agente en primer plano pasa a segundo plano, o cambia el campo `description`, `ambient` o `parent_task_id` de una tarea. Para el campo `parent_task_id` de cada entrada, consulta [`SDKTaskStartedMessage`](#sdktaskstartedmessage), que lo define junto con su requisito de versión.

5851 5960 

5852El array `tasks` es el conjunto activo completo. Reemplaza cualquier conjunto en caché con cada payload en lugar de emparejar eventos `task_started` y `task_notification`, para que el siguiente cambio de membresía corrija cualquier evento que te hayas perdido.5961El array `tasks` es el conjunto activo completo. Reemplaza cualquier conjunto en caché con cada payload en lugar de emparejar eventos `task_started` y `task_notification`, para que el siguiente cambio de membresía corrija cualquier evento que te hayas perdido.

5853 5962 

5854El orden relativo a esos eventos por tarea no está especificado, así que no correlaciones los dos flujos.5963Cuando una tarea termina, sus mensajes [`task_updated`](#sdktaskupdatedmessage) y [`task_notification`](#sdktasknotificationmessage) llegan antes del `background_tasks_changed` que la quita de la lista. Fuera de eso, el orden relativo a los eventos por tarea no está especificado.

5855 5964 

5856No se emite nada al inicio. Restablece a un conjunto vacío cada vez que el proceso de CLI de la sesión se inicie o reinicie, y deja que el siguiente cambio de membresía lo vuelva a llenar.5965No se emite nada al inicio. Restablece a un conjunto vacío cada vez que el proceso de CLI de la sesión se inicie o reinicie, y deja que el siguiente cambio de membresía lo vuelva a llenar.

5857 5966 


5868 task_type: string;5977 task_type: string;

5869 subagent_type?: string;5978 subagent_type?: string;

5870 description: string;5979 description: string;

5980 parent_task_id?: string;

5871 ambient?: boolean;5981 ambient?: boolean;

5872 }[];5982 }[];

5873 uuid: UUID;5983 uuid: UUID;

Details

36 ```36 ```

37 37 

38 ```typescript TypeScript theme={null}38 ```typescript TypeScript theme={null}

39 async function handleToolRequest(toolName, input, options) {39 import type { CanUseTool } from "@anthropic-ai/claude-agent-sdk";

40 

41 const handleToolRequest: CanUseTool = async (toolName, input, options) => {

40 // options includes { signal: AbortSignal, suggestions?: PermissionUpdate[] }42 // options includes { signal: AbortSignal, suggestions?: PermissionUpdate[] }

41 // Solicitar al usuario y devolver permitir o denegar43 // Solicitar al usuario aquí y luego devolver permitir o denegar

42 }44 return { behavior: "deny", message: "User declined" };

45 };

43 46 

44 const options = { canUseTool: handleToolRequest };47 const options = { canUseTool: handleToolRequest };

45 ```48 ```


437 for await (const message of query({440 for await (const message of query({

438 prompt: "Analyze this codebase",441 prompt: "Analyze this codebase",

439 options: {442 options: {

440 // Incluya AskUserQuestion en su lista de herramientas443 // Incluye AskUserQuestion en tu lista de herramientas

441 tools: ["Read", "Glob", "Grep", "AskUserQuestion"],444 tools: ["Read", "Glob", "Grep", "AskUserQuestion"],

442 canUseTool: async (toolName, input) => {445 canUseTool: async (toolName, input) => {

443 // Manejar preguntas aclaratorias aquí446 // Marcador provisional que aprueba todas las llamadas. El paso Detectar AskUserQuestion lo reemplaza.

447 return { behavior: "allow", updatedInput: input };

444 }448 }

445 }449 }

446 })) {450 })) {


763 767 

764 ```typescript TypeScript theme={null}768 ```typescript TypeScript theme={null}

765 import { query } from "@anthropic-ai/claude-agent-sdk";769 import { query } from "@anthropic-ai/claude-agent-sdk";

770 import type { PermissionResult } from "@anthropic-ai/claude-agent-sdk";

766 import * as readline from "readline/promises";771 import * as readline from "readline/promises";

767 772 

768 // Helper para solicitar entrada del usuario en la terminal773 // Helper para solicitar entrada del usuario en la terminal


783 }788 }

784 789 

785 // Mostrar las preguntas de Claude y recopilar respuestas del usuario790 // Mostrar las preguntas de Claude y recopilar respuestas del usuario

786 async function handleAskUserQuestion(input: any) {791 async function handleAskUserQuestion(input: any): Promise<PermissionResult> {

787 const answers: Record<string, string> = {};792 const answers: Record<string, string> = {};

788 793 

789 for (const q of input.questions) {794 for (const q of input.questions) {

agent-view.md +21 −12

Details

391 391 

392Puedes enviar nuevas sesiones en segundo plano desde la vista de agentes, enviar o copiar una sesión interactiva existente al segundo plano, o iniciar una directamente desde el shell.392Puedes enviar nuevas sesiones en segundo plano desde la vista de agentes, enviar o copiar una sesión interactiva existente al segundo plano, o iniciar una directamente desde el shell.

393 393 

394<h3 id="from-agent-view">394<span id="from-agent-view" />

395 Desde la vista de agentes395 

396<h3 id="dispatch-an-agent-from-agent-view">

397 Enviar un agente desde la vista de agentes

396</h3>398</h3>

397 399 

398Escribe un prompt en la entrada de la parte inferior de la vista de agentes y presiona `Enter` para iniciar una nueva sesión en segundo plano. La sesión se nombra automáticamente a partir del prompt; cámbiale el nombre más tarde con `Ctrl+R`.400Escribe un prompt en la entrada de la parte inferior de la vista de agentes y presiona `Enter` para iniciar una nueva sesión en segundo plano. La sesión se nombra automáticamente a partir del prompt; cámbiale el nombre más tarde con `Ctrl+R`.


446 448 

447Cuando la vista de agentes está agrupada por directorio, el envío manda el prompt al directorio de la fila seleccionada, para que puedas seleccionar un grupo y enviar a él sin volver a escribir la ruta.449Cuando la vista de agentes está agrupada por directorio, el envío manda el prompt al directorio de la fila seleccionada, para que puedas seleccionar un grupo y enviar a él sin volver a escribir la ruta.

448 450 

449<h3 id="from-inside-a-session">451<span id="from-inside-a-session" />

450 Desde dentro de una sesión452 

453<h3 id="send-or-copy-a-session-to-the-background">

454 Enviar o copiar una sesión al segundo plano

451</h3>455</h3>

452 456 

453Dos comandos mueven el trabajo de la sesión en la que estás al segundo plano: `/background` envía allí la conversación actual y libera tu terminal, y `/fork` envía una copia mientras sigues trabajando donde estás.457Dos comandos mueven el trabajo de la sesión en la que estás al segundo plano: `/background` envía allí la conversación actual y libera tu terminal, y `/fork` envía una copia mientras sigues trabajando donde estás.


511 515 

512Los directorios que agregaste durante la sesión con [`/add-dir`](/docs/es/permissions#additional-directories-grant-file-access-not-configuration) también se conservan. Conservar `--allow-dangerously-skip-permissions` mantiene `bypassPermissions` disponible en la sesión en segundo plano, pero no otorga nada nuevo: el modo sigue requiriendo la aceptación interactiva única descrita en [Modo de permisos, modelo y esfuerzo](#permission-mode-model-and-effort).516Los directorios que agregaste durante la sesión con [`/add-dir`](/docs/es/permissions#additional-directories-grant-file-access-not-configuration) también se conservan. Conservar `--allow-dangerously-skip-permissions` mantiene `bypassPermissions` disponible en la sesión en segundo plano, pero no otorga nada nuevo: el modo sigue requiriendo la aceptación interactiva única descrita en [Modo de permisos, modelo y esfuerzo](#permission-mode-model-and-effort).

513 517 

514<h3 id="from-your-shell">518<span id="from-your-shell" />

515 Desde tu shell519 

520<h3 id="dispatch-an-agent-from-your-shell">

521 Enviar un agente desde tu shell

516</h3>522</h3>

517 523 

518Pasa `--bg` o su forma larga `--background` para iniciar una sesión que va directamente al segundo plano:524Pasa `--bg` o su forma larga `--background` para iniciar una sesión que va directamente al segundo plano:


603 609 

604Fuera de un repositorio git, las sesiones escriben directamente en el directorio de trabajo y no están aisladas entre sí, así que evita enviar sesiones paralelas que editen los mismos archivos. Si usas un sistema de control de versiones diferente, configura un [hook `WorktreeCreate`](/docs/es/worktrees#non-git-version-control) y Claude aísla las ediciones de la misma manera que lo hace con git.610Fuera de un repositorio git, las sesiones escriben directamente en el directorio de trabajo y no están aisladas entre sí, así que evita enviar sesiones paralelas que editen los mismos archivos. Si usas un sistema de control de versiones diferente, configura un [hook `WorktreeCreate`](/docs/es/worktrees#non-git-version-control) y Claude aísla las ediciones de la misma manera que lo hace con git.

605 611 

606Cuando el hook falla en un directorio que no es un repositorio git, Claude omite el aislamiento para ese directorio y edita el directorio de trabajo en el mismo lugar. Dentro de un repositorio git, una sesión que Claude mueve a un worktree antes de editar no puede editar archivos en el checkout compartido hasta que se produce ese movimiento.612Cuando el hook falla en un directorio que no es un repositorio git, Claude omite el aislamiento para ese directorio y edita el directorio de trabajo en el mismo lugar. Dentro de un repositorio git, una sesión que Claude mueve a un worktree antes de editar no puede usar las herramientas `Edit`, `Write` o `NotebookEdit` en el checkout compartido hasta que se produce ese movimiento.

607 613 

608Para encontrar la ruta del worktree de una sesión, adjúntate y revisa su directorio de trabajo.614Para encontrar la ruta del worktree de una sesión, adjúntate y revisa su directorio de trabajo.

609 615 


825| `claude daemon logs` | Seguir el archivo de log del supervisor, [`~/.claude/daemon.log`](#where-state-is-stored), imprimiendo las líneas nuevas a medida que llegan hasta que presiones `Ctrl+C` |831| `claude daemon logs` | Seguir el archivo de log del supervisor, [`~/.claude/daemon.log`](#where-state-is-stored), imprimiendo las líneas nuevas a medida que llegan hasta que presiones `Ctrl+C` |

826| `claude daemon stop --any` | Detener el proceso supervisor y las sesiones en segundo plano que aloja. Pasa `--keep-workers` para dejar las sesiones en segundo plano en ejecución de modo que el siguiente supervisor se reconecte a ellas. El siguiente `claude agents` o `claude --bg` inicia un nuevo supervisor |832| `claude daemon stop --any` | Detener el proceso supervisor y las sesiones en segundo plano que aloja. Pasa `--keep-workers` para dejar las sesiones en segundo plano en ejecución de modo que el siguiente supervisor se reconecte a ellas. El siguiente `claude agents` o `claude --bg` inicia un nuevo supervisor |

827 833 

828`claude attach` y `claude logs` pueden recibir parte del nombre de una sesión en ejecución en lugar del ID, como en `claude logs "auth refactor"`. Pasar un nombre requiere Claude Code v2.1.290 o posterior.834`claude attach` y `claude logs` pueden recibir parte del nombre de una sesión en lugar del ID, como en `claude logs "auth refactor"`. Pasar un nombre requiere Claude Code v2.1.290 o posterior.

829 835 

830<h3 id="list-sessions-as-json">836<h3 id="list-sessions-as-json">

831 Listar sesiones como JSON837 Listar sesiones como JSON


979 Abrir una sesión dice que no tiene transcripción guardada985 Abrir una sesión dice que no tiene transcripción guardada

980</h3>986</h3>

981 987 

982Una sesión detenida que fue [enviada al segundo plano desde otra conversación](#from-inside-a-session) y se detuvo antes de que terminara su primera respuesta no tiene nada que reanudar: hasta que esa primera respuesta termine, la conversación aún vive solo en la sesión desde la que fue enviada al segundo plano. `claude attach` se niega a abrirla con `This session has no saved transcript`.988Cuando abres una sesión que [enviaste al segundo plano desde otra conversación](#from-inside-a-session) y que se detuvo antes de ejecutar un turno propio, Claude Code reanuda esa conversación. Si Claude Code no puede encontrar la conversación, se niega a abrir la sesión:

989 

990* `claude attach` imprime `This session has no saved transcript`.

991* La vista de agentes muestra `Press enter again to restart this session fresh` debajo de la lista.

983 992 

984En la vista de agentes, abrir esa fila muestra `Press enter again to restart this session fresh` debajo de la lista. Presiona `Enter` en la misma fila nuevamente para reiniciar la sesión con una conversación vacía, o ejecuta `claude respawn <id>` desde el shell.993Presiona `Enter` en la misma fila nuevamente para reiniciar la sesión con una conversación vacía, o ejecuta `claude respawn <id>` desde el shell.

985 994 

986La conversación original está intacta; reanúdala con `claude --resume` o sigue trabajando en ella. Consulta la [referencia de errores](/docs/es/errors#this-session-has-no-saved-transcript) para obtener detalles.995Consulta la [referencia de errores](/docs/es/errors#this-session-has-no-saved-transcript) para obtener detalles.

987 996 

988<h3 id="the-terminal-host-died-or-the-session-stopped-responding">997<h3 id="the-terminal-host-died-or-the-session-stopped-responding">

989 El host de terminal murió o la sesión dejó de responder998 El host de terminal murió o la sesión dejó de responder


1095 1104 

1096| Versión | Cambio |1105| Versión | Cambio |

1097| - | - |1106| - | - |

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

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

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

1101| v2.1.288 | `Ctrl+F` encuentra sesiones por nombre, y `Alt+↑` / `Alt+↓` saltan entre los encabezados de grupo. Ambos, y `Ctrl+R`, se pueden [reasignar](/docs/es/keybindings#agents-actions). |1110| v2.1.288 | `Ctrl+F` encuentra sesiones por nombre, y `Alt+↑` / `Alt+↓` saltan entre los encabezados de grupo. Ambos, y `Ctrl+R`, se pueden [reasignar](/docs/es/keybindings#agents-actions). |

artifacts.md +38 −10

Details

51Build a dashboard artifact of last week's deploy failures by service and keep it updated as you investigate.51Build a dashboard artifact of last week's deploy failures by service and keep it updated as you investigate.

52```52```

53 53 

54A menos que nombre una ubicación, Claude escribe la página en un archivo HTML o Markdown en un directorio temporal fuera de su proyecto y luego la publica. Fuera del [modo de plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode), un nuevo artefacto que Claude publica en respuesta a un prompt que escribe pasa sin un prompt de permiso o revisión del clasificador, a menos que esa publicación declare capacidades de tiempo de ejecución para la página, como [llamadas de conector](#pull-live-data-with-mcp-connectors) o [descargas de archivos](#offer-a-file-download). En modo de plan, Claude Code le solicita permiso antes de la primera publicación de cada artefacto.54A menos que nombres una ubicación, Claude escribe la página en un archivo HTML o Markdown en un directorio temporal fuera de tu proyecto y luego la publica. El artefacto permanece privado para ti hasta que lo [compartas](#share-an-artifact).

55 55 

56El artefacto permanece privado para usted hasta que lo [comparta](#share-an-artifact). Después de compartirlo públicamente, Claude Code solicita su aprobación una vez por conversación antes de cambiarlo, o en [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) hace que el clasificador revise el cambio.56Después de la primera publicación, Claude imprime la URL y tu navegador se abre en la nueva página.

57 57 

58Si desactivó la [obtención de banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching), Claude Code solicita permiso antes de la primera publicación de cada artefacto, o en modo automático hace que el clasificador lo revise.58* **Reabrir la página**: presiona `Ctrl+]` en cualquier momento para reabrir el artefacto más reciente de la sesión

59* **Ver los artefactos de esta sesión**: una etiqueta `⧉` debajo del prompt muestra el nombre del artefacto, o un recuento cuando la sesión tiene varios. En el [renderizado de pantalla completa](/docs/es/fullscreen), haz clic en ella para abrir la lista de [`/artifacts`](#find-an-artifact-again)

60* **Evitar que se abra el navegador**: establece `CLAUDE_CODE_ARTIFACT_AUTO_OPEN=0` en tu entorno

61* **Remote Control**: si enviaste el prompt a través de [Remote Control](/docs/es/remote-control) desde claude.ai, Claude Desktop o la aplicación móvil de Claude, no se abre ninguna pestaña en la máquina que ejecuta la sesión. El navegador se abre allí la próxima vez que Claude publica el artefacto desde un prompt que escribes en la terminal

59 62 

60Después de la primera publicación, Claude imprime la URL y su navegador se abre a la nueva página. Si envió el prompt a través de [Remote Control](/docs/es/remote-control) desde claude.ai, Claude Desktop o la aplicación móvil de Claude, no se abre ninguna pestaña en la máquina que ejecuta la sesión. El navegador se abre allí la próxima vez que Claude publica el artefacto desde un prompt que escribe en la terminal. Presione `Ctrl+]` en cualquier momento para reabrir el artefacto más reciente de la sesión.63Claude elige el título del artefacto y un icono de pestaña del navegador que coincida con lo que es la página, como un gráfico o un calendario. El título aparece en tu [galería de artefactos](#share-an-artifact) en claude.ai y en los enlaces compartidos. Pide a Claude un título o icono de pestaña específico si deseas uno.

61 64 

62Claude elige el título del artefacto y un emoji, y ambos aparecen en su [galería de artefactos](#share-an-artifact) en claude.ai y en enlaces compartidos. Claude también puede elegir un icono de pestaña del navegador que coincida con lo que es la página, como un gráfico o un calendario. Pida a Claude un título, emoji o icono de pestaña específico si desea uno.65Si Claude responde que no puede publicar, o escribe un archivo HTML local sin un enlace, los artefactos no están habilitados para tu sesión. Verifica los requisitos de [Disponibilidad](#availability). Si la terminal muestra `Artifacts need a claude.ai login`, consulta [la entrada de ese error](/docs/es/errors#artifacts-need-a-claude-ai-login) para saber cómo iniciar sesión.

63 66 

64Para evitar que el navegador se abra automáticamente cuando se publica un nuevo artefacto, establezca `CLAUDE_CODE_ARTIFACT_AUTO_OPEN=0` en su entorno.67<h3 id="when-claude-code-asks-before-publishing">

68 Cuándo Claude Code pregunta antes de publicar

69</h3>

70 

71Un nuevo artefacto que Claude publica en respuesta a un prompt que escribes pasa sin una solicitud de permiso ni revisión del clasificador. En estos casos, Claude Code te pregunta primero o, en [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), hace que el clasificador revise la publicación:

65 72 

66Si Claude responde que no puede publicar, o escribe un archivo HTML local sin un enlace, la herramienta no está habilitada para su sesión. Verifique los requisitos de [Disponibilidad](#availability).73| Cuándo | Qué hace Claude Code |

74| :- | :- |

75| La sesión está en [modo plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode) | Pregunta antes de la primera publicación de cada artefacto |

76| La publicación declara capacidades de tiempo de ejecución para la página, como [llamadas de conector](#pull-live-data-with-mcp-connectors) o [descargas de archivos](#offer-a-file-download) | Pregunta antes de esa publicación |

77| Compartiste el artefacto públicamente | Pregunta una vez por conversación antes de cambiarlo |

78| Desactivaste la [obtención de banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching) | Pregunta antes de la primera publicación de cada artefacto |

79| Claude publica en un turno que inició una [tarea programada](/docs/es/scheduled-tasks) ejecutada en tu sesión, en lugar de un prompt que escribiste | Pregunta antes de la primera publicación de cada artefacto |

80| Claude no puede leer el archivo sin tu aprobación | Pregunta antes de publicarlo. Una regla de permiso para la herramienta `Artifact` no omite esta solicitud |

81 

82Claude lee archivos en los [directorios de trabajo](/docs/es/permissions#working-directories) de tu sesión, y en el directorio temporal donde escribe las páginas, sin preguntar. Para permitir que Claude publique desde otra carpeta sin la solicitud, agrega la carpeta como directorio de trabajo con [`--add-dir`](/docs/es/cli-reference#cli-flags) al iniciar o con `/add-dir` durante la sesión.

67 83 

68<h2 id="update-an-artifact">84<h2 id="update-an-artifact">

69 Actualizar un artefacto85 Actualizar un artefacto


87 Encontrar un artefacto nuevamente103 Encontrar un artefacto nuevamente

88</h2>104</h2>

89 105 

90Ejecute `/artifacts` en Claude Code para enumerar todos los artefactos que posee y todos los artefactos compartidos con usted. Seleccione uno y presione `o` para abrirlo en su navegador o `c` para copiar su enlace. Presione `Enter` para adjuntarlo a la sesión actual; antes de v2.1.216, `Enter` lo abría en su navegador. Claude Code lee la lista de su cuenta claude.ai, por lo que funciona en una nueva sesión y después de `/clear`, cuando el enlace se ha desplazado fuera de la terminal. Requiere Claude Code v2.1.208 o posterior.106Ejecuta `/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.

107 

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

109 

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

111* **`o`**: lo abre en tu navegador

112* **`c`**: copia su enlace

113 

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

91 115 

92<h2 id="share-an-artifact">116<h2 id="share-an-artifact">

93 Compartir un artefacto117 Compartir un artefacto


110 134 

111Un editor publica nuevas versiones de la misma manera que usted [actualiza el artefacto desde otra sesión](#update-an-artifact): le proporciona a Claude la URL del artefacto, o lo adjunta desde [`/artifacts`](#find-an-artifact-again), y Claude extrae el contenido actual y lo republica con sus cambios. Todos los que tengan la página abierta ven cada actualización en vivo.135Un editor publica nuevas versiones de la misma manera que usted [actualiza el artefacto desde otra sesión](#update-an-artifact): le proporciona a Claude la URL del artefacto, o lo adjunta desde [`/artifacts`](#find-an-artifact-again), y Claude extrae el contenido actual y lo republica con sus cambios. Todos los que tengan la página abierta ven cada actualización en vivo.

112 136 

137Si un editor publica mientras Claude tiene una copia anterior de la página, Claude Code rechaza una publicación basada en esa copia. Claude entonces fusiona sus cambios sobre la versión más reciente y vuelve a publicar.

138 

113<h2 id="read-an-artifact-shared-with-you">139<h2 id="read-an-artifact-shared-with-you">

114 Leer un artefacto compartido con usted140 Leer un artefacto compartido con usted

115</h2>141</h2>


168 194 

169Claude también deja de responder por su cuenta a un artefacto después de manejar 60 comentarios enviados o activaciones de hilos en ese artefacto dentro de una hora. Usted ve `Comments are waiting on Artifact: <name>` una vez, y Claude retoma cuando los comentarios de esa hora envejecen.195Claude también deja de responder por su cuenta a un artefacto después de manejar 60 comentarios enviados o activaciones de hilos en ese artefacto dentro de una hora. Usted ve `Comments are waiting on Artifact: <name>` una vez, y Claude retoma cuando los comentarios de esa hora envejecen.

170 196 

171Ejecute `/tasks` para ver cada artefacto que su sesión está observando, listado como una tarea de actualizaciones en vivo. Puede evitar que Claude responda por su cuenta de cualquiera de estas maneras:197Ejecuta `/tasks` para ver los artefactos que tu sesión está observando. `/tasks` agrupa las observaciones que Claude Code inició por su cuenta en la fila **System tasks**. Presiona `Enter` en esa fila para listarlas. Una observación que le pediste a Claude que iniciara aparece en **Monitors**.

198 

199Puedes evitar que Claude responda por su cuenta de cualquiera de estas maneras:

172 200 

173* **Presione Ctrl+C una vez en un símbolo del sistema inactivo**: Claude pausa la respuesta en cada artefacto que su sesión está observando. Las respuestas comienzan de nuevo después de que envíe su siguiente mensaje.201* **Presione Ctrl+C una vez en un símbolo del sistema inactivo**: Claude pausa la respuesta en cada artefacto que su sesión está observando. Las respuestas comienzan de nuevo después de que envíe su siguiente mensaje.

174* **Detenga la tarea en `/tasks`**: Claude deja de responder en ese artefacto hasta que le pida que reanude las respuestas allí. Publicar el artefacto de nuevo no inicia las respuestas de nuevo, y la parada aún se aplica cuando reanuda la sesión más tarde.202* **Detenga la tarea en `/tasks`**: Claude deja de responder en ese artefacto hasta que le pida que reanude las respuestas allí. Publicar el artefacto de nuevo no inicia las respuestas de nuevo, y la parada aún se aplica cuando reanuda la sesión más tarde.


391| Autenticación | La sesión está respaldada por una cuenta de claude.ai: inicie sesión con `/login` en la CLI o la aplicación de escritorio. Las sesiones de Claude Tag están autenticadas a través de la identidad del agente, por lo que no se requiere ningún paso. Las sesiones que usan una clave API, [token de puerta de enlace](/docs/es/llm-gateway) o credencial de proveedor de nube no pueden publicar. |419| Autenticación | La sesión está respaldada por una cuenta de claude.ai: inicie sesión con `/login` en la CLI o la aplicación de escritorio. Las sesiones de Claude Tag están autenticadas a través de la identidad del agente, por lo que no se requiere ningún paso. Las sesiones que usan una clave API, [token de puerta de enlace](/docs/es/llm-gateway) o credencial de proveedor de nube no pueden publicar. |

392| Proveedor de modelo | API de Anthropic. No disponible en [Amazon Bedrock](/docs/es/amazon-bedrock), [Google Cloud's Agent Platform](/docs/es/google-vertex-ai) o [Microsoft Foundry](/docs/es/microsoft-foundry). |420| Proveedor de modelo | API de Anthropic. No disponible en [Amazon Bedrock](/docs/es/amazon-bedrock), [Google Cloud's Agent Platform](/docs/es/google-vertex-ai) o [Microsoft Foundry](/docs/es/microsoft-foundry). |

393| Política de organización | Las claves de cifrado administradas por el cliente (CMEK), HIPAA y [Retención de datos cero](/docs/es/zero-data-retention) no están habilitadas para la organización. |421| Política de organización | Las claves de cifrado administradas por el cliente (CMEK), HIPAA y [Retención de datos cero](/docs/es/zero-data-retention) no están habilitadas para la organización. |

394| Superficie | CLI de Claude Code, o la aplicación de escritorio Claude versión 1.13576.0 o posterior. Las sesiones de [Claude Tag](https://claude.com/docs/claude-tag/overview) también pueden publicar artefactos cuando tanto Claude Tag como los artefactos están habilitados para la organización. Deshabilitado de forma predeterminada en el [Agent SDK](/docs/es/agent-sdk/overview), la GitHub Action y contextos de servidor MCP, cuando ejecutas Claude Code con [`-p`](/docs/es/headless) desde tu propia terminal o tus scripts, y cuando [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/es/env-vars) está establecido. |422| Superficie | CLI de Claude Code, o la aplicación de escritorio Claude versión 1.13576.0 o posterior. Las sesiones de [Claude Tag](https://claude.com/docs/claude-tag/overview) también pueden publicar artefactos cuando tanto Claude Tag como los artefactos están habilitados para la organización. Las sesiones servidas por [`claude remote-control`](/docs/es/remote-control) pueden publicar artefactos cuando tú mismo iniciaste la sesión. Requiere Claude Code v2.1.281 o posterior. Deshabilitado de forma predeterminada en el [Agent SDK](/docs/es/agent-sdk/overview), la GitHub Action y contextos de servidor MCP, cuando ejecutas Claude Code con [`-p`](/docs/es/headless) desde tu propia terminal o tus scripts, y cuando [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/es/env-vars) está establecido. |

395 423 

396Si los artefactos están permitidos para su organización proviene de la política de su organización, que Claude Code carga desde `api.anthropic.com`. Cuando Claude Code no puede cargar la política, los artefactos no están disponibles. Cuando usted solicita uno, Claude explica por qué.424Si los artefactos están permitidos para su organización proviene de la política de su organización, que Claude Code carga desde `api.anthropic.com`. Cuando Claude Code no puede cargar la política, los artefactos no están disponibles. Cuando usted solicita uno, Claude explica por qué.

397 425 

chrome.md +39 −2

Details

202and attach logs/session.log to it202and attach logs/session.log to it

203```203```

204 204 

205Se aplican tres restricciones a las cargas:205Si Claude se niega a adjuntar un archivo o una carga falla, revisa estas causas:

206 206 

207* **Permisos**: Claude puede cargar un archivo solo cuando la sesión tiene permiso para leerlo, por lo que las [reglas de permisos](/docs/es/settings-reference#permission-settings) que deniegan acceso `Read` a un archivo también bloquean su carga.207* **Permisos**: Claude puede cargar un archivo solo cuando la sesión tiene permiso para leerlo, por lo que las [reglas de permisos](/docs/es/settings-reference#permission-settings) que deniegan acceso `Read` a un archivo también bloquean su carga.

208* **Tamaño**: una sola carga puede incluir hasta 10 MB de archivos en total.208* **Tamaño**: una sola carga puede incluir hasta 10 MB de archivos en total.

209* **Enlaces duros**: Claude rechaza archivos que tienen múltiples enlaces duros, lo cual es común dentro de almacenes de administradores de paquetes como `node_modules`. Copia el archivo y carga la copia.209* **Enlaces duros**: Claude rechaza archivos que tienen múltiples enlaces duros, lo cual es común dentro de almacenes de administradores de paquetes como `node_modules`. Copia el archivo y carga la copia.

210* **Nombres de credenciales**: Claude rechaza un archivo cuyo nombre o carpeta es uno de los que se usan para guardar credenciales, como `.env`, un archivo `.pem` o `.key`, o cualquier cosa dentro de `.ssh`. Requiere Claude Code v2.1.293 o posterior.

210 211 

211<h3 id="draft-content-in-google-docs">212<h3 id="draft-content-in-google-docs">

212 Redactar contenido en Google Docs213 Redactar contenido en Google Docs


309 310 

310Otros navegadores basados en Chromium leen el mismo archivo desde su propio directorio de configuración, nombrado según el navegador. Por ejemplo, Brave en macOS usa `~/Library/Application Support/BraveSoftware/Brave-Browser/NativeMessagingHosts/`, y en Windows cada navegador tiene su propia clave de registro, como `HKCU\Software\BraveSoftware\Brave-Browser\NativeMessagingHosts\`.311Otros navegadores basados en Chromium leen el mismo archivo desde su propio directorio de configuración, nombrado según el navegador. Por ejemplo, Brave en macOS usa `~/Library/Application Support/BraveSoftware/Brave-Browser/NativeMessagingHosts/`, y en Windows cada navegador tiene su propia clave de registro, como `HKCU\Software\BraveSoftware\Brave-Browser\NativeMessagingHosts\`.

311 312 

313<h3 id="project-settings-can’t-turn-on-chrome">

314 La configuración del proyecto no puede activar Chrome

315</h3>

316 

317Esta advertencia en tu terminal significa que el proyecto en el que estás trabajando intentó activar la integración de Chrome, y Claude Code no lo permitió:

318 

319```text wrap theme={null}

320Claude Code ignored CLAUDE_CODE_ENABLE_CFC in this project's settings: a project can't turn on Claude in Chrome. To turn it on yourself, run /chrome or start with --chrome.

321```

322 

323El `.claude/settings.json` o `.claude/settings.local.json` del proyecto establece [`CLAUDE_CODE_ENABLE_CFC`](/docs/es/env-vars#variables) en `1` en su bloque `env` para activar la integración de Chrome. Claude Code no aplicó ese ajuste, por lo que la integración de Chrome está desactivada en esta sesión y Claude no tiene herramientas del navegador.

324 

325Claude Code omite el ajuste porque esos archivos se almacenan en el directorio del proyecto, y un repositorio que descargas no debe poder conectar a Claude con tu navegador.

326 

327Puedes seguir trabajando como estás. Si quieres herramientas del navegador, o quieres que desaparezca la advertencia, haz una de estas cosas:

328 

329* **Para obtener herramientas del navegador ahora**: sal y vuelve a iniciar con `claude --chrome` en tu shell.

330* **Para obtener herramientas del navegador en sesiones posteriores**: ejecuta `/chrome` en el prompt de Claude Code y selecciona [**Habilitado de forma predeterminada**](#enable-chrome-by-default). Esto se aplica a las sesiones que inicies después, no a la que está en ejecución.

331* **Para detener la advertencia sin herramientas del navegador**: elimina la línea `CLAUDE_CODE_ENABLE_CFC` del archivo de configuración del proyecto.

332 

312<h3 id="browser-not-responding">333<h3 id="browser-not-responding">

313 El navegador no responde334 El navegador no responde

314</h3>335</h3>


325 346 

326El trabajador de servicio de la extensión de Chrome puede quedarse inactivo durante sesiones extendidas, lo que rompe la conexión. Si las herramientas del navegador dejan de funcionar después de un período de inactividad, ejecuta `/chrome` y selecciona "Reconectar extensión".347El trabajador de servicio de la extensión de Chrome puede quedarse inactivo durante sesiones extendidas, lo que rompe la conexión. Si las herramientas del navegador dejan de funcionar después de un período de inactividad, ejecuta `/chrome` y selecciona "Reconectar extensión".

327 348 

349Cuando ejecutes `/chrome`, revisa su línea `Status`. Si indica "No conectado", la propia conexión de la sesión en ejecución con Chrome ha fallado. Selecciona "Reconectar extensión" para reiniciar esa conexión. Después de que la conexión tenga éxito, la página de reconexión de la extensión se abre en Chrome. Antes de v2.1.290, "Reconectar extensión" solo abría esa página y no reiniciaba una conexión fallida, así que si las herramientas del navegador no regresan en una versión anterior, actualiza Claude Code.

350 

351<h3 id="extension-signed-in-to-a-different-organization">

352 Extensión con sesión iniciada en una organización diferente

353</h3>

354 

355Si perteneces a más de una organización de claude.ai, la extensión debe tener la sesión iniciada en la misma organización que Claude Code. Si las dos difieren, las herramientas del navegador de Claude devuelven "Browser extension is not connected", incluso cuando ambas usan la misma cuenta de claude.ai.

356 

357Para ver en qué organización tiene la sesión iniciada Claude Code, ejecuta [`/status`](/docs/es/commands) en el prompt de Claude Code y lee la fila `Organization`.

358 

359<Warning>

360 Si cierras sesión en la extensión, pierdes los atajos y las tareas programadas guardados en ella. Prueba primero las otras soluciones en [Mensajes de error comunes](#common-error-messages).

361</Warning>

362 

363Para cambiar la organización de la extensión, cierra sesión en la configuración de la extensión, luego inicia sesión y selecciona la organización que muestra `/status`.

364 

328<h3 id="windows-specific-issues">365<h3 id="windows-specific-issues">

329 Problemas específicos de Windows366 Problemas específicos de Windows

330</h3>367</h3>


343 380 

344| Error | Causa | Solución |381| Error | Causa | Solución |

345| - | - | - |382| - | - | - |

346| "La extensión del navegador no está conectada" | El host de mensajería nativa no puede alcanzar la extensión, o la lista de permitidos de IP de tu organización rechaza la conexión a `bridge.claudeusercontent.com` | Comprueba que la extensión tenga la sesión iniciada en la misma cuenta de claude.ai que Claude Code, reinicia Chrome y Claude Code, luego ejecuta `/chrome` para reconectar. Si tu organización usa listas de permitidos de IP y el error persiste, consulta [Listas de permitidos de IP de la organización y salida de proxy](/docs/es/network-config#organization-ip-allowlists-and-proxy-egress) |383| "Browser extension is not connected" | La extensión no está instalada y en ejecución en Chrome, la extensión tiene la sesión iniciada en una cuenta u organización de claude.ai diferente a la de Claude Code, o la lista de permitidos de IP de tu organización rechaza la conexión a `bridge.claudeusercontent.com` | Comprueba que la extensión tenga la sesión iniciada en la misma cuenta de claude.ai y [organización](#extension-signed-in-to-a-different-organization) que Claude Code, reinicia Chrome y Claude Code, luego ejecuta `/chrome` para reconectar. Si tu organización usa listas de permitidos de IP y el error persiste, consulta [Listas de permitidos de IP de la organización y salida de proxy](/docs/es/network-config#organization-ip-allowlists-and-proxy-egress) |

347| La extensión muestra "No detectada" en `/chrome` | La extensión de Chrome no está instalada o está deshabilitada | Instala o habilita la extensión en `chrome://extensions` |384| La extensión muestra "No detectada" en `/chrome` | La extensión de Chrome no está instalada o está deshabilitada | Instala o habilita la extensión en `chrome://extensions` |

348| "No hay pestaña disponible" | Claude intentó actuar antes de que una pestaña estuviera lista | Pídele a Claude que cree una nueva pestaña e intente de nuevo |385| "No hay pestaña disponible" | Claude intentó actuar antes de que una pestaña estuviera lista | Pídele a Claude que cree una nueva pestaña e intente de nuevo |

349| "El extremo receptor no existe" | El trabajador de servicio de la extensión se quedó inactivo | Ejecuta `/chrome` y selecciona "Reconectar extensión" |386| "El extremo receptor no existe" | El trabajador de servicio de la extensión se quedó inactivo | Ejecuta `/chrome` y selecciona "Reconectar extensión" |

Details

1237 1237 

1238El CLI envía métricas, registros y, cuando están habilitadas, trazas al gateway, que las retransmite textualmente a cada destino configurado. Las exportaciones usan OpenTelemetry Protocol (OTLP) sobre HTTP. Para omitir la retransmisión y que las sesiones exporten directamente a tu recopilador, [nombra el recopilador en una política](#export-directly-to-your-collector). Consulta [Supervisión del uso](/docs/es/monitoring-usage) para conocer las métricas y eventos que emite el CLI.1238El CLI envía métricas, registros y, cuando están habilitadas, trazas al gateway, que las retransmite textualmente a cada destino configurado. Las exportaciones usan OpenTelemetry Protocol (OTLP) sobre HTTP. Para omitir la retransmisión y que las sesiones exporten directamente a tu recopilador, [nombra el recopilador en una política](#export-directly-to-your-collector). Consulta [Supervisión del uso](/docs/es/monitoring-usage) para conocer las métricas y eventos que emite el CLI.

1239 1239 

1240En las sesiones iniciadas mediante `/login`, el CLI marca cada exportación con la identidad del usuario autenticado, leída del JWT emitido por el gateway: los atributos `user.id`, `user.email` y `user.groups`. Por lo tanto, la atribución de costos y uso por desarrollador funciona sin ninguna configuración del lado del desarrollador.1240En las sesiones iniciadas mediante `/login`, la CLI marca cada exportación con la identidad del usuario autenticado, leída del JWT emitido por el gateway: los atributos `user.id`, `user.email` y `user.groups`. Por lo tanto, la atribución de costos y uso por desarrollador funciona sin configuración por parte del desarrollador. Los eventos que Claude Code registra antes de que el desarrollador inicie sesión [no llevan esta identidad](/docs/es/monitoring-usage#standard-attributes). Para ver qué atributo sigue un cambio en los grupos de un desarrollador, consulta [Cambios de grupo durante una sesión abierta](#group-changes-during-an-open-session).

1241 1241 

1242Las sesiones de [Claude Desktop](#claude-desktop-overlay) y Cowork iniciadas mediante el gateway marcan su telemetría con `user.email` y `user.groups` junto a `enduser.id`, por lo que puedes cubrir el uso de terminal, Desktop y Cowork con una sola consulta sobre `user.email` o `user.groups`. `user.groups` es la lista de grupos del IdP separada por comas.1242Las sesiones de [Claude Desktop](#claude-desktop-overlay) y Cowork iniciadas mediante el gateway marcan su telemetría con `user.email` y `user.groups` junto a `enduser.id`, por lo que puedes cubrir el uso de terminal, Desktop y Cowork con una sola consulta sobre `user.email` o `user.groups`. `user.groups` es la lista de grupos del IdP separada por comas.

1243 1243 


1347 1347 

1348Claude Code también copia cada etiqueta en cada punto de datos de métrica, para que puedas filtrar las métricas por ella en un backend que no indexa atributos de recurso. Para desactivar esa copia, consulta [Control de cardinalidad de métricas](/docs/es/monitoring-usage#metrics-cardinality-control).1348Claude Code también copia cada etiqueta en cada punto de datos de métrica, para que puedas filtrar las métricas por ella en un backend que no indexa atributos de recurso. Para desactivar esa copia, consulta [Control de cardinalidad de métricas](/docs/es/monitoring-usage#metrics-cardinality-control).

1349 1349 

1350<h4 id="group-changes-during-an-open-session">

1351 Cambios de grupo durante una sesión abierta

1352</h4>

1353 

1354Las sesiones de terminal ponen `user.groups` en el recurso OTLP y de nuevo en cada punto de datos de métrica y cada evento. Si los grupos de un desarrollador cambian mientras una sesión está abierta, los puntos de datos y eventos del uso posterior a la siguiente [actualización silenciosa](#session) llevan los nuevos grupos. El recurso conserva los grupos antiguos hasta que el desarrollador reinicia Claude Code, así que agrupa por el atributo del punto de datos o del evento.

1355 

1356Si activas `resource_to_telemetry_conversion` en el exportador de escritura remota de Prometheus del OpenTelemetry Collector, el exportador reemplaza el `user.groups` de cada punto de datos por el del recurso, por lo que todos los puntos de datos muestran los grupos antiguos. Para conservar el valor del punto de datos, elimina `user.groups` del recurso antes de ese exportador.

1357 

1358Este procesador `resource` del OpenTelemetry Collector elimina el atributo en las canalizaciones que lo listan:

1359 

1360```yaml theme={null}

1361processors:

1362 resource/drop-user-groups:

1363 attributes:

1364 - key: user.groups

1365 action: delete

1366```

1367 

1368Después de añadir `resource/drop-user-groups` a los `processors` de la canalización de métricas, cada serie lleva la etiqueta `user_groups` de su propio punto de datos.

1369 

1350<h4 id="export-directly-to-your-collector">1370<h4 id="export-directly-to-your-collector">

1351 Exportar directamente a tu recopilador1371 Exportar directamente a tu recopilador

1352</h4>1372</h4>

Details

516 Telemetría516 Telemetría

517</h2>517</h2>

518 518 

519La puerta de enlace le proporciona métricas de uso por desarrollador sin ninguna configuración OTEL por máquina. Claude Code emite métricas, registros y trazas de OpenTelemetry (OTLP) con opción de participación; [Monitoring usage](/docs/es/monitoring-usage) cubre todo lo que reporta la CLI. En sesiones iniciadas a través de `/login`, la CLI marca cada exportación con los atributos de identidad del IdP autenticado `user.id`, `user.email` y `user.groups`, por lo que el uso se agrupa por desarrollador.519El gateway te proporciona métricas de uso por desarrollador sin ninguna configuración OTEL por máquina. Claude Code emite métricas, registros y trazas opcionales de OpenTelemetry (OTLP); [Monitoring usage](/docs/es/monitoring-usage) cubre todo lo que reporta la CLI. En sesiones iniciadas a través de `/login`, la CLI [marca cada exportación](/docs/es/monitoring-usage#standard-attributes) con los atributos de identidad del IdP autenticado `user.id`, `user.email` y `user.groups`, por lo que el uso se agrupa por desarrollador.

520 520 

521La puerta de enlace en sí es un relé OTLP autenticado. Configure [`telemetry.forward_to`](/docs/es/claude-apps-gateway-config#telemetry) junto con `listen.public_url`, y empujará la configuración del exportador OTEL a cada cliente conectado y reenviará su tráfico OTLP textualmente a cada destino que enumere. Cada destino se suscribe a métricas, registros y trazas de forma independiente, y el valor predeterminado es solo métricas; consulte la [referencia de `telemetry`](/docs/es/claude-apps-gateway-config#telemetry) para los campos por señal y sus compensaciones de sensibilidad. La puerta de enlace no almacena en búfer, agrega ni almacena telemetría, por lo que dónde llegan los datos depende completamente de la configuración del exportador del recopilador.521La puerta de enlace en sí es un relé OTLP autenticado. Configure [`telemetry.forward_to`](/docs/es/claude-apps-gateway-config#telemetry) junto con `listen.public_url`, y empujará la configuración del exportador OTEL a cada cliente conectado y reenviará su tráfico OTLP textualmente a cada destino que enumere. Cada destino se suscribe a métricas, registros y trazas de forma independiente, y el valor predeterminado es solo métricas; consulte la [referencia de `telemetry`](/docs/es/claude-apps-gateway-config#telemetry) para los campos por señal y sus compensaciones de sensibilidad. La puerta de enlace no almacena en búfer, agrega ni almacena telemetría, por lo que dónde llegan los datos depende completamente de la configuración del exportador del recopilador.

522 522 

Details

91 Desde la CLI, la transferencia de sesión es unidireccional: puedes traer sesiones en la nube a tu terminal con `--teleport`, pero no puedes enviar una sesión de terminal existente a la nube. El flag `--cloud` con una descripción de tarea crea una nueva sesión en la nube para tu repositorio actual; con `-p` y un ID de sesión o una URL de claude.ai/code, en cambio, [pone en cola un mensaje en esa sesión existente](/docs/es/claude-code-on-the-web#send-follow-ups-from-the-cli). La [aplicación de escritorio](/docs/es/desktop#continue-in-another-surface) puede enviar a la nube una sesión local de su pestaña Code desde su menú **Open in**.91 Desde la CLI, la transferencia de sesión es unidireccional: puedes traer sesiones en la nube a tu terminal con `--teleport`, pero no puedes enviar una sesión de terminal existente a la nube. El flag `--cloud` con una descripción de tarea crea una nueva sesión en la nube para tu repositorio actual; con `-p` y un ID de sesión o una URL de claude.ai/code, en cambio, [pone en cola un mensaje en esa sesión existente](/docs/es/claude-code-on-the-web#send-follow-ups-from-the-cli). La [aplicación de escritorio](/docs/es/desktop#continue-in-another-surface) puede enviar a la nube una sesión local de su pestaña Code desde su menú **Open in**.

92</Note>92</Note>

93 93 

94<h3 id="from-terminal-to-cloud">94<span id="from-terminal-to-cloud" />

95 De terminal a nube95 

96<h3 id="start-a-cloud-session-from-your-terminal">

97 Iniciar una sesión en la nube desde tu terminal

96</h3>98</h3>

97 99 

98Inicie una sesión en la nube desde la línea de comandos con la bandera `--cloud`:100Inicie una sesión en la nube desde la línea de comandos con la bandera `--cloud`:


215 217 

216Si el envío falla, consulta [Errores al enviar a una sesión en la nube](#errors-when-sending-to-a-cloud-session).218Si el envío falla, consulta [Errores al enviar a una sesión en la nube](#errors-when-sending-to-a-cloud-session).

217 219 

218<h3 id="from-cloud-to-terminal">220<span id="from-cloud-to-terminal" />

219 De nube a terminal221 

222<h3 id="continue-a-cloud-session-in-your-terminal">

223 Continuar una sesión en la nube en tu terminal

220</h3>224</h3>

221 225 

222Extraiga una sesión en la nube en su terminal usando cualquiera de estos:226Extraiga una sesión en la nube en su terminal usando cualquiera de estos:


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

484 488 

485* **Se restaura**: tu historial de conversación489* **Se restaura**: tu historial de conversación

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

487 491 

488<h2 id="limitations">492<h2 id="limitations">

489 Limitaciones493 Limitaciones

Details

489* **Routines**: cuando pides trabajo programado en un proyecto, Claude crea una [rutina](/docs/es/routines) que se ejecuta como hilos en ese proyecto y aparece en su pestaña **Routines**. Las rutinas que creas fuera de un proyecto siguen funcionando por su cuenta.489* **Routines**: cuando pides trabajo programado en un proyecto, Claude crea una [rutina](/docs/es/routines) que se ejecuta como hilos en ese proyecto y aparece en su pestaña **Routines**. Las rutinas que creas fuera de un proyecto siguen funcionando por su cuenta.

490* **Remote Control**: [Remote Control](/docs/es/remote-control) conecta claude.ai a una sesión de Claude Code que se ejecuta en su máquina. Cuando pide a Claude en un proyecto que ejecute un hilo en su computadora, el proyecto [utiliza Remote Control para hacerlo](#run-a-thread-on-your-own-computer).490* **Remote Control**: [Remote Control](/docs/es/remote-control) conecta claude.ai a una sesión de Claude Code que se ejecuta en su máquina. Cuando pide a Claude en un proyecto que ejecute un hilo en su computadora, el proyecto [utiliza Remote Control para hacerlo](#run-a-thread-on-your-own-computer).

491* **Local sessions and agent view**: una sesión que comienza usted mismo en su terminal, IDE, o el entorno local de la aplicación de escritorio no puede ser agregada a un proyecto. [Agent view](/docs/es/agent-view) es una pantalla para rastrear varias sesiones locales lado a lado, y usted sigue iniciando cada una y le da su tarea usted mismo.491* **Local sessions and agent view**: una sesión que comienza usted mismo en su terminal, IDE, o el entorno local de la aplicación de escritorio no puede ser agregada a un proyecto. [Agent view](/docs/es/agent-view) es una pantalla para rastrear varias sesiones locales lado a lado, y usted sigue iniciando cada una y le da su tarea usted mismo.

492* **Worktrees**: un [worktree](/docs/es/worktrees) le da a cada sesión local su propia copia de trabajo de un repositorio para que las sesiones paralelas en su máquina no se sobrescriban entre sí. Los hilos en la nube no los necesitan: cada uno clona sus repositorios en su propia sandbox en la nube y trabaja en su propia rama.492* **Worktrees**: un [worktree](/docs/es/worktrees) le da a cada sesión local su propia copia de trabajo de un repositorio. Los hilos en la nube no los necesitan: cada uno clona sus repositorios en su propio sandbox en la nube y trabaja en su propia rama.

493* **Equipos de agentes**: un [equipo de agentes](/docs/es/agent-teams) es una sesión que comienza sesiones de compañeros para una sola tarea, en tu máquina o dentro de una sesión en la nube, y termina con esa tarea.493* **Equipos de agentes**: un [equipo de agentes](/docs/es/agent-teams) es una sesión que comienza sesiones de compañeros para una sola tarea, en tu máquina o dentro de una sesión en la nube, y termina con esa tarea.

494* **Subagents**: un [subagente](/docs/es/sub-agents) se ejecuta dentro de una sesión, realiza una tarea secundaria en su propia ventana de contexto, y devuelve un resumen a esa sesión. Los hilos de un proyecto son sesiones completas que Claude comienza y que reportan al proyecto, y un hilo aún puede usar subagentes para sus propias tareas secundarias.494* **Subagents**: un [subagente](/docs/es/sub-agents) se ejecuta dentro de una sesión, realiza una tarea secundaria en su propia ventana de contexto, y devuelve un resumen a esa sesión. Los hilos de un proyecto son sesiones completas que Claude comienza y que reportan al proyecto, y un hilo aún puede usar subagentes para sus propias tareas secundarias.

495* **Projects en claude.ai chat y Cowork**: la [experiencia anterior de Projects](https://support.claude.com/en/articles/9517075-what-are-projects), que agrupa conversaciones y archivos de referencia sin hilos o coordinador. Esos proyectos siguen funcionando como lo hacen hoy hasta que la experiencia rediseñada los alcance.495* **Projects en claude.ai chat y Cowork**: la [experiencia anterior de Projects](https://support.claude.com/en/articles/9517075-what-are-projects), que agrupa conversaciones y archivos de referencia sin hilos o coordinador. Esos proyectos siguen funcionando como lo hacen hoy hasta que la experiencia rediseñada los alcance.

Details

28| `claude auth logout` | Cerrar sesión en tu cuenta de Anthropic | `claude auth logout` |28| `claude auth logout` | Cerrar sesión en tu cuenta de Anthropic | `claude auth logout` |

29| `claude auth status` | Mostrar el estado de autenticación como JSON. Usa `--text` para salida legible por humanos. Sale con código 0 si has iniciado sesión, 1 si no. El JSON incluye un campo `configDirectory` que indica el [directorio de configuración](/docs/es/claude-directory) que utiliza la CLI. El campo requiere Claude Code v2.1.268 o posterior. El campo `authMethod` del JSON es uno de `none`, `claude.ai`, `oauth_token`, `api_key`, `api_key_helper` o `third_party` | `claude auth status` |29| `claude auth status` | Mostrar el estado de autenticación como JSON. Usa `--text` para salida legible por humanos. Sale con código 0 si has iniciado sesión, 1 si no. El JSON incluye un campo `configDirectory` que indica el [directorio de configuración](/docs/es/claude-directory) que utiliza la CLI. El campo requiere Claude Code v2.1.268 o posterior. El campo `authMethod` del JSON es uno de `none`, `claude.ai`, `oauth_token`, `api_key`, `api_key_helper` o `third_party` | `claude auth status` |

30| `claude agents` | Abrir la [vista de agentes](/docs/es/agent-view) para monitorear y enviar sesiones en segundo plano paralelas. Usa `--cwd <path>` para mostrar solo las sesiones iniciadas en ese directorio, o `--json` para imprimir las sesiones activas como una matriz JSON para scripts (`--json --all` también incluye las sesiones en segundo plano completadas). Pasa `--permission-mode`, `--model`, `--effort` o `--agent` para establecer [valores predeterminados para las sesiones enviadas](/docs/es/agent-view#permission-mode-model-and-effort). Acepta `--settings`, `--add-dir`, `--plugin-dir` y `--mcp-config` como el comando `claude` de nivel superior. Abrir la vista de agentes requiere una terminal interactiva | `claude agents --json` |30| `claude agents` | Abrir la [vista de agentes](/docs/es/agent-view) para monitorear y enviar sesiones en segundo plano paralelas. Usa `--cwd <path>` para mostrar solo las sesiones iniciadas en ese directorio, o `--json` para imprimir las sesiones activas como una matriz JSON para scripts (`--json --all` también incluye las sesiones en segundo plano completadas). Pasa `--permission-mode`, `--model`, `--effort` o `--agent` para establecer [valores predeterminados para las sesiones enviadas](/docs/es/agent-view#permission-mode-model-and-effort). Acepta `--settings`, `--add-dir`, `--plugin-dir` y `--mcp-config` como el comando `claude` de nivel superior. Abrir la vista de agentes requiere una terminal interactiva | `claude agents --json` |

31| `claude attach <id\|name>` | Adjuntarse a una [sesión en segundo plano](/docs/es/agent-view#manage-sessions-from-the-shell) en esta terminal. Pasar parte del nombre de una sesión en ejecución en lugar del ID requiere Claude Code v2.1.290 o posterior | `claude attach 7c5dcf5d` |31| `claude attach <id\|name>` | Adjuntarse a una [sesión en segundo plano](/docs/es/agent-view#manage-sessions-from-the-shell) en esta terminal. Pasar parte del nombre de una sesión en lugar del ID requiere Claude Code v2.1.290 o posterior | `claude attach 7c5dcf5d` |

32| `claude auto-mode defaults` | Imprimir las reglas integradas del clasificador del [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) como JSON. Usa `claude auto-mode config` para ver tu configuración efectiva con los ajustes aplicados. `--label <prefix>` imprime solo las reglas cuya etiqueta comienza con ese prefijo, sin distinguir mayúsculas y minúsculas. Requiere Claude Code v2.1.208 o posterior | `claude auto-mode defaults --label 'Git Destructive'` |32| `claude auto-mode defaults` | Imprimir las reglas integradas del clasificador del [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) como JSON. Usa `claude auto-mode config` para ver tu configuración efectiva con los ajustes aplicados. `--label <prefix>` imprime solo las reglas cuya etiqueta comienza con ese prefijo, sin distinguir mayúsculas y minúsculas. Requiere Claude Code v2.1.208 o posterior | `claude auto-mode defaults --label 'Git Destructive'` |

33| `claude auto-mode reset` | Restaurar la configuración predeterminada del [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) eliminando la sección `autoMode` de tu archivo de configuración de usuario. Solicita confirmación antes de escribir; pasa `-y`/`--yes` para omitir la solicitud. Las reglas de la [configuración administrada](/docs/es/server-managed-settings) o del flag `--settings` siguen aplicándose. Requiere Claude Code v2.1.212 o posterior. Consulta [Inspeccionar los valores predeterminados y tu configuración efectiva](/docs/es/auto-mode-config#inspect-the-defaults-and-your-effective-config) | `claude auto-mode reset --yes` |33| `claude auto-mode reset` | Restaurar la configuración predeterminada del [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) eliminando la sección `autoMode` de tu archivo de configuración de usuario. Solicita confirmación antes de escribir; pasa `-y`/`--yes` para omitir la solicitud. Las reglas de la [configuración administrada](/docs/es/server-managed-settings) o del flag `--settings` siguen aplicándose. Requiere Claude Code v2.1.212 o posterior. Consulta [Inspeccionar los valores predeterminados y tu configuración efectiva](/docs/es/auto-mode-config#inspect-the-defaults-and-your-effective-config) | `claude auto-mode reset --yes` |

34| `claude daemon logs` | Seguir el archivo de registro del [supervisor](/docs/es/agent-view#the-supervisor-process) de sesiones en segundo plano, `~/.claude/daemon.log`, imprimiendo las líneas nuevas a medida que llegan hasta que presiones `Ctrl+C` | `claude daemon logs` |34| `claude daemon logs` | Seguir el archivo de registro del [supervisor](/docs/es/agent-view#the-supervisor-process) de sesiones en segundo plano, `~/.claude/daemon.log`, imprimiendo las líneas nuevas a medida que llegan hasta que presiones `Ctrl+C` | `claude daemon logs` |


37| `claude daemon stop --any` | Detener el [supervisor](/docs/es/agent-view#the-supervisor-process) de sesiones en segundo plano y las sesiones que aloja. Pasa `--keep-workers` para dejar las sesiones en segundo plano en ejecución para que el próximo supervisor se reconecte a ellas. `--any` confirma la detención de un supervisor bajo demanda, que es el predeterminado. Usa esto para recuperarte de un [supervisor que no responde](/docs/es/agent-view#agent-view-says-the-background-service-did-not-respond) | `claude daemon stop --any --keep-workers` |37| `claude daemon stop --any` | Detener el [supervisor](/docs/es/agent-view#the-supervisor-process) de sesiones en segundo plano y las sesiones que aloja. Pasa `--keep-workers` para dejar las sesiones en segundo plano en ejecución para que el próximo supervisor se reconecte a ellas. `--any` confirma la detención de un supervisor bajo demanda, que es el predeterminado. Usa esto para recuperarte de un [supervisor que no responde](/docs/es/agent-view#agent-view-says-the-background-service-did-not-respond) | `claude daemon stop --any --keep-workers` |

38| `claude doctor` | Imprimir diagnósticos de solo lectura de instalación y configuración desde la terminal sin iniciar una sesión, incluida la salud de la instalación, los errores de validación de archivos de configuración y la idoneidad para Remote Control. Para la verificación de configuración dentro de la sesión que también puede aplicar correcciones, ejecuta [`/doctor`](/docs/es/commands#all-commands) | `claude doctor` |38| `claude doctor` | Imprimir diagnósticos de solo lectura de instalación y configuración desde la terminal sin iniciar una sesión, incluida la salud de la instalación, los errores de validación de archivos de configuración y la idoneidad para Remote Control. Para la verificación de configuración dentro de la sesión que también puede aplicar correcciones, ejecuta [`/doctor`](/docs/es/commands#all-commands) | `claude doctor` |

39| `claude import [source]` | Iniciar una sesión interactiva que ejecuta [`/import`](/docs/es/commands#all-commands) para traer configuración de otros agentes de codificación a Claude Code. Acepta las mismas opciones `--dry-run` y `--yes` que el comando. No disponible en Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry ni Claude Platform en AWS. 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 | `claude import codex --dry-run` |39| `claude import [source]` | Iniciar una sesión interactiva que ejecuta [`/import`](/docs/es/commands#all-commands) para traer configuración de otros agentes de codificación a Claude Code. Acepta las mismas opciones `--dry-run` y `--yes` que el comando. No disponible en Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry ni Claude Platform en AWS. 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 | `claude import codex --dry-run` |

40| `claude logs <id\|name>` | Imprimir la salida reciente de una [sesión en segundo plano](/docs/es/agent-view#manage-sessions-from-the-shell). Pasar parte del nombre de una sesión en ejecución en lugar del ID requiere Claude Code v2.1.290 o posterior | `claude logs 7c5dcf5d` |40| `claude logs <id\|name>` | Imprimir la salida reciente de una [sesión en segundo plano](/docs/es/agent-view#manage-sessions-from-the-shell). Pasar parte del nombre de una sesión en lugar del ID requiere Claude Code v2.1.290 o posterior | `claude logs 7c5dcf5d` |

41| `claude mcp` | Configurar servidores Model Context Protocol (MCP) | Consulta la [documentación de MCP de Claude Code](/docs/es/mcp). |41| `claude mcp` | Configurar servidores Model Context Protocol (MCP) | Consulta la [documentación de MCP de Claude Code](/docs/es/mcp). |

42| `claude mcp login <name>` | Ejecutar el flujo OAuth de un servidor MCP configurado sin abrir el panel interactivo `/mcp`. Funciona con servidores HTTP, SSE y conectores de claude.ai. Agrega `--no-browser` sobre SSH para imprimir la URL de autorización en lugar de abrir un navegador y luego pega la URL de redirección en el prompt. Consulta [Autenticar desde la línea de comandos](/docs/es/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` |42| `claude mcp login <name>` | Ejecutar el flujo OAuth de un servidor MCP configurado sin abrir el panel interactivo `/mcp`. Funciona con servidores HTTP, SSE y conectores de claude.ai. Agrega `--no-browser` sobre SSH para imprimir la URL de autorización en lugar de abrir un navegador. Para un servidor HTTP o SSE, pega la URL de redirección en el prompt. Para un conector de claude.ai, consulta [Autorizar un conector de nuevo desde tu shell](/docs/es/remote-control#authorize-a-connector-again-from-your-shell). Consulta [Autenticar desde la línea de comandos](/docs/es/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` |

43| `claude mcp logout <name>` | Borrar las credenciales OAuth almacenadas de un servidor MCP | `claude mcp logout sentry` |43| `claude mcp logout <name>` | Borrar las credenciales OAuth almacenadas de un servidor MCP | `claude mcp logout sentry` |

44| `claude plugin` | Administrar [plugins](/docs/es/plugins/overview) de Claude Code. Alias: `claude plugins`. Consulta la [referencia de plugins](/docs/es/plugins/cli-reference#claude-plugin-commands) para ver los subcomandos | `claude plugin install code-review@claude-plugins-official` |44| `claude plugin` | Administrar [plugins](/docs/es/plugins/overview) de Claude Code. Alias: `claude plugins`. Consulta la [referencia de plugins](/docs/es/plugins/cli-reference#claude-plugin-commands) para ver los subcomandos | `claude plugin install code-review@claude-plugins-official` |

45| `claude purge [path]` | Eliminar todo el estado local de Claude Code de un proyecto: transcripciones, listas de tareas, registros de depuración, historial de edición de archivos, líneas del historial de prompts y la entrada del proyecto en `~/.claude.json`. Omite `[path]` para elegir de una lista interactiva. Flags: `--dry-run` para obtener una vista previa, `-y`/`--yes` para omitir la confirmación, `-i`/`--interactive` para confirmar cada elemento, `--all` para todos los proyectos. Consulta [Borrar datos locales](/docs/es/claude-directory#clear-local-data) | `claude purge ~/work/repo --dry-run` |45| `claude purge [path]` | Eliminar todo el estado local de Claude Code de un proyecto: transcripciones, listas de tareas, registros de depuración, historial de edición de archivos, líneas del historial de prompts y la entrada del proyecto en `~/.claude.json`. Omite `[path]` para elegir de una lista interactiva. Flags: `--dry-run` para obtener una vista previa, `-y`/`--yes` para omitir la confirmación, `-i`/`--interactive` para confirmar cada elemento, `--all` para todos los proyectos. Consulta [Borrar datos locales](/docs/es/claude-directory#clear-local-data) | `claude purge ~/work/repo --dry-run` |


106| `--input-format` | Especifica el formato de entrada para el modo print (opciones: `text`, `stream-json`) | `claude -p --output-format json --input-format stream-json` |106| `--input-format` | Especifica el formato de entrada para el modo print (opciones: `text`, `stream-json`) | `claude -p --output-format json --input-format stream-json` |

107| `--json-schema` | Obtén salida JSON validada que coincida con un JSON Schema después de que el agente complete su flujo de trabajo (solo modo print). Consulta [salidas estructuradas](/docs/es/agent-sdk/structured-outputs). Claude Code sale con un error en un esquema inválido y acepta la palabra clave `format` como anotación sin validación del lado del cliente | `claude -p --json-schema '{"type":"object","properties":{...}}' "query"` |107| `--json-schema` | Obtén salida JSON validada que coincida con un JSON Schema después de que el agente complete su flujo de trabajo (solo modo print). Consulta [salidas estructuradas](/docs/es/agent-sdk/structured-outputs). Claude Code sale con un error en un esquema inválido y acepta la palabra clave `format` como anotación sin validación del lado del cliente | `claude -p --json-schema '{"type":"object","properties":{...}}' "query"` |

108| `--maintenance` | Ejecuta [hooks de Setup](/docs/es/hooks#setup) con el matcher `maintenance` antes de la sesión (solo modo print) | `claude -p --maintenance "query"` |108| `--maintenance` | Ejecuta [hooks de Setup](/docs/es/hooks#setup) con el matcher `maintenance` antes de la sesión (solo modo print) | `claude -p --maintenance "query"` |

109| `--max-budget-usd` | Cantidad máxima en dólares a gastar en llamadas de API antes de detenerse (solo modo print). Claude Code compara el límite con su [estimación de costos del lado del cliente](/docs/es/agent-sdk/cost-tracking#estimates-not-billing), que puede diferir de tu factura. El gasto de [subagentes](/docs/es/sub-agents) cuenta hacia el límite. Cuando regresas a una conversación con `--continue` o `--resume`, los totales [restaurados de ejecuciones anteriores](/docs/es/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls) no cuentan hacia él. Una vez que el gasto alcanza el límite, generar otro subagente falla con `Budget limit reached`, y Claude Code detiene los subagentes en segundo plano que aún se ejecutan; los comportamientos de cumplimiento del límite requieren Claude Code v2.1.217 o posterior | `claude -p --max-budget-usd 5.00 "query"` |109| `--max-budget-usd` | Detiene la ejecución una vez que el gasto estimado en llamadas de API alcanza esta cantidad (solo modo print). Claude Code compara el límite con su [estimación de costos del lado del cliente](/docs/es/agent-sdk/cost-tracking#estimates-not-billing), que puede diferir de tu factura. El gasto de [subagentes](/docs/es/sub-agents) cuenta hacia el límite. El gasto puede superar el límite, así que [deja margen](/docs/es/agent-sdk/agent-loop#budget-headroom). Cuando regresas a una conversación con `--continue` o `--resume`, los totales [restaurados de ejecuciones anteriores](/docs/es/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls) no cuentan hacia él. Una vez que el gasto alcanza el límite, generar otro subagente falla con `Budget limit reached`, y Claude Code detiene los subagentes en segundo plano que aún se ejecutan; los comportamientos de cumplimiento del límite requieren Claude Code v2.1.217 o posterior | `claude -p --max-budget-usd 5.00 "query"` |

110| `--max-turns` | Limita el número de turnos agentivos (solo modo print). Sale con un error cuando se alcanza el límite. Sin límite por defecto. Con `--input-format stream-json`, un mensaje aún en cola cuando el límite termina un turno permanece en cola e inicia un nuevo turno con su propio límite | `claude -p --max-turns 3 "query"` |110| `--max-turns` | Limita el número de turnos agentivos (solo modo print). Sale con un error cuando se alcanza el límite. Sin límite por defecto. Con `--input-format stream-json`, un mensaje aún en cola cuando el límite termina un turno permanece en cola e inicia un nuevo turno con su propio límite | `claude -p --max-turns 3 "query"` |

111| `--mcp-config` | Carga servidores MCP desde archivos JSON o cadenas (separados por espacios). Cuando pasas esta bandera con `-p`, Claude Code espera a que los servidores aún pendientes se conecten antes de ejecutar el primer turno, hasta el tiempo de espera de inicio [`MCP_TIMEOUT`](/docs/es/env-vars), 30 segundos por defecto; un servidor con una [lista de herramientas en caché](/docs/es/mcp#managing-your-servers) omite la espera y se conecta en el primer uso. La espera requiere Claude Code v2.1.221 o posterior | `claude --mcp-config ./mcp.json` |111| `--mcp-config` | Carga servidores MCP desde archivos JSON o cadenas (separados por espacios). Cuando pasas esta bandera con `-p`, Claude Code espera a que los servidores aún pendientes se conecten antes de ejecutar el primer turno, hasta el tiempo de espera de inicio [`MCP_TIMEOUT`](/docs/es/env-vars), 30 segundos por defecto; un servidor con una [lista de herramientas en caché](/docs/es/mcp#managing-your-servers) omite la espera y se conecta en el primer uso. La espera requiere Claude Code v2.1.221 o posterior | `claude --mcp-config ./mcp.json` |

112| `--model` | Establece el modelo para la sesión actual con un [alias de modelo](/docs/es/model-config#model-aliases) como `sonnet`, `opus`, `haiku`, o `fable`, o el nombre completo de un modelo. Anula la configuración [`model`](/docs/es/settings-reference#model) y [`ANTHROPIC_MODEL`](/docs/es/model-config#environment-variables) | `claude --model claude-sonnet-5` |112| `--model` | Establece el modelo para la sesión actual con un [alias de modelo](/docs/es/model-config#model-aliases) como `sonnet`, `opus`, `haiku`, o `fable`, o el nombre completo de un modelo. Anula la configuración [`model`](/docs/es/settings-reference#model) y [`ANTHROPIC_MODEL`](/docs/es/model-config#environment-variables) | `claude --model claude-sonnet-5` |

Details

307| | Disponible en sesiones en la nube | Por qué |307| | Disponible en sesiones en la nube | Por qué |

308| :- | :- | :- |308| :- | :- | :- |

309| El `CLAUDE.md` de tu repositorio | Sí | Parte del clon |309| El `CLAUDE.md` de tu repositorio | Sí | Parte del clon |

310| Los hooks y reglas de permisos de `.claude/settings.json` de tu repositorio | Sí, en una sesión con un repositorio | Parte del clon. Una sesión con varios repositorios, incluido un hilo de [proyecto](/docs/es/claude-projects#what-threads-pick-up-from-your-repositories), comienza por encima de los clones y no los lee |310| Los hooks y reglas de permisos de `.claude/settings.json` de tu repositorio | Sí, en una sesión con un repositorio | Parte del clon. Para una sesión con varios repositorios, consulta [qué configuración lee](/docs/es/settings#settings-in-cloud-sessions) |

311| Los servidores MCP de `.mcp.json` de tu repositorio | Sí, en una sesión con un repositorio | Parte del clon, encontrado desde el directorio de trabajo de la sesión |311| Los servidores MCP de `.mcp.json` de tu repositorio | Sí, en una sesión con un repositorio | Parte del clon, encontrado desde el directorio de trabajo de la sesión. Para un entorno autohospedado, consulta [qué configuración de repositorio se aplica](/docs/es/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories) |

312| El `.claude/rules/` de tu repositorio | Sí | Parte del clon |312| El `.claude/rules/` de tu repositorio | Sí | Parte del clon |

313| Los `.claude/skills/`, `.claude/agents/`, `.claude/commands/` de tu repositorio | Sí | Parte del clon |313| Los `.claude/skills/`, `.claude/agents/`, `.claude/commands/` de tu repositorio | Sí | Parte del clon |

314| Plugins y marketplaces declarados en el `.claude/settings.json` de tu repositorio | No | Una sesión en la nube no instala los plugins que un repositorio activa bajo [`enabledPlugins`](/docs/es/settings-reference#enabledplugins), incluidos los de los marketplaces que enumera bajo [`extraKnownMarketplaces`](/docs/es/settings-reference#extraknownmarketplaces) |314| Plugins y marketplaces declarados en el `.claude/settings.json` de tu repositorio | No | Una sesión en la nube no instala los plugins que un repositorio activa bajo [`enabledPlugins`](/docs/es/settings-reference#enabledplugins), incluidos los de los marketplaces que enumera bajo [`extraKnownMarketplaces`](/docs/es/settings-reference#extraknownmarketplaces) |


575 575 

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

577 577 

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

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

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

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

commands.md +1 −1

Details

111| `/login` | Inicia sesión en tu cuenta de Anthropic |111| `/login` | Inicia sesión en tu cuenta de Anthropic |

112| `/logout` | Cierra sesión en tu cuenta de Anthropic |112| `/logout` | Cierra sesión en tu cuenta de Anthropic |

113| `/loop [interval] [prompt]` | **[Skill](/docs/es/skills#bundled-skills).** Ejecuta un prompt repetidamente mientras la sesión permanece abierta. Omite el intervalo y Claude [marca su propio ritmo entre iteraciones](/docs/es/scheduled-tasks#let-claude-choose-the-interval). Omite el prompt y Claude ejecuta el [prompt de mantenimiento integrado](/docs/es/scheduled-tasks#run-the-built-in-maintenance-prompt) o tu [`loop.md`](/docs/es/scheduled-tasks#customize-the-default-prompt-with-loop-md). Ejemplo: `/loop 5m check if the deploy finished`. Consulta [Ejecutar prompts según una programación](/docs/es/scheduled-tasks). Alias: `/proactive` |113| `/loop [interval] [prompt]` | **[Skill](/docs/es/skills#bundled-skills).** Ejecuta un prompt repetidamente mientras la sesión permanece abierta. Omite el intervalo y Claude [marca su propio ritmo entre iteraciones](/docs/es/scheduled-tasks#let-claude-choose-the-interval). Omite el prompt y Claude ejecuta el [prompt de mantenimiento integrado](/docs/es/scheduled-tasks#run-the-built-in-maintenance-prompt) o tu [`loop.md`](/docs/es/scheduled-tasks#customize-the-default-prompt-with-loop-md). Ejemplo: `/loop 5m check if the deploy finished`. Consulta [Ejecutar prompts según una programación](/docs/es/scheduled-tasks). Alias: `/proactive` |

114| `/mcp [reconnect (<server>\|all)\|enable\|disable [<server>\|all]]` | Administra las conexiones de servidores MCP y la autenticación OAuth. Ejecútalo sin argumento para abrir la lista interactiva, o pasa `reconnect`, `enable` o `disable` con un nombre de servidor o `all` para cambiar el estado de conexión sin abrirla. `reconnect all` [reintenta cada servidor que falló o necesita autenticación](/docs/es/mcp#retry-failed-servers-yourself). También disponible en modo no interactivo (`-p`), donde ejecutarlo sin argumento imprime un resumen en texto del estado de los servidores en lugar de abrir la lista; requiere Claude Code v2.1.205 o posterior |114| `/mcp [reconnect (<server>\|all)\|enable\|disable [<server>\|all]]` | Administra las conexiones de servidores MCP y la autenticación OAuth. Ejecútalo sin argumento para abrir la lista interactiva, o pasa `reconnect`, `enable` o `disable` con un nombre de servidor o `all` para cambiar el estado de conexión sin abrirla. `reconnect all` [reintenta cada servidor que falló o necesita autenticación](/docs/es/mcp#retry-failed-servers-yourself). En modo no interactivo (`-p`), ejecutarlo sin argumento imprime un resumen en texto del estado de los servidores en lugar de abrir la lista; requiere Claude Code v2.1.205 o posterior |

115| `/memory` | Edita archivos `CLAUDE.md`, habilita o deshabilita la [memoria automática](/docs/es/memory#auto-memory) y consulta las entradas de memoria automática |115| `/memory` | Edita archivos `CLAUDE.md`, habilita o deshabilita la [memoria automática](/docs/es/memory#auto-memory) y consulta las entradas de memoria automática |

116| `/mobile` | Muestra un código QR para descargar la app móvil de Claude. Alias: `/ios`, `/android` |116| `/mobile` | Muestra un código QR para descargar la app móvil de Claude. Alias: `/ios`, `/android` |

117| `/model [model]` | Cambia el modelo de IA y guárdalo como predeterminado para nuevas sesiones. En los modelos que lo admiten, usa las flechas izquierda/derecha para [ajustar el nivel de esfuerzo](/docs/es/model-config#adjust-effort-level). Sin argumento, abre un selector; presiona `s` en una fila para cambiar solo para la sesión actual. Consulta [cuándo Claude Code te pide confirmar el cambio](/docs/es/prompt-caching#switching-models). Una vez que confirmas el cambio, si Claude Code lo pide, Claude Code aplica el cambio sin esperar a que termine la respuesta actual. Antes de v2.1.242, Claude Code decidía, a partir de un feature flag que obtenía de Anthropic, si ejecutar el comando a mitad del turno o ponerlo en cola hasta que terminara el turno, y siempre lo ponía en cola en una sesión que no [obtiene feature flags](/docs/es/env-vars#features-that-need-feature-flag-fetching), como con un [proveedor externo](/docs/es/third-party-integrations). También disponible en modo no interactivo (`-p`) con un argumento de modelo en lugar del selector, donde se aplica solo a la sesión actual y no se guarda como predeterminado; requiere Claude Code v2.1.205 o posterior |117| `/model [model]` | Cambia el modelo de IA y guárdalo como predeterminado para nuevas sesiones. En los modelos que lo admiten, usa las flechas izquierda/derecha para [ajustar el nivel de esfuerzo](/docs/es/model-config#adjust-effort-level). Sin argumento, abre un selector; presiona `s` en una fila para cambiar solo para la sesión actual. Consulta [cuándo Claude Code te pide confirmar el cambio](/docs/es/prompt-caching#switching-models). Una vez que confirmas el cambio, si Claude Code lo pide, Claude Code aplica el cambio sin esperar a que termine la respuesta actual. Antes de v2.1.242, Claude Code decidía, a partir de un feature flag que obtenía de Anthropic, si ejecutar el comando a mitad del turno o ponerlo en cola hasta que terminara el turno, y siempre lo ponía en cola en una sesión que no [obtiene feature flags](/docs/es/env-vars#features-that-need-feature-flag-fetching), como con un [proveedor externo](/docs/es/third-party-integrations). También disponible en modo no interactivo (`-p`) con un argumento de modelo en lugar del selector, donde se aplica solo a la sesión actual y no se guarda como predeterminado; requiere Claude Code v2.1.205 o posterior |

desktop.md +1 −1

Details

396 Trabajar en paralelo con sesiones396 Trabajar en paralelo con sesiones

397</h3>397</h3>

398 398 

399Haz 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), de modo que los cambios en una sesión no afecten a otras sesiones hasta que hagas commit.399Haz 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).

400 400 

401Para 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.401Para 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.

402 402 

env-vars.md +333 −328

Details

21 21 

22Una variable que estableces en tu shell dura durante esa sesión de terminal, mientras que una variable en un archivo de configuración se aplica cada vez que se ejecuta `claude`.22Una variable que estableces en tu shell dura durante esa sesión de terminal, mientras que una variable en un archivo de configuración se aplica cada vez que se ejecuta `claude`.

23 23 

24<h3 id="in-your-shell">24<span id="in-your-shell" />

25 En tu shell25 

26<h3 id="set-variables-in-your-shell">

27 Establecer variables en tu shell

26</h3>28</h3>

27 29 

28Establece la variable antes de lanzar `claude`:30Establece la variable antes de lanzar `claude`:


78 </Tab>80 </Tab>

79</Tabs>81</Tabs>

80 82 

81<h3 id="in-settings-files">83<span id="in-settings-files" />

82 En archivos de configuración84 

85<h3 id="set-variables-in-settings-files">

86 Establecer variables en archivos de configuración

83</h3>87</h3>

84 88 

85Agrega variables bajo la clave `env` en un archivo `settings.json`, creando el archivo si no existe. Claude Code las lee directamente del archivo, por lo que surten efecto sin importar cómo se haya lanzado `claude`. Una sesión en ejecución aplica valores nuevos y modificados a su entorno cuando guardas el archivo, pero una característica que lee sus variables una sola vez al inicio, como [monitoreo de OpenTelemetry](/docs/es/monitoring-usage), mantiene sus valores de inicio hasta que relances. Eliminar una variable del archivo no la desestablece en una sesión en ejecución; la eliminación surte efecto la próxima vez que lances `claude`.89Agrega variables bajo la clave `env` en un archivo `settings.json`, creando el archivo si no existe. Claude Code las lee directamente del archivo, por lo que surten efecto sin importar cómo se haya lanzado `claude`. Una sesión en ejecución aplica valores nuevos y modificados a su entorno cuando guardas el archivo, pero una característica que lee sus variables una sola vez al inicio, como [monitoreo de OpenTelemetry](/docs/es/monitoring-usage), mantiene sus valores de inicio hasta que relances. Eliminar una variable del archivo no la desestablece en una sesión en ejecución; la eliminación surte efecto la próxima vez que lances `claude`.


120 124 

121Cómo una variable de entorno interactúa con banderas CLI y comandos en sesión varía según la característica: `--model` y `/model` anulan `ANTHROPIC_MODEL`, mientras que `CLAUDE_CODE_EFFORT_LEVEL` anula `--effort` y `/effort`. Cuando una variable interactúa con otra fuente de configuración, su fila en la lista [Variables](#variables) indica la precedencia o vincula a la página que la documenta.125Cómo una variable de entorno interactúa con banderas CLI y comandos en sesión varía según la característica: `--model` y `/model` anulan `ANTHROPIC_MODEL`, mientras que `CLAUDE_CODE_EFFORT_LEVEL` anula `--effort` y `/effort`. Cuando una variable interactúa con otra fuente de configuración, su fila en la lista [Variables](#variables) indica la precedencia o vincula a la página que la documenta.

122 126 

123Claude Code lee las variables de entorno del shell al iniciar, por lo que los cambios en ellas surten efecto la próxima vez que inicia `claude`. Las variables establecidas bajo la clave `env` en archivos de configuración se reaplicarán a una sesión en ejecución cuando el archivo cambie, con la excepción de solo inicio descrita en [En archivos de configuración](#in-settings-files).127Claude Code lee las variables de entorno del shell al iniciar, por lo que los cambios en ellas surten efecto la próxima vez que inicies `claude`. Las variables establecidas bajo la clave `env` en archivos de configuración se vuelven a aplicar a una sesión en ejecución cuando el archivo cambia, con la excepción de solo inicio descrita en [Establecer variables en archivos de configuración](#in-settings-files).

124 128 

125<h2 id="variables">129<h2 id="variables">

126 Variables130 Variables

127</h2>131</h2>

128 132 

129Las variables numéricas, como tiempos de espera, presupuestos de tokens y recuentos de reintentos, aceptan notación científica y escrituras con separadores de dígitos además de dígitos simples, excepto cuando la fila de una variable indica que solo acepta dígitos simples. Por ejemplo, Claude Code lee `2e3` como 2000 y `64_000` como 64000. Antes de v2.1.211, estas escrituras podían establecer silenciosamente un valor mucho menor, como `1e6`, que establecía un tiempo de espera de 1.133Las variables numéricas, como tiempos de espera, presupuestos de tokens y recuentos de reintentos, aceptan notación científica y separadores de dígitos además de dígitos simples, excepto cuando la fila de una variable indica que solo acepta dígitos simples. Por ejemplo, Claude Code lee `2e3` como 2000 y `64_000` como 64000. Antes de v2.1.211, estas formas podían establecer silenciosamente un valor mucho menor, como `1e6`, que establecía un tiempo de espera de 1.

130 134 

131<Note>135<Note>

132 Para las variables que activan o desactivan un comportamiento, establece `1`, `true`, `yes` u `on` para activarlo y `0`, `false`, `no` u `off` para desactivarlo, sin importar mayúsculas o minúsculas.136 Para las variables que activan o desactivan un comportamiento, establece `1`, `true`, `yes` u `on` para activarlo y `0`, `false`, `no` u `off` para desactivarlo, con cualquier combinación de mayúsculas y minúsculas.

133 137 

134 Algunas variables solo leen si las estableciste o no, por lo que cualquier valor no vacío, incluido `0`, activa el comportamiento, y lo desactivas quitando la variable o estableciéndola en un valor vacío. Estas variables funcionan así:138 Algunas variables solo comprueban si las estableciste o no, por lo que cualquier valor no vacío, incluido `0`, activa el comportamiento, y para desactivarlo debes eliminar la variable o establecerla en un valor vacío. Estas variables funcionan de esa manera:

135 139 

136 * `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`140 * `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`

137 * `DISABLE_TELEMETRY`141 * `DISABLE_TELEMETRY`


145 149 

146| Variable | Propósito |150| Variable | Propósito |

147| :- | :- |151| :- | :- |

148| `ANTHROPIC_API_KEY` | Clave de API enviada como encabezado `X-Api-Key`. Cuando está establecida, esta clave se usa en lugar de tu suscripción a Claude Pro, Max, Team o Enterprise, incluso si iniciaste sesión. En modo no interactivo (`-p`), la clave siempre se usa cuando está presente. En modo interactivo, se te pide que apruebes la clave una vez antes de que sobrescriba tu suscripción. Para usar tu suscripción en su lugar, ejecuta `unset ANTHROPIC_API_KEY` |152| `ANTHROPIC_API_KEY` | Clave de API enviada como encabezado `X-Api-Key`. Cuando está establecida, esta clave se usa en lugar de tu suscripción Claude Pro, Max, Team o Enterprise aunque hayas iniciado sesión. En modo no interactivo (`-p`), la clave siempre se usa cuando está presente. En modo interactivo, se te pide que apruebes la clave una vez antes de que sobrescriba tu suscripción. Para usar tu suscripción en su lugar, ejecuta `unset ANTHROPIC_API_KEY` |

149| `ANTHROPIC_AUTH_TOKEN` | Valor personalizado para el encabezado `Authorization` (el valor que establezcas aquí tendrá el prefijo `Bearer `) |153| `ANTHROPIC_AUTH_TOKEN` | Valor personalizado para el encabezado `Authorization` (el valor que establezcas aquí llevará el prefijo `Bearer `) |

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

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

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

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

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

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

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

157| `ANTHROPIC_BEDROCK_SERVICE_TIER` | [Nivel de servicio](https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html) de Amazon Bedrock (`default`, `flex` o `priority`). Se envía como el encabezado `X-Amzn-Bedrock-Service-Tier`. Consulta [Amazon Bedrock](/docs/es/amazon-bedrock#service-tiers) |161| `ANTHROPIC_BEDROCK_SERVICE_TIER` | [Nivel de servicio](https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html) de Amazon Bedrock (`default`, `flex` o `priority`). Se envía como el encabezado `X-Amzn-Bedrock-Service-Tier`. Consulta [Amazon Bedrock](/docs/es/amazon-bedrock#service-tiers) |

158| `ANTHROPIC_BETAS` | Lista separada por comas de valores adicionales del encabezado `anthropic-beta` que se incluirán en las solicitudes a la API. Claude Code ya envía los encabezados beta que necesita; usa esto para optar por una [beta de la API de Anthropic](https://platform.claude.com/docs/en/api/beta-headers) antes de que Claude Code agregue compatibilidad nativa. A diferencia del [flag `--betas`](/docs/es/cli-reference#cli-flags), que requiere autenticación con clave de API, esta variable funciona con todos los métodos de autenticación, incluida la suscripción a Claude.ai |162| `ANTHROPIC_BETAS` | Lista separada por comas de valores adicionales del encabezado `anthropic-beta` para incluir en las solicitudes a la API. Claude Code ya envía los encabezados beta que necesita; usa esta variable para optar por una [beta de la API de Anthropic](https://platform.claude.com/docs/en/api/beta-headers) antes de que Claude Code agregue compatibilidad nativa. A diferencia del [flag `--betas`](/docs/es/cli-reference#cli-flags), que requiere autenticación con clave de API, esta variable funciona con todos los métodos de autenticación, incluida la suscripción de Claude.ai |

159| `ANTHROPIC_CUSTOM_HEADERS` | Encabezados personalizados que se agregan a las solicitudes (formato `Name: Value`, separados por saltos de línea para varios encabezados). Si un nombre o valor contiene un carácter que un encabezado HTTP no puede transportar, como una comilla tipográfica o un espacio de ancho cero, la solicitud falla con un error que identifica el par por su posición. Requiere Claude Code v2.1.227 o posterior. [Invalid request header value](/docs/es/errors#invalid-request-header-value) enumera el conjunto exacto de caracteres y dónde se ejecuta la comprobación. Un valor que establece un encabezado de credenciales, de organización o tenant, de enrutamiento o de comportamiento de la API, como `Authorization` o `Host`, cuenta como un [ajuste que necesita aprobación](/docs/es/server-managed-settings#environment-variables-and-the-approval-dialog) cuando lo entrega la configuración administrada por el servidor. Desde la configuración del proyecto o local, dicho valor sigue las [reglas sobre cuándo se aplican los valores de `env`](/docs/es/settings-reference#when-claude-code-applies-env-values) |163| `ANTHROPIC_CUSTOM_HEADERS` | Encabezados personalizados para agregar a las solicitudes (formato `Name: Value`, separados por saltos de línea para varios encabezados). Si un nombre o valor contiene un carácter que un encabezado HTTP no puede transportar, como una comilla tipográfica o un espacio de ancho cero, la solicitud falla con un error que identifica el par por su posición. Requiere Claude Code v2.1.227 o posterior. [Invalid request header value](/docs/es/errors#invalid-request-header-value) enumera el conjunto exacto de caracteres y dónde se ejecuta la comprobación. Un valor que establece un encabezado de credenciales, organización o tenant, enrutamiento o comportamiento de la API, como `Authorization` o `Host`, cuenta como un [ajuste que necesita aprobación](/docs/es/server-managed-settings#environment-variables-and-the-approval-dialog) cuando lo entrega la configuración administrada por el servidor. Desde la configuración de proyecto o local, dicho valor sigue las [reglas sobre cuándo se aplican los valores de `env`](/docs/es/settings-reference#when-claude-code-applies-env-values) |

160| `ANTHROPIC_CUSTOM_MODEL_OPTION` | ID del modelo que se agrega como entrada personalizada en el selector de `/model`. Úsala para que un modelo no estándar o específico de un gateway se pueda seleccionar sin reemplazar los alias integrados. Consulta [Configuración de modelos](/docs/es/model-config#add-a-custom-model-option) |164| `ANTHROPIC_CUSTOM_MODEL_OPTION` | ID de modelo para agregar como entrada personalizada en el selector de `/model`. Úsala para que un modelo no estándar o específico de un gateway sea seleccionable sin reemplazar los alias integrados. Consulta [Configuración del modelo](/docs/es/model-config#add-a-custom-model-option) |

161| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | Descripción que se muestra para la entrada del modelo personalizado en el selector de `/model`. Si no se establece, el valor predeterminado es `Custom model (<model-id>)` |165| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | Descripción que se muestra para la entrada del modelo personalizado en el selector de `/model`. Si no se establece, el valor predeterminado es `Custom model (<model-id>)` |

162| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | Nombre que se muestra para la entrada del modelo personalizado en el selector de `/model`. Si no se establece, la entrada muestra el nombre del modelo si Claude Code [reconoce el ID](/docs/es/model-config#customize-pinned-model-display-and-capabilities), y el ID del modelo en caso contrario |166| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | Nombre que se muestra para la entrada del modelo personalizado en el selector de `/model`. Si no se establece, la entrada muestra el nombre del modelo si Claude Code [reconoce el ID](/docs/es/model-config#customize-pinned-model-display-and-capabilities) y, de lo contrario, el ID del modelo |

163| `ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES` | Lista separada por comas de las [capacidades](/docs/es/model-config#customize-pinned-model-display-and-capabilities) que admite el modelo personalizado, por ejemplo `effort,thinking`. Consulta [Configuración de modelos](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |167| `ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES` | Lista separada por comas de las [capacidades](/docs/es/model-config#customize-pinned-model-display-and-capabilities) que admite el modelo personalizado, por ejemplo `effort,thinking`. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |

164| `ANTHROPIC_DEFAULT_FABLE_MODEL` | ID del modelo al que se resuelve el alias `fable`, y el ID que Claude Code reconoce como modelo Fable para el [respaldo automático de modelos](/docs/es/model-config#automatic-model-fallback) en proveedores de terceros. Consulta [Configuración de modelos](/docs/es/model-config#environment-variables) |168| `ANTHROPIC_DEFAULT_FABLE_MODEL` | ID de modelo al que se resuelve el alias `fable`, y el ID que Claude Code reconoce como un modelo Fable para el [respaldo automático de modelo](/docs/es/model-config#automatic-model-fallback) en proveedores de terceros. Consulta [Configuración del modelo](/docs/es/model-config#environment-variables) |

165| `ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION` | Descripción que se muestra para el modelo Fable fijado en el selector de `/model`. Si no se establece, la fila muestra una descripción predeterminada que comienza con `Custom Fable model`. Consulta [Configuración de modelos](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |169| `ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION` | Descripción que se muestra para el modelo Fable fijado en el selector de `/model`. Si no se establece, la fila muestra una descripción predeterminada que comienza con `Custom Fable model`. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |

166| `ANTHROPIC_DEFAULT_FABLE_MODEL_NAME` | Nombre que se muestra para el modelo Fable fijado en el selector de `/model`. Si no se establece, la fila muestra el nombre del modelo si Claude Code reconoce el ID fijado, y el ID fijado en caso contrario. Consulta [Configuración de modelos](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |170| `ANTHROPIC_DEFAULT_FABLE_MODEL_NAME` | Nombre que se muestra para el modelo Fable fijado en el selector de `/model`. Si no se establece, la fila muestra el nombre del modelo si Claude Code reconoce el ID fijado y, de lo contrario, el ID fijado. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |

167| `ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES` | Lista separada por comas de las [capacidades](/docs/es/model-config#customize-pinned-model-display-and-capabilities) que admite el modelo Fable fijado, por ejemplo `effort,thinking`. Consulta [Configuración de modelos](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |171| `ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES` | Lista separada por comas de las [capacidades](/docs/es/model-config#customize-pinned-model-display-and-capabilities) que admite el modelo Fable fijado, por ejemplo `effort,thinking`. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |

168| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | ID del modelo al que se resuelve el alias `haiku`, que también se usa para la [funcionalidad en segundo plano](/docs/es/costs#background-token-usage). Consulta [Configuración de modelos](/docs/es/model-config#environment-variables) |172| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | ID de modelo al que se resuelve el alias `haiku`, que también se usa para la [funcionalidad en segundo plano](/docs/es/costs#background-token-usage). Consulta [Configuración del modelo](/docs/es/model-config#environment-variables) |

169| `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | Descripción que se muestra para el modelo Haiku fijado en el selector de `/model`. Si no se establece, la fila muestra una descripción predeterminada que comienza con `Custom Haiku model`. Consulta [Configuración de modelos](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |173| `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | Descripción que se muestra para el modelo Haiku fijado en el selector de `/model`. Si no se establece, la fila muestra una descripción predeterminada que comienza con `Custom Haiku model`. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |

170| `ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME` | Nombre que se muestra para el modelo Haiku fijado en el selector de `/model`. Si no se establece, la fila muestra el nombre del modelo si Claude Code reconoce el ID fijado, y el ID fijado en caso contrario. Consulta [Configuración de modelos](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |174| `ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME` | Nombre que se muestra para el modelo Haiku fijado en el selector de `/model`. Si no se establece, la fila muestra el nombre del modelo si Claude Code reconoce el ID fijado y, de lo contrario, el ID fijado. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |

171| `ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES` | Lista separada por comas de las [capacidades](/docs/es/model-config#customize-pinned-model-display-and-capabilities) que admite el modelo Haiku fijado, por ejemplo `effort,thinking`. Consulta [Configuración de modelos](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |175| `ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES` | Lista separada por comas de las [capacidades](/docs/es/model-config#customize-pinned-model-display-and-capabilities) que admite el modelo Haiku fijado, por ejemplo `effort,thinking`. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |

172| `ANTHROPIC_DEFAULT_MODEL` | Modelo con el que comienzan las nuevas sesiones de forma predeterminada. Requiere Claude Code v2.1.236 o posterior. Consulta [Establecer un modelo predeterminado para las nuevas sesiones](/docs/es/model-config#set-a-default-model-for-new-sessions) |176| `ANTHROPIC_DEFAULT_MODEL` | Modelo con el que comienzan de forma predeterminada las sesiones nuevas. Requiere Claude Code v2.1.236 o posterior. Consulta [Establecer un modelo predeterminado para sesiones nuevas](/docs/es/model-config#set-a-default-model-for-new-sessions) |

173| `ANTHROPIC_DEFAULT_OPUS_MODEL` | ID del modelo al que se resuelve el alias `opus`, y que `opusplan` usa mientras el modo plan está activo. Consulta [Configuración de modelos](/docs/es/model-config#environment-variables) |177| `ANTHROPIC_DEFAULT_OPUS_MODEL` | ID de modelo al que se resuelve el alias `opus`, y que `opusplan` usa mientras el modo plan está activo. Consulta [Configuración del modelo](/docs/es/model-config#environment-variables) |

174| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | Descripción que se muestra para el modelo Opus fijado en el selector de `/model`. Si no se establece, la fila muestra una descripción predeterminada que comienza con `Custom Opus model`. Consulta [Configuración de modelos](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |178| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | Descripción que se muestra para el modelo Opus fijado en el selector de `/model`. Si no se establece, la fila muestra una descripción predeterminada que comienza con `Custom Opus model`. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |

175| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | Nombre que se muestra para el modelo Opus fijado en el selector de `/model`. Si no se establece, la fila muestra el nombre del modelo si Claude Code reconoce el ID fijado, y el ID fijado en caso contrario. Consulta [Configuración de modelos](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |179| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | Nombre que se muestra para el modelo Opus fijado en el selector de `/model`. Si no se establece, la fila muestra el nombre del modelo si Claude Code reconoce el ID fijado y, de lo contrario, el ID fijado. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |

176| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | Lista separada por comas de las [capacidades](/docs/es/model-config#customize-pinned-model-display-and-capabilities) que admite el modelo Opus fijado, por ejemplo `effort,thinking`. Consulta [Configuración de modelos](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |180| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | Lista separada por comas de las [capacidades](/docs/es/model-config#customize-pinned-model-display-and-capabilities) que admite el modelo Opus fijado, por ejemplo `effort,thinking`. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |

177| `ANTHROPIC_DEFAULT_SONNET_MODEL` | ID del modelo al que se resuelve el alias `sonnet`, y que `opusplan` usa cuando el modo plan no está activo. Consulta [Configuración de modelos](/docs/es/model-config#environment-variables) |181| `ANTHROPIC_DEFAULT_SONNET_MODEL` | ID de modelo al que se resuelve el alias `sonnet`, y que `opusplan` usa cuando el modo plan no está activo. Consulta [Configuración del modelo](/docs/es/model-config#environment-variables) |

178| `ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION` | Descripción que se muestra para el modelo Sonnet fijado en el selector de `/model`. Si no se establece, la fila muestra una descripción predeterminada que comienza con `Custom Sonnet model`. Consulta [Configuración de modelos](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |182| `ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION` | Descripción que se muestra para el modelo Sonnet fijado en el selector de `/model`. Si no se establece, la fila muestra una descripción predeterminada que comienza con `Custom Sonnet model`. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |

179| `ANTHROPIC_DEFAULT_SONNET_MODEL_NAME` | Nombre que se muestra para el modelo Sonnet fijado en el selector de `/model`. Si no se establece, la fila muestra el nombre del modelo si Claude Code reconoce el ID fijado, y el ID fijado en caso contrario. Consulta [Configuración de modelos](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |183| `ANTHROPIC_DEFAULT_SONNET_MODEL_NAME` | Nombre que se muestra para el modelo Sonnet fijado en el selector de `/model`. Si no se establece, la fila muestra el nombre del modelo si Claude Code reconoce el ID fijado y, de lo contrario, el ID fijado. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |

180| `ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES` | Lista separada por comas de las [capacidades](/docs/es/model-config#customize-pinned-model-display-and-capabilities) que admite el modelo Sonnet fijado, por ejemplo `effort,thinking`. Consulta [Configuración de modelos](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |184| `ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES` | Lista separada por comas de las [capacidades](/docs/es/model-config#customize-pinned-model-display-and-capabilities) que admite el modelo Sonnet fijado, por ejemplo `effort,thinking`. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |

181| `ANTHROPIC_FEDERATION_RULE_ID` | ID de la regla de federación para [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Cuando la estableces junto con `ANTHROPIC_ORGANIZATION_ID`, Claude Code selecciona las credenciales de federación, que tienen prioridad sobre tu credencial de `/login`. Consulta [precedencia de autenticación](/docs/es/authentication#authentication-precedence) |185| `ANTHROPIC_FEDERATION_RULE_ID` | ID de regla de federación para [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Cuando la estableces junto con `ANTHROPIC_ORGANIZATION_ID`, Claude Code selecciona las credenciales de federación, que tienen prioridad sobre tu credencial de `/login`. Consulta [precedencia de autenticación](/docs/es/authentication#authentication-precedence) |

182| `ANTHROPIC_FOUNDRY_API_KEY` | Clave de API para la autenticación de Microsoft Foundry (consulta [Microsoft Foundry](/docs/es/microsoft-foundry)) |186| `ANTHROPIC_FOUNDRY_API_KEY` | Clave de API para la autenticación de Microsoft Foundry (consulta [Microsoft Foundry](/docs/es/microsoft-foundry)) |

183| `ANTHROPIC_FOUNDRY_AUTH_TOKEN` | Token de portador para la autenticación de Microsoft Foundry, como un token de acceso de Microsoft Entra. Claude Code lo envía como el encabezado `Authorization: Bearer`. Tiene precedencia sobre `ANTHROPIC_FOUNDRY_API_KEY` y sobre la cadena de credenciales predeterminada de Azure. Consulta [Microsoft Foundry](/docs/es/microsoft-foundry). Requiere Claude Code v2.1.203 o posterior |187| `ANTHROPIC_FOUNDRY_AUTH_TOKEN` | Token bearer para la autenticación de Microsoft Foundry, como un token de acceso de Microsoft Entra. Claude Code lo envía como el encabezado `Authorization: Bearer`. Tiene precedencia sobre `ANTHROPIC_FOUNDRY_API_KEY` y sobre la cadena de credenciales predeterminada de Azure. Consulta [Microsoft Foundry](/docs/es/microsoft-foundry). Requiere Claude Code v2.1.203 o posterior |

184| `ANTHROPIC_FOUNDRY_BASE_URL` | URL base completa del recurso de Microsoft Foundry (por ejemplo, `https://my-resource.services.ai.azure.com/anthropic`). Alternativa a `ANTHROPIC_FOUNDRY_RESOURCE` (consulta [Microsoft Foundry](/docs/es/microsoft-foundry)) |188| `ANTHROPIC_FOUNDRY_BASE_URL` | URL base completa del recurso de Microsoft Foundry (por ejemplo, `https://my-resource.services.ai.azure.com/anthropic`). Alternativa a `ANTHROPIC_FOUNDRY_RESOURCE` (consulta [Microsoft Foundry](/docs/es/microsoft-foundry)) |

185| `ANTHROPIC_FOUNDRY_RESOURCE` | Nombre del recurso de Microsoft Foundry (por ejemplo, `my-resource`). Claude Code [rechaza una URL o un nombre de host](/docs/es/errors#anthropic-foundry-resource-must-be-a-foundry-resource-name). Obligatoria si `ANTHROPIC_FOUNDRY_BASE_URL` no está establecida (consulta [Microsoft Foundry](/docs/es/microsoft-foundry)) |189| `ANTHROPIC_FOUNDRY_RESOURCE` | Nombre del recurso de Microsoft Foundry (por ejemplo, `my-resource`). Claude Code [rechaza una URL o un nombre de host](/docs/es/errors#anthropic-foundry-resource-must-be-a-foundry-resource-name). Obligatoria si `ANTHROPIC_FOUNDRY_BASE_URL` no está establecida (consulta [Microsoft Foundry](/docs/es/microsoft-foundry)) |

186| `ANTHROPIC_MODEL` | Nombre del ajuste de modelo que se usará (consulta [Configuración de modelos](/docs/es/model-config#environment-variables)) |190| `ANTHROPIC_MODEL` | Nombre del ajuste de modelo que se usará (consulta [Configuración del modelo](/docs/es/model-config#environment-variables)) |

187| `ANTHROPIC_ORGANIZATION_ID` | ID de la organización para [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Establécela junto con `ANTHROPIC_FEDERATION_RULE_ID`. Consulta [precedencia de autenticación](/docs/es/authentication#authentication-precedence) |191| `ANTHROPIC_ORGANIZATION_ID` | ID de organización para [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Establécela junto con `ANTHROPIC_FEDERATION_RULE_ID`. Consulta [precedencia de autenticación](/docs/es/authentication#authentication-precedence) |

188| `ANTHROPIC_PROFILE` | Nombre del perfil de Anthropic con el que autenticarse, como uno creado por [`ant auth login`](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/authentication) o al [iniciar sesión en una cuenta de Console sin clave de API](/docs/es/authentication#sign-in-without-an-api-key). Consulta [precedencia de autenticación](/docs/es/authentication#authentication-precedence) |192| `ANTHROPIC_PROFILE` | Nombre del perfil de Anthropic con el que autenticarse, como uno creado con [`ant auth login`](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/authentication) o al [iniciar sesión en una cuenta de Console sin una clave de API](/docs/es/authentication#sign-in-without-an-api-key). Consulta [precedencia de autenticación](/docs/es/authentication#authentication-precedence) |

189| `ANTHROPIC_SMALL_FAST_MODEL` | \[OBSOLETO] Nombre del [modelo de clase Haiku para tareas en segundo plano](/docs/es/costs) |193| `ANTHROPIC_SMALL_FAST_MODEL` | \[OBSOLETO] Nombre del [modelo de clase Haiku para tareas en segundo plano](/docs/es/costs) |

190| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Sobrescribe la región de AWS para el modelo de clase Haiku al usar Amazon Bedrock o Amazon Bedrock Mantle. En Amazon Bedrock, esto solo tiene efecto cuando también se establece `ANTHROPIC_DEFAULT_HAIKU_MODEL` o la obsoleta `ANTHROPIC_SMALL_FAST_MODEL`, ya que, de lo contrario, Amazon Bedrock ejecuta las tareas en segundo plano en el [modelo Sonnet predeterminado o el modelo principal](/docs/es/amazon-bedrock#4-pin-model-versions) en la región de la sesión |194| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Sobrescribe la región de AWS para el modelo de clase Haiku al usar Amazon Bedrock o Amazon Bedrock Mantle. En Amazon Bedrock, solo tiene efecto cuando también se establece `ANTHROPIC_DEFAULT_HAIKU_MODEL` o la obsoleta `ANTHROPIC_SMALL_FAST_MODEL`, ya que, de lo contrario, Amazon Bedrock ejecuta las tareas en segundo plano en el [modelo Sonnet predeterminado o el modelo principal](/docs/es/amazon-bedrock#4-pin-model-versions) en la región de la sesión |

191| `ANTHROPIC_VERTEX_BASE_URL` | Sobrescribe la URL del endpoint de Google Cloud's Agent Platform. Úsala para endpoints personalizados de Google Cloud's Agent Platform o al enrutar a través de un [gateway de LLM](/docs/es/llm-gateway). Consulta [Google Cloud's Agent Platform](/docs/es/google-vertex-ai) |195| `ANTHROPIC_VERTEX_BASE_URL` | Sobrescribe la URL del endpoint de Google Cloud's Agent Platform. Úsala para endpoints personalizados de Google Cloud's Agent Platform o al enrutar a través de un [gateway de LLM](/docs/es/llm-gateway). Consulta [Google Cloud's Agent Platform](/docs/es/google-vertex-ai) |

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

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

194| `API_FORCE_IDLE_TIMEOUT` | Sobrescribe el tiempo de espera de inactividad del cuerpo de 5 minutos que interrumpe 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 en 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 interrumpen una pausa silenciosa larga incluso cuando 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í |

195| `API_TIMEOUT_MS` | Tiempo de espera para las solicitudes a la API en milisegundos (predeterminado: 600000, o 10 minutos; máximo: 2147483647). Auméntalo cuando se agote el tiempo de espera de las solicitudes en redes lentas o al enrutar a través de un proxy. Los valores por encima del máximo desbordan el temporizador subyacente y hacen que las solicitudes fallen de inmediato |199| `API_TIMEOUT_MS` | Tiempo de espera para las solicitudes a la API en milisegundos (predeterminado: 600000, o 10 minutos; máximo: 2147483647). Auméntalo cuando las solicitudes agoten el tiempo de espera en redes lentas o al enrutar a través de un proxy. Los valores por encima del máximo desbordan el temporizador subyacente y hacen que las solicitudes fallen de inmediato |

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

197| `BASH_DEFAULT_TIMEOUT_MS` | Tiempo de espera predeterminado para un comando de la herramienta Bash o PowerShell en primer plano, 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 |

198| `BASH_MAX_OUTPUT_LENGTH` | Número máximo de caracteres de la salida de bash que Claude Code vuelve a leer en el 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) |

199| `BASH_MAX_TIMEOUT_MS` | Tiempo de espera máximo que el modelo puede establecer para un comando de la herramienta Bash o PowerShell en primer plano, en milisegundos (predeterminado: 600000, o 10 minutos). El límite efectivo es el mayor entre este valor y `BASH_DEFAULT_TIMEOUT_MS`. Un límite efectivo de más de 2 horas también se convierte en el [límite de tiempo máximo para los comandos en segundo plano](/docs/es/tools-reference#time-limit-for-background-commands) en las sesiones desatendidas. El límite de tiempo en segundo plano requiere Claude Code v2.1.285 o posterior |203| `BASH_MAX_TIMEOUT_MS` | Tiempo de espera máximo que el modelo puede establecer para un comando en primer plano de la herramienta Bash o PowerShell, en milisegundos (predeterminado: 600000, o 10 minutos). El límite efectivo es el mayor entre este valor y `BASH_DEFAULT_TIMEOUT_MS`. Un límite efectivo superior a 2 horas también se convierte en el [límite de tiempo para los comandos en segundo plano](/docs/es/tools-reference#time-limit-for-background-commands) máximo en las sesiones desatendidas. El límite de tiempo en segundo plano requiere Claude Code v2.1.285 o posterior |

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

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

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

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

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

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

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

207| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Tiempo de espera por bloqueo en milisegundos para los subagentes. Predeterminado `600000` (10 minutos); si aumentas `CLAUDE_STREAM_IDLE_TIMEOUT_MS` mientras el watchdog de streaming está activado, el valor predeterminado aumenta con él, como se describe en [Manejar respuestas de la API lentas o bloqueadas](/docs/es/agent-sdk/typescript#handle-slow-or-stalled-api-responses). El temporizador se reinicia con cada evento de progreso del streaming; si no llega ningún progreso dentro del intervalo, Claude Code interrumpe el subagente e informa del bloqueo al agente principal |211| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Tiempo de espera por estancamiento en milisegundos para los subagentes. También abarca los [agentes de flujos de trabajo](/docs/es/workflows#when-an-agent-stalls-and-restarts) en Claude Code v2.1.286 o posterior. Predeterminado `600000` (10 minutos); si aumentas `CLAUDE_STREAM_IDLE_TIMEOUT_MS` mientras el watchdog de streaming está activado, el valor predeterminado aumenta con él, como describe [Manejar respuestas de la API lentas o estancadas](/docs/es/agent-sdk/typescript#handle-slow-or-stalled-api-responses) |

208| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Establece el porcentaje (1-100) de la ventana de compactación automática en el que se activa la compactación automática. Usa valores más bajos como `50` para compactar antes; la variable no puede elevar el umbral, por lo que se ignoran los valores por encima del porcentaje predeterminado. Solo se aplica en las sesiones que [compactan antes del límite de contexto del modelo](/docs/es/model-config#context-window-and-auto-compaction). Se aplica tanto a las conversaciones principales como a los subagentes |212| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Establece el porcentaje (1-100) de la ventana de compactación automática en el que se activa la compactación automática. Usa valores más bajos como `50` para compactar antes; la variable no puede aumentar el umbral, por lo que se ignoran los valores superiores al porcentaje predeterminado. Solo se aplica en sesiones que [compactan antes del límite de contexto del modelo](/docs/es/model-config#context-window-and-auto-compaction). Se aplica tanto a las conversaciones principales como a los subagentes |

209| `CLAUDE_AUTO_BACKGROUND_TASKS` | Establécela en `1` para forzar la activación del envío automático a segundo plano de las tareas de agentes de larga duración. Cuando está activada, los subagentes se mueven a segundo plano después de ejecutarse durante aproximadamente dos minutos. También activa el [envío automático a segundo plano de las llamadas largas a herramientas MCP](/docs/es/mcp#automatic-backgrounding-of-long-tool-calls) en modo no interactivo en Claude Code v2.1.212 o posterior |213| `CLAUDE_AUTO_BACKGROUND_TASKS` | Establécela en `1` para forzar la activación del paso automático a segundo plano de las tareas de agente de larga duración. Cuando está activada, los subagentes pasan a segundo plano después de ejecutarse durante aproximadamente dos minutos. También activa el [paso automático a segundo plano de las llamadas largas a herramientas MCP](/docs/es/mcp#automatic-backgrounding-of-long-tool-calls) en modo no interactivo en Claude Code v2.1.212 o posterior |

210| `CLAUDE_AX_PREPARK_MS` | En el [modo de lector de pantalla](/docs/es/accessibility), cuántos milisegundos espera Claude Code antes de escribir una línea nueva o modificada. Predeterminado `0`, por lo que Claude Code no espera. Antes de v2.1.287, el valor predeterminado era `50`. Claude Code limita la espera a `5000`. Requiere Claude Code v2.1.233 o posterior |214| `CLAUDE_AX_PREPARK_MS` | En el [modo de lector de pantalla](/docs/es/accessibility), cuántos milisegundos espera Claude Code antes de escribir una línea nueva o modificada. Predeterminado `0`, por lo que Claude Code no espera. Antes de v2.1.287, el valor predeterminado era `50`. Claude Code limita la espera a `5000`. Requiere Claude Code v2.1.233 o posterior |

211| `CLAUDE_AX_SCREEN_READER` | Establécela en `1` para mostrar una salida adaptada a lectores de pantalla: texto plano sin bordes decorativos ni animaciones. Establécela en `0` para forzar la desactivación del modo de lector de pantalla incluso cuando [`axScreenReader`](/docs/es/settings-reference#axscreenreader) es `true`. El flag [`--ax-screen-reader`](/docs/es/cli-reference#cli-flags) tiene precedencia. Requiere Claude Code v2.1.181 o posterior |215| `CLAUDE_AX_SCREEN_READER` | Establécela en `1` para generar una salida compatible con lectores de pantalla: texto plano sin bordes decorativos ni animaciones. Establécela en `0` para forzar la desactivación del modo de lector de pantalla incluso cuando [`axScreenReader`](/docs/es/settings-reference#axscreenreader) es `true`. El flag [`--ax-screen-reader`](/docs/es/cli-reference#cli-flags) tiene precedencia. Requiere Claude Code v2.1.181 o posterior |

212| `CLAUDE_AX_STARTUP_QUIET_MS` | En el [modo de lector de pantalla](/docs/es/accessibility), cuántos milisegundos retiene Claude Code el primer renderizado de la interfaz después de la línea de confirmación de inicio, para que tu lector de pantalla pueda leer la línea completa antes de que una nueva salida la interrumpa. Predeterminado `3000`. Establece `0` para renderizar de inmediato. Claude Code limita la retención a `600000` (10 minutos). Tu primera pulsación de tecla termina la retención antes. Requiere Claude Code v2.1.217 o posterior |216| `CLAUDE_AX_STARTUP_QUIET_MS` | En el [modo de lector de pantalla](/docs/es/accessibility), cuántos milisegundos retiene Claude Code el primer renderizado de la interfaz después de la línea de confirmación de inicio, para que tu lector de pantalla pueda leer la línea completa antes de que una nueva salida la interrumpa. Predeterminado `3000`. Establece `0` para renderizar de inmediato. Claude Code limita la retención a `600000` (10 minutos). Tu primera pulsación de tecla termina la retención antes de tiempo. Requiere Claude Code v2.1.217 o posterior |

213| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | Vuelve al directorio de trabajo original después de cada comando de Bash o PowerShell en la sesión principal |217| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | Vuelve al directorio de trabajo original después de cada comando de Bash o PowerShell en la sesión principal |

214| `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` | Tiempo de espera en milisegundos para el watchdog de inactividad del streaming a nivel de bytes; cuando está establecida, tiene precedencia sobre `CLAUDE_STREAM_IDLE_TIMEOUT_MS` para ese watchdog y no modifica el watchdog a nivel de eventos. Claude Code limita esta variable a un valor entre 10 segundos y 30 minutos. Requiere Claude Code v2.1.210 o posterior |218| `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` | Tiempo de espera en milisegundos para el watchdog de inactividad de streaming a nivel de bytes; cuando está establecida, tiene precedencia sobre `CLAUDE_STREAM_IDLE_TIMEOUT_MS` para ese watchdog y deja sin cambios el watchdog a nivel de eventos. Claude Code limita esta variable a un valor entre 10 segundos y 30 minutos. Requiere Claude Code v2.1.210 o posterior |

215| `CLAUDE_CLIENT_PRESENCE_FILE` | Ruta a un archivo que una herramienta externa, como un detector de bloqueo de pantalla, crea cuando desbloqueas la pantalla y elimina cuando la bloqueas. Mientras el archivo existe, Claude Code omite las [notificaciones push móviles de Remote Control](/docs/es/remote-control#mobile-push-notifications), para que dejes de recibir notificaciones push mientras usas activamente la computadora. Cuando el archivo no existe o no se puede leer, las notificaciones se envían normalmente. Claude Code comprueba el archivo una vez por cada evento que desencadena una notificación push, en lugar de sondearlo. Requiere Claude Code v2.1.181 o posterior |219| `CLAUDE_CLIENT_PRESENCE_FILE` | Ruta a un archivo que una herramienta externa, como un listener de bloqueo de pantalla, crea cuando desbloqueas la pantalla y elimina cuando la bloqueas. Mientras el archivo existe, Claude Code omite las [notificaciones push móviles de Remote Control](/docs/es/remote-control#mobile-push-notifications), para que dejes de recibir notificaciones mientras usas activamente la computadora. Cuando el archivo no existe o no se puede leer, las notificaciones se envían con normalidad. Claude Code comprueba el archivo una vez por cada evento que desencadena una notificación push, en lugar de consultarlo periódicamente. Requiere Claude Code v2.1.181 o posterior |

216| `CLAUDE_CODE_ACCESSIBILITY` | Establécela en `1` para mantener visible el cursor nativo de la terminal y desactivar el indicador de cursor de texto invertido. Permite que las lupas de pantalla como Zoom de macOS sigan la posición del cursor |220| `CLAUDE_CODE_ACCESSIBILITY` | Establécela en `1` para mantener visible el cursor nativo de la terminal y desactivar el indicador de cursor con texto invertido. Permite que los ampliadores de pantalla, como Zoom de macOS, sigan la posición del cursor |

217| `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` | Establécela en `1` para cargar archivos de memoria desde los directorios especificados con `--add-dir`. Carga `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md` y `CLAUDE.local.md`. De forma predeterminada, los directorios adicionales no cargan archivos de memoria |221| `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` | Establécela en `1` para cargar archivos de memoria de los directorios especificados con `--add-dir`. Carga `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md` y `CLAUDE.local.md`. De forma predeterminada, los directorios adicionales no cargan archivos de memoria |

218| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | Establécela en `1` para volver a dibujar toda la pantalla en cada fotograma en el [renderizado a pantalla completa](/docs/es/fullscreen) en lugar de enviar actualizaciones incrementales. Úsala si el modo de pantalla completa muestra fragmentos de texto obsoletos o mal ubicados. Claude Code activa esto automáticamente para las sesiones en segundo plano y la [vista de agentes](/docs/es/agent-view) en Windows |222| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | Establécela en `1` para volver a pintar toda la pantalla en cada fotograma en el [renderizado a pantalla completa](/docs/es/fullscreen) en lugar de enviar actualizaciones incrementales. Úsala si el modo de pantalla completa muestra fragmentos de texto desactualizados o mal ubicados. Claude Code la activa automáticamente para las sesiones en segundo plano y la [vista de agentes](/docs/es/agent-view) en Windows |

219| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | Establécela en `1` para enviar el parámetro de [esfuerzo](/docs/es/model-config#adjust-effort-level) con cada solicitud, incluso cuando Claude Code no reconoce el ID del modelo como compatible con esfuerzo. Úsala al enrutar a través de un [gateway de LLM](/docs/es/llm-gateway) o un proveedor de terceros que sirve modelos con identificadores personalizados. Los modelos que rechazan el parámetro de esfuerzo en la API, incluidos los modelos Claude 3, Sonnet 4.0 y 4.5, Opus 4.0 y 4.1, y Haiku 4.5, siguen excluidos para que las solicitudes no fallen |223| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | Establécela en `1` para enviar el parámetro de [esfuerzo](/docs/es/model-config#adjust-effort-level) con cada solicitud, incluso cuando Claude Code no reconoce el ID del modelo como compatible con el esfuerzo. Úsala al enrutar a través de un [gateway de LLM](/docs/es/llm-gateway) o un proveedor de terceros que sirve modelos con identificadores personalizados. Los modelos que rechazan el parámetro de esfuerzo en la API, incluidos los modelos Claude 3, Sonnet 4.0 y 4.5, Opus 4.0 y 4.1, y Haiku 4.5, siguen excluidos para que las solicitudes no fallen |

220| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | Intervalo en milisegundos en el que se deben actualizar las credenciales (al usar [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper)) |224| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | Intervalo en milisegundos en el que se deben actualizar las credenciales (al usar [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper)) |

221| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Establécela en `0` para evitar que Claude Code abra el navegador automáticamente cuando se publica un nuevo [artefacto](/docs/es/artifacts#create-an-artifact) |225| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Establécela en `0` para evitar que Claude Code abra el navegador automáticamente cuando se publica un nuevo [artefacto](/docs/es/artifacts#create-an-artifact) |

222| `CLAUDE_CODE_ARTIFACT_COMMENTS` | Establécela en `0` para que Claude deje de leer y responder los [comentarios en un artefacto](/docs/es/artifacts#collect-comments-on-an-artifact). No tiene efecto cuando `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` ha [desactivado los artefactos](/docs/es/artifacts#availability). Requiere Claude Code v2.1.221 o posterior |226| `CLAUDE_CODE_ARTIFACT_COMMENTS` | Establécela en `0` para que Claude deje de leer y responder [comentarios en un artefacto](/docs/es/artifacts#collect-comments-on-an-artifact). No tiene efecto cuando `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` ha [desactivado los artefactos](/docs/es/artifacts#availability). Requiere Claude Code v2.1.221 o posterior |

223| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | Establécela en `0` para que Claude deje de [responder por su cuenta a los comentarios que se le envían](/docs/es/artifacts#let-claude-reply-to-comments-on-its-own). Requiere Claude Code v2.1.228 o posterior |227| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | Establécela en `0` para que Claude deje de [responder por su cuenta a los comentarios que se le envían](/docs/es/artifacts#let-claude-reply-to-comments-on-its-own). Requiere Claude Code v2.1.228 o posterior |

224| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Establécela en `0` para omitir el [bloque de atribución](/docs/es/llm-gateway-protocol#system-prompt-attribution-block), que contiene la versión del cliente y una huella del prompt, del inicio del prompt del sistema. El almacenamiento en caché en una conexión directa a la API de Anthropic no se ve afectado en ningún caso. En algunas configuraciones de conexión directa, Claude Code mantiene el bloque en las solicitudes al clasificador del [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) incluso cuando estableces `0`. En [Bloque de atribución del prompt del sistema](/docs/es/llm-gateway-protocol#system-prompt-attribution-block), consulta qué conexiones y credenciales abarca esto. Antes de v2.1.181, el bloque incluía un token por solicitud en las URL base personalizadas y en las conexiones de Microsoft Foundry, por lo que en esas versiones establécela en `0` cuando tu gateway de LLM almacene en caché según el cuerpo de la solicitud o reenvíe solicitudes a un proveedor de terceros, o cuando te conectes directamente a Microsoft Foundry |228| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Establécela en `0` para omitir el [bloque de atribución](/docs/es/llm-gateway-protocol#system-prompt-attribution-block), que contiene la versión del cliente y una huella del prompt, del inicio del prompt del sistema. El almacenamiento en caché en una conexión directa a la API de Anthropic no se ve afectado en ningún caso. En algunas configuraciones de conexión directa, Claude Code mantiene el bloque en las solicitudes del clasificador del [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) incluso si estableces `0`. En [Bloque de atribución del prompt del sistema](/docs/es/llm-gateway-protocol#system-prompt-attribution-block), comprueba qué conexiones y credenciales abarca esto. Antes de v2.1.181, el bloque incluía un token por solicitud en las URL base personalizadas y las conexiones de Microsoft Foundry, así que en esas versiones establécela en `0` cuando tu gateway de LLM almacene en caché según el cuerpo de la solicitud o reenvíe solicitudes a un proveedor de terceros, o cuando te conectes directamente a Microsoft Foundry |

225| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Se eliminó en v2.1.283. Usa `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` en su lugar |229| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Eliminada en v2.1.283. Usa `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` en su lugar |

226| `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 a 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 con 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 |230| `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 |

227| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Sobrescribe la [conexión automática al 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, como cuando tmux oculta la terminal principal. Tiene precedencia sobre el ajuste de configuración global [`autoConnectIde`](/docs/es/settings-reference#autoconnectide) |231| `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) |

228| `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 las propias solicitudes al clasificador de Claude Code en su lugar. 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 |232| `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 |

229| `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 necesite legítimamente 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 |233| `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 |

230| `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 |234| `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 |

231| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | Establécela en `0` para que una sesión no interactiva informe un estado inactivo a su host al final de cada turno, incluso mientras sigue habiendo trabajo en segundo plano en ejecución. De forma predeterminada, la sesión sigue informando un estado en ejecución después del final del turno mientras sigue activo trabajo en segundo plano, como un agente en segundo plano o una ejecución de un [flujo de trabajo](/docs/es/workflows). Esto evita que un host que observa el estado, como una lista de sesiones remotas, anuncie que Claude está esperando tu entrada a mitad del trabajo. Los comandos de shell en segundo plano, como un servidor de desarrollo, no mantienen el estado en ejecución. El estado en ejecución predeterminado y la opción de exclusión con `0` requieren Claude Code v2.1.269 o posterior; en versiones anteriores, establece `1` para mantener el estado en ejecución |235| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | Establécela en `0` para que una sesión no interactiva informe un estado inactivo a su host al final de cada turno, incluso mientras aún se ejecuta trabajo en segundo plano. De forma predeterminada, la sesión sigue informando un estado de ejecución después del final del turno mientras el trabajo en segundo plano, como un agente en segundo plano o una ejecución de un [flujo de trabajo](/docs/es/workflows), sigue activo. Esto evita que un host que vigila el estado, como una lista de sesiones remotas, anuncie que Claude espera tu respuesta en medio del trabajo. Los comandos de shell en segundo plano, como un servidor de desarrollo, no mantienen el estado de ejecución. El estado de ejecución predeterminado y la exclusión con `0` requieren Claude Code v2.1.269 o posterior; en versiones anteriores, establece `1` para mantener el estado de ejecución |

232| `CLAUDE_CODE_BRIDGE_SESSION_ID` | Se establece automáticamente en los subprocesos de la herramienta Bash y de los [comandos de hooks](/docs/es/hooks) mientras la sesión tiene una conexión activa de [Remote Control](/docs/es/remote-control), y se elimina cuando la conexión termina. El valor es el ID de la sesión en formato `session_`, el mismo identificador que aparece en la URL `claude.ai/code` de la sesión, para que un script pueda enlazar a la sesión que lo ejecutó. Requiere Claude Code v2.1.199 o posterior. En las [sesiones en la nube](/docs/es/claude-code-on-the-web), lee `CLAUDE_CODE_REMOTE_SESSION_ID` en su lugar |236| `CLAUDE_CODE_BRIDGE_SESSION_ID` | Se establece automáticamente en los subprocesos de la herramienta Bash y de los [comandos de hooks](/docs/es/hooks) mientras la sesión tiene una conexión activa de [Remote Control](/docs/es/remote-control), y se elimina cuando la conexión termina. El valor es el ID de la sesión con el formato `session_`, el mismo identificador que aparece en la URL `claude.ai/code` de la sesión, para que un script pueda enlazar con la sesión que lo ejecutó. Requiere Claude Code v2.1.199 o posterior. En las [sesiones en la nube](/docs/es/claude-code-on-the-web), lee `CLAUDE_CODE_REMOTE_SESSION_ID` en su lugar |

233| `CLAUDE_CODE_BS_AS_CTRL_BACKSPACE` | Establécela en `0` para que Claude Code lea el byte `0x08`, también escrito `^H`, como Backspace simple, o en `1` para leerlo como Ctrl+Backspace. Cualquiera de los dos valores reemplaza el valor predeterminado de la plataforma. De forma predeterminada, Claude Code lo lee como Ctrl+Backspace en Windows, excepto cuando `TERM_PROGRAM` es `mintty` o `TERM` es `cygwin`, y como Backspace simple en macOS y Linux. Establece `0` en una terminal de Windows donde [Backspace elimina una palabra completa](/docs/es/terminal-config#fix-backspace-deleting-a-whole-word-on-windows) |237| `CLAUDE_CODE_BS_AS_CTRL_BACKSPACE` | Establécela en `0` para que Claude Code lea el byte `0x08`, también escrito `^H`, como Retroceso simple, o en `1` para leerlo como Ctrl+Retroceso. Cualquiera de los dos valores reemplaza el predeterminado de la plataforma. De forma predeterminada, Claude Code lo lee como Ctrl+Retroceso en Windows, excepto cuando `TERM_PROGRAM` es `mintty` o `TERM` es `cygwin`, y como Retroceso simple en macOS y Linux. Establece `0` en una terminal de Windows donde [Retroceso elimina una palabra completa](/docs/es/terminal-config#fix-backspace-deleting-a-whole-word-on-windows) |

234| `CLAUDE_CODE_CERT_STORE` | Lista separada por comas de fuentes de certificados de CA para las conexiones TLS. `bundled` es el conjunto de CA de Mozilla incluido con Claude Code. `system` es el almacén de confianza del sistema operativo, que solo se lee en entornos de ejecución con `tls.getCACertificates`: el binario nativo, o Node 22.15 o posterior para instalaciones con npm. Consulta [Almacén de certificados de CA](/docs/es/network-config#ca-certificate-store). El valor predeterminado es `bundled,system` |238| `CLAUDE_CODE_CERT_STORE` | Lista separada por comas de orígenes de certificados de CA para las conexiones TLS. `bundled` es el conjunto de CA de Mozilla incluido con Claude Code. `system` es el almacén de confianza del sistema operativo, que solo se lee en entornos de ejecución con `tls.getCACertificates`: el binario nativo, o Node 22.15 o posterior para las instalaciones con npm. Consulta [Almacén de certificados de CA](/docs/es/network-config#ca-certificate-store). El valor predeterminado es `bundled,system` |

235| `CLAUDE_CODE_CHILD_SESSION` | Se establece en `1` en los subprocesos que Claude Code genera mediante las herramientas Bash, PowerShell y Monitor, los comandos de [hooks](/docs/es/hooks) y los comandos de la [línea de estado](/docs/es/statusline). No se establece para los subprocesos de [servidores MCP](/docs/es/mcp) stdio, que son de larga duración y sobreviven a la sesión que los generó. A diferencia de `CLAUDECODE`, solo la establece Claude Code cuando inicia un subproceso, y no las extensiones de IDE, por lo que distingue de forma fiable una sesión anidada de un `claude` de nivel superior iniciado en una terminal integrada de un IDE. Una TUI interactiva de `claude` anidada iniciada de esta forma se excluye automáticamente de `--resume`, `--continue`, el historial de la flecha hacia arriba y la lista de `claude agents`. Las sesiones no interactivas de `claude -p` siguen persistiendo. Establece `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1` para omitir esta exclusión. Requiere Claude Code v2.1.172 o posterior |239| `CLAUDE_CODE_CHILD_SESSION` | Se establece en `1` en los subprocesos que Claude Code genera mediante las herramientas Bash, PowerShell y Monitor, los comandos de [hooks](/docs/es/hooks) y los comandos de la [línea de estado](/docs/es/statusline). No se establece para los subprocesos de [servidores MCP](/docs/es/mcp) stdio, que son de larga duración y sobreviven a la sesión que los generó. A diferencia de `CLAUDECODE`, solo la establece el propio Claude Code cuando inicia un subproceso y no las extensiones de IDE, por lo que distingue de forma fiable una sesión anidada de un `claude` de nivel superior iniciado en una terminal integrada en un IDE. Una TUI interactiva anidada de `claude` iniciada de esta forma se excluye automáticamente de `--resume`, `--continue`, el historial de la flecha hacia arriba y la lista de `claude agents`. Las sesiones no interactivas de `claude -p` se siguen conservando. Establece `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1` para sobrescribir esta exclusión. Requiere Claude Code v2.1.172 o posterior |

236| `CLAUDE_CODE_CLIENT_CERT` | Ruta al archivo de certificado de cliente para la autenticación mTLS |240| `CLAUDE_CODE_CLIENT_CERT` | Ruta al archivo de certificado de cliente para la autenticación mTLS |

237| `CLAUDE_CODE_CLIENT_KEY` | Ruta al archivo de clave privada del cliente para la autenticación mTLS |241| `CLAUDE_CODE_CLIENT_KEY` | Ruta al archivo de clave privada de cliente para la autenticación mTLS |

238| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Frase de contraseña para CLAUDE\_CODE\_CLIENT\_KEY cifrada (opcional) |242| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Frase de contraseña para el CLAUDE\_CODE\_CLIENT\_KEY cifrado (opcional) |

239| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Se eliminó 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 a la 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` |243| `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` |

240| `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` |244| `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` |

241| `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 |245| `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 |

242| `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 papel en la corrección de la ventana para 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) |246| `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) |

243| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Establécela en `1` para desactivar el [razonamiento adaptativo](/docs/es/model-config#adjust-effort-level) en Opus 4.6 y Sonnet 4.6 y recurrir al presupuesto fijo de pensamiento controlado por `MAX_THINKING_TOKENS`. No tiene efecto en los [modelos Fable](/docs/es/model-config#extended-thinking), Sonnet 5 y posteriores, Haiku 5.5, ni Opus 4.7 y posteriores, que siempre usan razonamiento adaptativo |247| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Establécela en `1` para desactivar el [razonamiento adaptativo](/docs/es/model-config#adjust-effort-level) en Opus 4.6 y Sonnet 4.6 y recurrir al presupuesto de pensamiento fijo controlado por `MAX_THINKING_TOKENS`. No tiene efecto en los [modelos Fable](/docs/es/model-config#extended-thinking), Sonnet 5 y posteriores, Haiku 5.5, ni Opus 4.7 y posteriores, que siempre usan razonamiento adaptativo |

244| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | Establécela en `1` para evitar que Claude Code combine por clave los bloques `env` de la [configuración administrada](/docs/es/managed-settings#precedence-within-the-managed-tier) entre las fuentes de administración, de modo que solo se aplique el bloque `env` completo de la fuente de mayor prioridad, como antes de v2.1.223. Establécela en el entorno que inicia Claude Code, ya que Claude Code ignora una copia entregada mediante un bloque `env` de la configuración. Requiere Claude Code v2.1.223 o posterior |248| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | Establécela en `1` para evitar que Claude Code combine por clave los bloques `env` de la [configuración administrada](/docs/es/managed-settings#precedence-within-the-managed-tier) de los distintos orígenes de administración, de modo que solo se aplique el bloque `env` completo del origen de mayor prioridad, como antes de v2.1.223. Establécela en el entorno que inicia Claude Code, ya que Claude Code ignora una copia entregada mediante un bloque `env` de la configuración. Requiere Claude Code v2.1.223 o posterior |

245| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | Establécela en `1` para desactivar la [herramienta advisor](/docs/es/advisor). El comando `/advisor` deja de estar disponible, se ignora cualquier `advisorModel` configurado y el flag `--advisor` se acepta pero no tiene efecto, de modo que los scripts existentes que lo pasan siguen funcionando sin errores |249| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | Establécela en `1` para desactivar la [herramienta advisor](/docs/es/advisor). El comando `/advisor` deja de estar disponible, cualquier `advisorModel` configurado se ignora y el flag `--advisor` se acepta pero no tiene efecto, por lo que los scripts existentes que lo pasan siguen funcionando sin errores |

246| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Establécela en `1` para desactivar los [agentes en segundo plano y la vista de agentes](/docs/es/agent-view): `claude agents`, `--bg`, `/background` y el supervisor bajo demanda. Equivale al ajuste [`disableAgentView`](/docs/es/settings-reference#disableagentview) |250| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Establécela en `1` para desactivar los [agentes en segundo plano y la vista de agentes](/docs/es/agent-view): `claude agents`, `--bg`, `/background` y el supervisor bajo demanda. Equivale al ajuste [`disableAgentView`](/docs/es/settings-reference#disableagentview) |

247| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Establécela en `1` para desactivar el [renderizado a pantalla completa](/docs/es/fullscreen) y usar el renderizador clásico de pantalla principal. La conversación permanece en el historial de desplazamiento nativo de tu terminal para que `Cmd+f` y el modo de copia de tmux funcionen como siempre. Tiene precedencia sobre `CLAUDE_CODE_NO_FLICKER` y el ajuste [`tui`](/docs/es/settings-reference#tui). También puedes cambiar con `/tui default`. No se aplica a las sesiones en segundo plano abiertas desde la [vista de agentes](/docs/es/agent-view), que siempre usan el renderizado a pantalla completa |251| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Establécela en `1` para desactivar el [renderizado a pantalla completa](/docs/es/fullscreen) y usar el renderizador clásico de pantalla principal. La conversación permanece en el historial de desplazamiento nativo de tu terminal, por lo que `Cmd+f` y el modo de copia de tmux funcionan como de costumbre. Tiene precedencia sobre `CLAUDE_CODE_NO_FLICKER` y el ajuste [`tui`](/docs/es/settings-reference#tui). También puedes cambiar con `/tui default`. No se aplica a las sesiones en segundo plano abiertas desde la [vista de agentes](/docs/es/agent-view), que siempre usan el renderizado a pantalla completa |

248| `CLAUDE_CODE_DISABLE_ARTIFACT` | Establécela en `1` para desactivar la herramienta [Artifact](/docs/es/artifacts), que publica la salida de la sesión como una página web privada en claude.ai. Una vez que la estableces, ningún archivo de configuración vuelve a activar la herramienta. Para desactivar la herramienta desde un archivo de configuración, establece [`enableArtifact`](/docs/es/settings-reference#enableartifact) en `false`; la clave obsoleta [`disableArtifact`](/docs/es/settings-reference#disableartifact) también la desactiva |252| `CLAUDE_CODE_DISABLE_ARTIFACT` | Establécela en `1` para desactivar la herramienta [Artifact](/docs/es/artifacts), que publica la salida de la sesión como una página web privada en claude.ai. Una vez establecida, ningún archivo de configuración vuelve a activar la herramienta. Para desactivar la herramienta desde un archivo de configuración, establece [`enableArtifact`](/docs/es/settings-reference#enableartifact) en `false`; la clave obsoleta [`disableArtifact`](/docs/es/settings-reference#disableartifact) también la desactiva |

249| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Establécela en `1` para desactivar el procesamiento de archivos adjuntos. Las menciones de archivos con la sintaxis `@` se envían como texto plano en lugar de expandirse al contenido del archivo. Se ignora en la [configuración del proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |253| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Establécela en `1` para desactivar el procesamiento de archivos adjuntos. Las menciones de archivos con la sintaxis `@` se envían como texto plano en lugar de expandirse al contenido del archivo. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |

250| `CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK` | Establécela en `1` para que un proceso de Claude Code ejecute por sí mismo su comando [`gcpAuthRefresh`](/docs/es/settings-reference#gcpauthrefresh) o [`awsAuthRefresh`](/docs/es/settings-reference#awsauthrefresh) en lugar de esperar mientras otro proceso lo ejecuta. Requiere Claude Code v2.1.286 o posterior |254| `CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK` | Establécela en `1` para que un proceso de Claude Code ejecute por sí mismo su comando [`gcpAuthRefresh`](/docs/es/settings-reference#gcpauthrefresh) o [`awsAuthRefresh`](/docs/es/settings-reference#awsauthrefresh) en lugar de esperar mientras otro proceso lo ejecuta. Requiere Claude Code v2.1.286 o posterior |

251| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Establécela en `1` para desactivar la [memoria automática](/docs/es/memory#auto-memory). Establécela en `0` para forzar la activación de la memoria automática incluso cuando el modo `--bare` o [`autoMemoryEnabled: false`](/docs/es/settings-reference#automemoryenabled) la desactivarían. Cuando está desactivada, Claude no crea ni carga archivos de memoria automática |255| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Establécela en `1` para desactivar la [memoria automática](/docs/es/memory#auto-memory). Establécela en `0` para forzar la activación de la memoria automática incluso cuando el modo `--bare` o [`autoMemoryEnabled: false`](/docs/es/settings-reference#automemoryenabled) la desactivarían. Cuando está desactivada, Claude no crea ni carga archivos de memoria automática |

252| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Establécela en `1` para desactivar toda la funcionalidad de tareas en segundo plano, incluido el parámetro `run_in_background` en las herramientas Bash y de subagentes, el envío automático a segundo plano y el atajo Ctrl+B |256| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Establécela en `1` para desactivar toda la funcionalidad de tareas en segundo plano, incluido el parámetro `run_in_background` en las herramientas Bash y de subagentes, el paso automático a segundo plano y el atajo Ctrl+B |

253| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Establécela en `1` para evitar que Claude Code trate una respuesta en streaming de [Amazon Bedrock](/docs/es/amazon-bedrock) con un encabezado `Content-Type` ausente o vacío como el event stream binario de Amazon Bedrock. De forma predeterminada, Claude Code asume que un gateway eliminó el encabezado de una respuesta que por lo demás no se modificó, por lo que decodifica el cuerpo y el streaming sigue funcionando. Establécela solo para un gateway que además vuelva a emitir el stream como server-sent events; Claude Code lee entonces el cuerpo sin encabezado como server-sent events. Requiere Claude Code v2.1.239 o posterior |257| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Establécela en `1` para que Claude Code deje de tratar una respuesta en streaming de [Amazon Bedrock](/docs/es/amazon-bedrock) con un encabezado `Content-Type` ausente o vacío como el flujo de eventos binario de Amazon Bedrock. De forma predeterminada, Claude Code asume que un gateway eliminó el encabezado de una respuesta que por lo demás no se modificó, así que decodifica el cuerpo y el streaming sigue funcionando. Establécela solo para un gateway que además reemite el flujo como eventos enviados por el servidor; Claude Code lee entonces el cuerpo sin encabezado como eventos enviados por el servidor. Requiere Claude Code v2.1.239 o posterior |

254| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Establécela en `1` para omitir la comprobación de que una respuesta en streaming de [Amazon Bedrock](/docs/es/amazon-bedrock) lleva el content-type `application/vnd.amazon.eventstream`. Sin esta variable, cuando una respuesta lleva un content-type distinto, Claude Code hace fallar la solicitud con un error que nombra ese tipo, lo que significa que un [gateway o proxy está transformando la respuesta](/docs/es/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). Configura el gateway para que reenvíe el encabezado `Content-Type` y el cuerpo sin modificar en lugar de establecer esta variable. Requiere Claude Code v2.1.208 o posterior |258| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Establécela en `1` para omitir la comprobación de que una respuesta en streaming de [Amazon Bedrock](/docs/es/amazon-bedrock) lleva el content-type `application/vnd.amazon.eventstream`. Sin esta variable, cuando una respuesta lleva un content-type distinto, Claude Code hace fallar la solicitud con un error que nombra ese tipo, lo que significa que un [gateway o proxy está transformando la respuesta](/docs/es/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). Configura el gateway para que reenvíe el encabezado `Content-Type` y el cuerpo sin modificar en lugar de establecer esta variable. Requiere Claude Code v2.1.208 o posterior |

255| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Establécela en `1` para que, cuando el [supervisor](/docs/es/agent-view#the-supervisor-process) detiene, reinicia o actualiza el proceso de una [sesión en segundo plano](/docs/es/agent-view), se detengan sus comandos de shell en segundo plano en ejecución, sus flujos de trabajo dinámicos y, a partir de v2.1.198, sus subagentes en segundo plano, en lugar de entregarlos al siguiente proceso de la sesión. Solo afecta a esa entrega: enviar una sesión a segundo plano con `←` o [`/background`](/docs/es/agent-view#from-inside-a-session) sigue trasladando el trabajo en curso, y `CLAUDE_DISABLE_ADOPT` desactiva ambas cosas. Requiere Claude Code v2.1.196 o posterior |259| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Establécela en `1` para detener los comandos de shell en segundo plano en ejecución, los flujos de trabajo dinámicos y, a partir de v2.1.198, los subagentes en segundo plano de una [sesión en segundo plano](/docs/es/agent-view) cuando el [supervisor](/docs/es/agent-view#the-supervisor-process) detiene, reinicia o actualiza el proceso de esa sesión, en lugar de transferirlos al siguiente proceso de la sesión. Solo afecta a esa transferencia: pasar una sesión a segundo plano con `←` o [`/background`](/docs/es/agent-view#from-inside-a-session) sigue trasladando el trabajo en curso, y `CLAUDE_DISABLE_ADOPT` desactiva ambas cosas. Requiere Claude Code v2.1.196 o posterior |

256| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | Establécela en `1` para evitar que Claude Code termine los [comandos de shell en segundo plano](/docs/es/interactive-mode#background-bash-commands) bajo presión de memoria. De forma predeterminada, en macOS y Linux, Claude Code termina los shells en segundo plano cuando el sistema operativo informa una presión de memoria crítica y la sesión ha estado inactiva durante 30 minutos sin ningún turno ni subagente en ejecución. Windows no tiene señal de presión de memoria, por lo que esta variable no tiene efecto allí. Requiere Claude Code v2.1.193 o posterior |260| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | Establécela en `1` para evitar que Claude Code termine los [comandos de shell en segundo plano](/docs/es/interactive-mode#background-bash-commands) bajo presión de memoria. De forma predeterminada, en macOS y Linux, Claude Code termina los shells en segundo plano cuando el sistema operativo informa una presión de memoria crítica y la sesión ha estado inactiva durante 30 minutos sin ningún turno ni subagente en ejecución. Windows no tiene señal de presión de memoria, por lo que esta variable no tiene efecto allí. Requiere Claude Code v2.1.193 o posterior |

257| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Establécela en `1` para desactivar los [skills](/docs/es/skills) y flujos de trabajo incluidos con Claude Code: los skills y flujos de trabajo incluidos se eliminan por completo, mientras que los comandos integrados como `/init` se pueden seguir escribiendo pero se ocultan al modelo. `/doctor` se puede seguir escribiendo como los comandos integrados; ocúltalo con `DISABLE_DOCTOR_COMMAND` en su lugar. Los skills de plugins, `.claude/skills/` y `.claude/commands/` no se ven afectados. Equivale al ajuste [`disableBundledSkills`](/docs/es/settings-reference#disablebundledskills) |261| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Establécela en `1` para desactivar los [skills](/docs/es/skills) y flujos de trabajo incluidos con Claude Code: los skills y flujos de trabajo incluidos se eliminan por completo, mientras que los comandos integrados como `/init` se pueden seguir escribiendo pero se ocultan al modelo. `/doctor` se puede seguir escribiendo como los comandos integrados; ocúltalo con `DISABLE_DOCTOR_COMMAND` en su lugar. Los skills de plugins, `.claude/skills/` y `.claude/commands/` no se ven afectados. Equivale al ajuste [`disableBundledSkills`](/docs/es/settings-reference#disablebundledskills) |

258| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Establécela en `1` para mantener disponibles las herramientas de navegador de [Claude in Chrome](/docs/es/chrome) y omitir la sección de Chrome del prompt del sistema y el [skill incluido](/docs/es/skills#bundled-skills) `/claude-in-chrome`. Para hosts que integran Claude Code y proporcionan sus propias indicaciones para el navegador. Requiere Claude Code v2.1.257 o posterior |262| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Establécela en `1` para mantener disponibles las herramientas de navegador de [Claude in Chrome](/docs/es/chrome) mientras se omite la sección de Chrome del prompt del sistema y el [skill incluido](/docs/es/skills#bundled-skills) `/claude-in-chrome`. Para hosts que integran Claude Code y proporcionan su propia guía de navegador. Requiere Claude Code v2.1.257 o posterior |

259| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Establécela en `1` para evitar que se cargue en el contexto cualquier archivo de memoria CLAUDE.md, incluidos los archivos de memoria de usuario, de proyecto y de memoria automática |263| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Establécela en `1` para evitar cargar cualquier archivo de memoria CLAUDE.md en el contexto, incluidos los archivos de memoria de usuario, de proyecto y de memoria automática |

260| `CLAUDE_CODE_DISABLE_CRON` | Establécela en `1` para desactivar las [tareas programadas](/docs/es/scheduled-tasks). El skill `/loop` y las herramientas cron dejan de estar disponibles y cualquier tarea ya programada deja de ejecutarse, incluidas las tareas que ya se están ejecutando a mitad de la sesión |264| `CLAUDE_CODE_DISABLE_CRON` | Establécela en `1` para desactivar las [tareas programadas](/docs/es/scheduled-tasks). El skill `/loop` y las herramientas de cron dejan de estar disponibles y las tareas ya programadas dejan de ejecutarse, incluidas las tareas que ya se están ejecutando a mitad de la sesión |

261| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | Establécela en `1` para desactivar el límite de tiempo en las solicitudes de confirmación de [eliminación de rutas críticas](/docs/es/permission-modes#critical-paths). En el modo `auto`, Claude Code envía entonces estas eliminaciones al clasificador, y en el modo `bypassPermissions` la solicitud espera tu respuesta. Establécela en el entorno que inicia Claude Code, ya que Claude Code ignora una copia entregada mediante un bloque `env` de la configuración. Requiere Claude Code v2.1.281 o posterior |265| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | Establécela en `1` para desactivar el límite de tiempo en las solicitudes de [eliminación de rutas críticas](/docs/es/permission-modes#critical-paths). En modo `auto`, Claude Code envía entonces estas eliminaciones al clasificador, y en modo `bypassPermissions` la solicitud espera tu respuesta. Establécela en el entorno que inicia Claude Code, ya que Claude Code ignora una copia entregada mediante un bloque `env` de la configuración. Requiere Claude Code v2.1.281 o posterior |

262| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Establécela en `1` para quitar de las solicitudes a la API los encabezados de solicitud `anthropic-beta` de versiones preliminares, los campos del cuerpo asociados a ellos y los campos beta del esquema de herramientas como `defer_loading` y `eager_input_streaming`. Úsala cuando un gateway proxy rechace las solicitudes con un error `Unexpected value(s)` para el encabezado `anthropic-beta` o un error `Extra inputs are not permitted`. [Desactivar las capacidades preliminares](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities) enumera lo que elimina la variable, incluido [MCP Tool Search](/docs/es/mcp#scale-with-mcp-tool-search), y lo que Claude Code sigue enviando |266| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Establécela en `1` para eliminar de las solicitudes a la API los encabezados de solicitud `anthropic-beta` de versiones preliminares, los campos del cuerpo que los acompañan y los campos beta del esquema de herramientas, como `defer_loading` y `eager_input_streaming`. Úsala cuando un gateway proxy rechace las solicitudes con un error `Unexpected value(s)` para el encabezado `anthropic-beta` o un error `Extra inputs are not permitted`. [Desactivar las capacidades preliminares](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities) enumera lo que elimina la variable, incluido [MCP Tool Search](/docs/es/mcp#scale-with-mcp-tool-search), y lo que Claude Code sigue enviando |

263| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | Establécela en `1` para desactivar los [subagentes integrados Explore y Plan](/docs/es/sub-agents#built-in-subagents). Claude explora con sus herramientas de búsqueda o con el subagente de propósito general en su lugar, y el [modo plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode) lee los archivos directamente en lugar de iniciar agentes Explore y Plan. Los subagentes personalizados llamados `Explore` o `Plan` no se ven afectados. Para eliminar todos los tipos de subagentes integrados en el Agent SDK o en modo no interactivo, usa `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` en su lugar. Requiere Claude Code v2.1.198 o posterior |267| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | Establécela en `1` para desactivar los [subagentes Explore y Plan](/docs/es/sub-agents#built-in-subagents) integrados. Claude explora con sus herramientas de búsqueda o con el subagente de propósito general en su lugar, y el [modo plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode) lee los archivos directamente en lugar de iniciar los agentes Explore y Plan. Los subagentes personalizados llamados `Explore` o `Plan` no se ven afectados. Para eliminar todos los tipos de subagentes integrados en el Agent SDK o en modo no interactivo, usa `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` en su lugar. Requiere Claude Code v2.1.198 o posterior |

264| `CLAUDE_CODE_DISABLE_FAST_MODE` | Establécela en `1` para desactivar el [modo rápido](/docs/es/fast-mode) |268| `CLAUDE_CODE_DISABLE_FAST_MODE` | Establécela en `1` para desactivar el [modo rápido](/docs/es/fast-mode) |

265| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Establécela en `1` para desactivar las encuestas de calidad de sesión "How is Claude doing?". Las encuestas también se desactivan cuando se establece `DISABLE_TELEMETRY`, `DO_NOT_TRACK` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, a menos que `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` las vuelva a activar. Para establecer una tasa de muestreo en lugar de desactivarlas por completo, usa el ajuste [`feedbackSurveyRate`](/docs/es/settings-reference#feedbacksurveyrate). Consulta [Encuestas de calidad de sesión](/docs/es/data-usage#session-quality-surveys) |269| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Establécela en `1` para desactivar las encuestas de calidad de sesión "How is Claude doing?". Las encuestas también se desactivan cuando se establece `DISABLE_TELEMETRY`, `DO_NOT_TRACK` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, a menos que `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` las vuelva a activar. Para establecer una frecuencia de muestreo en lugar de desactivarlas por completo, usa el ajuste [`feedbackSurveyRate`](/docs/es/settings-reference#feedbacksurveyrate). Consulta [Encuestas de calidad de sesión](/docs/es/data-usage#session-quality-surveys) |

266| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Establécela en `1` para desactivar el [checkpointing](/docs/es/checkpointing) de archivos. El comando `/rewind` no podrá restaurar los cambios de código. Sobrescribe el ajuste [`fileCheckpointingEnabled`](/docs/es/settings-reference#filecheckpointingenabled) |270| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Establécela en `1` para desactivar el [checkpointing](/docs/es/checkpointing) de archivos. El comando `/rewind` no podrá restaurar los cambios de código. Sobrescribe el ajuste [`fileCheckpointingEnabled`](/docs/es/settings-reference#filecheckpointingenabled) |

267| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Establécela en `1` para eliminar del contexto de Claude las instrucciones integradas de flujo de trabajo de commits y PR y la instantánea del estado de git. Útil cuando usas tus propios skills de flujo de trabajo de git. Cuando está establecida, tiene precedencia sobre el ajuste [`includeGitInstructions`](/docs/es/settings-reference#includegitinstructions) |271| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Establécela en `1` para eliminar del contexto de Claude las instrucciones integradas del flujo de trabajo de commits y PR, y la instantánea del estado de git. Útil cuando usas tus propios skills de flujo de trabajo de git. Cuando está establecida, tiene precedencia sobre el ajuste [`includeGitInstructions`](/docs/es/settings-reference#includegitinstructions) |

268| `CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT` | Establécela en `1` para evitar que Claude Code lea los scripts pasados a un shell con `-c`, como `bash -c 'rm -rf ~'`, en busca de eliminaciones de [rutas críticas](/docs/es/permission-modes#removals-inside-nested-commands-and-inline-scripts). Claude Code sigue comprobando los destinos de variables de shell y parámetros posicionales en esos scripts, y las demás comprobaciones de rutas críticas siguen ejecutándose. Establécela en el entorno que inicia Claude Code, ya que Claude Code ignora una copia entregada mediante un bloque `env` de la configuración. Requiere Claude Code v2.1.288 o posterior |272| `CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT` | Establécela en `1` para que Claude Code deje de leer los scripts que se pasan a un shell con `-c`, como `bash -c 'rm -rf ~'`, en busca de eliminaciones de [rutas críticas](/docs/es/permission-modes#removals-inside-nested-commands-and-inline-scripts). Claude Code sigue comprobando los destinos de variables de shell y parámetros posicionales en esos scripts, y las demás comprobaciones de rutas críticas se siguen ejecutando. Establécela en el entorno que inicia Claude Code, ya que Claude Code ignora una copia entregada mediante un bloque `env` de la configuración. Requiere Claude Code v2.1.288 o posterior |

269| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Establécela en `1` para evitar la reasignación automática de Opus 4.0 y 4.1 a la versión actual de Opus en la API de Anthropic. Úsala cuando quieras fijar intencionalmente un modelo anterior. La reasignación no se ejecuta en Amazon Bedrock, Google Cloud's Agent Platform ni Microsoft Foundry |273| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Establécela en `1` para evitar la reasignación automática de Opus 4.0 y 4.1 a la versión actual de Opus en la API de Anthropic. Úsala cuando quieras fijar intencionalmente un modelo anterior. La reasignación no se ejecuta en Amazon Bedrock, Google Cloud's Agent Platform ni Microsoft Foundry |

270| `CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK` | Establécela en `1` para evitar que Claude Code en [Amazon Bedrock](/docs/es/amazon-bedrock#when-a-model-is-disabled-mid-session) y [Google Cloud's Agent Platform](/docs/es/google-vertex-ai#when-a-model-is-disabled-mid-session) cambie a un modelo anterior cuando tu cuenta pierde el acceso al modelo de una sesión a mitad de la sesión; en su lugar, la solicitud rechazada falla de inmediato. Una [cadena de modelos de respaldo](/docs/es/model-config#fallback-model-chains) que configures sigue cambiando ante ese rechazo, y las [comprobaciones de modelos al inicio](/docs/es/amazon-bedrock#startup-model-checks) siguen recurriendo al respaldo al iniciar. Requiere Claude Code v2.1.285 o posterior |274| `CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK` | Establécela en `1` para evitar que Claude Code en [Amazon Bedrock](/docs/es/amazon-bedrock#when-a-model-is-disabled-mid-session) y [Google Cloud's Agent Platform](/docs/es/google-vertex-ai#when-a-model-is-disabled-mid-session) cambie a un modelo anterior cuando tu cuenta pierde el acceso al modelo de una sesión a mitad de la sesión; en su lugar, la solicitud rechazada falla de inmediato. Una [cadena de modelos de respaldo](/docs/es/model-config#fallback-model-chains) que configures sigue cambiando ante ese rechazo, y las [comprobaciones de modelo al inicio](/docs/es/amazon-bedrock#startup-model-checks) siguen recurriendo a un respaldo al iniciar. Requiere Claude Code v2.1.285 o posterior |

271| `CLAUDE_CODE_DISABLE_MOUSE` | Establécela en `1` para desactivar el seguimiento del mouse en el [renderizado a pantalla completa](/docs/es/fullscreen). El desplazamiento con el teclado mediante `PgUp` y `PgDn` sigue funcionando. Úsala para conservar el comportamiento nativo de copiar al seleccionar de tu terminal |275| `CLAUDE_CODE_DISABLE_MOUSE` | Establécela en `1` para desactivar el seguimiento del mouse en el [renderizado a pantalla completa](/docs/es/fullscreen). El desplazamiento con el teclado mediante `PgUp` y `PgDn` sigue funcionando. Úsala para conservar el comportamiento nativo de copiar al seleccionar de tu terminal |

272| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | Establécela en `1` para desactivar el manejo de clics, arrastres y hover en el [renderizado a pantalla completa](/docs/es/fullscreen) manteniendo el desplazamiento con la rueda del mouse. Úsala cuando quieras que el desplazamiento con la rueda funcione dentro de Claude Code pero no quieras que los clics posicionen el cursor, expandan la salida de las herramientas o abran enlaces. `CLAUDE_CODE_DISABLE_MOUSE` tiene precedencia cuando ambas están establecidas. Requiere Claude Code v2.1.195 o posterior |276| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | Establécela en `1` para desactivar el manejo de clics, arrastres y desplazamiento del puntero sobre elementos en el [renderizado a pantalla completa](/docs/es/fullscreen) mientras se mantiene el desplazamiento con la rueda del mouse. Úsala cuando quieras que el desplazamiento con la rueda funcione dentro de Claude Code pero no quieras que los clics posicionen el cursor, expandan la salida de las herramientas o abran enlaces. `CLAUDE_CODE_DISABLE_MOUSE` tiene precedencia cuando ambas están establecidas. Requiere Claude Code v2.1.195 o posterior |

273| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | Establécela en `1` para evitar que Claude Code vuelva a leer el [certificado y la clave de cliente mTLS](/docs/es/network-config#mtls-authentication) cuando una solicitud a la API falla con un error a nivel de conexión, como un restablecimiento de la conexión o un error en el protocolo de enlace TLS. Con la recarga desactivada, Claude Code carga los archivos rotados solo la próxima vez que aplique la configuración o en el próximo inicio. Requiere Claude Code v2.1.232 o posterior |277| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | Establécela en `1` para evitar que Claude Code vuelva a leer el [certificado y la clave de cliente mTLS](/docs/es/network-config#mtls-authentication) cuando una solicitud a la API falla con un error a nivel de conexión, como un restablecimiento de la conexión o un error del protocolo de enlace TLS. Con la recarga desactivada, Claude Code carga los archivos rotados solo la próxima vez que aplica la configuración o en el siguiente inicio. Requiere Claude Code v2.1.232 o posterior |

274| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | Establécela en cualquier valor no vacío, como `1`, para desactivar el tráfico de red no esencial: actualizaciones automáticas, telemetría, informes de errores, el comando `/feedback`, los [comentarios redactados por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior), las notas de la versión, las comprobaciones de la [insignia de estado de PR y MR](/docs/es/interactive-mode#pr-review-status) y las comprobaciones de disponibilidad como la del [modo rápido](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways). También detiene las [ejecuciones en segundo plano de las fuentes `command` de plugins](/docs/es/plugins/loading#when-a-command-source-re-runs), que son comandos locales y no tráfico de red, porque pueden desencadenar instalaciones de dependencias. **Establecerla en `0` o `false` sigue desactivando este tráfico**, a diferencia de la mayoría de las variables de activación y desactivación; quita la variable para volver a permitirlo. También desactiva la obtención de feature flags, lo que hace que [Remote Control](/docs/es/remote-control#requirements) y las demás [funciones que necesitan la obtención de feature flags](#features-that-need-feature-flag-fetching) no estén disponibles. La instalación automática del marketplace oficial de plugins no está incluida; desactívala con `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`. No afecta al [descubrimiento de modelos del gateway](/docs/es/llm-gateway-connect#add-gateway-models-to-the-model-picker), que tiene su propia opción de activación |278| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | Establécela en cualquier valor no vacío, como `1`, para desactivar el tráfico de red no esencial: actualizaciones automáticas, telemetría, informes de errores, el comando `/feedback`, los [comentarios redactados por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior), las notas de la versión, las comprobaciones de la [insignia de estado de PR y MR](/docs/es/interactive-mode#pr-review-status) y las comprobaciones de disponibilidad, como la del [modo rápido](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways). También detiene las [ejecuciones en segundo plano de los orígenes `command` de plugins](/docs/es/plugins/loading#when-a-command-source-re-runs), que son comandos locales y no tráfico de red, porque pueden desencadenar instalaciones de dependencias. **Establecerla en `0` o `false` sigue desactivando este tráfico**, a diferencia de la mayoría de las variables de activación/desactivación; elimina la variable para volver a permitirlo. También desactiva la obtención de feature flags, lo que hace que [Remote Control](/docs/es/remote-control#requirements) y las demás [funciones que necesitan la obtención de feature flags](#features-that-need-feature-flag-fetching) no estén disponibles. La instalación automática del marketplace oficial de plugins no está incluida; desactívala con `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`. No afecta al [descubrimiento de modelos del gateway](/docs/es/llm-gateway-connect#add-gateway-models-to-the-model-picker), que tiene su propia activación |

275| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | Establécela en `1` para desactivar el respaldo sin streaming cuando una solicitud en streaming falla a mitad del streaming. En su lugar, los errores de streaming se propagan a la capa de reintentos. Útil cuando un proxy o gateway hace que el respaldo produzca ejecuciones duplicadas de herramientas |279| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | Establécela en `1` para desactivar el respaldo sin streaming cuando una solicitud en streaming falla a mitad del flujo. En su lugar, los errores de streaming se propagan a la capa de reintentos. Útil cuando un proxy o gateway hace que el respaldo produzca ejecuciones duplicadas de herramientas |

276| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | Establécela en `1` para enviar la notificación de escritorio de la herramienta `PushNotification` incluso mientras escribes en la terminal o esta tiene el foco. De forma predeterminada, la herramienta omite tanto la notificación de escritorio como la [notificación push móvil](/docs/es/remote-control#mobile-push-notifications) cuando detecta actividad reciente del teclado o foco en la terminal. Esta variable solo desactiva esa comprobación local, por lo que el servidor aún puede suprimir la notificación push móvil cuando detecta que estás activo. Requiere Claude Code v2.1.193 o posterior |280| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | Establécela en `1` para enviar la notificación de escritorio de la herramienta `PushNotification` incluso mientras escribes en la terminal o esta tiene el foco. De forma predeterminada, la herramienta omite tanto la notificación de escritorio como la [notificación push móvil](/docs/es/remote-control#mobile-push-notifications) cuando detecta actividad reciente del teclado o foco en la terminal. Esta variable solo desactiva esa comprobación local, por lo que el servidor aún puede suprimir la notificación push móvil cuando detecta que estás activo. Requiere Claude Code v2.1.193 o posterior |

277| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | Establécela en `1` para desactivar el registro automático del marketplace oficial de plugins. Claude Code lee la variable cuando está a punto de registrar el marketplace, normalmente durante el primer inicio interactivo en una máquina. Si la variable está establecida en ese momento, Claude Code omite el registro de forma permanente. Quitar la variable más tarde no deshace la omisión. Ejecuta `claude plugin marketplace add anthropics/claude-plugins-official` para registrar el marketplace en cualquier momento |281| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | Establécela en `1` para desactivar el registro automático del marketplace oficial de plugins. Claude Code lee la variable cuando está a punto de registrar el marketplace, normalmente durante el primer inicio interactivo en una máquina. Si la variable está establecida en ese momento, Claude Code omite el registro de forma permanente. Eliminar la variable más tarde no deshace la omisión. Ejecuta `claude plugin marketplace add anthropics/claude-plugins-official` para registrar el marketplace en cualquier momento |

278| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | Establécela en `1` para evitar que Claude Code ejecute tus [hooks `Notification` para solicitudes de permiso sin responder](/docs/es/hooks#notification) en las sesiones en las que Claude Code las envía al callback `canUseTool` del Agent SDK, que es como Claude Desktop y la extensión de VS Code alojan Claude Code. No tiene efecto en las sesiones de terminal. Requiere Claude Code v2.1.233 o posterior |282| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | Establécela en `1` para que Claude Code deje de ejecutar tus [hooks `Notification` para solicitudes de permiso sin responder](/docs/es/hooks#notification) en sesiones donde Claude Code las envía a la callback `canUseTool` del Agent SDK, que es como Claude Desktop y la extensión de VS Code alojan Claude Code. No tiene efecto en sesiones de terminal. Requiere Claude Code v2.1.233 o posterior |

279| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | Establécela en `1` para omitir la carga de skills desde el directorio de skills administrados a nivel de sistema. Útil para sesiones en contenedores o de CI que no deben cargar skills aprovisionados por el operador |283| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | Establécela en `1` para omitir la carga de skills desde el directorio de skills administrados de todo el sistema. Útil para sesiones de contenedores o de CI que no deben cargar skills aprovisionados por el operador |

280| `CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY` | Establécela en `1` para desactivar la comprobación de la [herramienta PowerShell](/docs/es/tools-reference#powershell-tool) que deniega los comandos integrados de `cmd` `rd`, `rmdir`, `del` y `erase` en una [ruta del sistema](/docs/es/permission-modes#remove-item-in-powershell), como la raíz de una unidad o tu directorio home. Claude Code ignora esta variable en el bloque `env` de un archivo de configuración. Requiere Claude Code v2.1.283 o posterior |284| `CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY` | Establécela en `1` para desactivar la comprobación de la [herramienta PowerShell](/docs/es/tools-reference#powershell-tool) que deniega los comandos integrados de `cmd` `rd`, `rmdir`, `del` y `erase` en una [ruta del sistema](/docs/es/permission-modes#remove-item-in-powershell), como la raíz de una unidad o tu directorio home. Claude Code ignora esta variable en el bloque `env` de un archivo de configuración. Requiere Claude Code v2.1.283 o posterior |

281| `CLAUDE_CODE_DISABLE_REFUSAL_FALLBACK` | Establécela en `1` para desactivar el [cambio automático de modelo cuando un clasificador de seguridad marca una solicitud](/docs/es/model-config#automatic-model-fallback), el comportamiento que controla el ajuste [`switchModelsOnFlag`](/docs/es/settings-reference#switchmodelsonflag) |285| `CLAUDE_CODE_DISABLE_REFUSAL_FALLBACK` | Establécela en `1` para desactivar el [cambio automático de modelo cuando un clasificador de seguridad marca una solicitud](/docs/es/model-config#automatic-model-fallback), el comportamiento que controla el ajuste [`switchModelsOnFlag`](/docs/es/settings-reference#switchmodelsonflag) |

282| `CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS` | Establécela en `1` para evitar que Claude Code envíe el campo de salida estructurada `output_config.format` y el valor `anthropic-beta` asociado a él, para un [gateway de LLM](/docs/es/llm-gateway-protocol#feature-pass-through) cuyo servicio upstream los rechaza. Esto deja activadas las demás capacidades preliminares que [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities) desactiva. Requiere Claude Code v2.1.288 o posterior |286| `CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS` | Establécela en `1` para que Claude Code deje de enviar el campo de salida estructurada `output_config.format` y el valor de `anthropic-beta` que lo acompaña, para un [gateway de LLM](/docs/es/llm-gateway-protocol#feature-pass-through) cuyo servicio ascendente los rechaza. Esto deja activadas las demás capacidades preliminares que [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities) desactiva. Requiere Claude Code v2.1.288 o posterior |

283| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | Establécela en `1` para desactivar la comprobación de [rutas críticas](/docs/es/permission-modes#critical-paths) para un `rm` recursivo cuyo destino es completamente la salida de una sustitución de comandos, como `rm -rf "$(pwd)"`. Las demás comprobaciones de rutas críticas siguen ejecutándose. Establécela en el entorno que inicia Claude Code, ya que Claude Code ignora una copia entregada mediante un bloque `env` de la configuración. Requiere Claude Code v2.1.281 o posterior |287| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | Establécela en `1` para desactivar la comprobación de [rutas críticas](/docs/es/permission-modes#critical-paths) para un `rm` recursivo cuyo destino es completamente la salida de una sustitución de comandos, como `rm -rf "$(pwd)"`. Las demás comprobaciones de rutas críticas se siguen ejecutando. Establécela en el entorno que inicia Claude Code, ya que Claude Code ignora una copia entregada mediante un bloque `env` de la configuración. Requiere Claude Code v2.1.281 o posterior |

284| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Establécela en `1` para desactivar las actualizaciones automáticas del título de la terminal según el contexto de la conversación. Esto también omite la solicitud en segundo plano al modelo pequeño/rápido que [genera un título para la sesión](/docs/es/sessions#name-your-sessions) |288| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Establécela en `1` para desactivar las actualizaciones automáticas del título de la terminal según el contexto de la conversación. Esto también omite la solicitud en segundo plano al modelo pequeño/rápido que [genera un título para la sesión](/docs/es/sessions#name-your-sessions) |

285| `CLAUDE_CODE_DISABLE_THINKING` | Establécela en `1` para omitir por completo el parámetro `thinking` de las solicitudes a la API. Es una opción de compatibilidad para proxies y gateways que rechazan el parámetro. En los modelos que piensan de forma predeterminada, omitir el parámetro significa que el modelo aún puede pensar. Para desactivar explícitamente el [pensamiento extendido](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) en la API de Anthropic, usa `MAX_THINKING_TOKENS=0` en su lugar. Ninguna de las dos variables desactiva el pensamiento en Opus 5.5, Sonnet 5.5, Haiku 5.5 ni los modelos Fable, en los que no se puede desactivar el pensamiento. En los [proveedores de terceros](/docs/es/third-party-integrations), `MAX_THINKING_TOKENS=0` también omite el parámetro, por lo que las dos variables se comportan igual allí |289| `CLAUDE_CODE_DISABLE_THINKING` | Establécela en `1` para omitir por completo el parámetro `thinking` de las solicitudes a la API. Es una opción de compatibilidad para proxies y gateways que rechazan el parámetro. En los modelos que piensan de forma predeterminada, omitir el parámetro significa que el modelo puede seguir pensando. Para desactivar explícitamente el [pensamiento extendido](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) en la API de Anthropic, usa `MAX_THINKING_TOKENS=0` en su lugar. Ninguna de las dos variables desactiva el pensamiento en Opus 5.5, Sonnet 5.5, Haiku 5.5 ni en los modelos Fable, en los que no se puede desactivar el pensamiento. En [proveedores de terceros](/docs/es/third-party-integrations), `MAX_THINKING_TOKENS=0` también omite el parámetro, por lo que allí ambas variables se comportan igual |

286| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | Establécela en `1` para omitir la [compactación automática](/docs/es/costs#reduce-token-usage) proactiva cuando Claude Code no reconoce el ID del modelo, como un alias de un [gateway de LLM](/docs/es/llm-gateway). Sin esta variable, Claude Code compacta según la ventana de contexto que asume para el ID. `CLAUDE_CODE_MAX_CONTEXT_TOKENS` puede corregir la ventana asumida en su lugar; 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) para saber cuándo se aplica cada variable. Requiere Claude Code v2.1.223 o posterior |290| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | Establécela en `1` para omitir la [compactación automática](/docs/es/costs#reduce-token-usage) proactiva cuando Claude Code no reconoce el ID del modelo, como un alias de un [gateway de LLM](/docs/es/llm-gateway). Sin esta variable, Claude Code compacta según la ventana de contexto que asume para el ID. `CLAUDE_CODE_MAX_CONTEXT_TOKENS` puede corregir en su lugar la ventana asumida; 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) para saber cuándo se aplica cada variable. Requiere Claude Code v2.1.223 o posterior |

287| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Establécela en `1` para desactivar el desplazamiento virtual en el [renderizado a pantalla completa](/docs/es/fullscreen) y renderizar todos los mensajes de la transcripción. Úsala si al desplazarte en el modo de pantalla completa aparecen regiones en blanco donde deberían aparecer mensajes |291| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Establécela en `1` para desactivar el desplazamiento virtual en el [renderizado a pantalla completa](/docs/es/fullscreen) y renderizar todos los mensajes de la transcripción. Úsala si al desplazarte en el modo de pantalla completa aparecen regiones en blanco donde deberían aparecer mensajes |

288| `CLAUDE_CODE_DISABLE_WEB_FETCH` | Establécela en `1` para desactivar la herramienta [WebFetch](/docs/es/tools-reference#webfetch-tool-behavior). La herramienta [WebSearch](/docs/es/tools-reference#websearch-tool-behavior) sigue disponible. Requiere Claude Code v2.1.285 o posterior |292| `CLAUDE_CODE_DISABLE_WEB_FETCH` | Establécela en `1` para desactivar la herramienta [WebFetch](/docs/es/tools-reference#webfetch-tool-behavior). La herramienta [WebSearch](/docs/es/tools-reference#websearch-tool-behavior) sigue disponible. Requiere Claude Code v2.1.285 o posterior |

289| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | Establécela en `1` para iniciar los comandos de la [herramienta PowerShell](/docs/es/tools-reference#powershell-tool) en Windows directamente en lugar de a través del lanzador `cmd.exe`. De forma predeterminada, el lanzador permite que un comando de PowerShell [que se ejecuta en segundo plano](/docs/es/tools-reference#background-commands) [se traslade al siguiente proceso de la sesión](/docs/es/agent-view#the-supervisor-process), como cuando [envías la sesión a segundo plano](/docs/es/agent-view#from-inside-a-session). Si estableces la variable, un comando de PowerShell en segundo plano se detiene cuando el proceso de la sesión termina. Los comandos de Bash no se ven afectados. Requiere Claude Code v2.1.269 o posterior |293| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | Establécela en `1` para iniciar los comandos de la [herramienta PowerShell](/docs/es/tools-reference#powershell-tool) en Windows directamente en lugar de a través del lanzador `cmd.exe`. De forma predeterminada, el lanzador permite que un comando de PowerShell [que se ejecuta en segundo plano](/docs/es/tools-reference#background-commands) [se traslade al siguiente proceso de la sesión](/docs/es/agent-view#the-supervisor-process), por ejemplo cuando [pasas la sesión a segundo plano](/docs/es/agent-view#from-inside-a-session). Si estableces la variable, un comando de PowerShell en segundo plano se detiene cuando termina el proceso de la sesión. Los comandos de Bash no se ven afectados. Requiere Claude Code v2.1.269 o posterior |

290| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Establécela en `1` para desactivar los [flujos de trabajo](/docs/es/workflows#turn-workflows-off). Equivale al ajuste [`disableWorkflows`](/docs/es/settings-reference#disableworkflows) |294| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Establécela en `1` para desactivar los [flujos de trabajo](/docs/es/workflows#turn-workflows-off). Equivale al ajuste [`disableWorkflows`](/docs/es/settings-reference#disableworkflows) |

291| `CLAUDE_CODE_EFFORT_LEVEL` | Establece el nivel de esfuerzo para los modelos compatibles. Valores: `low`, `medium`, `high`, `xhigh`, `max` o `auto` para usar el valor predeterminado del modelo. Los niveles disponibles dependen del modelo. Tiene precedencia sobre `--effort`, `/effort` y los ajustes `modelSettings` y `effortLevel`. Un límite de [`maxEffortLevel`](/docs/es/settings-reference#maxeffortlevel) sigue aplicándose. Consulta [Ajustar el nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) |295| `CLAUDE_CODE_EFFORT_LEVEL` | Establece el nivel de esfuerzo para los modelos compatibles. Valores: `low`, `medium`, `high`, `xhigh`, `max`, o `auto` para usar el valor predeterminado del modelo. Los niveles disponibles dependen del modelo. Tiene precedencia sobre `--effort`, `/effort` y los ajustes `modelSettings` y `effortLevel`. Un límite de [`maxEffortLevel`](/docs/es/settings-reference#maxeffortlevel) sigue aplicándose. Consulta [Ajustar el nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) |

292| `CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS` | Establece en `1` para agregar mensajes [`session_state_changed`](/docs/es/agent-sdk/typescript#sdksessionstatechangedmessage), que contienen el estado de la sesión, al flujo de mensajes. Requiere el [Agent SDK](/docs/es/agent-sdk/overview) o bien `--print`, `--output-format stream-json` y `--verbose` |296| `CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS` | Establécela en `1` para agregar al flujo de mensajes los mensajes [`session_state_changed`](/docs/es/agent-sdk/typescript#sdksessionstatechangedmessage), que contienen el estado de la sesión. Requiere el [Agent SDK](/docs/es/agent-sdk/overview) o bien `--print`, `--output-format stream-json` y `--verbose` |

293| `CLAUDE_CODE_ENABLE_AUTO_MODE` | Se acepta por compatibilidad con versiones anteriores y no tiene efecto. El modo automático está disponible de forma predeterminada en todos los proveedores, incluidos Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry y las sesiones de [Claude apps gateway](/docs/es/claude-apps-gateway) con la sesión iniciada. De la v2.1.158 a la v2.1.206, era necesario establecer esto en `1` para que el [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) estuviera disponible en esos proveedores |297| `CLAUDE_CODE_ENABLE_AUTO_MODE` | Se acepta por compatibilidad con versiones anteriores y no tiene efecto. El modo automático está disponible de forma predeterminada en todos los proveedores, incluidos Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry y las sesiones con sesión iniciada en [Claude apps gateway](/docs/es/claude-apps-gateway). De la v2.1.158 a la v2.1.206, era necesario establecerla en `1` para que el [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) estuviera disponible en esos proveedores |

294| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Sobrescribe la disponibilidad del [resumen de sesión](/docs/es/interactive-mode#session-recap). Establece en `0` para forzar la desactivación de los resúmenes independientemente del interruptor de `/config`. Establece en `1` para forzar su activación cuando [`awaySummaryEnabled`](/docs/es/settings-reference#awaysummaryenabled) es `false`. Tiene precedencia sobre el ajuste y el interruptor de `/config` |298| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Sobrescribe la disponibilidad del [resumen de sesión](/docs/es/interactive-mode#session-recap). Establécela en `0` para forzar la desactivación de los resúmenes independientemente del interruptor de `/config`. Establécela en `1` para forzar su activación cuando [`awaySummaryEnabled`](/docs/es/settings-reference#awaysummaryenabled) sea `false`. Tiene precedencia sobre el ajuste y sobre el interruptor de `/config` |

295| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Establece en `1` para actualizar el estado de los plugins en los límites de turno en [modo no interactivo](/docs/es/headless) después de que se complete una instalación en segundo plano. Desactivado de forma predeterminada porque la actualización cambia el prompt del sistema a mitad de la sesión, lo que invalida la [caché de prompts](/docs/es/prompt-caching) para ese turno |299| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Establécela en `1` para actualizar el estado de los plugins entre turnos en [modo no interactivo](/docs/es/headless) después de que se complete una instalación en segundo plano. Desactivada de forma predeterminada porque la actualización cambia el prompt del sistema a mitad de la sesión, lo que invalida la [caché de prompts](/docs/es/prompt-caching) para ese turno |

296| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Establece en `1` para enviar la encuesta de calidad de sesión "How is Claude doing?" a tu propio [recolector de OpenTelemetry](/docs/es/monitoring-usage) cuando el tráfico no esencial dirigido a Anthropic está bloqueado. Las calificaciones de la encuesta se emiten solo como eventos OTEL a tu recolector configurado. En este modo no se envían datos de la encuesta a Anthropic. Se aplica cuando se establece `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY` o `DO_NOT_TRACK`, y no tiene efecto en otro caso. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` y la política de comentarios sobre el producto de la organización tienen precedencia |300| `CLAUDE_CODE_ENABLE_CFC` | Establécela en `1` para iniciar una sesión de la CLI con la [integración con Chrome](/docs/es/chrome) activada, o en `0` para iniciarla desactivada. Tiene precedencia sobre el ajuste [`claudeInChromeDefaultEnabled`](/docs/es/settings-reference#claudeinchromedefaultenabled). Los flags `--chrome` y `--no-chrome` tienen precedencia sobre ambos. Claude Code [ignora `1` en la configuración de proyecto y local](/docs/es/chrome#project-settings-can’t-turn-on-chrome) |

297| `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 dar la impresión de que se quedó colgado. Activado de forma predeterminada en la Anthropic API. En Amazon Bedrock y Google Cloud's Agent Platform, se activa por modelo donde el contenedor desplegado lo admite. Establece en `0` para desactivarlo. Establece en `1` para forzar su activación al enrutar a través de un proxy mediante `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL` o `ANTHROPIC_BEDROCK_BASE_URL`. Desactivado de forma predeterminada en Microsoft Foundry y en las conexiones a través de un [gateway](/docs/es/llm-gateway) |301| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Establécela en `1` para dirigir la encuesta de calidad de sesión "How is Claude doing?" a tu propio [recolector de OpenTelemetry](/docs/es/monitoring-usage) cuando el tráfico no esencial destinado a Anthropic está bloqueado. Las calificaciones de la encuesta se emiten solo como eventos OTEL a tu recolector configurado. En este modo no se envían datos de la encuesta a Anthropic. Se aplica cuando se establece `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY` o `DO_NOT_TRACK`, y no tiene efecto en otro caso. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` y la política de comentarios sobre el producto de la organización tienen precedencia |

298| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Establece 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. Desactivado 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 puede acceder la clave. Los modelos descubiertos se siguen filtrando por una lista de 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 de gateway](/docs/es/server-managed-settings#platform-availability) |302| `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) |

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

299| `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 |304| `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 |

300| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Establece en `false` para desactivar las sugerencias de prompts, las predicciones en gris que aparecen en tu entrada de prompt. Tiene precedencia sobre el ajuste [`promptSuggestionEnabled`](/docs/es/settings-reference#promptsuggestionenabled), que es lo que escribe el interruptor **Prompt suggestions** en `/config`. Claude Code también [pausa las sugerencias mientras tu cuenta está cerca de su límite de uso o lo alcanzó](/docs/es/interactive-mode#when-claude-code-skips-suggestions). Establece 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) |305| `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) |

301| `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`. Establece en `0` para obtener en su lugar la herramienta heredada `TodoWrite`. Consulta [Lista de tareas](/docs/es/interactive-mode#task-list) |306| `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) |

302| `CLAUDE_CODE_ENABLE_TELEMETRY` | Establece en `1` para activar la recopilación de datos de OpenTelemetry para métricas y registros. 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) |307| `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) |

303| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | Establece 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 |308| `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 |

304| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | Tiempo en milisegundos que se espera después de que el bucle de consultas queda inactivo antes de salir automáticamente. Útil para flujos de trabajo automatizados y scripts que usan el modo SDK |309| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | Tiempo en milisegundos que se espera después de que el bucle de consultas queda inactivo antes de salir automáticamente. Útil para flujos de trabajo automatizados y scripts que usan el modo SDK |

305| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Establece en `1` para activar los [equipos de agentes](/docs/es/agent-teams). Los equipos de agentes son experimentales y están desactivados de forma predeterminada |310| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Establécela en `1` para habilitar los [equipos de agentes](/docs/es/agent-teams). Los equipos de agentes son experimentales y están deshabilitados de forma predeterminada |

306| `CLAUDE_CODE_EXTRA_BODY` | Objeto JSON que se combina en el nivel superior del cuerpo de cada solicitud a la API. Útil para pasar parámetros específicos del proveedor que Claude Code no expone directamente. Un valor exportado en tu shell también se aplica a las [sesiones en segundo plano](/docs/es/agent-view) que lanzas con `claude agents` o `--bg`. Antes de la v2.1.206, las sesiones en segundo plano ignoraban un valor exportado en el shell y usaban la copia que hubiera heredado el proceso supervisor en segundo plano |311| `CLAUDE_CODE_EXTRA_BODY` | Objeto JSON que se combina con el nivel superior del cuerpo de cada solicitud a la API. Útil para pasar parámetros específicos del proveedor que Claude Code no expone directamente. Un valor exportado en tu shell también se aplica a las [sesiones en segundo plano](/docs/es/agent-view) que lanzas con `claude agents` o `--bg`. Antes de la v2.1.206, las sesiones en segundo plano ignoraban un valor exportado en el shell y usaban la copia que hubiera heredado el proceso supervisor en segundo plano |

307| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Sobrescribe el límite de tokens predeterminado para la lectura de archivos. Útil cuando necesitas leer archivos más grandes de forma completa |312| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Sobrescribe el límite de tokens predeterminado para la lectura de archivos. Útil cuando necesitas leer archivos más grandes completos |

308| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Establece en `1` para forzar la persistencia de la transcripción, el historial de prompts y el registro en `claude agents` incluso cuando este `claude` se inició desde dentro de otra sesión de Claude Code. Úsala cuando un valor heredado de `CLAUDE_CODE_CHILD_SESSION`, por ejemplo de una sesión de `screen` o de un lanzador en segundo plano iniciado primero por la herramienta Bash de Claude Code, hace que una sesión genuina de nivel superior se clasifique erróneamente como anidada. A partir de la v2.1.178, Claude Code detecta automáticamente el caso de tmux e ignora el marcador heredado, por lo que tmux ya no necesita esta variable. También se respeta en la v2.1.169 y anteriores; no tiene efecto en la v2.1.170 ni en la v2.1.171, donde se eliminó la detección de sesiones anidadas que sobrescribe |313| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Establécela en `1` para forzar la persistencia de la transcripción, el historial de prompts y el registro en `claude agents` incluso cuando este `claude` se haya iniciado desde dentro de otra sesión de Claude Code. Úsala cuando un valor heredado de `CLAUDE_CODE_CHILD_SESSION`, por ejemplo de una sesión de `screen` o de un lanzador en segundo plano iniciado por primera vez por la herramienta Bash de Claude Code, haga que una sesión genuina de nivel superior se clasifique erróneamente como anidada. A partir de la v2.1.178, Claude Code detecta automáticamente el caso de tmux e ignora el marcador heredado, por lo que tmux ya no necesita esta variable. También se respeta en la v2.1.169 y anteriores; no tiene efecto en la v2.1.170 ni en la v2.1.171, donde se eliminó la detección de sesiones anidadas que sobrescribe |

309| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | Establece 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, como a través de SSH sin reenviar `TERM_PROGRAM`. Sin esto, las terminales no detectadas muestran los marcadores `~~` literales en lugar de mostrar el texto tachado. Requiere Claude Code v2.1.186 o posterior |314| `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 |

310| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Establece 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 en tmux. A diferencia de `CLAUDE_CODE_NO_FLICKER`, que cambia a la [representación en pantalla completa](/docs/es/fullscreen), esto no cambia el renderizador |315| `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 |

311| `CLAUDE_CODE_FORCE_TERMINAL_IMAGES` | Establece 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 |316| `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 |

312| `CLAUDE_CODE_FORK_SUBAGENT` | Controla el [modo fork](/docs/es/sub-agents#turn-fork-mode-on-or-off), que permite a Claude generar [subagentes bifurcados](/docs/es/sub-agents#fork-the-current-conversation) por sí mismo y está activado de forma predeterminada solo en sesiones interactivas. Establece 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 |317| `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 |

313| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | Establece 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 allí para que las invocaciones anidadas sigan funcionando cuando se establece para todo el proceso. Requiere Claude Code v2.1.211 o posterior |318| `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 |

314| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | Establece en `1` para enviar los [encabezados de sugerencia del gateway](/docs/es/llm-gateway-protocol#gateway-hint-headers), como `x-claude-code-request-class` y `x-claude-code-compaction`, en un proxy personalizado o un proveedor externo como Amazon Bedrock o Claude Platform on AWS. Establece en `0` para dejar de enviarlos en todas las conexiones, incluida una conexión directa a la Anthropic API, donde Claude Code los envía de forma predeterminada. Requiere Claude Code v2.1.273 o posterior |319| `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 |

315| `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 formas de escritura mantienen el valor predeterminado. Requiere Claude Code v2.1.269 o posterior |320| `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 |

316| `CLAUDE_CODE_GIT_BASH_PATH` | Solo Windows: ruta al ejecutable de Git Bash (`bash.exe`). Úsala cuando Git Bash está instalado pero no está en tu PATH. Si la ruta no existe o el archivo no se llama `bash.exe`, `sh.exe`, `bash` o `sh`, Claude Code ignora la variable y detecta automáticamente Git Bash como si no estuviera establecida, y registra una advertencia visible con `--debug`. Antes de la v2.1.219, Claude Code salía al inicio cuando la ruta no existía, y usaba cualquier archivo existente como shell sin comprobar que fuera bash o sh. Consulta [Configuración en Windows](/docs/es/setup#set-up-on-windows) |321| `CLAUDE_CODE_GIT_BASH_PATH` | Solo Windows: ruta al ejecutable de Git Bash (`bash.exe`). Úsala cuando Git Bash esté instalado pero no esté en tu PATH. Si la ruta no existe o el archivo no se llama `bash.exe`, `sh.exe`, `bash` ni `sh`, Claude Code ignora la variable y detecta Git Bash automáticamente como si no estuviera establecida, y registra una advertencia visible con `--debug`. Antes de la v2.1.219, Claude Code terminaba al iniciar cuando la ruta no existía, y usaba cualquier archivo existente como shell sin comprobar que fuera bash o sh. Consulta [Configuración en Windows](/docs/es/setup#set-up-on-windows) |

317| `CLAUDE_CODE_GLOB_HIDDEN` | Establece en `false` para excluir los dotfiles de los resultados cuando Claude invoca la [herramienta Glob](/docs/es/tools-reference#glob-tool-behavior). Se incluyen de forma predeterminada. No afecta al autocompletado de archivos con `@`, a `ls`, a Grep ni a Read |322| `CLAUDE_CODE_GLOB_HIDDEN` | Establécela en `false` para excluir los dotfiles de los resultados cuando Claude invoca la [herramienta Glob](/docs/es/tools-reference#glob-tool-behavior). Se incluyen de forma predeterminada. No afecta al autocompletado de archivos con `@`, a `ls`, a Grep ni a Read |

318| `CLAUDE_CODE_GLOB_NO_IGNORE` | Establece en `false` para que la [herramienta Glob](/docs/es/tools-reference#glob-tool-behavior) respete los patrones de `.gitignore`. De forma predeterminada, Glob devuelve todos los archivos coincidentes, incluidos los ignorados por git. No afecta al autocompletado de archivos con `@`, que tiene su propio [ajuste `respectGitignore`](/docs/es/settings-reference#respectgitignore) |323| `CLAUDE_CODE_GLOB_NO_IGNORE` | Establécela en `false` para que la [herramienta Glob](/docs/es/tools-reference#glob-tool-behavior) respete los patrones de `.gitignore`. De forma predeterminada, Glob devuelve todos los archivos coincidentes, incluidos los ignorados por git. No afecta al autocompletado de archivos con `@`, que tiene su propio [ajuste `respectGitignore`](/docs/es/settings-reference#respectgitignore) |

319| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Tiempo de espera en segundos para el descubrimiento de archivos de la herramienta Glob. El valor predeterminado es 20 segundos en la mayoría de las plataformas y 60 segundos en WSL |324| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Tiempo de espera en segundos para el descubrimiento de archivos de la herramienta Glob. El valor predeterminado es 20 segundos en la mayoría de las plataformas y 60 segundos en WSL |

320| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | Cuántos minutos puede el trabajo en segundo plano mantener en espera un objetivo activo antes de que Claude Code [le pida a Claude que lo revise](/docs/es/goal#background-work-defers-evaluation). Predeterminado: `30`. Establece `0` para desactivar las revisiones. Indica minutos enteros en dígitos simples, como máximo `10080`, que equivale a una semana. Claude Code trata cualquier otro valor como no establecido y usa el predeterminado. Requiere Claude Code v2.1.234 o posterior |325| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | Cuántos minutos puede el trabajo en segundo plano mantener en espera un objetivo activo antes de que Claude Code [le pida a Claude que lo revise](/docs/es/goal#background-work-defers-evaluation). Valor predeterminado: `30`. Establécela en `0` para desactivar las revisiones. Indica minutos enteros con dígitos simples, como máximo `10080`, que es una semana. Claude Code trata cualquier otro valor como no establecido y usa el predeterminado. Requiere Claude Code v2.1.234 o posterior |

321| `CLAUDE_CODE_GZIP_REQUEST_BODIES` | Establece en `0` para desactivar la compresión gzip de los cuerpos de las solicitudes de la Claude API, de telemetría y de publicación de [artefactos](/docs/es/artifacts) enviadas a `api.anthropic.com`. De forma predeterminada, Claude Code comprime los cuerpos de solicitud grandes en conexiones directas y omite la compresión cuando envías solicitudes a través de un proxy, configuras un certificado de cliente o estableces `NODE_EXTRA_CA_CERTS`. Usa `0` si un [proxy de inspección TLS](/docs/es/network-config#ca-certificate-store) que Claude Code no puede detectar maneja mal las solicitudes comprimidas |326| `CLAUDE_CODE_GZIP_REQUEST_BODIES` | Establécela en `0` para desactivar la compresión gzip de los cuerpos de las solicitudes a la API de Claude, de telemetría y de publicación de [artefactos](/docs/es/artifacts) enviadas a `api.anthropic.com`. De forma predeterminada, Claude Code comprime los cuerpos de solicitud grandes en conexiones directas y omite la compresión cuando envías solicitudes a través de un proxy, configuras un certificado de cliente o estableces `NODE_EXTRA_CA_CERTS`. Usa `0` si un [proxy de inspección TLS](/docs/es/network-config#ca-certificate-store) que Claude Code no puede detectar maneja mal las solicitudes comprimidas |

322| `CLAUDE_CODE_HIDE_CWD` | Establece en `1` para ocultar el directorio de trabajo en el logotipo de inicio. Útil al compartir pantalla o en grabaciones donde la ruta expone tu nombre de usuario del sistema operativo |327| `CLAUDE_CODE_HIDE_CWD` | Establécela en `1` para ocultar el directorio de trabajo en el logotipo de inicio. Útil para compartir pantalla o grabaciones en las que la ruta expone tu nombre de usuario del sistema operativo |

323| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | Sobrescribe la dirección del host usada para conectarse a la extensión del IDE. De forma predeterminada, Claude Code detecta automáticamente la dirección correcta, incluido el enrutamiento de WSL a Windows |328| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | Sobrescribe la dirección del host que se usa para conectarse a la extensión del IDE. De forma predeterminada, Claude Code detecta automáticamente la dirección correcta, incluido el enrutamiento de WSL a Windows |

324| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Establece en `1` para omitir la instalación automática de las extensiones del IDE. Equivale a establecer [`autoInstallIdeExtension`](/docs/es/settings-reference#autoinstallideextension) en `false` |329| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Establécela en `1` para omitir la instalación automática de las extensiones del IDE. Equivale a establecer [`autoInstallIdeExtension`](/docs/es/settings-reference#autoinstallideextension) en `false` |

325| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Establece en `1` para omitir la validación de las entradas del archivo de bloqueo del IDE durante la conexión. Úsala cuando la conexión automática no encuentra tu IDE aunque esté en ejecución |330| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Establécela en `1` para omitir la validación de las entradas del archivo de bloqueo del IDE durante la conexión. Úsala cuando la conexión automática no encuentre tu IDE aunque esté en ejecución |

326| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Cuántos [subagentes](/docs/es/sub-agents#concurrent-subagent-limit) pueden estar en ejecución en una sesión antes de que la herramienta Agent se niegue a generar otro (predeterminado: 20). Acepta un número entero positivo en dígitos simples; cualquier otro valor se ignora, por lo que la variable puede ajustar el límite pero no desactivarlo. Requiere Claude Code v2.1.217 o posterior |331| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Cuántos [subagentes](/docs/es/sub-agents#concurrent-subagent-limit) pueden estar en ejecución en una sesión antes de que la herramienta Agent se niegue a generar otro (predeterminado: 20). Acepta un número entero positivo con dígitos simples; cualquier otro valor se ignora, por lo que la variable puede ajustar el límite pero no desactivarlo. Requiere Claude Code v2.1.217 o posterior |

327| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Sobrescribe el tamaño de la ventana de contexto que Claude Code asume para el modelo activo. A partir de la v2.1.193, cómo se aplica depende de cómo Claude Code resuelve el ID del modelo; consulta [Corregir la ventana para un gateway o un ID de modelo personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Úsala cuando enrutas a un modelo a través de `ANTHROPIC_BASE_URL` cuya ventana de contexto no coincide con el tamaño integrado para su nombre |332| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Sobrescribe el tamaño de la ventana de contexto que Claude Code supone para el modelo activo. A partir de la v2.1.193, cómo se aplica depende de cómo resuelve Claude Code el ID del modelo; consulta [Corregir la ventana para un gateway o un ID de modelo personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Úsala cuando enrutes a un modelo a través de `ANTHROPIC_BASE_URL` cuya ventana de contexto no coincida con el tamaño integrado para su nombre |

328| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Longitud máxima en caracteres de cada descripción de herramienta MCP y de las instrucciones de cada servidor MCP que Claude Code envía al modelo (predeterminado: 2048). Claude Code [trunca el texto más largo](/docs/es/mcp#for-mcp-server-authors). Acepta un número entero positivo en dígitos simples. Cualquier otro valor se ignora y se aplica el predeterminado. Requiere Claude Code v2.1.280 o posterior |333| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Longitud máxima en caracteres de cada descripción de herramienta MCP y de las instrucciones de cada servidor MCP que Claude Code envía al modelo (predeterminado: 2048). Claude Code [trunca el texto más largo](/docs/es/mcp#for-mcp-server-authors). Acepta un número entero positivo con dígitos simples. Cualquier otro valor se ignora y se aplica el predeterminado. Requiere Claude Code v2.1.280 o posterior |

329| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Establece el número máximo de tokens de salida para la mayoría de las solicitudes. Los valores predeterminados y los límites varían según el modelo; consulta [máximo de tokens de salida](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Claude Code reduce un valor superior al límite de un modelo a ese límite. Para un ID de modelo que Claude Code no puede resolver a un modelo que conozca, el predeterminado es 32000 y el límite es 128000. Aumentar este valor reduce la ventana de contexto efectiva disponible antes de que se active la [compactación automática](/docs/es/costs#reduce-token-usage) |334| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Establece el número máximo de tokens de salida para la mayoría de las solicitudes. Los valores predeterminados y los límites varían según el modelo; consulta [tokens de salida máximos](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Claude Code reduce al límite un valor que supere el límite de un modelo. Para un ID de modelo que Claude Code no puede resolver a un modelo que conozca, el valor predeterminado es 32000 y el límite es 128000. Aumentar este valor reduce la ventana de contexto efectiva disponible antes de que se active la [compactación automática](/docs/es/costs#reduce-token-usage) |

330| `CLAUDE_CODE_MAX_RETRIES` | Sobrescribe el número de veces que se reintentan las solicitudes fallidas a la API (predeterminado: 10). Limitado a 15 a partir de la v2.1.186; a partir de la v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` aumenta el predeterminado y elimina el límite. Para sesiones desatendidas que necesitan esperar durante interrupciones más largas, establece en su lugar `CLAUDE_CODE_RETRY_WATCHDOG` |335| `CLAUDE_CODE_MAX_RETRIES` | Sobrescribe el número de veces que se reintentan las solicitudes a la API fallidas (predeterminado: 10). Limitado a 15 a partir de la v2.1.186; a partir de la v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` aumenta el valor predeterminado y elimina el límite. Para sesiones desatendidas que necesitan esperar durante interrupciones más largas, establece en su lugar `CLAUDE_CODE_RETRY_WATCHDOG` |

331| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Eliminada en la v2.1.224 y ahora no tiene efecto. Anteriormente limitaba el número total de [subagentes](/docs/es/sub-agents) que Claude podía generar con la herramienta Agent en una sesión (predeterminado: 200); generar más allá del límite fallaba con `Subagent spawn limit reached`. El [límite de subagentes concurrentes](/docs/es/sub-agents#concurrent-subagent-limit) y el [límite de profundidad](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents) siguen aplicándose |336| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Eliminada en la v2.1.224 y ahora no tiene efecto. Antes limitaba el número total de [subagentes](/docs/es/sub-agents) que Claude podía generar con la herramienta Agent en una sesión (predeterminado: 200); generar más allá del límite fallaba con `Subagent spawn limit reached`. El [límite de subagentes concurrentes](/docs/es/sub-agents#concurrent-subagent-limit) y el [límite de profundidad](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents) siguen aplicándose |

332| `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 predeterminado, los subagentes pueden generar sus propios subagentes, y un subagente en la tercera capa no puede generar más; establece `1` para desactivar el anidamiento. De la v2.1.217 a la v2.1.218, el 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 predeterminado a 3. Acepta un número entero positivo en 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 |337| `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 |

333| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Número máximo de herramientas de solo lectura y subagentes que se pueden ejecutar en paralelo (predeterminado: 10). Los valores más altos aumentan el paralelismo pero consumen más recursos |338| `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 |

334| `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 es un entero positivo se rechaza al inicio con un error en lugar de tratarse como sin límite |339| `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 |

335| `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 siguientes llamadas a WebSearch devuelven un aviso que le indica continuar 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 |340| `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 |

336| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Establece 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 |341| `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 |

337| `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). Establece en `0` para desactivar el paso automático a segundo plano. Requiere Claude Code v2.1.212 o posterior |342| `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 |

338| `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 todavía 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. Establece 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 |343| `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 todavía 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. 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 |

339| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | Tiempo de espera por inactividad en milisegundos para las llamadas a herramientas MCP. Cuando un servidor MCP stdio, HTTP, SSE, WebSocket o de [conector de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai) no envía ninguna respuesta ni notificación de progreso durante este tiempo, la llamada a herramienta se aborta con un error en lugar de esperar al `MCP_TOOL_TIMEOUT` general. Sobrescribe los valores predeterminados por transporte de 300000 (5 minutos) para servidores de red y 1800000 (30 minutos) para servidores stdio. Establece en `0` para desactivar la comprobación de inactividad. Los valores inferiores a 1000 se elevan a un segundo, y el valor se limita al `MCP_TOOL_TIMEOUT` efectivo. Un `timeout` por servidor en `.mcp.json` de al menos 1000 eleva la ventana de inactividad de ese servidor como mínimo al valor de `timeout`. No se aplica a los servidores del IDE ni a los servidores en proceso del SDK. Requiere Claude Code v2.1.187 o posterior. Antes de la v2.1.203, los servidores stdio estaban exentos del tiempo de espera por inactividad |344| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | Tiempo de espera por inactividad en milisegundos para las llamadas a herramientas MCP. Cuando un servidor MCP stdio, HTTP, SSE, WebSocket o de [conector de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai) no envía ninguna respuesta ni ninguna notificación de progreso durante este tiempo, la llamada a herramienta se aborta con un error en lugar de esperar el `MCP_TOOL_TIMEOUT` general. Sobrescribe los valores predeterminados por transporte de 300000 (5 minutos) para servidores de red y 1800000 (30 minutos) para servidores stdio. Establécela en `0` para deshabilitar la comprobación de inactividad. Los valores inferiores a 1000 se elevan a un segundo, y el valor se limita al `MCP_TOOL_TIMEOUT` efectivo. Un `timeout` por servidor en `.mcp.json` de al menos 1000 eleva la ventana de inactividad de ese servidor a al menos el valor de `timeout`. No se aplica a servidores del IDE ni a servidores en proceso del SDK. Requiere Claude Code v2.1.187 o posterior. Antes de la v2.1.203, los servidores stdio estaban exentos del tiempo de espera por inactividad |

340| `CLAUDE_CODE_MESSAGING_SOCKET` | La establece Claude Code, no tú: en las sesiones que vinculan un [socket de bandeja de entrada](/docs/es/cross-session-messaging#the-sessions-inbox-socket), Claude Code exporta la ruta de ese socket a los hooks y comandos de Bash cuando vincula el socket. En una sesión que se inicia con la mensajería activada, Claude Code vincula el socket antes de que se ejecute cualquier hook. Otras sesiones en la máquina entregan mensajes a esta ruta. Cada sesión exporta su propio socket en lugar de uno heredado de un proceso padre, y los mensajes que llegan a él pasan por los [controles de entrada](/docs/es/cross-session-messaging#control-inbound-messages) de la sesión. Los bloques `env` de la configuración no pueden establecerla. Requiere Claude Code v2.1.224 o posterior |345| `CLAUDE_CODE_MESSAGING_SOCKET` | La establece Claude Code, no tú: en las sesiones que vinculan un [socket de bandeja de entrada](/docs/es/cross-session-messaging#the-sessions-inbox-socket), Claude Code exporta la ruta de ese socket a los hooks y a los comandos de Bash cuando vincula el socket. En una sesión que se inicia con la mensajería activada, Claude Code vincula el socket antes de que se ejecute cualquier hook. Otras sesiones de la máquina entregan mensajes a esta ruta. Cada sesión exporta su propio socket en lugar de uno heredado de un proceso padre, y los mensajes que llegan a él pasan por los [controles de entrada](/docs/es/cross-session-messaging#control-inbound-messages) de la sesión. Los bloques `env` de la configuración no pueden establecerla. Requiere Claude Code v2.1.224 o posterior |

341| `CLAUDE_CODE_MESSAGING_TOKEN` | La establece Claude Code, no tú: en las sesiones que vinculan un [socket de bandeja de entrada](/docs/es/cross-session-messaging#the-sessions-inbox-socket), Claude Code exporta este token por sesión a los hooks y comandos de Bash junto con `CLAUDE_CODE_MESSAGING_SOCKET`. Un script que publica en el socket puede enviar `{"type":"auth","token":"<token>"}` como su primera línea para demostrar que pertenece a la sesión. En Windows nativo, Claude Code requiere esta línea y cierra cualquier conexión que no se abra con una válida. Las [reglas de procesos hijos propios](/docs/es/cross-session-messaging#the-sessions-inbox-socket) indican cuándo Claude Code consulta el token. Cada sesión exporta su propio token, nunca uno heredado de una sesión padre. Los bloques `env` de la configuración no pueden establecerla. Requiere Claude Code v2.1.228 o posterior |346| `CLAUDE_CODE_MESSAGING_TOKEN` | La establece Claude Code, no tú: en las sesiones que vinculan un [socket de bandeja de entrada](/docs/es/cross-session-messaging#the-sessions-inbox-socket), Claude Code exporta este token por sesión a los hooks y a los comandos de Bash junto con `CLAUDE_CODE_MESSAGING_SOCKET`. Un script que publica en el socket puede enviar `{"type":"auth","token":"<token>"}` como su primera línea para demostrar que pertenece a la sesión. En Windows nativo, Claude Code exige esta línea y cierra cualquier conexión que no comience con una válida. Las [reglas de procesos hijos propios](/docs/es/cross-session-messaging#the-sessions-inbox-socket) indican cuándo consulta Claude Code el token. Cada sesión exporta su propio token, nunca uno heredado de una sesión padre. Los bloques `env` de la configuración no pueden establecerla. Requiere Claude Code v2.1.228 o posterior |

342| `CLAUDE_CODE_NATIVE_CURSOR` | Establece en `1` para mostrar el cursor propio de la terminal en el punto de inserción de la entrada en lugar de un bloque dibujado. El cursor respeta la configuración de parpadeo, forma y foco de la terminal. Establecer `0` equivale a dejar la variable sin establecer, por lo que no restaura el bloque dibujado en una sesión donde el cursor propio de la terminal ya está activado |347| `CLAUDE_CODE_NATIVE_CURSOR` | Establécela en `1` para mostrar el cursor propio de la terminal en el punto de inserción de la entrada en lugar de un bloque dibujado. El cursor respeta la configuración de parpadeo, forma y foco de la terminal. Establecerla en `0` equivale a dejar la variable sin establecer, por lo que no recupera el bloque dibujado en una sesión donde el cursor propio de la terminal ya está activado |

343| `CLAUDE_CODE_NEW_INIT` | Establece en `1` para que `/init` ejecute un flujo de configuración interactivo. El flujo pregunta qué archivos generar, incluidos CLAUDE.md, skills y hooks, antes de explorar la base de código y escribirlos. Sin esta variable, `/init` genera un CLAUDE.md automáticamente sin preguntar |348| `CLAUDE_CODE_NEW_INIT` | Establécela en `1` para que `/init` ejecute un flujo de configuración interactivo. El flujo pregunta qué archivos generar, incluidos CLAUDE.md, skills y hooks, antes de explorar la base de código y escribirlos. Sin esta variable, `/init` genera un CLAUDE.md automáticamente sin preguntar |

344| `CLAUDE_CODE_NONBLOCKING_STDOUT` | Establece en `1` para escribir la salida de la terminal a través de un segundo descriptor de archivo no bloqueante, de modo que una terminal que deja de leer, como un panel de tmux en modo de control pausado o una conexión SSH detenida, no pueda congelar Claude Code a mitad de la sesión. Se aplica en macOS, Linux y WSL cuando stdout es una terminal. Requiere Claude Code v2.1.261 o posterior |349| `CLAUDE_CODE_NONBLOCKING_STDOUT` | Establécela en `1` para escribir la salida de la terminal a través de un segundo descriptor de archivo no bloqueante, de modo que una terminal que deja de leer, como un panel de tmux en modo de control en pausa o una conexión SSH detenida, no pueda congelar Claude Code a mitad de la sesión. Se aplica en macOS, Linux y WSL cuando stdout es una terminal. Requiere Claude Code v2.1.261 o posterior |

345| `CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES` | Limita cuántas veces Claude Code vuelve a enviar una [solicitud sin streaming](/docs/es/errors#streaming-response-ended-before-any-complete-data-was-received) cuyo tiempo de espera se agota. Con `0`, la solicitud falla la primera vez que se agota el tiempo de espera. Consulta [Ajustar el comportamiento de reintentos](/docs/es/errors#tune-retry-behavior) para conocer el tiempo de espera. Requiere Claude Code v2.1.285 o posterior |350| `CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES` | Limita cuántas veces Claude Code vuelve a enviar una [solicitud sin streaming](/docs/es/errors#streaming-response-ended-before-any-complete-data-was-received) cuyo tiempo de espera se agota. Con `0`, la solicitud falla al primer agotamiento del tiempo de espera. Consulta [Ajustar el comportamiento de reintento](/docs/es/errors#tune-retry-behavior) para el tiempo de espera. Requiere Claude Code v2.1.285 o posterior |

346| `CLAUDE_CODE_NO_FLICKER` | Establece en `1` para activar la [representación en pantalla completa](/docs/es/fullscreen), una vista previa de investigación que reduce el parpadeo y mantiene estable el uso de memoria en conversaciones largas. Sobrescribe el ajuste [`tui`](/docs/es/settings-reference#tui); también puedes cambiar con `/tui fullscreen` |351| `CLAUDE_CODE_NO_FLICKER` | Establécela en `1` para habilitar la [representación en pantalla completa](/docs/es/fullscreen), una vista previa de investigación que reduce el parpadeo y mantiene estable el uso de memoria en conversaciones largas. Sobrescribe el ajuste [`tui`](/docs/es/settings-reference#tui); también puedes cambiar con `/tui fullscreen` |

347| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | Token de actualización de OAuth para la autenticación de Claude.ai. Cuando se establece, `claude auth login` intercambia este token directamente en lugar de abrir un navegador. Requiere `CLAUDE_CODE_OAUTH_SCOPES`. Útil para aprovisionar la autenticación en entornos automatizados |352| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | Token de actualización de OAuth para la autenticación de Claude.ai. Cuando se establece, `claude auth login` intercambia este token directamente en lugar de abrir un navegador. Requiere `CLAUDE_CODE_OAUTH_SCOPES`. Útil para aprovisionar la autenticación en entornos automatizados |

348| `CLAUDE_CODE_OAUTH_SCOPES` | Alcances de OAuth separados por espacios con los que se emitió el token de actualización, como `"user:profile user:inference user:sessions:claude_code"`. Obligatoria cuando se establece `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` |353| `CLAUDE_CODE_OAUTH_SCOPES` | Alcances de OAuth separados por espacios con los que se emitió el token de actualización, como `"user:profile user:inference user:sessions:claude_code"`. Necesaria cuando se establece `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` |

349| `CLAUDE_CODE_OAUTH_TOKEN` | Token de acceso de OAuth para la autenticación de claude.ai. Alternativa a `/login` para el SDK y entornos automatizados. Tiene precedencia sobre las credenciales almacenadas en el llavero. Genera uno con [`claude setup-token`](/docs/es/authentication#generate-a-long-lived-token). A menos que ejecutes [`/login`](/docs/es/authentication#authentication-precedence), Claude Code usa el token que estableciste durante toda la sesión. Para reemplazar un token caducado, genera uno nuevo y reinicia |354| `CLAUDE_CODE_OAUTH_TOKEN` | Token de acceso de OAuth para la autenticación de claude.ai. Alternativa a `/login` para el SDK y entornos automatizados. Tiene precedencia sobre las credenciales almacenadas en el llavero. Genera uno con [`claude setup-token`](/docs/es/authentication#generate-a-long-lived-token). A menos que ejecutes [`/login`](/docs/es/authentication#authentication-precedence), Claude Code usa el token que estableces durante toda la sesión. Para reemplazar un token caducado, genera uno nuevo y reinicia |

350| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | Eliminada en la v2.1.160 y ahora no tiene efecto. Anteriormente fijaba el [modo rápido](/docs/es/fast-mode) en Claude Opus 4.6 en lugar del predeterminado actual. Opus 4.6 ya no admite el modo rápido |355| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | Eliminada en la v2.1.160 y ahora no tiene efecto. Antes fijaba el [modo rápido](/docs/es/fast-mode) en Claude Opus 4.6 en lugar del valor predeterminado actual. Opus 4.6 ya no admite el modo rápido |

351| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Longitud máxima de los atributos de OpenTelemetry que contienen contenido (respuestas del modelo, contenido de herramientas, prompts del sistema, cuerpos sin procesar de la API), incluido el marcador de truncamiento, en unidades de código UTF-16 (predeterminado: 61440, es decir, 60 KB). Auméntala solo si tu backend de telemetría acepta valores de atributo mayores de 64 KB, o redúcela para disminuir el volumen de telemetría. Requiere Claude Code v2.1.214 o posterior. Consulta [Monitoreo](/docs/es/monitoring-usage) |356| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Longitud máxima de los atributos de OpenTelemetry que contienen contenido (respuestas del modelo, contenido de herramientas, prompts del sistema, cuerpos sin procesar de la API), incluido el marcador de truncamiento, en unidades de código UTF-16 (predeterminado: 61440, es decir, 60 KB). Auméntala solo si tu backend de telemetría acepta valores de atributos de más de 64 KB, o redúcela para disminuir el volumen de telemetría. Requiere Claude Code v2.1.214 o posterior. Consulta [Monitoreo](/docs/es/monitoring-usage) |

352| `CLAUDE_CODE_OTEL_DIAG_STDERR` | Establece en `1` para escribir en stderr los errores de diagnóstico del exportador de OpenTelemetry. De forma predeterminada, estos errores solo aparecen con `--debug`, por lo que, de lo contrario, un exportador mal configurado, como en una colisión de puertos de Prometheus, falla silenciosamente. Requiere Claude Code v2.1.179 o posterior. Consulta [Monitoreo](/docs/es/monitoring-usage) |357| `CLAUDE_CODE_OTEL_DIAG_STDERR` | Establécela en `1` para escribir en stderr los errores de diagnóstico del exportador de OpenTelemetry. De forma predeterminada, estos errores solo aparecen con `--debug`, por lo que un exportador mal configurado, como una colisión de puertos de Prometheus, falla silenciosamente en otro caso. Requiere Claude Code v2.1.179 o posterior. Consulta [Monitoreo](/docs/es/monitoring-usage) |

353| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | Tiempo de espera en milisegundos para vaciar los spans pendientes de OpenTelemetry (predeterminado: 5000). Consulta [Monitoreo](/docs/es/monitoring-usage) |358| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | Tiempo de espera en milisegundos para vaciar los spans de OpenTelemetry pendientes (predeterminado: 5000). Consulta [Monitoreo](/docs/es/monitoring-usage) |

354| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Intervalo en milisegundos para actualizar los encabezados dinámicos de OpenTelemetry (predeterminado: 1740000 / 29 minutos). Consulta [Encabezados dinámicos](/docs/es/monitoring-usage#dynamic-headers) |359| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Intervalo para actualizar los encabezados dinámicos de OpenTelemetry en milisegundos (predeterminado: 1740000 / 29 minutos). Consulta [Encabezados dinámicos](/docs/es/monitoring-usage#dynamic-headers) |

355| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | Tiempo de espera en milisegundos para que el exportador de OpenTelemetry termine al apagarse (predeterminado: 2000). Auméntalo si se pierden métricas al salir. Consulta [Monitoreo](/docs/es/monitoring-usage) |360| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | Tiempo de espera en milisegundos para que el exportador de OpenTelemetry termine al apagarse (predeterminado: 2000). Auméntalo si se pierden métricas al salir. Consulta [Monitoreo](/docs/es/monitoring-usage) |

356| `CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS` | Retraso inicial en milisegundos, en lugar del predeterminado de 500, del backoff exponencial entre [reintentos automáticos](/docs/es/errors#tune-retry-behavior) de una solicitud que la API rechaza con un error `529` de sobrecarga. Auméntalo para distribuir los reintentos en un período más largo cuando la API está a plena capacidad. Indica milisegundos enteros de 500 a 32000 en dígitos simples; Claude Code trata cualquier otro valor como no establecido. No tiene efecto cuando `CLAUDE_CODE_RETRY_WATCHDOG` está establecida 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 |361| `CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS` | Retraso inicial en milisegundos, en lugar del predeterminado de 500, del backoff exponencial entre los [reintentos automáticos](/docs/es/errors#tune-retry-behavior) de una solicitud que la API rechaza con un error `529` de sobrecarga. Auméntalo para repartir los reintentos en un intervalo más largo cuando la API está al límite de su capacidad. Indica milisegundos enteros de 500 a 32000 con dígitos simples; Claude Code trata cualquier otro valor como no establecido. No tiene efecto cuando `CLAUDE_CODE_RETRY_WATCHDOG` está establecida 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 |

357| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Establece en `1` para permitir que Claude Code ejecute el comando de actualización de tu gestor de paquetes en segundo plano cuando haya una nueva versión disponible. Se aplica a las instalaciones de Homebrew y WinGet. Otros gestores de paquetes siguen mostrando el comando de actualización sin ejecutarlo. Consulta [Actualizaciones automáticas](/docs/es/setup#auto-updates) |362| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Establécela en `1` para permitir que Claude Code ejecute en segundo plano el comando de actualización de tu gestor de paquetes cuando haya una nueva versión disponible. Se aplica a las instalaciones con Homebrew y WinGet. Los demás gestores de paquetes siguen mostrando el comando de actualización sin ejecutarlo. Consulta [Actualizaciones automáticas](/docs/es/setup#auto-updates) |

358| `CLAUDE_CODE_PERFORCE_MODE` | Establece en `1` para activar la protección contra escritura compatible con Perforce. Cuando se establece, Edit, Write y NotebookEdit fallan con una sugerencia `p4 edit <file>` si el archivo de destino no tiene el bit de escritura del propietario, que Perforce borra en los archivos sincronizados hasta que `p4 edit` los abre. Esto evita que Claude Code eluda el seguimiento de cambios de Perforce |363| `CLAUDE_CODE_PERFORCE_MODE` | Establécela en `1` para habilitar la protección contra escritura compatible con Perforce. Cuando se establece, Edit, Write y NotebookEdit fallan con una indicación de `p4 edit <file>` si el archivo de destino no tiene el bit de escritura del propietario, que Perforce borra en los archivos sincronizados hasta que `p4 edit` los abre. Esto impide que Claude Code eluda el seguimiento de cambios de Perforce |

359| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Sobrescribe el directorio raíz de los plugins. A pesar del nombre, esto establece el directorio padre, no la caché en sí: los marketplaces y la caché de plugins se encuentran en subdirectorios de esta ruta. El valor predeterminado es `~/.claude/plugins` |364| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Sobrescribe el directorio raíz de los plugins. A pesar del nombre, establece el directorio padre, no la caché en sí: los marketplaces y la caché de plugins se encuentran en subdirectorios de esta ruta. El valor predeterminado es `~/.claude/plugins` |

360| `CLAUDE_CODE_PLUGIN_DIRS` | Directorios de plugins que se cargan para la sesión, cada uno cargado de la misma forma en que lo carga un flag [`--plugin-dir`](/docs/es/plugins/cli-reference#flags-that-load-a-plugin-for-one-session). Separa varias rutas con `:` en Unix o `;` en Windows. Indica cada ruta como una ruta absoluta o comiénzala con `~`, porque Claude Code omite las rutas relativas. Requiere Claude Code v2.1.280 o posterior. Consulta [Cargar un plugin para una sesión](/docs/es/plugins/create#load-a-directory-or-archive-for-one-session) |365| `CLAUDE_CODE_PLUGIN_DIRS` | Directorios de plugins que se cargan para la sesión, cada uno cargado de la misma forma que lo carga un flag [`--plugin-dir`](/docs/es/plugins/cli-reference#flags-that-load-a-plugin-for-one-session). Separa varias rutas con `:` en Unix o `;` en Windows. Indica cada ruta como ruta absoluta o comienza con `~`, porque Claude Code omite las rutas relativas. Requiere Claude Code v2.1.280 o posterior. Consulta [Cargar un plugin para una sesión](/docs/es/plugins/create#load-a-directory-or-archive-for-one-session) |

361| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | Controla si Claude Code recarga un [mod](/docs/es/plugins/mods/overview) cuando cambian los archivos del mod. La recarga se aplica a un mod que cargas desde un directorio con `--plugin-dir`, y está activada de forma predeterminada en las sesiones interactivas. Establece en `1` para activarla también en sesiones no interactivas, o en `0` para desactivarla en todas las sesiones. Requiere Claude Code v2.1.287 o posterior. Consulta [configuración y variables de entorno de los mods](/docs/es/plugins/mods/reference#settings-and-environment-variables) |366| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | Controla si Claude Code recarga un [mod](/docs/es/plugins/mods/overview) cuando cambian los archivos del mod. La recarga se aplica a un mod que cargas desde un directorio con `--plugin-dir`, y está activada de forma predeterminada en sesiones interactivas. Establécela en `1` para activarla también en sesiones no interactivas, o en `0` para desactivarla en todas las sesiones. Requiere Claude Code v2.1.287 o posterior. Consulta [configuración y variables de entorno de los mods](/docs/es/plugins/mods/reference#settings-and-environment-variables) |

362| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Tiempo de espera en milisegundos para clonar o actualizar un marketplace de plugins (predeterminado: 120000). Aumenta este valor para repositorios grandes o conexiones de red lentas. Consulta [Se agotó el tiempo de espera de git clone](/docs/es/plugins/troubleshooting#git-clone-timed-out-after-120s) |367| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Tiempo de espera en milisegundos para clonar o actualizar un marketplace de plugins (predeterminado: 120000). Aumenta este valor para repositorios grandes o conexiones de red lentas. Consulta [Git clone timed out](/docs/es/plugins/troubleshooting#git-clone-timed-out-after-120s) |

363| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Establece en `1` para omitir el intento de volver a clonar y seguir usando el checkout existente del marketplace cuando una actualización del marketplace no puede acceder al remoto o autenticarse en él. Útil en entornos sin conexión o aislados donde volver a clonar fallaría de la misma forma. Consulta [Las actualizaciones del marketplace fallan en entornos sin conexión](/docs/es/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |368| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Establécela en `1` para omitir el intento de volver a clonar y seguir usando la copia existente del marketplace cuando una actualización del marketplace no puede alcanzar el remoto o autenticarse en él. Útil en entornos sin conexión o aislados donde volver a clonar fallaría de la misma manera. Consulta [Las actualizaciones del marketplace fallan en entornos sin conexión](/docs/es/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |

364| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Establece en `1` para clonar las fuentes abreviadas `owner/repo` de GitHub mediante HTTPS en lugar de SSH. Se aplica a la instalación y actualización de plugins, y a `/plugin marketplace add` y `update`. Útil en runners de CI, contenedores o cualquier entorno sin una clave SSH configurada para `github.com` |369| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Establécela en `1` para clonar las fuentes abreviadas `owner/repo` de GitHub mediante HTTPS en lugar de SSH. Se aplica a la instalación y actualización de plugins, y a `/plugin marketplace add` y `update`. Útil en runners de CI, contenedores o cualquier entorno sin una clave SSH configurada para `github.com` |

365| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Ruta a uno o más directorios semilla de plugins de solo lectura, separados por `:` en Unix o `;` en Windows. Úsala para incluir un directorio de plugins previamente poblado en una imagen de contenedor. Claude Code registra los marketplaces de estos directorios al inicio y usa los plugins almacenados previamente en caché sin volver a clonarlos. Consulta [Prepoblar plugins para contenedores](/docs/es/plugins/org#seed-containers-and-ci) |370| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Ruta a uno o más directorios semilla de plugins de solo lectura, separados por `:` en Unix o `;` en Windows. Úsala para incluir un directorio de plugins previamente poblado en una imagen de contenedor. Claude Code registra los marketplaces de estos directorios al inicio y usa los plugins almacenados previamente en caché sin volver a clonarlos. Consulta [Prepoblar plugins para contenedores](/docs/es/plugins/org#seed-containers-and-ci) |

366| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | Establece en `1` para que Claude Code deje de pasar `-ExecutionPolicy Bypass` al iniciar PowerShell para llamadas a herramientas, hooks y comandos de la línea de estado, y respete en su lugar la directiva de ejecución efectiva de la máquina. De forma predeterminada, Claude Code omite la directiva de ejecución en el alcance del proceso para que los scripts `.ps1` y las importaciones de módulos funcionen en instalaciones de Windows con Restricted como predeterminado. La omisión en el alcance del proceso nunca sobrescribe `MachinePolicy` ni `UserPolicy` de la directiva de grupo, independientemente de este ajuste |371| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | Establécela en `1` para que Claude Code deje de pasar `-ExecutionPolicy Bypass` al iniciar PowerShell para llamadas a herramientas, hooks y comandos de la línea de estado, y respete en su lugar la directiva de ejecución efectiva de la máquina. De forma predeterminada, Claude Code omite la directiva de ejecución en el alcance del proceso para que los scripts `.ps1` y las importaciones de módulos funcionen en instalaciones de Windows con la directiva Restricted predeterminada. La omisión en el alcance del proceso nunca sobrescribe las directivas de grupo `MachinePolicy` ni `UserPolicy`, independientemente de este ajuste |

367| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | Límite máximo en milisegundos de la espera inactiva por el trabajo en segundo plano, como subagentes y flujos de trabajo, después del turno final en [modo no interactivo](/docs/es/headless#background-tasks-at-exit) con el flag `-p`. La espera inactiva se reinicia cada vez que Claude toma un turno para manejar un resultado en segundo plano. Predeterminado: `600000`, o 10 minutos. Cuando la espera inactiva alcanza el límite, Claude Code deja de esperar las tareas en segundo plano restantes. Un comando en segundo plano en ejecución que inició la conversación principal mantiene la ejecución abierta más allá de él. Establece en `0` para esperar indefinidamente. Requiere Claude Code v2.1.182 o posterior |372| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | Límite máximo en milisegundos de la espera inactiva por el trabajo en segundo plano, como subagentes y flujos de trabajo, después del turno final en [modo no interactivo](/docs/es/headless#background-tasks-at-exit) con el flag `-p`. La espera inactiva se reinicia cada vez que Claude toma un turno para manejar un resultado en segundo plano. Predeterminado: `600000`, o 10 minutos. Cuando la espera inactiva alcanza el límite, Claude Code deja de esperar las tareas en segundo plano restantes. Un comando en segundo plano en ejecución que inició la conversación principal mantiene la ejecución abierta más allá de ese límite. Establécela en `0` para esperar indefinidamente. Requiere Claude Code v2.1.182 o posterior |

368| `CLAUDE_CODE_PROCESS_WRAPPER` | Inicia los procesos que Claude Code lanza desde su propio binario, como el servicio en segundo plano que aloja las sesiones de la [vista de agentes](/docs/es/agent-view), a través de un lanzador corporativo indicado como prefijo de argv, como `/opt/corp/launcher`. Establécela en el bloque `env` de la configuración de usuario o de la [configuración administrada](/docs/es/managed-settings), no como una exportación del shell, para que el servicio en segundo plano desvinculado la herede; la configuración de proyecto y local no puede establecerla. Equivale al [ajuste `processWrapper`](/docs/es/settings-reference#processwrapper), que requiere Claude Code v2.1.210 o posterior; esta variable tiene precedencia cuando ambos están establecidos. La extensión de VS Code configura su propio lanzador por separado mediante su ajuste `claudeProcessWrapper`. Se ignora en Windows. Consulta [Ejecutar Claude Code detrás de un lanzador corporativo](/docs/es/corporate-launcher) para conocer el formato del valor, lo que cubre el lanzador y el contrato que debe cumplir el lanzador. Requiere Claude Code v2.1.208 o posterior |373| `CLAUDE_CODE_PROCESS_WRAPPER` | Inicia los procesos que Claude Code lanza desde su propio binario, como el servicio en segundo plano que aloja las sesiones de [agent view](/docs/es/agent-view), a través de un lanzador corporativo indicado como prefijo de argv, como `/opt/corp/launcher`. Establécela en el bloque `env` de la configuración de usuario o de la [configuración administrada](/docs/es/managed-settings), no como una exportación del shell, para que el servicio en segundo plano desacoplado la herede; la configuración de proyecto y local no puede establecerla. Equivale al [ajuste `processWrapper`](/docs/es/settings-reference#processwrapper), que requiere Claude Code v2.1.210 o posterior; esta variable tiene precedencia cuando ambos están establecidos. La extensión de VS Code configura su propio lanzador por separado mediante su ajuste `claudeProcessWrapper`. Se ignora en Windows. Consulta [Ejecutar Claude Code detrás de un lanzador corporativo](/docs/es/corporate-launcher) para conocer el formato del valor, lo que abarca el lanzador y el contrato que debe cumplir. Requiere Claude Code v2.1.208 o posterior |

369| `CLAUDE_CODE_PROJECT_DIR_NAME` | Establécela junto con `CLAUDE_CONFIG_DIR` para elegir el nombre del directorio de `projects/` en el que Claude Code almacena las transcripciones y la memoria automática de esa sesión, en lugar de uno derivado de la ruta del directorio de trabajo. Por ejemplo, iniciar Claude Code con `CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude` las almacena en `/srv/tenant-a/projects/work/`. Claude Code ignora esta variable cuando `CLAUDE_CONFIG_DIR` no está establecida, y solo la lee del entorno desde el que inicias `claude`, nunca desde un [bloque `env` de un archivo de configuración](#in-settings-files). Consulta [Nombrar tú mismo el directorio del proyecto](/docs/es/sessions#name-the-project-directory-yourself). Requiere Claude Code v2.1.234 o posterior |374| `CLAUDE_CODE_PROJECT_DIR_NAME` | Establécela junto con `CLAUDE_CONFIG_DIR` para elegir el nombre del directorio dentro de `projects/` en el que Claude Code almacena las transcripciones y la memoria automática de esa sesión, en lugar de uno derivado de la ruta del directorio de trabajo. Por ejemplo, iniciar Claude Code con `CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude` las almacena en `/srv/tenant-a/projects/work/`. Claude Code ignora esta variable cuando `CLAUDE_CONFIG_DIR` no está establecida, y solo la lee del entorno desde el que inicias `claude`, nunca del [bloque `env` de un archivo de configuración](#in-settings-files). Consulta [Asignar tú mismo el nombre del directorio del proyecto](/docs/es/sessions#name-the-project-directory-yourself). Requiere Claude Code v2.1.234 o posterior |

370| `CLAUDE_CODE_PROMPT_CACHE_TTL` | Establece `5m` o `1h`, los únicos valores que acepta Claude Code, para elegir el [TTL de la caché de prompts](/docs/es/prompt-caching#cache-lifetime) de la conversación principal: tus turnos interactivos, de `-p` y del SDK, más los auxiliares que se ejecutan junto con ellos. Tiene precedencia sobre el ajuste `promptCacheTtl` y sobre `ENABLE_PROMPT_CACHING_1H`, y `FORCE_PROMPT_CACHING_5M` la sobrescribe. La API factura las escrituras en caché de 1 hora a una tarifa más alta. Requiere Claude Code v2.1.242 o posterior |375| `CLAUDE_CODE_PROMPT_CACHE_TTL` | Establece `5m` o `1h`, los únicos valores que acepta Claude Code, para elegir el [TTL de la caché de prompts](/docs/es/prompt-caching#cache-lifetime) de la conversación principal: tus turnos interactivos, de `-p` y del SDK, además de los auxiliares que se ejecutan en línea con ellos. Tiene precedencia sobre el ajuste `promptCacheTtl` y sobre `ENABLE_PROMPT_CACHING_1H`, y `FORCE_PROMPT_CACHING_5M` la sobrescribe. La API factura las escrituras de caché de 1 hora a una tarifa más alta. Requiere Claude Code v2.1.242 o posterior |

371| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | Establece en `1` para propagar el contexto de traza W3C cuando `ANTHROPIC_BASE_URL` apunta a un proxy personalizado. La propagación abarca el encabezado `traceparent` en las solicitudes al modelo y a MCP por HTTP, y la variable de entorno `TRACEPARENT` para los subprocesos de Bash, PowerShell y hooks. De forma predeterminada, la propagación solo está activada cuando hay una conexión directa a la Anthropic API. Se agregó en la v2.1.152. Consulta [Trazas (beta)](/docs/es/monitoring-usage#traces-beta) |376| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | Establécela en `1` para propagar el contexto de traza W3C cuando `ANTHROPIC_BASE_URL` apunta a un proxy personalizado. La propagación abarca el encabezado `traceparent` en las solicitudes al modelo y a MCP por HTTP, y la variable de entorno `TRACEPARENT` para los subprocesos de Bash, PowerShell y hooks. De forma predeterminada, la propagación solo está habilitada cuando hay una conexión directa a la API de Anthropic. Se agregó en la v2.1.152. Consulta [Trazas (beta)](/docs/es/monitoring-usage#traces-beta) |

372| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | La establecen las plataformas host que integran Claude Code y administran el enrutamiento del proveedor de modelos en su nombre. Cuando se establece, Claude Code ignora las variables de selección de proveedor, de endpoint y de autenticación, como `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL` y `ANTHROPIC_API_KEY`, en los archivos de configuración, para que la configuración de usuario no pueda sobrescribir el enrutamiento del host. Claude Code también ignora las claves de selección de modelo, como `model`, `fallbackModel` y `modelOverrides`, en la [configuración administrada](/docs/es/managed-settings), sea cual sea la fuente administrada que las entregue, para que la configuración de modelos del host tenga precedencia sobre una fijación de modelo administrada desactualizada. Claude Code también ignora las variables de selección de modelo, como `ANTHROPIC_MODEL` y la familia `ANTHROPIC_DEFAULT_*_MODEL`, en un bloque `env` administrado; una lista de permitidos [`availableModels`](/docs/es/model-config#restrict-model-selection) en la configuración administrada sigue aplicándose a menos que el host proporcione la suya. Claude Code también omite la exclusión automática de telemetría que aplica en otros casos en proveedores externos como Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform y Microsoft Foundry, por lo que la telemetría sigue la exclusión estándar de `DISABLE_TELEMETRY`. Consulta [Comportamientos predeterminados por proveedor de API](/docs/es/data-usage#default-behaviors-by-api-provider) |377| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | La establecen las plataformas anfitrionas que integran Claude Code y administran el enrutamiento del proveedor de modelos en su nombre. Cuando se establece, Claude Code ignora las variables de selección de proveedor, de endpoint y de autenticación, como `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL` y `ANTHROPIC_API_KEY`, en los archivos de configuración, por lo que la configuración de usuario no puede sobrescribir el enrutamiento del anfitrión. Claude Code también ignora las claves de selección de modelo, como `model`, `fallbackModel` y `modelOverrides`, en la [configuración administrada](/docs/es/managed-settings), sea cual sea la fuente administrada que las entregue, de modo que la configuración de modelos del anfitrión tiene precedencia sobre una fijación de modelo administrada desactualizada. Claude Code también ignora las variables de selección de modelo, como `ANTHROPIC_MODEL` y la familia `ANTHROPIC_DEFAULT_*_MODEL`, en un bloque `env` administrado; una lista de modelos permitidos [`availableModels`](/docs/es/model-config#restrict-model-selection) en la configuración administrada sigue aplicándose a menos que el anfitrión proporcione la suya. Claude Code también omite la exclusión automática de telemetría que aplica en otros casos en proveedores externos como Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform y Microsoft Foundry, por lo que la telemetría sigue la exclusión estándar de `DISABLE_TELEMETRY`. Consulta [Comportamientos predeterminados por proveedor de API](/docs/es/data-usage#default-behaviors-by-api-provider) |

373| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Establece en `1` para permitir que el proxy realice la resolución DNS en lugar del llamador. Opción para entornos donde el proxy debe encargarse de la resolución de nombres de host |378| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Establécela en `1` para permitir que el proxy realice la resolución DNS en lugar del llamador. Opción para entornos en los que el proxy debe encargarse de la resolución de nombres de host |

374| `CLAUDE_CODE_REMOTE` | Se establece automáticamente en `true` cuando Claude Code se ejecuta como una [sesión en la nube](/docs/es/claude-code-on-the-web). Léela desde un hook o un script de configuración para detectar si estás en una sesión en la nube |379| `CLAUDE_CODE_REMOTE` | Se establece automáticamente en `true` cuando Claude Code se ejecuta como una [sesión en la nube](/docs/es/claude-code-on-the-web). Léela desde un hook o un script de configuración para detectar si estás en una sesión en la nube |

375| `CLAUDE_CODE_REMOTE_SESSION_ID` | Se establece automáticamente en las [sesiones en la nube](/docs/es/claude-code-on-the-web) con el ID de la sesión actual. Léela para construir un enlace de vuelta a la transcripción de la sesión. Consulta [Enlazar la salida con la sesión](/docs/es/cloud-environments#link-output-back-to-the-session) |380| `CLAUDE_CODE_REMOTE_SESSION_ID` | Se establece automáticamente en las [sesiones en la nube](/docs/es/claude-code-on-the-web) con el ID de la sesión actual. Léela para construir un enlace de vuelta a la transcripción de la sesión. Consulta [Enlazar la salida de vuelta a la sesión](/docs/es/cloud-environments#link-output-back-to-the-session) |

376| `CLAUDE_CODE_RESTRICTED` | Establece en `1` para iniciar la sesión en modo restringido, lo mismo que pasar [`--restricted`](/docs/es/cli-reference#cli-flags). Claude Code ignora esta variable en el bloque `env` de un archivo de configuración. Requiere Claude Code v2.1.248 o posterior |381| `CLAUDE_CODE_RESTRICTED` | Establécela en `1` para iniciar la sesión en modo restringido, lo mismo que pasar [`--restricted`](/docs/es/cli-reference#cli-flags). Claude Code ignora esta variable en el bloque `env` de un archivo de configuración. Requiere Claude Code v2.1.248 o posterior |

377| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Establece en `1` para reanudar automáticamente si la sesión anterior terminó a mitad de un turno. Se usa en el modo SDK para que el modelo continúe sin que el SDK tenga que volver a enviar el prompt. Para desactivarlo, quita la variable o establécela en `0`. Para el panel de chat de VS Code, consulta [Continuar conversaciones después de recargar](/docs/es/vs-code#continue-conversations-after-a-reload) |382| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Establécela en `1` para reanudar automáticamente si la sesión anterior terminó a mitad de un turno. Se usa en el modo SDK para que el modelo continúe sin que el SDK tenga que volver a enviar el prompt. Para desactivarla, elimina la variable o establécela en `0`. Para el panel de chat de VS Code, consulta [Continuar conversaciones después de recargar](/docs/es/vs-code#continue-conversations-after-a-reload) |

378| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Antigüedad máxima en milisegundos del último mensaje de la transcripción para que una sesión que terminó a mitad de un turno continúe automáticamente al reanudarse. Cuando el último mensaje es más antiguo que este límite, Claude Code omite la reanudación automática de `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` y su mensaje de continuación `CLAUDE_CODE_RESUME_PROMPT`, y la sesión se inicia inactiva para que continúes explícitamente. Sin establecer o `0` significa sin límite, salvo que un turno cuya última solicitud falló con un error de la API solo se reanuda mientras ese error tenga menos de seis horas de antigüedad. Un valor positivo limita todos los turnos, incluidos esos; un valor negativo o no numérico aplica un límite de una hora. Los scripts de inicio de agentes de larga duración pueden establecerla para que un reinicio sobre una transcripción antigua no vuelva a ejecutar un prompt obsoleto. Claude Code establece por sí mismo un límite de una hora cuando reinicia una sesión de la [vista de agentes](/docs/es/agent-view) que falló y que heredó su conversación de una sesión interactiva. Requiere Claude Code v2.1.211 o posterior |383| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Antigüedad máxima en milisegundos del último mensaje de la transcripción para que una sesión que terminó a mitad de un turno continúe automáticamente al reanudarse. Cuando el último mensaje es más antiguo que este límite, Claude Code omite la reanudación automática de `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` y su mensaje de continuación `CLAUDE_CODE_RESUME_PROMPT`, y la sesión se inicia inactiva para que continúes de forma explícita. Sin establecer o `0` significa sin límite, salvo que un turno cuya última solicitud falló con un error de la API solo se reanuda mientras ese error tenga menos de seis horas de antigüedad. Un valor positivo limita todos los turnos, incluidos esos; un valor negativo o no numérico aplica un límite de una hora. Los scripts de inicio para agentes de larga duración pueden establecerla para que un reinicio sobre una transcripción antigua no vuelva a ejecutar un prompt obsoleto. Claude Code establece por sí mismo un límite de una hora cuando reinicia una sesión de [agent view](/docs/es/agent-view) que falló y que heredó su conversación de una sesión interactiva. Requiere Claude Code v2.1.211 o posterior |

379| `CLAUDE_CODE_RESUME_PROMPT` | Sobrescribe el mensaje de continuación que Claude Code envía a Claude cuando `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` continúa un turno interrumpido en lugar de volver a enviar su prompt, o cuando reanudas una [llamada a herramienta diferida](/docs/es/hooks#defer-a-tool-call-for-later) con `-p`. El valor predeterminado es `Continue from where you left off.`. Una cadena vacía usa el predeterminado |384| `CLAUDE_CODE_RESUME_PROMPT` | Sobrescribe el mensaje de continuación que Claude Code envía a Claude cuando `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` continúa un turno interrumpido en lugar de volver a enviar su prompt, o cuando reanudas una [llamada a herramienta diferida](/docs/es/hooks#defer-a-tool-call-for-later) con `-p`. El valor predeterminado es `Continue from where you left off.`. Una cadena vacía usa el valor predeterminado |

380| `CLAUDE_CODE_RETRY_WATCHDOG` | Establece en `1` para sesiones desatendidas, como harnesses de evaluación, trabajos de CI o workers remotos. Reintenta indefinidamente los errores de capacidad `429` y `529` en lugar de fallar después de `CLAUDE_CODE_MAX_RETRIES` intentos. Claude Code falla de inmediato cuando una solicitud de velocidad estándar recibe un `429` que informa de un límite de gasto o de créditos de uso agotados, incluso uno de un [límite de gasto del gateway](/docs/es/errors#spend-limit-reached) que se restablece según una programación. Antes de la v2.1.239, el watchdog los reintentaba indefinidamente. Para las solicitudes en modo rápido, consulta [Gestionar los rate limits](/docs/es/fast-mode#handle-rate-limits). El watchdog espera hasta 5 minutos entre intentos, o hasta que se restablezca el límite cuando la respuesta incluye una hora de restablecimiento del rate limit, por lo que una sesión que alcanza un límite de uso espera a que transcurra el período restante. En la v2.1.199 o posterior, también aumenta a 300 el número predeterminado de reintentos para otros errores transitorios, como errores del servidor, tiempos de espera agotados y conexiones perdidas, aproximadamente tres horas de backoff, y elimina el límite de 15 en `CLAUDE_CODE_MAX_RETRIES` si estableces esa variable explícitamente. Requiere Claude Code v2.1.186 o posterior |385| `CLAUDE_CODE_RETRY_WATCHDOG` | Establécela en `1` para sesiones desatendidas, como harnesses de evaluación, trabajos de CI o workers remotos. Reintenta indefinidamente los errores de capacidad `429` y `529` en lugar de fallar después de `CLAUDE_CODE_MAX_RETRIES` intentos. Claude Code falla de inmediato cuando una solicitud de velocidad estándar recibe un `429` que informa de un límite de gasto o de créditos de uso agotados, incluso uno de un [límite de gasto del gateway](/docs/es/errors#spend-limit-reached) que se restablece según un calendario. Antes de la v2.1.239, el watchdog reintentaba estos errores indefinidamente. Para las solicitudes en modo rápido, consulta [Manejar los rate limits](/docs/es/fast-mode#handle-rate-limits). El watchdog espera hasta 5 minutos entre intentos, o hasta que se restablezca el límite cuando la respuesta incluye una hora de restablecimiento del rate limit, de modo que una sesión que alcanza un límite de uso espera a que transcurra la ventana restante. En la v2.1.199 o posterior, también aumenta a 300 el número predeterminado de reintentos para otros errores transitorios, como errores del servidor, tiempos de espera agotados y conexiones interrumpidas, lo que equivale aproximadamente a tres horas de backoff, y elimina el límite de 15 en `CLAUDE_CODE_MAX_RETRIES` si estableces esa variable de forma explícita. Requiere Claude Code v2.1.186 o posterior |

381| `CLAUDE_CODE_SAFE_MODE` | Establece en `1` para iniciar en modo seguro: CLAUDE.md, skills, plugins, hooks, servidores MCP, comandos y agentes personalizados, estilos de salida, flujos de trabajo, temas personalizados, atajos de teclado personalizados, comandos de línea de estado y de sugerencia de archivos, servidores LSP y memoria automática no se cargan, para solucionar problemas de una configuración dañada. La política de configuración administrada sigue aplicándose, incluidos los hooks, la línea de estado y los comandos de sugerencia de archivos configurados por la política; los plugins administrados, los skills administrados, el CLAUDE.md administrado y los servidores MCP configurados por la política no. Equivale a pasar [`--safe-mode`](/docs/es/cli-reference#cli-flags). Los procesos hijos iniciados directamente heredan la variable |386| `CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS` | Tiempo máximo en milisegundos que cada solicitud a la API dedica a esperar a que pasen los errores `429` y `529` cuando `CLAUDE_CODE_RETRY_WATCHDOG` está establecida. Una vez agotado ese tiempo, el siguiente error de ese tipo termina la solicitud. Indica un número entero positivo con dígitos simples, como `1800000` para 30 minutos. Cuando no está establecida, la espera no tiene límite. Requiere Claude Code v2.1.295 o posterior |

382| `CLAUDE_CODE_SCRIPT_CAPS` | Objeto JSON que limita cuántas veces se pueden invocar scripts específicos por sesión cuando se establece `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`. Las claves son subcadenas que se comparan con el texto del comando; los valores son límites enteros de llamadas. Por ejemplo, `{"deploy.sh": 2}` permite llamar a `deploy.sh` como máximo dos veces. La coincidencia se basa en subcadenas, por lo que los trucos de expansión del shell como `./scripts/deploy.sh $(evil)` siguen contando para el límite. No se detecta la multiplicación en tiempo de ejecución mediante `xargs` o `find -exec`; este es un control de defensa en profundidad |387| `CLAUDE_CODE_SAFE_MODE` | Establécela en `1` para iniciar en modo seguro: CLAUDE.md, skills, plugins, hooks, servidores MCP, comandos y agentes personalizados, estilos de salida, flujos de trabajo, temas personalizados, atajos de teclado personalizados, comandos de la línea de estado y de sugerencia de archivos, servidores LSP y la memoria automática no se cargan, para solucionar problemas de una configuración rota. La política de configuración administrada sigue aplicándose, incluidos los hooks, la línea de estado y los comandos de sugerencia de archivos configurados por política; los plugins administrados, los skills administrados, el CLAUDE.md administrado y los servidores MCP configurados por política no se aplican. Equivale a pasar [`--safe-mode`](/docs/es/cli-reference#cli-flags). Los procesos hijos iniciados directamente heredan la variable |

383| `CLAUDE_CODE_SCROLL_SPEED` | Establece el multiplicador de desplazamiento de la rueda del mouse en la [representación en pantalla completa](/docs/es/fullscreen#mouse-wheel-scrolling). Acepta cualquier valor positivo hasta 20, incluidos valores fraccionarios menores que 1, como `0.5`, para ralentizar el desplazamiento acelerado del trackpad y de la rueda en terminales que ya amplifican los eventos de la rueda. Establece en `3` para igualar a `vim` si tu terminal envía un evento de rueda por muesca sin amplificación. Se ignora en la terminal del IDE de JetBrains, donde Claude Code usa su propio manejo del desplazamiento |388| `CLAUDE_CODE_SCRIPT_CAPS` | Objeto JSON que limita cuántas veces se pueden invocar scripts específicos por sesión cuando `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` está establecida. Las claves son subcadenas que se comparan con el texto del comando; los valores son límites enteros de llamadas. Por ejemplo, `{"deploy.sh": 2}` permite llamar a `deploy.sh` como máximo dos veces. La coincidencia se basa en subcadenas, por lo que trucos de expansión del shell como `./scripts/deploy.sh $(evil)` siguen contando para el límite. La ramificación en tiempo de ejecución mediante `xargs` o `find -exec` no se detecta; se trata de un control de defensa en profundidad |

384| `CLAUDE_CODE_SEND_FEEDBACK` | Establece en `0` para desactivar los [comentarios redactados por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior) en una sesión. Establece en `1` para activarlos donde tu cuenta ya tenga acceso; la variable no puede otorgar acceso por sí misma, y los demás interruptores que desactivan los comentarios, como `DISABLE_FEEDBACK_COMMAND` y el valor `off` del ajuste [`feedbackDrafts`](/docs/es/settings-reference#feedbackdrafts), siguen aplicándose |389| `CLAUDE_CODE_SCROLL_SPEED` | Establece el multiplicador de desplazamiento de la rueda del ratón en la [representación en pantalla completa](/docs/es/fullscreen#mouse-wheel-scrolling). Acepta cualquier valor positivo hasta 20, incluidos valores fraccionarios inferiores a 1, como `0.5`, para ralentizar el desplazamiento acelerado del trackpad y la rueda en terminales que ya amplifican los eventos de la rueda. Establécela en `3` para igualar a `vim` si tu terminal envía un evento de rueda por muesca sin amplificación. Se ignora en la terminal del IDE de JetBrains, donde Claude Code usa su propio manejo del desplazamiento |

385| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | Sobrescribe el presupuesto de tiempo en milisegundos para los hooks [SessionEnd](/docs/es/hooks#sessionend). El valor también es el tiempo de espera de cada hook que no establece su propio `timeout`. Se aplica al salir de la sesión, a `/clear` y al cambiar de sesión mediante `/resume` interactivo. De forma predeterminada, el presupuesto es de 1.5 segundos, elevado automáticamente al `timeout` por hook más alto configurado en los archivos de configuración, hasta 60 segundos. Los tiempos de espera de los hooks proporcionados por plugins no elevan el presupuesto |390| `CLAUDE_CODE_SEND_FEEDBACK` | Establécela en `0` para desactivar los [comentarios redactados por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior) en una sesión. Establécela en `1` para activarlos cuando tu cuenta ya tenga acceso; la variable no puede otorgar acceso por sí misma, y los demás interruptores que desactivan los comentarios, como `DISABLE_FEEDBACK_COMMAND` y el valor `off` del ajuste [`feedbackDrafts`](/docs/es/settings-reference#feedbackdrafts), siguen aplicándose |

386| `CLAUDE_CODE_SESSION_ID` | Se establece automáticamente con el ID de la sesión actual en los subprocesos de las herramientas Bash y PowerShell, en los subprocesos de [comandos de hooks](/docs/es/hooks) y en los subprocesos de [servidores MCP](/docs/es/mcp) stdio. Para Bash, PowerShell y los hooks, coincide con el campo `session_id` de la entrada JSON del hook y se actualiza con `/clear`. Un subproceso de servidor MCP conserva el ID con el que se inició. Con `--resume <session-id>` recibe el ID reanudado, igual que los hooks y Bash. Con `--continue` o `--resume` sin un ID explícito, puede recibir en su lugar el ID del inicio. Úsala para correlacionar scripts y herramientas externas con la sesión de Claude Code que los inició |391| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | Sobrescribe el presupuesto de tiempo en milisegundos para los hooks [SessionEnd](/docs/es/hooks#sessionend). El valor también es el tiempo de espera para cada hook que no establece su propio `timeout`. Se aplica al salir de la sesión, a `/clear` y al cambiar de sesión mediante `/resume` interactivo. De forma predeterminada, el presupuesto es de 1.5 segundos, y se eleva automáticamente al `timeout` por hook más alto configurado en los archivos de configuración, hasta 60 segundos. Los tiempos de espera de los hooks proporcionados por plugins no elevan el presupuesto |

387| `CLAUDE_CODE_SHELL` | Establece el shell que usa Claude Code para ejecutar los comandos de la herramienta Bash. Acepta una ruta a un binario de `bash` o `zsh`, por ejemplo `/opt/homebrew/bin/bash`. No se admiten otros shells, como `fish`. Si el valor no es una ruta funcional de `bash` o `zsh`, Claude Code lo ignora y recurre a la detección automática. La detección automática usa tu `$SHELL` cuando apunta a `bash` o `zsh`; de lo contrario, elige el primer `zsh` y luego el primer `bash` funcionales que encuentre en tu `PATH` y en las ubicaciones de instalación estándar |392| `CLAUDE_CODE_SESSION_ID` | Se establece automáticamente con el ID de la sesión actual en los subprocesos de las herramientas Bash y PowerShell, en los subprocesos de [comandos de hooks](/docs/es/hooks) y en los subprocesos de [servidores MCP](/docs/es/mcp) stdio. Para Bash, PowerShell y los hooks, coincide con el campo `session_id` de la entrada JSON de los hooks y se actualiza con `/clear`. Un subproceso de servidor MCP conserva el ID con el que se inició. Con `--resume <session-id>` recibe el ID reanudado, igual que los hooks y Bash. Con `--continue` o `--resume` sin un ID explícito, puede recibir en su lugar el ID inicial de arranque. Úsala para correlacionar scripts y herramientas externas con la sesión de Claude Code que los inició |

388| `CLAUDE_CODE_SHELL_PREFIX` | Prefijo de comando que envuelve los comandos de shell que inicia Claude Code: llamadas a la herramienta Bash, comandos de [hooks](/docs/es/hooks), comandos de [línea de estado](/docs/es/statusline) y comandos de inicio de [servidores MCP](/docs/es/mcp) stdio. Los hooks de PowerShell y los hooks en forma exec se ejecutan sin el prefijo. Útil para registro o auditoría. Establecer una ruta de ejecutable simple como `/path/to/logger.sh` ejecuta cada comando como `/path/to/logger.sh '<command>'`. El wrapper recibe la línea de comandos como un único argumento entrecomillado para el shell en `$1`, por lo que el wrapper debe volver a evaluar `$1` con un shell, por ejemplo `exec bash -c "$1"`. Tratar `$1` como una ruta de ejecutable simple rompe los servidores MCP stdio que pasan argumentos como `npx -y <package>`. Para las llamadas a la herramienta Bash, `$1` contiene la invocación completa del shell que arma Claude Code, incluida la configuración del entorno, no solo el comando que ejecutó Claude |393| `CLAUDE_CODE_SHELL` | Establece el shell que Claude Code usa para ejecutar los comandos de la herramienta Bash. Acepta una ruta a un binario de `bash` o `zsh`, por ejemplo `/opt/homebrew/bin/bash`. Otros shells, como `fish`, no son compatibles. Si el valor no es una ruta funcional de `bash` o `zsh`, Claude Code lo ignora y recurre a la detección automática. La detección automática usa tu `$SHELL` cuando apunta a `bash` o `zsh`; de lo contrario, elige el primer `zsh` y luego `bash` funcional que encuentre en tu `PATH` y en las ubicaciones de instalación estándar |

389| `CLAUDE_CODE_SIMPLE` | Establece en `1` para ejecutar con un prompt del sistema mínimo y solo las herramientas Bash, de lectura de archivos y de edición de archivos. Las herramientas MCP de `--mcp-config` siguen disponibles. Desactiva el descubrimiento automático de hooks, skills, comandos personalizados, subagentes, plugins instalados, servidores MCP, memoria automática y CLAUDE.md. Los skills de un directorio que pasas con `--add-dir` se siguen cargando. No se leen los tokens de OAuth ni las credenciales del llavero, por lo que la autenticación de Anthropic debe provenir de `ANTHROPIC_API_KEY` o de un `apiKeyHelper` en `--settings`. Equivale a pasar [`--bare`](/docs/es/headless#start-faster-with-bare-mode) |394| `CLAUDE_CODE_SHELL_PREFIX` | Prefijo de comando que envuelve los comandos de shell que inicia Claude Code: llamadas a la herramienta Bash, comandos de [hooks](/docs/es/hooks), comandos de la [línea de estado](/docs/es/statusline) y comandos de inicio de [servidores MCP](/docs/es/mcp) stdio. Los hooks de PowerShell y los hooks en forma exec se ejecutan sin el prefijo. Útil para registro o auditoría. Establecer una ruta de ejecutable simple, como `/path/to/logger.sh`, ejecuta cada comando como `/path/to/logger.sh '<command>'`. El wrapper recibe la línea de comandos como un único argumento entrecomillado para el shell en `$1`, por lo que el wrapper debe volver a evaluar `$1` con un shell, por ejemplo `exec bash -c "$1"`. Tratar `$1` como una ruta de ejecutable simple rompe los servidores MCP stdio que pasan argumentos como `npx -y <package>`. Para las llamadas a la herramienta Bash, `$1` contiene la invocación completa del shell que ensambla Claude Code, incluida la configuración del entorno, no solo el comando que ejecutó Claude |

390| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Elige entre el prompt del sistema completo de Claude Code y uno más corto con descripciones de herramientas abreviadas. Cuando no está establecida, Haiku 4.5, Sonnet 5, Opus 4.7 y los modelos anteriores de esas familias usan el prompt completo de forma predeterminada, y los modelos más recientes usan el más corto. Establece en `1` para usar el prompt más corto en cualquier modelo. Establece en `0`, `false`, `no` u `off` para usar el prompt completo en cualquier modelo, incluso donde un experimento o la configuración del servidor seleccionaría de otro modo el más corto. Cualquiera de los dos prompts mantiene el conjunto completo de herramientas, los hooks, los servidores MCP y el descubrimiento de CLAUDE.md |395| `CLAUDE_CODE_SIMPLE` | Establécela en `1` para ejecutar con un prompt del sistema mínimo y solo las herramientas Bash, de lectura de archivos y de edición de archivos. Las herramientas MCP de `--mcp-config` siguen disponibles. Deshabilita el descubrimiento automático de hooks, skills, comandos personalizados, subagentes, plugins instalados, servidores MCP, la memoria automática y CLAUDE.md. Los skills de un directorio que pases con `--add-dir` se siguen cargando. Los tokens de OAuth y las credenciales del llavero no se leen, por lo que la autenticación de Anthropic debe provenir de `ANTHROPIC_API_KEY` o de un `apiKeyHelper` en `--settings`. Equivale a pasar [`--bare`](/docs/es/headless#start-faster-with-bare-mode) |

396| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Elige entre el prompt del sistema completo de Claude Code y uno más corto con descripciones de herramientas abreviadas. Cuando no está establecida, Haiku 4.5, Sonnet 5, Opus 4.7 y los modelos anteriores de esas familias usan el prompt completo de forma predeterminada, y los modelos más recientes usan el más corto. Establécela en `1` para usar el prompt más corto en cualquier modelo. Establécela en `0`, `false`, `no` u `off` para usar el prompt completo en cualquier modelo, incluso cuando un experimento o la configuración del servidor seleccionaría de otro modo el más corto. Ambos prompts conservan el conjunto completo de herramientas, los hooks, los servidores MCP y el descubrimiento de CLAUDE.md |

391| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Omite la autenticación del lado del cliente para [Claude Platform on AWS](/docs/es/claude-platform-on-aws), para gateways que firman las solicitudes por sí mismos |397| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Omite la autenticación del lado del cliente para [Claude Platform on AWS](/docs/es/claude-platform-on-aws), para gateways que firman las solicitudes por sí mismos |

392| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | Establece en `1` para desactivar la caché en proceso de las credenciales resueltas desde la cadena predeterminada de proveedores de credenciales de AWS, de modo que Claude Code resuelva la cadena en cada solicitud a la API. Con la caché desactivada, un perfil respaldado por SSO solicita credenciales a IAM Identity Center en cada solicitud. 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 |398| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | Establécela en `1` para desactivar la caché en proceso de las credenciales resueltas desde la cadena de proveedores de credenciales predeterminada de AWS, de modo que Claude Code resuelva la cadena en cada solicitud a la API. Con la caché desactivada, un perfil respaldado por SSO solicita credenciales a IAM Identity Center en cada solicitud. 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 |

393| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Omite la autenticación de AWS para Amazon Bedrock (por ejemplo, al usar un gateway de LLM) |399| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Omite la autenticación de AWS para Amazon Bedrock (por ejemplo, al usar un gateway de LLM) |

394| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | Establece en `1` para tratar como disponible una comprobación fallida de disponibilidad del [modo rápido](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways), para redes que bloquean la solicitud directa de la comprobación a `api.anthropic.com`. Claude Code sigue respetando una respuesta de "disabled by your organization" |400| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | Establécela en `1` para tratar una comprobación fallida de disponibilidad del [modo rápido](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) como disponible, para redes que bloquean la solicitud directa de la comprobación a `api.anthropic.com`. Claude Code sigue respetando una respuesta de "deshabilitado por tu organización" |

395| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Establece en `1` para omitir la comprobación de disponibilidad del [modo rápido](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) del lado del cliente, para proxies que interceptan la solicitud de la comprobación en lugar de rechazarla. La API sigue rechazando las solicitudes en modo rápido cuando tu organización tiene el modo rápido desactivado |401| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Establécela en `1` para omitir la comprobación del lado del cliente de la disponibilidad del [modo rápido](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways), para proxies que interceptan la solicitud de la comprobación en lugar de rechazarla. La API sigue rechazando las solicitudes en modo rápido cuando tu organización tiene el modo rápido deshabilitado |

396| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Omite la autenticación de Azure para Microsoft Foundry, para un proxy o gateway que inyecta su propio encabezado `Authorization`. Claude Code envía las solicitudes sin una credencial de Azure y conserva el encabezado `Authorization` que proporcionas, por ejemplo mediante `ANTHROPIC_CUSTOM_HEADERS`. Se ignora cuando se establece `ANTHROPIC_FOUNDRY_API_KEY` o `ANTHROPIC_FOUNDRY_AUTH_TOKEN`. Antes de la v2.1.203, esta variable dejaba al cliente de Microsoft Foundry sin poder enviar solicitudes a menos que también se estableciera una clave de API |402| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Omite la autenticación de Azure para Microsoft Foundry, para un proxy o gateway que inyecta su propio encabezado `Authorization`. Claude Code envía las solicitudes sin una credencial de Azure y conserva el encabezado `Authorization` que proporcionas, por ejemplo mediante `ANTHROPIC_CUSTOM_HEADERS`. Se ignora cuando se establece `ANTHROPIC_FOUNDRY_API_KEY` o `ANTHROPIC_FOUNDRY_AUTH_TOKEN`. Antes de la v2.1.203, esta variable dejaba al cliente de Microsoft Foundry sin poder enviar solicitudes a menos que también se estableciera una clave de API |

397| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Omite la autenticación de AWS para Amazon Bedrock Mantle (por ejemplo, al usar un gateway de LLM) |403| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Omite la autenticación de AWS para Amazon Bedrock Mantle (por ejemplo, al usar un gateway de LLM) |

398| `CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY` | Las [comprobaciones de modelos al inicio](/docs/es/amazon-bedrock#startup-model-checks) en [Amazon Bedrock](/docs/es/amazon-bedrock) y [Google Cloud's Agent Platform](/docs/es/google-vertex-ai) recuerdan en esta máquina qué modelos encontraron que tu cuenta no puede invocar, durante un máximo de un día. Establece en `1` para desactivar esa memoria. Requiere Claude Code v2.1.285 o posterior |404| `CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY` | Las [comprobaciones de modelos al inicio](/docs/es/amazon-bedrock#startup-model-checks) en [Amazon Bedrock](/docs/es/amazon-bedrock) y [Google Cloud's Agent Platform](/docs/es/google-vertex-ai) recuerdan en esta máquina qué modelos encontraron que tu cuenta no puede invocar, durante hasta un día. Establécela en `1` para desactivar ese recuerdo. Requiere Claude Code v2.1.285 o posterior |

399| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | Establece en `1` para omitir la escritura del historial de prompts y de las transcripciones de sesión en el disco. Las sesiones iniciadas con esta variable establecida no aparecen en `--resume`, `--continue` ni en el historial de la flecha hacia arriba. Útil para sesiones efímeras con scripts |405| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | Establécela en `1` para omitir la escritura en disco del historial de prompts y de las transcripciones de sesión. Las sesiones iniciadas con esta variable establecida no aparecen en `--resume`, `--continue` ni en el historial de la flecha hacia arriba. Útil para sesiones efímeras con scripts |

400| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Omite la autenticación de Google para Google Cloud's Agent Platform (por ejemplo, al usar un gateway de LLM) |406| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Omite la autenticación de Google para Google Cloud's Agent Platform (por ejemplo, al usar un gateway de LLM) |

401| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | Establece en `1` para que una sesión iniciada con `--output-format stream-json` escriba un [mensaje de resultado que indica por qué Claude Code se negó a iniciarse](/docs/es/agent-sdk/typescript#startup_failure_reason) para los fallos de inicio que de otro modo terminan solo con stderr. Requiere Claude Code v2.1.274 o posterior |407| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | Establécela en `1` para que una sesión iniciada con `--output-format stream-json` escriba un [mensaje de resultado que indique por qué Claude Code se negó a iniciar](/docs/es/agent-sdk/typescript#startup_failure_reason) para los fallos de inicio que de otro modo terminan solo con stderr. Requiere Claude Code v2.1.274 o posterior |

402| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | Número máximo de veces consecutivas que un hook [Stop](/docs/es/hooks#stop) o [SubagentStop](/docs/es/hooks#subagentstop) puede impedir que termine el turno antes de que Claude Code lo sobrescriba y termine el turno de todos modos (predeterminado: 8). Establece en `0` para desactivar el límite. Auméntalo si tu hook necesita legítimamente más iteraciones para resolverse |408| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | Número máximo de veces consecutivas que un hook [Stop](/docs/es/hooks#stop) o [SubagentStop](/docs/es/hooks#subagentstop) puede impedir que termine el turno antes de que Claude Code lo sobrescriba y termine el turno de todos modos (predeterminado: 8). Establécela en `0` para deshabilitar el límite. Auméntala si tu hook necesita legítimamente más iteraciones para resolverse |

403| `CLAUDE_CODE_SUBAGENT_MODEL` | El modelo predeterminado para los [subagentes](/docs/es/sub-agents#choose-a-model), los compañeros de un [equipo de agentes](/docs/es/agent-teams#specify-teammates-and-models) y los agentes de [flujos de trabajo](/docs/es/workflows) a los que no se asigna un modelo de otra forma. Acepta un alias como `haiku` o un nombre de modelo completo. Dos fuentes tienen precedencia sobre ella: un modelo que Claude pasa al generar el agente y un campo `model` en la definición del agente, incluido `inherit`. Para cambiar eso, establece [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/es/sub-agents#run-every-subagent-on-one-model). Consulta [Elegir un modelo](/docs/es/sub-agents#choose-a-model) para ver el orden completo. Establecerla en `inherit` es lo mismo que dejarla sin establecer. Antes de la v2.1.251, esta variable sobrescribía tanto el modelo por invocación como el campo `model` de la definición |409| `CLAUDE_CODE_SUBAGENT_MODEL` | El modelo predeterminado para los [subagentes](/docs/es/sub-agents#choose-a-model), los compañeros de un [equipo de agentes](/docs/es/agent-teams#specify-teammates-and-models) y los agentes de [flujos de trabajo](/docs/es/workflows) a los que no se les asigna un modelo de otra manera. Acepta un alias como `haiku` o un nombre de modelo completo. Dos fuentes tienen precedencia sobre ella: un modelo que Claude pasa cuando genera el agente y un campo `model` en la definición del agente, incluido `inherit`. Para cambiar eso, establece [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/es/sub-agents#run-every-subagent-on-one-model). Consulta [Elegir un modelo](/docs/es/sub-agents#choose-a-model) para ver el orden completo. Establecerla en `inherit` es lo mismo que dejarla sin establecer. Antes de la v2.1.251, esta variable sobrescribía tanto el modelo por invocación como el campo `model` de la definición |

404| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | Establece en `1` para forzar un único modelo en los subagentes, los compañeros de equipo y los agentes de flujos de trabajo. [Ejecutar todos los subagentes en un modelo](/docs/es/sub-agents#run-every-subagent-on-one-model) indica qué modelo es. Requiere Claude Code v2.1.257 o posterior |410| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | Establécela en `1` para forzar un único modelo en los subagentes, los compañeros de equipo y los agentes de flujos de trabajo. [Ejecutar todos los subagentes con un solo modelo](/docs/es/sub-agents#run-every-subagent-on-one-model) indica cuál es ese modelo. Requiere Claude Code v2.1.257 o posterior |

405| `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` | Establece `5m` o `1h`, los únicos valores que acepta Claude Code, para elegir el [TTL de la caché de prompts](/docs/es/prompt-caching#cache-lifetime) para las solicitudes fuera de la conversación principal, como [subagentes](/docs/es/sub-agents), flujos de trabajo y trabajo en segundo plano. Tiene precedencia sobre el ajuste `subagentPromptCacheTtl` y sobre `ENABLE_PROMPT_CACHING_1H`, y `FORCE_PROMPT_CACHING_5M` la sobrescribe. La API factura las escrituras en caché de 1 hora a una tarifa más alta. Requiere Claude Code v2.1.242 o posterior |411| `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` | Establece `5m` o `1h`, los únicos valores que acepta Claude Code, para elegir el [TTL de la caché de prompts](/docs/es/prompt-caching#cache-lifetime) de las solicitudes fuera de la conversación principal, como los [subagentes](/docs/es/sub-agents), los flujos de trabajo y el trabajo en segundo plano. Tiene precedencia sobre el ajuste `subagentPromptCacheTtl` y sobre `ENABLE_PROMPT_CACHING_1H`, y `FORCE_PROMPT_CACHING_5M` la sobrescribe. La API factura las escrituras de caché de 1 hora a una tarifa más alta. Requiere Claude Code v2.1.242 o posterior |

406| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Establece en `1` para eliminar las credenciales de los entornos de los subprocesos que inicia Claude Code, como comandos de Bash, hooks y servidores MCP stdio. La limpieza reconoce una credencial por el nombre de su variable o por su valor, y deja intactos los tokens de GitHub y la configuración del proxy. Consulta [Qué elimina la limpieza del entorno de los subprocesos](#what-the-subprocess-environment-scrub-removes). `claude-code-action` la establece automáticamente cuando se configura `allowed_non_write_users` |412| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Establécela en `1` para eliminar las credenciales de los entornos de los subprocesos que inicia Claude Code, como los comandos de Bash, los hooks y los servidores MCP stdio. La limpieza reconoce una credencial por el nombre de su variable o por su valor, y deja en su lugar los tokens de GitHub y la configuración del proxy. Consulta [Qué elimina la limpieza del entorno de los subprocesos](#what-the-subprocess-environment-scrub-removes). `claude-code-action` la establece automáticamente cuando se configura `allowed_non_write_users` |

407| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Establece en `1` en modo no interactivo (el flag `-p`) para esperar a que se complete la instalación de plugins antes de la primera consulta. Sin esto, los plugins se instalan en segundo plano y puede que no estén disponibles en el primer turno. Combínala con `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` para limitar la espera |413| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Establécela en `1` en modo no interactivo (el flag `-p`) para esperar a que se complete la instalación de plugins antes de la primera consulta. Sin esto, los plugins se instalan en segundo plano y es posible que no estén disponibles en el primer turno. Combínala con `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` para limitar la espera |

408| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | Tiempo de espera en milisegundos para la instalación síncrona de plugins. Cuando se supera, Claude Code continúa sin plugins y registra un error. Sin valor predeterminado: sin esta variable, la instalación síncrona espera hasta completarse |414| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | Tiempo de espera en milisegundos para la instalación síncrona de plugins. Cuando se supera, Claude Code continúa sin plugins y registra un error. Sin valor predeterminado: sin esta variable, la instalación síncrona espera hasta completarse |

409| `CLAUDE_CODE_SYNC_SKILLS` | Establece en `1` en modo no interactivo con el flag `-p` para que Claude Code descargue los skills activados para tu cuenta de claude.ai en esa ejecución y espere su lista, hasta `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS`, antes de ejecutar la primera consulta. Requiere autenticación de claude.ai. Las sesiones de terminal en las que inicias sesión con tu cuenta de claude.ai [sincronizan estos skills](/docs/es/skills#where-synced-skills-load) sin esta variable, así que establécela solo cuando una ejecución con `-p` necesite tus skills actuales en su primera consulta |415| `CLAUDE_CODE_SYNC_SKILLS` | Establécela en `1` en modo no interactivo con el flag `-p` para que Claude Code descargue en esa ejecución los skills habilitados para tu cuenta de claude.ai y espere la lista de ellos, hasta `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS`, antes de ejecutar la primera consulta. Requiere autenticación de claude.ai. Las sesiones de terminal en las que inicias sesión con tu cuenta de claude.ai [sincronizan estos skills](/docs/es/skills#where-synced-skills-load) sin esta variable, así que establécela solo cuando una ejecución con `-p` necesite tus skills actuales en su primera consulta |

410| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | Tiempo de espera en milisegundos para la resincronización de skills que se ejecuta a mitad de la sesión cuando una aplicación creada con el [Agent SDK](/docs/es/agent-sdk/typescript#query-object) recarga los skills (predeterminado: 30000). Cuando se supera, la recarga continúa con los skills que hayan llegado, y las descargas restantes terminan en segundo plano |416| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | Tiempo de espera en milisegundos para la resincronización de skills que se ejecuta a mitad de la sesión cuando una aplicación creada con el [Agent SDK](/docs/es/agent-sdk/typescript#query-object) recarga los skills (predeterminado: 30000). Cuando se supera, la recarga continúa con los skills que hayan llegado, y las descargas restantes terminan en segundo plano |

411| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Tiempo de espera en milisegundos durante el cual la primera consulta espera la lista inicial de skills cuando se establece `CLAUDE_CODE_SYNC_SKILLS` (predeterminado: 5000). Cuando se supera, la primera consulta se ejecuta con los skills que hayan llegado. Las descargas terminan en segundo plano en cualquier caso, y Claude espera la descarga de un skill cuando invoca ese skill |417| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Tiempo de espera en milisegundos durante el cual la primera consulta espera la lista inicial de skills cuando `CLAUDE_CODE_SYNC_SKILLS` está establecida (predeterminado: 5000). Cuando se supera, la primera consulta se ejecuta con los skills que hayan llegado. Las descargas terminan en segundo plano en cualquier caso, y Claude espera la descarga de un skill cuando invoca ese skill |

412| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Establece en `false` para desactivar el resaltado de sintaxis en la salida de diffs. Útil cuando los colores interfieren con la configuración de tu terminal. Para desactivar también el resaltado en bloques de código y vistas previas de archivos, usa el ajuste [`syntaxHighlightingDisabled`](/docs/es/settings-reference#syntaxhighlightingdisabled) |418| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Establécela en `false` para deshabilitar el resaltado de sintaxis en la salida de diff. Útil cuando los colores interfieren con la configuración de tu terminal. Para deshabilitar también el resaltado en los bloques de código y en las vistas previas de archivos, usa el ajuste [`syntaxHighlightingDisabled`](/docs/es/settings-reference#syntaxhighlightingdisabled) |

413| `CLAUDE_CODE_TASK_LIST_ID` | Comparte una lista de tareas entre sesiones. Establece el mismo ID en varias instancias de Claude Code para coordinarse en una lista de tareas compartida, en las [sesiones que tienen las herramientas Task](/docs/es/tools-reference#task-tool-availability). Consulta [Lista de tareas](/docs/es/interactive-mode#task-list) |419| `CLAUDE_CODE_TASK_LIST_ID` | Comparte una lista de tareas entre sesiones. Establece el mismo ID en varias instancias de Claude Code para coordinarse en una lista de tareas compartida, en [sesiones que tienen las herramientas Task](/docs/es/tools-reference#task-tool-availability). Consulta [Lista de tareas](/docs/es/interactive-mode#task-list) |

414| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | Sobrescribe, en milisegundos, cuánto tiempo espera una sesión no interactiva al salir a que su [equipo de agentes](/docs/es/agent-teams) termine de desmantelarse. Acepta de 1000 a 60000; un valor fuera de rango se ignora y se aplica el predeterminado de 10000. Requiere Claude Code v2.1.206 o posterior |420| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | Sobrescribe, en milisegundos, cuánto tiempo espera una sesión no interactiva al salir a que su [equipo de agentes](/docs/es/agent-teams) termine de desmontarse. Acepta de 1000 a 60000; un valor fuera de rango se ignora y se aplica el predeterminado de 10000. Requiere Claude Code v2.1.206 o posterior |

415| `CLAUDE_CODE_TMPDIR` | Sobrescribe el directorio temporal usado para los archivos temporales internos. Claude Code agrega `/claude-{uid}/` a esta ruta en Unix, o `/claude/` en Windows. Predeterminado: `/tmp` en macOS, `os.tmpdir()` en Linux y Windows. En macOS y Linux, los subprocesos de Bash en [sandbox](/docs/es/sandboxing) reciben un `$TMPDIR` de respaldo corto bajo el predeterminado del sistema cuando tu sobrescritura es una ruta larga, ya que algunas herramientas fallan cuando las rutas temporales son demasiado largas. Los comandos de Bash sin sandbox heredan el `$TMPDIR` de tu shell cuando está establecido. En Windows nativo, cuando tu shell no establece `$TMPDIR`, un comando de Bash que hace referencia a `$TMPDIR` recibe tu sobrescritura, o `%TEMP%` cuando no estableciste una. Los propios archivos temporales de Claude Code siempre usan tu sobrescritura. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |421| `CLAUDE_CODE_TMPDIR` | Sobrescribe el directorio temporal que se usa para los archivos temporales internos. Claude Code agrega `/claude-{uid}/` a esta ruta en Unix, o `/claude/` en Windows. Predeterminado: `/tmp` en macOS, `os.tmpdir()` en Linux y Windows. En macOS y Linux, los subprocesos de Bash [en sandbox](/docs/es/sandboxing) reciben un `$TMPDIR` de respaldo corto bajo el directorio predeterminado del sistema cuando tu sobrescritura es una ruta larga, ya que algunas herramientas fallan cuando las rutas temporales son demasiado largas. Los comandos de Bash sin sandbox heredan el `$TMPDIR` de tu shell cuando está establecido. En Windows nativo, cuando tu shell no establece `$TMPDIR`, un comando de Bash que hace referencia a `$TMPDIR` recibe tu sobrescritura, o `%TEMP%` cuando no has establecido una. Los archivos temporales propios de Claude Code siempre usan tu sobrescritura. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |

416| `CLAUDE_CODE_TMUX_TRUECOLOR` | Establécela en cualquier valor no vacío, como `1`, para permitir la salida truecolor de 24 bits dentro de tmux. **Establecerla en `0` o `false` sigue permitiendo truecolor**, a diferencia de la mayoría de las variables de activación y desactivación; quita la variable para restaurar la limitación a 256 colores. De forma predeterminada, Claude Code se limita a 256 colores cuando `$TMUX` está establecida porque tmux no transmite las secuencias de escape truecolor a menos que esté configurado para hacerlo. Establécela después de agregar `set -ga terminal-overrides ',*:Tc'` a tu `~/.tmux.conf`. Consulta [Configuración de la terminal](/docs/es/terminal-config) para ver otros ajustes de tmux |422| `CLAUDE_CODE_TMUX_TRUECOLOR` | Establécela en cualquier valor no vacío, como `1`, para permitir la salida de color verdadero de 24 bits dentro de tmux. **Establecerla en `0` o `false` sigue permitiendo el color verdadero**, a diferencia de la mayoría de las variables de activación/desactivación; elimina la variable para restaurar la limitación a 256 colores. De forma predeterminada, Claude Code se limita a 256 colores cuando `$TMUX` está establecida, porque tmux no transmite las secuencias de escape de color verdadero a menos que esté configurado para ello. Establécela después de agregar `set -ga terminal-overrides ',*:Tc'` a tu `~/.tmux.conf`. Consulta [Configuración de la terminal](/docs/es/terminal-config) para ver otros ajustes de tmux |

417| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | En Linux y WSL, establécela en una lista separada por comas de los tipos de procesos que Claude Code [excluye del límite de memoria de herramientas](/docs/es/tools-reference#memory-limit-on-linux-and-wsl), como `mcp` o `lsp`. Establece `none` para limitar todos los tipos, o `all-new` para limitar solo los comandos de las herramientas Bash, PowerShell y Monitor. Claude Code mantiene los comandos de las herramientas Bash, PowerShell y Monitor bajo el límite sea cual sea la lista. Requiere Claude Code v2.1.246 o posterior |423| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | En Linux y WSL, establécela en una lista separada por comas de los tipos de procesos que Claude Code [excluye del límite de memoria de las herramientas](/docs/es/tools-reference#memory-limit-on-linux-and-wsl), como `mcp` o `lsp`. Establece `none` para limitar todos los tipos, o `all-new` para limitar solo los comandos de las herramientas Bash, PowerShell y Monitor. Claude Code mantiene los comandos de las herramientas Bash, PowerShell y Monitor bajo el límite sea lo que sea que indiques. Requiere Claude Code v2.1.246 o posterior |

418| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | En Linux y WSL, establécela en un tamaño como `4G` para [limitar la memoria que pueden usar los comandos de las herramientas Bash y PowerShell](/docs/es/tools-reference#memory-limit-on-linux-and-wsl), y los comandos de la herramienta Monitor en la v2.1.246 o posterior. Escribe el tamaño en dígitos simples, solo para indicar un número de bytes o con un sufijo `K`, `M`, `G` o `T`. Establece `0` u `off` para desactivar el límite. Una vez que el primer proceso que inicia Claude Code ha activado o desactivado el límite, un valor modificado surte efecto la próxima vez que inicies `claude`. Requiere Claude Code v2.1.233 o posterior |424| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | En Linux y WSL, establécela en un tamaño como `4G` para [limitar la memoria que pueden usar los comandos de las herramientas Bash y PowerShell](/docs/es/tools-reference#memory-limit-on-linux-and-wsl), y los comandos de la herramienta Monitor en la v2.1.246 o posterior. Escribe el tamaño con dígitos simples, solo para un número de bytes o con un sufijo `K`, `M`, `G` o `T`. Establece `0` u `off` para desactivar el límite. Una vez que el primer proceso que inicia Claude Code ha activado o desactivado el límite, un valor modificado surte efecto la próxima vez que inicies `claude`. Requiere Claude Code v2.1.233 o posterior |

419| `CLAUDE_CODE_TRANSCRIPT_LOCAL_GC` | Establece en `1` para limitar cuánto crece el [archivo de transcripción](/docs/es/sessions#where-transcripts-are-stored) de una sesión larga de `-p` o del Agent SDK. Después de cada compactación, una vez que el archivo supera los 5 MB, Claude Code elimina el historial anterior a esa compactación. Reanudar la sesión restaura la misma conversación, se haya recortado o no el archivo. Establécela en el entorno desde el que inicias Claude Code, ya que un bloque `env` de la configuración no puede activarla. Requiere Claude Code v2.1.287 o posterior |425| `CLAUDE_CODE_TRANSCRIPT_LOCAL_GC` | Establécela en `1` para limitar cuánto crece el [archivo de transcripción](/docs/es/sessions#where-transcripts-are-stored) de una sesión larga de `-p` o del Agent SDK. Después de cada compactación, una vez que el archivo supera los 5 MB, Claude Code elimina el historial anterior a esa compactación. Reanudar la sesión restaura la misma conversación tanto si el archivo se recortó como si no. Establécela en el entorno desde el que inicias Claude Code, ya que un bloque `env` de la configuración no puede activarla. Requiere Claude Code v2.1.287 o posterior |

420| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Plazo en milisegundos antes de que Claude Code cancele un diálogo que reenvía a un cliente remoto, como un host de [Remote Control](/docs/es/remote-control) o del SDK, o el diálogo de aprobación de un [mensaje entre sesiones retenido](/docs/es/cross-session-messaging#control-inbound-messages); las solicitudes de permiso y las preguntas de `AskUserQuestion` usan sus propios flujos y no se rigen por ella. En Claude Code v2.1.236 o posterior, también limita la [solicitud de consentimiento de créditos de uso de Fable](/docs/es/model-config#fable-and-usage-credits) a mitad de la sesión en una sesión que puede estar ejecutándose sin supervisión. [Controlar los mensajes entrantes](/docs/es/cross-session-messaging#control-inbound-messages) y [Sesiones no interactivas](/docs/es/cross-session-messaging#non-interactive-sessions) cubren las reglas completas de caducidad de los mensajes retenidos, incluidos los casos en los que el plazo no se aplica. Sobrescribe el ajuste [`dialogExpiry`](/docs/es/settings-reference#dialogexpiry). `0` o un valor negativo desactiva el plazo. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |426| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Plazo en milisegundos antes de que Claude Code cancele un diálogo que reenvía a un cliente remoto, como un host de [Remote Control](/docs/es/remote-control) o del SDK, o el diálogo de aprobación de un [mensaje entre sesiones retenido](/docs/es/cross-session-messaging#control-inbound-messages); las solicitudes de permiso y las preguntas de `AskUserQuestion` usan sus propios flujos y no se rigen por él. En Claude Code v2.1.236 o posterior, también limita la [solicitud de consentimiento de créditos de uso de Fable](/docs/es/model-config#fable-and-usage-credits) a mitad de sesión en una sesión que puede estar ejecutándose sin supervisión. [Controlar mensajes entrantes](/docs/es/cross-session-messaging#control-inbound-messages) y [sesiones no interactivas](/docs/es/cross-session-messaging#non-interactive-sessions) cubren las reglas completas de expiración de los mensajes retenidos, incluidos los casos en que el plazo no se aplica. Sobrescribe el ajuste [`dialogExpiry`](/docs/es/settings-reference#dialogexpiry). `0` o un valor negativo desactiva el plazo. Se ignora en [la configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |

421| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Usa [Claude Platform on AWS](/docs/es/claude-platform-on-aws) |427| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Usa [Claude Platform on AWS](/docs/es/claude-platform-on-aws) |

422| `CLAUDE_CODE_USE_BEDROCK` | Usa [Amazon Bedrock](/docs/es/amazon-bedrock) |428| `CLAUDE_CODE_USE_BEDROCK` | Usa [Amazon Bedrock](/docs/es/amazon-bedrock) |

423| `CLAUDE_CODE_USE_FOUNDRY` | Usa [Microsoft Foundry](/docs/es/microsoft-foundry) |429| `CLAUDE_CODE_USE_FOUNDRY` | Usa [Microsoft Foundry](/docs/es/microsoft-foundry) |

424| `CLAUDE_CODE_USE_MANTLE` | Usa el [endpoint Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint) de Amazon Bedrock |430| `CLAUDE_CODE_USE_MANTLE` | Usa el [endpoint Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint) de Amazon Bedrock |

425| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | Establece en `1` para descubrir comandos personalizados, subagentes y estilos de salida usando las API de archivos de Node.js en lugar de ripgrep. Establécela si el binario de ripgrep incluido no está disponible o está bloqueado en tu entorno. No afecta a las herramientas Grep ni de búsqueda de archivos |431| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | Establécelo en `1` para descubrir comandos personalizados, subagentes y estilos de salida usando las API de archivos de Node.js en lugar de ripgrep. Establécelo si el binario de ripgrep incluido no está disponible o está bloqueado en tu entorno. No afecta a la herramienta Grep ni a las herramientas de búsqueda de archivos |

426| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | Controla la herramienta PowerShell. En Windows sin Git Bash, la herramienta se habilita automáticamente; establece en `0` para deshabilitarla. En Windows con Git Bash instalado, la herramienta está activada de forma predeterminada para las cuentas de claude.ai y Console; establece en `1` para habilitarla en sesiones de Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, o en `0` para desactivarla. En Linux, macOS y WSL, establece en `1` para habilitarla, lo que requiere `pwsh` en tu `PATH`. Cuando está habilitada en Windows, Claude puede ejecutar comandos de PowerShell de forma nativa en lugar de enrutarlos a través de Git Bash. Consulta [herramienta PowerShell](/docs/es/tools-reference#powershell-tool) |432| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | Controla la herramienta PowerShell. En Windows sin Git Bash, la herramienta se habilita automáticamente; establécelo en `0` para deshabilitarla. En Windows con Git Bash instalado, la herramienta está activada de forma predeterminada para las cuentas de claude.ai y de Console; establécelo en `1` para habilitarla en sesiones de Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, o en `0` para desactivarla. En Linux, macOS y WSL, establécelo en `1` para habilitarla, lo que requiere `pwsh` en tu `PATH`. Cuando está habilitada en Windows, Claude puede ejecutar comandos de PowerShell de forma nativa en lugar de pasar por Git Bash. Consulta [herramienta PowerShell](/docs/es/tools-reference#powershell-tool) |

427| `CLAUDE_CODE_USE_VERTEX` | Usa [Google Cloud's Agent Platform](/docs/es/google-vertex-ai) |433| `CLAUDE_CODE_USE_VERTEX` | Usa [Google Cloud's Agent Platform](/docs/es/google-vertex-ai) |

428| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | Establece el número de milisegundos durante los cuales [WebFetch](/docs/es/tools-reference#webfetch-tool-behavior) mantiene en caché la respuesta de cada URL obtenida. El valor predeterminado es `900000`, que equivale a 15 minutos. Solo acepta dígitos simples; `0`, un decimal o cualquier otra escritura mantiene el valor predeterminado. Claude Code lee el valor una vez por inicio, así que un cambio en un bloque `env` de la configuración se aplica la próxima vez que inicies `claude`. Requiere Claude Code v2.1.233 o posterior |434| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | Establécelo en el número de milisegundos durante los que [WebFetch](/docs/es/tools-reference#webfetch-tool-behavior) mantiene en caché la respuesta de cada URL obtenida. El valor predeterminado es `900000`, que equivale a 15 minutos. Solo acepta dígitos simples; `0`, un decimal o cualquier otra escritura mantiene el valor predeterminado. Claude Code lee el valor una vez por inicio, por lo que un cambio en un bloque `env` de la configuración se aplica la próxima vez que inicies `claude`. Requiere Claude Code v2.1.233 o posterior |

429| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | Límite superior en milisegundos de cuánto tiempo espera [WebFetch](/docs/es/tools-reference#webfetch-tool-behavior) a que se descargue una página, incluidas las redirecciones que siga. Una descarga que no se haya completado para entonces falla con un error de plazo. El valor predeterminado es `300000`, que equivale a cinco minutos. Establece en `0` para eliminar el límite. Solo acepta dígitos simples; un decimal o cualquier otra escritura mantiene el valor predeterminado. Requiere Claude Code v2.1.268 o posterior |435| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | Límite superior en milisegundos de cuánto tiempo espera [WebFetch](/docs/es/tools-reference#webfetch-tool-behavior) a que se descargue una página, incluidas las redirecciones que sigue. Una descarga que no se haya completado para entonces falla con un error de plazo. El valor predeterminado es `300000`, que equivale a cinco minutos. Establécelo en `0` para eliminar el límite. Solo acepta dígitos simples; un decimal o cualquier otra escritura mantiene el valor predeterminado. Requiere Claude Code v2.1.268 o posterior |

430| `CLAUDE_CODE_WEB_SEARCH_REFILLS_PER_HOUR` | Ritmo al que se recarga el [límite de WebSearch](/docs/es/tools-reference#session-search-limit) de una sesión, en llamadas por hora. El valor predeterminado es `100` en una sesión interactiva de terminal. En una sesión [no interactiva](/docs/es/headless) el valor predeterminado es `0`, lo que desactiva la recarga. Solo acepta dígitos simples; cualquier otra escritura se interpreta como no establecida. Requiere Claude Code v2.1.290 o posterior |436| `CLAUDE_CODE_WEB_SEARCH_REFILLS_PER_HOUR` | Ritmo al que se recarga el [límite de WebSearch](/docs/es/tools-reference#session-search-limit) de una sesión, en llamadas por hora. El valor predeterminado es `100` en una sesión de terminal interactiva. En una sesión [no interactiva](/docs/es/headless), el valor predeterminado es `0`, lo que desactiva la recarga. Solo acepta dígitos simples; cualquier otra escritura se interpreta como no establecida. Requiere Claude Code v2.1.290 o posterior |

431| `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` | Cuando `CLAUDE_AUTO_BACKGROUND_TASKS` está establecida en `1`, cuánto tiempo espera Claude Code antes de cada recordatorio a Claude para que revise los [subagentes en segundo plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background) que todavía se están ejecutando. Acepta una o más esperas separadas por comas en segundos enteros de `1` a `86400`, como `600` o `600,1800,3600`. Cada valor es la espera antes del siguiente recordatorio, y el último valor se repite. Solo acepta dígitos simples; cualquier otro valor o escritura se interpreta como no establecida. Cuando no está establecida, no hay recordatorios. Requiere Claude Code v2.1.283 o posterior |437| `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` | Cuando `CLAUDE_AUTO_BACKGROUND_TASKS` está establecida en `1`, cuánto tiempo espera Claude Code antes de cada recordatorio a Claude para que revise los [subagentes en segundo plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background) que siguen ejecutándose. Acepta una o más esperas separadas por comas en segundos enteros de `1` a `86400`, como `600` o `600,1800,3600`. Cada valor es la espera antes del siguiente recordatorio, y el último valor se repite. Solo acepta dígitos simples; cualquier otro valor o escritura se interpreta como no establecida. Cuando no está establecida, no hay recordatorios. Requiere Claude Code v2.1.283 o posterior |

432| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | Cuántos agentes ejecuta a la vez una sola ejecución de [flujo de trabajo](/docs/es/workflows), de `1` a `256`. De forma predeterminada, una ejecución ejecuta hasta 16 agentes a la vez, menos cuando Claude Code tiene menos CPU disponibles; las llamadas `agent()` en cola esperan a que haya un espacio libre. La transcripción de cada agente en ejecución permanece en la memoria de Claude Code, por lo que los valores más altos aumentan el uso de memoria. Solo acepta dígitos simples; los valores fuera de rango y otras escrituras mantienen el valor predeterminado. Requiere Claude Code v2.1.269 o posterior |438| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | Cuántos agentes ejecuta a la vez una sola ejecución de [flujo de trabajo](/docs/es/workflows), de `1` a `256`. De forma predeterminada, una ejecución ejecuta hasta 16 agentes a la vez, menos cuando Claude Code tiene menos CPU disponibles; las llamadas `agent()` en cola esperan a que haya un espacio libre. La transcripción de cada agente en ejecución permanece en la memoria de Claude Code, por lo que los valores más altos aumentan el uso de memoria. Solo acepta dígitos simples; los valores fuera de rango y otras escrituras mantienen el valor predeterminado. Requiere Claude Code v2.1.269 o posterior |

433| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Límite superior en milisegundos de cuánto tiempo espera un agente de [flujo de trabajo](/docs/es/workflows) a que comience la primera respuesta de un agente hermano con el mismo prefijo antes de enviar su propia primera solicitud. Cuando un fan-out inicia varios agentes que comparten un [prefijo de caché de prompts](/docs/es/workflows#prompt-caching-in-a-fan-out), Claude Code retiene a todos los agentes menos al primero durante hasta este tiempo para que el resto lea el prefijo almacenado en caché en lugar de que cada uno lo procese sin caché. Valor predeterminado `5000`. Establece en `0` para deshabilitar la espera. Cuando `DISABLE_PROMPT_CACHING` está establecida, los agentes nunca esperan. Requiere Claude Code v2.1.229 o posterior |439| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Límite superior en milisegundos de cuánto tiempo espera un agente de [flujo de trabajo](/docs/es/workflows) a que comience la primera respuesta de un agente hermano con el mismo prefijo antes de enviar su propia primera solicitud. Cuando una distribución en abanico (fan-out) inicia varios agentes que comparten un [prefijo de caché de prompts](/docs/es/workflows#prompt-caching-in-a-fan-out), Claude Code retiene a todos los agentes excepto al primero hasta este tiempo para que el resto lea el prefijo en caché en lugar de que cada uno lo procese sin caché. Valor predeterminado: `5000`. Establécelo en `0` para desactivar la espera. Cuando `DISABLE_PROMPT_CACHING` está establecida, los agentes nunca esperan. Requiere Claude Code v2.1.229 o posterior |

434| `CLAUDE_CONFIG_DIR` | Sobrescribe el directorio de configuración (predeterminado: `~/.claude`). Toda la configuración, el historial de sesiones y los plugins se almacenan en esta ruta. Para las credenciales, consulta [dónde almacena Claude Code las credenciales](/docs/es/authentication#credential-management). Útil para ejecutar varias cuentas en paralelo: por ejemplo, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. En un archivo de configuración, escribe la [ruta absoluta](#in-settings-files). Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |440| `CLAUDE_CONFIG_DIR` | Sobrescribe el directorio de configuración (predeterminado: `~/.claude`). Toda la configuración, el historial de sesiones y los plugins se almacenan en esta ruta. Para las credenciales, consulta [dónde almacena Claude Code las credenciales](/docs/es/authentication#credential-management). Útil para ejecutar varias cuentas en paralelo: por ejemplo, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Establécelo en tu shell, en la configuración de usuario o en la configuración administrada. En un archivo de configuración, escribe la [ruta absoluta](#in-settings-files). Se ignora en [la configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |

435| `CLAUDE_DISABLE_ADOPT` | Establece en `1` para detener el trabajo en segundo plano en curso en lugar de trasladarlo cuando envías una sesión a segundo plano pulsando `←` o con [`/background`](/docs/es/agent-view#from-inside-a-session). Claude Code te pide confirmación antes de enviarla a segundo plano y luego detiene las tareas que de otro modo se trasladarían. Requiere Claude Code v2.1.195 o posterior |441| `CLAUDE_DISABLE_ADOPT` | Establécelo en `1` para detener el trabajo en segundo plano en curso en lugar de trasladarlo cuando envías una sesión a segundo plano presionando `←` o con [`/background`](/docs/es/agent-view#from-inside-a-session). Claude Code te pide que confirmes antes de enviarla a segundo plano y luego detiene las tareas que de otro modo se trasladarían. Requiere Claude Code v2.1.195 o posterior |

436| `CLAUDE_EFFORT` | Se establece automáticamente en los subprocesos de la herramienta Bash y en los comandos de hooks con el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) vigente cuando se inicia el subproceso: `low`, `medium`, `high`, `xhigh` o `max`. Coincide con el campo `effort.level` que se pasa a los [hooks](/docs/es/hooks). Solo se establece cuando el modelo actual admite el parámetro de esfuerzo |442| `CLAUDE_EFFORT` | Se establece automáticamente en los subprocesos de la herramienta Bash y en los comandos de hooks con el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) vigente cuando se inicia el subproceso: `low`, `medium`, `high`, `xhigh` o `max`. Coincide con el campo `effort.level` que se pasa a los [hooks](/docs/es/hooks). Solo se establece cuando el modelo actual admite el parámetro effort |

437| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Establece en `1` para forzar la habilitación del watchdog de inactividad de streaming a nivel de bytes, o en `0` para forzar su deshabilitación. `0` también desactiva el [plazo del primer byte](/docs/es/network-config#streaming-idle-watchdogs) en las conexiones donde se aplica ese plazo. Cuando no está establecida, el watchdog está habilitado de forma predeterminada para las conexiones directas a la API de Anthropic y a [Claude Platform on AWS](/docs/es/claude-platform-on-aws), y para las respuestas en streaming en conexiones de [gateway](/docs/es/gateways) a las que se accede mediante `ANTHROPIC_BASE_URL` o `ANTHROPIC_AWS_BASE_URL`; antes de v2.1.222 no se ejecutaba en esas conexiones de gateway, por lo que el watchdog a nivel de eventos podía informar de un bloqueo allí incluso mientras llegaban pings de keep-alive. Para los tiempos de espera y cómo interactúan los temporizadores, consulta [Watchdogs de inactividad de streaming](/docs/es/network-config#streaming-idle-watchdogs) |443| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Establécelo en `1` para forzar la habilitación del watchdog de inactividad de streaming a nivel de bytes, o en `0` para forzar su deshabilitación. `0` también desactiva el [plazo del primer byte](/docs/es/network-config#streaming-idle-watchdogs) en las conexiones donde se ejecuta ese plazo. Cuando no está establecida, el watchdog está habilitado de forma predeterminada para las conexiones directas a la API de Anthropic y a [Claude Platform on AWS](/docs/es/claude-platform-on-aws), y para las respuestas en streaming en conexiones de [gateway](/docs/es/gateways) a las que se accede mediante `ANTHROPIC_BASE_URL` o `ANTHROPIC_AWS_BASE_URL`; antes de v2.1.222 no se ejecutaba en esas conexiones de gateway, por lo que el watchdog a nivel de eventos podía informar de un bloqueo allí incluso mientras llegaban pings de keep-alive. Para los tiempos de espera y cómo interactúan los temporizadores, consulta [Watchdogs de inactividad de streaming](/docs/es/network-config#streaming-idle-watchdogs) |

438| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Establece en `1` para habilitar el watchdog de inactividad de streaming a nivel de bytes en las respuestas `vnd.amazon.eventstream` de Amazon Bedrock, lo que también habilita el [plazo del primer byte](/docs/es/network-config#streaming-idle-watchdogs) en las solicitudes en streaming de Bedrock. Desactivado de forma predeterminada. Configura el tiempo de espera con `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |444| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Establécelo en `1` para habilitar el watchdog de inactividad de streaming a nivel de bytes en las respuestas `vnd.amazon.eventstream` de Amazon Bedrock, lo que también habilita el [plazo del primer byte](/docs/es/network-config#streaming-idle-watchdogs) en las solicitudes de streaming de Bedrock. Desactivado de forma predeterminada. Configura el tiempo de espera con `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |

439| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Establece en `0` para forzar la deshabilitación del watchdog de inactividad de streaming a nivel de eventos, o en `1` para forzar su habilitación. Cuando no está establecida, el watchdog está activado de forma predeterminada para todos los proveedores. Antes de v2.1.196, el valor predeterminado sin establecer lo controlaba el servidor en la API directa de Anthropic y estaba desactivado en los demás proveedores. Configura el tiempo de espera con `CLAUDE_STREAM_IDLE_TIMEOUT_MS`; para los otros temporizadores de bloqueo que se ejecutan junto a este, consulta [Watchdogs de inactividad de streaming](/docs/es/network-config#streaming-idle-watchdogs) |445| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Establécelo en `0` para forzar la deshabilitación del watchdog de inactividad de streaming a nivel de eventos, o en `1` para forzar su habilitación. Cuando no está establecida, el watchdog está activado de forma predeterminada para todos los proveedores. Antes de v2.1.196, el valor predeterminado sin establecer lo controlaba el servidor en la API directa de Anthropic y estaba desactivado en los demás proveedores. Configura el tiempo de espera con `CLAUDE_STREAM_IDLE_TIMEOUT_MS`; para los otros temporizadores de bloqueo que se ejecutan junto con este, consulta [Watchdogs de inactividad de streaming](/docs/es/network-config#streaming-idle-watchdogs) |

440| `CLAUDE_ENV_FILE` | Ruta a un script de shell cuyo contenido Claude Code ejecuta antes de cada comando Bash en el mismo proceso de shell, de modo que las exportaciones del archivo sean visibles para el comando. Úsala para conservar la activación de virtualenv o conda entre comandos. También la rellenan dinámicamente los hooks [SessionStart](/docs/es/hooks#persist-environment-variables), [Setup](/docs/es/hooks#setup), [CwdChanged](/docs/es/hooks#cwdchanged) y [FileChanged](/docs/es/hooks#filechanged) |446| `CLAUDE_ENV_FILE` | Ruta a un script de shell cuyo contenido Claude Code ejecuta antes de cada comando de Bash en el mismo proceso de shell, de modo que las exportaciones del archivo sean visibles para el comando. Úsalo para conservar la activación de virtualenv o conda entre comandos. También lo rellenan dinámicamente los hooks [SessionStart](/docs/es/hooks#persist-environment-variables), [Setup](/docs/es/hooks#setup), [CwdChanged](/docs/es/hooks#cwdchanged) y [FileChanged](/docs/es/hooks#filechanged) |

441| `CLAUDE_JOB_DIR` | Claude Code la establece en cada [sesión en segundo plano](/docs/es/agent-view) con el directorio `~/.claude/jobs/<id>` de esa sesión. Los comandos de shell que ejecuta la sesión la heredan. Escribe los archivos temporales en [`$CLAUDE_JOB_DIR/tmp`](/docs/es/agent-view#where-state-is-stored). Las llamadas `Write` y `Edit` de Claude ahí no solicitan permiso, y el directorio se elimina cuando se borra la sesión |447| `CLAUDE_JOB_DIR` | Claude Code la establece en cada [sesión en segundo plano](/docs/es/agent-view) con el directorio `~/.claude/jobs/<id>` de esa sesión. Los comandos de shell que ejecuta la sesión la heredan. Escribe los archivos temporales en [`$CLAUDE_JOB_DIR/tmp`](/docs/es/agent-view#where-state-is-stored). Las llamadas `Write` y `Edit` de Claude en ese directorio no piden permiso, y el directorio se elimina cuando se elimina la sesión |

442| `CLAUDE_PID` | Claude Code la establece con su propio ID de proceso en los subprocesos que genera: comandos de las herramientas Bash y PowerShell y comandos de hooks. En Linux, la integración de shell de la herramienta Bash la usa para rechazar un patrón de `pkill` que coincidiría con el propio proceso de Claude Code; consulta [la referencia de errores](/docs/es/errors#pkill-pattern-matches-the-claude-code-process). Léela desde tus propios scripts para identificar o enviar señales de forma deliberada al proceso padre de Claude Code. Requiere Claude Code v2.1.214 o posterior |448| `CLAUDE_PID` | Claude Code la establece con su propio ID de proceso en los subprocesos que genera: los comandos de las herramientas Bash y PowerShell y los comandos de hooks. En Linux, la integración de shell de la herramienta Bash la usa para rechazar un patrón de `pkill` que coincidiría con el propio proceso de Claude Code; consulta [la referencia de errores](/docs/es/errors#pkill-pattern-matches-the-claude-code-process). Léela desde tus propios scripts para identificar deliberadamente el proceso padre de Claude Code o enviarle señales. Requiere Claude Code v2.1.214 o posterior |

443| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | Prefijo para los nombres de sesión de [Remote Control](/docs/es/remote-control) generados automáticamente cuando no se proporciona un nombre explícito. De forma predeterminada es el nombre de host de tu máquina, lo que produce nombres como `myhost-graceful-unicorn`. El flag de CLI `--remote-control-session-name-prefix` establece el mismo valor para una sola invocación |449| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | Prefijo para los nombres de sesión de [Remote Control](/docs/es/remote-control) generados automáticamente cuando no se proporciona un nombre explícito. De forma predeterminada es el nombre de host de tu máquina, lo que produce nombres como `myhost-graceful-unicorn`. El flag de CLI `--remote-control-session-name-prefix` establece el mismo valor para una sola invocación |

444| `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` | Plazo en milisegundos para el primer byte de respuesta de una solicitud en streaming, en las conexiones donde se aplica el [plazo del primer byte](/docs/es/network-config#streaming-idle-watchdogs). Para saber cómo lo limita Claude Code, el tiempo adicional que añade para cuerpos de solicitud grandes y cómo elige el plazo cuando no la estableces, consulta [No response from API](/docs/es/errors#no-response-from-api). Requiere Claude Code v2.1.242 o posterior |450| `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` | Plazo en milisegundos para el primer byte de respuesta de una solicitud de streaming, en las conexiones donde se ejecuta el [plazo del primer byte](/docs/es/network-config#streaming-idle-watchdogs). Para saber cómo lo limita Claude Code, el tiempo adicional que añade para los cuerpos de solicitud grandes y cómo elige el plazo cuando no estableces esta variable, consulta [No response from API](/docs/es/errors#no-response-from-api). Requiere Claude Code v2.1.242 o posterior |

445| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | Tiempo de espera en milisegundos antes de que los watchdogs de inactividad de streaming a nivel de eventos y de bytes cierren una conexión bloqueada. Cuando estableces esta variable explícitamente, el mínimo es `300000` (5 minutos); los valores inferiores se ajustan silenciosamente para absorber las pausas del pensamiento extendido y el almacenamiento en búfer de los proxies, y el watchdog a nivel de bytes limita el valor a 30 minutos. `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` tiene precedencia sobre esta variable para el watchdog a nivel de bytes. Para los valores predeterminados de cada watchdog cuando no está establecida, consulta [Watchdogs de inactividad de streaming](/docs/es/network-config#streaming-idle-watchdogs) |451| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | Tiempo de espera en milisegundos antes de que los watchdogs de inactividad de streaming a nivel de eventos y de bytes cierren una conexión bloqueada. Cuando estableces esta variable explícitamente, el mínimo es `300000` (5 minutos); los valores inferiores se ajustan silenciosamente para absorber las pausas del pensamiento extendido y el almacenamiento en búfer del proxy, y el watchdog a nivel de bytes limita el valor a 30 minutos. `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` tiene precedencia sobre esta variable para el watchdog a nivel de bytes. Para los valores predeterminados sin establecer de cada watchdog, consulta [Watchdogs de inactividad de streaming](/docs/es/network-config#streaming-idle-watchdogs) |

446| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | Se eliminó en v2.1.260 y ahora no tiene efecto. Anteriormente limitaba cuánto tiempo podía ejecutarse un [comando de shell en segundo plano](/docs/es/interactive-mode#background-bash-commands) iniciado por un [subagente](/docs/es/sub-agents), en milisegundos, con un valor predeterminado de 60 minutos. Consulta [las reglas de duración de los comandos en segundo plano](/docs/es/tools-reference#background-commands) |452| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | Eliminada en v2.1.260 y ahora no tiene efecto. Anteriormente limitaba cuánto tiempo podía ejecutarse un [comando de shell en segundo plano](/docs/es/interactive-mode#background-bash-commands) iniciado por un [subagente](/docs/es/sub-agents), en milisegundos, con un valor predeterminado de 60 minutos. Consulta [las reglas de duración de los comandos en segundo plano](/docs/es/tools-reference#background-commands) |

447| `DEBUG` | Establece en `1` para habilitar el modo de depuración, equivalente a iniciar con [`--debug`](/docs/es/cli-reference#cli-flags). Los registros de depuración se escriben en `~/.claude/debug/<session-id>.txt`, o en la ruta establecida por `CLAUDE_CODE_DEBUG_LOGS_DIR`. Solo los valores verdaderos `1`, `true`, `yes` y `on` habilitan el modo de depuración, por lo que los patrones de espacio de nombres como `DEBUG=express:*` establecidos para otras herramientas no lo activan |453| `DEBUG` | Establécelo en `1` para habilitar el modo de depuración, equivalente a iniciar con [`--debug`](/docs/es/cli-reference#cli-flags). Los registros de depuración se escriben en `~/.claude/debug/<session-id>.txt`, o en la ruta establecida por `CLAUDE_CODE_DEBUG_LOGS_DIR`. Solo los valores verdaderos `1`, `true`, `yes` y `on` habilitan el modo de depuración, por lo que los patrones de espacio de nombres como `DEBUG=express:*` establecidos para otras herramientas no lo activan |

448| `DISABLE_AUTOUPDATER` | Establece en `1` para deshabilitar las actualizaciones automáticas en segundo plano. El `claude update` manual sigue funcionando. Usa `DISABLE_UPDATES` para bloquear ambas |454| `DISABLE_AUTOUPDATER` | Establécelo en `1` para deshabilitar las actualizaciones automáticas en segundo plano. El comando manual `claude update` sigue funcionando. Usa `DISABLE_UPDATES` para bloquear ambos |

449| `DISABLE_AUTO_COMPACT` | Establece en `1` para deshabilitar la compactación automática al acercarse al límite de contexto. El comando manual `/compact` sigue disponible. Úsala cuando quieras un control explícito sobre cuándo se produce la compactación. Sobrescribe el ajuste [`autoCompactEnabled`](/docs/es/settings-reference#autocompactenabled) |455| `DISABLE_AUTO_COMPACT` | Establécelo en `1` para deshabilitar la compactación automática al acercarse al límite de contexto. El comando manual `/compact` sigue disponible. Úsalo cuando quieras controlar explícitamente cuándo ocurre la compactación. Sobrescribe el ajuste [`autoCompactEnabled`](/docs/es/settings-reference#autocompactenabled) |

450| `DISABLE_COMPACT` | Establece en `1` para deshabilitar toda la compactación: tanto la compactación automática como el comando manual `/compact` |456| `DISABLE_COMPACT` | Establécelo en `1` para deshabilitar toda la compactación: tanto la compactación automática como el comando manual `/compact` |

451| `DISABLE_COST_WARNINGS` | Establece en `1` para deshabilitar los mensajes de advertencia de costos |457| `DISABLE_COST_WARNINGS` | Establécelo en `1` para deshabilitar los mensajes de advertencia de costos |

452| `DISABLE_DOCTOR_COMMAND` | Establece en `1` para ocultar el skill de revisión de configuración [`/doctor`](/docs/es/commands#all-commands) y su alias `/checkup`. Útil en despliegues administrados donde los usuarios no deberían ejecutar diagnósticos de configuración desde una sesión. No afecta al comando de terminal `claude doctor`. Antes de v2.1.205, esta variable ocultaba el comando de la pantalla de diagnóstico `/doctor` |458| `DISABLE_DOCTOR_COMMAND` | Establécelo en `1` para ocultar el skill de revisión de la configuración inicial [`/doctor`](/docs/es/commands#all-commands) y su alias `/checkup`. Útil para despliegues administrados en los que los usuarios no deberían ejecutar diagnósticos de configuración desde una sesión. No afecta al comando de terminal `claude doctor`. Antes de v2.1.205, esta variable ocultaba el comando de pantalla de diagnóstico `/doctor` |

453| `DISABLE_ERROR_REPORTING` | Establece cualquier valor no vacío, como `1`, para excluirte del informe de errores. **Establecerla en `0` o `false` también te excluye**, a diferencia de la mayoría de las variables de activación/desactivación; elimina la variable para volver a activar el informe de errores |459| `DISABLE_ERROR_REPORTING` | Establécelo en cualquier valor no vacío, como `1`, para excluirte de los informes de errores. **Establecerlo en `0` o `false` también te excluye**, a diferencia de la mayoría de las variables de activación/desactivación; elimina la variable para volver a activar los informes de errores |

454| `DISABLE_EXTRA_USAGE_COMMAND` | Establece en `1` para ocultar el comando `/usage-credits` que permite a los usuarios comprar uso adicional más allá de los rate limits |460| `DISABLE_EXTRA_USAGE_COMMAND` | Establécelo en `1` para ocultar el comando `/usage-credits`, que permite a los usuarios comprar uso adicional más allá de los rate limits |

455| `DISABLE_FEEDBACK_COMMAND` | Establece en `1` para deshabilitar el comando `/feedback` y los [comentarios redactados por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior). También deshabilita `/bug` y `/share`, que informan por la misma vía; antes de v2.1.212 eran alias de `/feedback`, por lo que el comando quedaba deshabilitado con cualquier nombre. También se acepta el nombre anterior `DISABLE_BUG_COMMAND` |461| `DISABLE_FEEDBACK_COMMAND` | Establécelo en `1` para deshabilitar el comando `/feedback` y los [comentarios redactados por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior). También deshabilita `/bug` y `/share`, que informan a través de la misma vía; antes de v2.1.212 eran alias de `/feedback`, por lo que el comando quedaba deshabilitado con cualquiera de sus nombres. También se acepta el nombre anterior `DISABLE_BUG_COMMAND` |

456| `DISABLE_GROWTHBOOK` | Establece en `1` o `true` para deshabilitar la obtención de feature flags de GrowthBook y usar los valores predeterminados del código para cada flag. Esto hace que [Remote Control](/docs/es/remote-control#requirements) y las demás [funciones que necesitan la obtención de feature flags](#features-that-need-feature-flag-fetching) no estén disponibles. Establecerla en `0` o `false` deja la obtención activada. El registro de eventos de telemetría sigue activado a menos que también se establezca `DISABLE_TELEMETRY` |462| `DISABLE_GROWTHBOOK` | Establécelo en `1` o `true` para deshabilitar la obtención de feature flags de GrowthBook y usar los valores predeterminados del código para cada flag. Esto hace que [Remote Control](/docs/es/remote-control#requirements) y las demás [funciones que necesitan la obtención de feature flags](#features-that-need-feature-flag-fetching) no estén disponibles. Establecerlo en `0` o `false` mantiene la obtención activada. El registro de eventos de telemetría permanece activado a menos que también se establezca `DISABLE_TELEMETRY` |

457| `DISABLE_INSTALLATION_CHECKS` | Establece en `1` para deshabilitar las advertencias de instalación. Úsala solo cuando administres manualmente la ubicación de instalación, ya que puede ocultar problemas con las instalaciones estándar |463| `DISABLE_INSTALLATION_CHECKS` | Establécelo en `1` para deshabilitar las advertencias de instalación. Úsalo solo cuando administres manualmente la ubicación de la instalación, ya que esto puede ocultar problemas de las instalaciones estándar |

458| `DISABLE_INSTALL_GITHUB_APP_COMMAND` | Establece en `1` para ocultar el comando `/install-github-app`. Ya está oculto cuando se usan proveedores externos (Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry) |464| `DISABLE_INSTALL_GITHUB_APP_COMMAND` | Establécelo en `1` para ocultar el comando `/install-github-app`. Ya está oculto cuando se usan proveedores externos (Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry) |

459| `DISABLE_INTERLEAVED_THINKING` | Establece en `1` para evitar el envío del encabezado beta de interleaved-thinking. Útil cuando tu gateway de LLM o proveedor no admite el [pensamiento intercalado](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) |465| `DISABLE_INTERLEAVED_THINKING` | Establécelo en `1` para evitar que se envíe el encabezado beta de interleaved-thinking. Útil cuando tu gateway de LLM o tu proveedor no admite el [pensamiento intercalado](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) |

460| `DISABLE_LOGIN_COMMAND` | Establece en `1` para ocultar el comando `/login`. Útil cuando la autenticación se gestiona externamente mediante claves de API o `apiKeyHelper` |466| `DISABLE_LOGIN_COMMAND` | Establécelo en `1` para ocultar el comando `/login`. Útil cuando la autenticación se gestiona externamente mediante claves de API o `apiKeyHelper` |

461| `DISABLE_LOGOUT_COMMAND` | Establece en `1` para ocultar el comando `/logout` |467| `DISABLE_LOGOUT_COMMAND` | Establécelo en `1` para ocultar el comando `/logout` |

462| `DISABLE_PROMPT_CACHING` | Establece en `1` para deshabilitar la [caché de prompts](/docs/es/prompt-caching#disable-prompt-caching) para todos los modelos (tiene precedencia sobre la configuración por modelo) |468| `DISABLE_PROMPT_CACHING` | Establécelo en `1` para deshabilitar la [caché de prompts](/docs/es/prompt-caching#disable-prompt-caching) para todos los modelos (tiene precedencia sobre los ajustes por modelo) |

463| `DISABLE_PROMPT_CACHING_FABLE` | Establece en `1` para deshabilitar la caché de prompts para los modelos Fable |469| `DISABLE_PROMPT_CACHING_FABLE` | Establécelo en `1` para deshabilitar la caché de prompts para los modelos Fable |

464| `DISABLE_PROMPT_CACHING_HAIKU` | Establece en `1` para deshabilitar la caché de prompts para el [modelo Haiku predeterminado](/docs/es/prompt-caching#disable-prompt-caching), dondequiera que se ejecute |470| `DISABLE_PROMPT_CACHING_HAIKU` | Establécelo en `1` para deshabilitar la caché de prompts para el [modelo Haiku predeterminado](/docs/es/prompt-caching#disable-prompt-caching), dondequiera que se ejecute |

465| `DISABLE_PROMPT_CACHING_OPUS` | Establece en `1` para deshabilitar la caché de prompts para el [modelo Opus predeterminado](/docs/es/prompt-caching#disable-prompt-caching) |471| `DISABLE_PROMPT_CACHING_OPUS` | Establécelo en `1` para deshabilitar la caché de prompts para el [modelo Opus predeterminado](/docs/es/prompt-caching#disable-prompt-caching) |

466| `DISABLE_PROMPT_CACHING_SONNET` | Establece en `1` para deshabilitar la caché de prompts para el [modelo Sonnet predeterminado](/docs/es/prompt-caching#disable-prompt-caching) |472| `DISABLE_PROMPT_CACHING_SONNET` | Establécelo en `1` para deshabilitar la caché de prompts para el [modelo Sonnet predeterminado](/docs/es/prompt-caching#disable-prompt-caching) |

467| `DISABLE_TELEMETRY` | Establece cualquier valor no vacío, como `1`, para excluirte de la telemetría. **Establecerla en `0` o `false` también te excluye**, a diferencia de la mayoría de las variables de activación/desactivación; elimina la variable para volver a activar la telemetría. Los eventos de telemetría no incluyen datos del usuario como código, rutas de archivos o comandos Bash. También deshabilita la [obtención de feature flags](#features-that-need-feature-flag-fetching). Consulta [Desactivar la telemetría para tu organización](/docs/es/managed-settings#turn-telemetry-off-for-your-organization) |473| `DISABLE_TELEMETRY` | Establécelo en cualquier valor no vacío, como `1`, para excluirte de la telemetría. **Establecerlo en `0` o `false` también te excluye**, a diferencia de la mayoría de las variables de activación/desactivación; elimina la variable para volver a activar la telemetría. Los eventos de telemetría no incluyen datos de usuario como código, rutas de archivos ni comandos de Bash. También deshabilita la [obtención de feature flags](#features-that-need-feature-flag-fetching). Consulta [Desactivar la telemetría para tu organización](/docs/es/managed-settings#turn-telemetry-off-for-your-organization) |

468| `DISABLE_UPDATES` | Establece en `1` para bloquear todas las actualizaciones, incluidos `claude update` y `claude install` manuales. Más estricta que `DISABLE_AUTOUPDATER`. Úsala cuando distribuyas Claude Code a través de tus propios canales y los usuarios no deban actualizarlo por sí mismos |474| `DISABLE_UPDATES` | Establécelo en `1` para bloquear todas las actualizaciones, incluidos `claude update` y `claude install` manuales. Más estricto que `DISABLE_AUTOUPDATER`. Úsalo cuando distribuyas Claude Code a través de tus propios canales y los usuarios no deban actualizarlo por su cuenta |

469| `DISABLE_UPGRADE_COMMAND` | Establece en `1` para ocultar el comando `/upgrade` |475| `DISABLE_UPGRADE_COMMAND` | Establécelo en `1` para ocultar el comando `/upgrade` |

470| `DO_NOT_TRACK` | Establece en `1` para excluirte de la telemetría, con el mismo efecto que `DISABLE_TELEMETRY`, incluso sobre la [obtención de feature flags](#features-that-need-feature-flag-fetching). Claude Code lee esta variable como un booleano estándar, por lo que `0` deja la telemetría activada, y la respeta como la convención entre herramientas reconocida por muchas CLI de desarrollo |476| `DO_NOT_TRACK` | Establécelo en `1` para excluirte de la telemetría, con el mismo efecto que `DISABLE_TELEMETRY`, incluido sobre la [obtención de feature flags](#features-that-need-feature-flag-fetching). Claude Code lee esta variable como un booleano estándar, por lo que `0` mantiene la telemetría activada, y la respeta como la convención entre herramientas reconocida por muchas CLI para desarrolladores |

471| `ENABLE_BETA_TRACING_DETAILED` | Establece en `1`, y establece `BETA_TRACING_ENDPOINT` en el endpoint de tu recopilador OTLP/HTTP, para activar el [tracing beta detallado](/docs/es/monitoring-usage#traces-beta), que añade atributos de span con contenido y el span `claude_code.hook`. Las sesiones interactivas de la CLI también requieren que tu organización esté en la lista de permitidos de la beta. Ambas variables se ignoran en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |477| `ENABLE_BETA_TRACING_DETAILED` | Establécelo en `1`, y establece `BETA_TRACING_ENDPOINT` en el endpoint de tu colector OTLP/HTTP, para activar el [rastreo beta detallado](/docs/es/monitoring-usage#traces-beta), que añade atributos de span con contenido y el span `claude_code.hook`. Las sesiones interactivas de la CLI también requieren que tu organización esté en la lista de permitidos de la beta. Ambas variables se ignoran en [la configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |

472| `ENABLE_CLAUDEAI_MCP_SERVERS` | Establece en `false` para impedir que Claude Code obtenga los [servidores MCP de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai). Habilitada de forma predeterminada para los usuarios que han iniciado sesión. Para deshabilitarla por proyecto o por organización, establece en su lugar [`disableClaudeAiConnectors`](/docs/es/settings-reference#disableclaudeaiconnectors) en la configuración |478| `ENABLE_CLAUDEAI_MCP_SERVERS` | Establécelo en `false` para impedir que Claude Code obtenga los [servidores MCP de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai). Habilitado de forma predeterminada para los usuarios que han iniciado sesión. Para deshabilitarlo por proyecto o por organización, establece [`disableClaudeAiConnectors`](/docs/es/settings-reference#disableclaudeaiconnectors) en la configuración en su lugar |

473| `ENABLE_PROMPT_CACHING_1H` | Establece en `1` para solicitar un [TTL de caché de prompts](/docs/es/prompt-caching#cache-lifetime) de 1 hora en lugar de los 5 minutos predeterminados. Pensada para usuarios de clave de API, [Amazon Bedrock](/docs/es/amazon-bedrock), [Google Cloud's Agent Platform](/docs/es/google-vertex-ai), [Microsoft Foundry](/docs/es/microsoft-foundry) y [Claude Platform on AWS](/docs/es/claude-platform-on-aws). Los usuarios de suscripción dentro del uso incluido reciben el TTL de 1 hora automáticamente en la [conversación principal](/docs/es/prompt-caching#which-ttl-each-request-gets). Los usuarios de suscripción que consumen [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) pueden establecerla para mantener el TTL de 1 hora. Las escrituras en caché de 1 hora se facturan a una tarifa más alta. Para elegir en su lugar el TTL por grupo de solicitudes, usa `CLAUDE_CODE_PROMPT_CACHE_TTL` y `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, que tienen precedencia sobre esta variable |479| `ENABLE_PROMPT_CACHING_1H` | Establécelo en `1` para solicitar un [TTL de caché de prompts](/docs/es/prompt-caching#cache-lifetime) de 1 hora en lugar de los 5 minutos predeterminados. Pensado para usuarios de clave de API, [Amazon Bedrock](/docs/es/amazon-bedrock), [Google Cloud's Agent Platform](/docs/es/google-vertex-ai), [Microsoft Foundry](/docs/es/microsoft-foundry) y [Claude Platform on AWS](/docs/es/claude-platform-on-aws). Los usuarios de suscripción dentro del uso incluido reciben automáticamente el TTL de 1 hora en la [conversación principal](/docs/es/prompt-caching#which-ttl-each-request-gets). Los usuarios de suscripción que consumen [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) pueden establecerla para mantener el TTL de 1 hora. Las escrituras en caché de 1 hora se facturan a una tarifa más alta. Para elegir el TTL por grupo de solicitudes en su lugar, usa `CLAUDE_CODE_PROMPT_CACHE_TTL` y `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, que tienen precedencia sobre esta variable |

474| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Obsoleta. Usa `ENABLE_PROMPT_CACHING_1H` en su lugar |480| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Obsoleta. Usa `ENABLE_PROMPT_CACHING_1H` en su lugar |

475| `ENABLE_TOOL_SEARCH` | Controla la [búsqueda de herramientas MCP](/docs/es/mcp#scale-with-mcp-tool-search). Sin establecer, Claude Code difiere todas las herramientas MCP de forma predeterminada. Aun así, las carga por adelantado en los modelos de Google Cloud's Agent Platform anteriores a la generación Claude 4.5, en un despliegue de Microsoft Foundry alojado en Azure y cuando `ANTHROPIC_BASE_URL` apunta a un host que no es de primera parte. `true` siempre difiere y envía el encabezado beta, excepto en esos mismos modelos de Agent Platform y despliegues de Microsoft Foundry; las solicitudes fallan en proxies que no admiten `tool_reference`. `auto` carga por adelantado cuando las definiciones de herramientas caben dentro del 10% del contexto. `auto:N` establece un umbral personalizado, como `auto:5` para el 5%. `false` carga todas las herramientas por adelantado. Un valor que establezcas tú mismo se ignora cuando está establecida `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`. Antes de v2.1.221, Claude Code deshabilitaba la búsqueda de herramientas para todos los modelos en Google Cloud's Agent Platform a menos que establecieras esta variable en `true` |481| `ENABLE_TOOL_SEARCH` | Controla la [búsqueda de herramientas MCP](/docs/es/mcp#scale-with-mcp-tool-search). Sin establecer, Claude Code difiere todas las herramientas MCP de forma predeterminada. Aun así, las carga por adelantado en los modelos de Google Cloud's Agent Platform anteriores a la generación Claude 4.5, en un despliegue de Microsoft Foundry alojado en Azure y cuando `ANTHROPIC_BASE_URL` apunta a un host que no es de primera parte. `true` siempre difiere y envía el encabezado beta, excepto en esos mismos modelos de Agent Platform y despliegues de Microsoft Foundry; las solicitudes fallan en los proxies que no admiten `tool_reference`. `auto` carga por adelantado cuando las definiciones de herramientas caben dentro del 10% del contexto. `auto:N` establece un umbral personalizado, como `auto:5` para el 5%. `false` carga todas las herramientas por adelantado. Un valor que establezcas tú mismo se ignora cuando `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` está establecida. Antes de v2.1.221, Claude Code deshabilitaba la búsqueda de herramientas para todos los modelos en Google Cloud's Agent Platform a menos que establecieras esta variable en `true` |

476| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Establece cualquier valor no vacío, como `1`, para que Claude Code deje de reintentar ante errores de sobrecarga repetidos para todos los modelos cuando no hay ningún modelo de respaldo configurado. **Establecerla en `0` o `false` también lo habilita**, a diferencia de la mayoría de las variables de activación/desactivación; elimina la variable para restaurar el comportamiento de reintento predeterminado. Sin ella, Claude Code deja de reintentar de esta manera en los modelos que reconoce como Opus, Fable o Mythos cuando te autenticas con una clave de API o un [proveedor externo](/docs/es/third-party-integrations) en lugar de una suscripción a Claude. En Claude Code v2.1.160 o posterior, Claude Code cambia a tu [cadena de modelos de respaldo](/docs/es/model-config#fallback-model-chains) configurada ante errores de sobrecarga repetidos para cualquier modelo principal, por lo que esta variable no afecta al cambio a un modelo de respaldo |482| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Establécelo en cualquier valor no vacío, como `1`, para que Claude Code deje de reintentar ante errores de sobrecarga repetidos con todos los modelos cuando no hay ningún modelo de respaldo configurado. **Establecerlo en `0` o `false` también lo habilita**, a diferencia de la mayoría de las variables de activación/desactivación; elimina la variable para restaurar el comportamiento de reintento predeterminado. Sin ella, Claude Code deja de reintentar de esta forma en los modelos que reconoce como modelos Opus, Fable o Mythos cuando te autenticas con una clave de API o un [proveedor externo](/docs/es/third-party-integrations) en lugar de una suscripción a Claude. En Claude Code v2.1.160 o posterior, Claude Code cambia a tu [cadena de modelos de respaldo](/docs/es/model-config#fallback-model-chains) configurada ante errores de sobrecarga repetidos con cualquier modelo principal, por lo que esta variable no afecta al cambio a un modelo de respaldo |

477| `FORCE_AUTOUPDATE_PLUGINS` | Establece en `1` para forzar las actualizaciones automáticas de plugins incluso cuando el actualizador automático principal está deshabilitado mediante `DISABLE_AUTOUPDATER` |483| `FORCE_AUTOUPDATE_PLUGINS` | Establécelo en `1` para forzar las actualizaciones automáticas de plugins incluso cuando el actualizador automático principal está deshabilitado mediante `DISABLE_AUTOUPDATER` |

478| `FORCE_HYPERLINK` | Establece en `1` para habilitar los hipervínculos OSC 8 en los que se puede hacer clic cuando tu terminal los admite pero no se detecta automáticamente, o en `0` para deshabilitarlos. Cuando no está establecida, Claude Code habilita los hipervínculos solo cuando detecta compatibilidad en la terminal. Claude Code interpreta este valor como un número, no como un booleano, por lo que un valor como `false`, `no` u `off` habilita los hipervínculos en lugar de deshabilitarlos. La [insignia de PR o merge request](/docs/es/interactive-mode#pr-review-status) del pie de página se muestra como hipervínculo incluso cuando Claude Code no puede detectar compatibilidad en la terminal, como a través de SSH. Establece `0` para mostrar la insignia como texto sin formato |484| `FORCE_HYPERLINK` | Establécelo en `1` para habilitar los hipervínculos OSC 8 en los que se puede hacer clic cuando tu terminal los admite pero no se detecta automáticamente, o en `0` para deshabilitarlos. Cuando no está establecida, Claude Code habilita los hipervínculos solo cuando detecta que la terminal los admite. Claude Code interpreta este valor como un número, no como un booleano, por lo que un valor como `false`, `no` u `off` habilita los hipervínculos en lugar de deshabilitarlos. La [insignia de PR o merge request](/docs/es/interactive-mode#pr-review-status) del pie de página se muestra como hipervínculo incluso cuando Claude Code no puede detectar que la terminal los admite, como a través de SSH. Establécelo en `0` para mostrar la insignia como texto sin formato |

479| `FORCE_PROMPT_CACHING_5M` | Establece en `1` para forzar el TTL de caché de prompts de 5 minutos incluso cuando de otro modo se aplicaría el TTL de 1 hora. Sobrescribe `CLAUDE_CODE_PROMPT_CACHE_TTL`, `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, `ENABLE_PROMPT_CACHING_1H` y los ajustes `promptCacheTtl` y `subagentPromptCacheTtl` |485| `FORCE_PROMPT_CACHING_5M` | Establécelo en `1` para forzar el TTL de caché de prompts de 5 minutos incluso cuando de otro modo se aplicaría el TTL de 1 hora. Sobrescribe `CLAUDE_CODE_PROMPT_CACHE_TTL`, `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, `ENABLE_PROMPT_CACHING_1H` y los ajustes `promptCacheTtl` y `subagentPromptCacheTtl` |

480| `HTTP_PROXY` | Especifica el servidor proxy HTTP para las conexiones de red |486| `HTTP_PROXY` | Especifica el servidor proxy HTTP para las conexiones de red |

481| `HTTPS_PROXY` | Especifica el servidor proxy HTTPS para las conexiones de red |487| `HTTPS_PROXY` | Especifica el servidor proxy HTTPS para las conexiones de red |

482| `IS_DEMO` | Establece cualquier valor no vacío, como `1`, para habilitar el modo demo: oculta tu correo electrónico y el nombre de la organización del encabezado y de la salida de `/status`, y omite la incorporación. **Establecerla en `0` o `false` también habilita el modo demo**, a diferencia de la mayoría de las variables de activación/desactivación; elimina la variable para desactivarlo. Útil al transmitir en streaming o grabar una sesión |488| `IS_DEMO` | Establécelo en cualquier valor no vacío, como `1`, para habilitar el modo demo: oculta tu correo electrónico y el nombre de tu organización del encabezado y de la salida de `/status`, y omite la incorporación. **Establecerlo en `0` o `false` también habilita el modo demo**, a diferencia de la mayoría de las variables de activación/desactivación; elimina la variable para desactivarlo. Útil al transmitir o grabar una sesión |

483| `MAX_MCP_OUTPUT_TOKENS` | Número máximo de tokens permitidos en las respuestas de herramientas MCP (predeterminado: 25000). Claude Code muestra una advertencia cuando la salida supera los 10,000 tokens. Las herramientas que declaran [`anthropic/maxResultSizeChars`](/docs/es/mcp#raise-the-limit-for-a-specific-tool) usan en su lugar ese límite de caracteres para el contenido de texto, pero el contenido de imagen de esas herramientas sigue sujeto a esta variable. Un resultado de texto correcto de más de 50,000 caracteres de una herramienta sin esa anotación se [guarda en un archivo](/docs/es/mcp#mcp-output-limits-and-warnings) independientemente de esta variable |489| `MAX_MCP_OUTPUT_TOKENS` | Número máximo de tokens permitidos en las respuestas de las herramientas MCP (predeterminado: 25000). Claude Code muestra una advertencia cuando la salida supera los 10,000 tokens. Las herramientas que declaran [`anthropic/maxResultSizeChars`](/docs/es/mcp#raise-the-limit-for-a-specific-tool) usan ese límite de caracteres para el contenido de texto en su lugar, pero el contenido de imagen de esas herramientas sigue sujeto a esta variable. Un resultado de texto correcto de más de 50,000 caracteres de una herramienta sin esa anotación se [guarda en un archivo](/docs/es/mcp#mcp-output-limits-and-warnings) independientemente de esta variable |

484| `MAX_STRUCTURED_OUTPUT_RETRIES` | Número de intentos que permite Claude Code cuando la respuesta del modelo no supera la validación contra [`--json-schema`](/docs/es/cli-reference#cli-flags) en modo no interactivo con el flag `-p`; tras esa cantidad de intentos fallidos sin salida válida, la ejecución falla. El mismo límite se aplica cuando la salida estructurada de un subagente de [flujo de trabajo](/docs/es/workflows) no supera la validación. El valor predeterminado es 5: un primer intento más cuatro reintentos |490| `MAX_STRUCTURED_OUTPUT_RETRIES` | Número de intentos que Claude Code permite cuando la respuesta del modelo no supera la validación con el [`--json-schema`](/docs/es/cli-reference#cli-flags) en modo no interactivo con el flag `-p`; tras esa cantidad de intentos fallidos sin salida válida, la ejecución falla. El mismo límite se aplica cuando la salida estructurada de un subagente de [flujo de trabajo](/docs/es/workflows) no supera la validación. El valor predeterminado es 5: un primer intento más cuatro reintentos |

485| `MAX_THINKING_TOKENS` | Presupuesto fijo de tokens para el [pensamiento extendido](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). Claude Code lo limita a un token por debajo del máximo de tokens de salida de la solicitud y nunca por debajo de 1,024. Consulta `CLAUDE_CODE_MAX_OUTPUT_TOKENS` para saber cómo se establece ese límite. Cuando no está establecida y el pensamiento está habilitado, los modelos con [razonamiento adaptativo](/docs/es/model-config#adjust-effort-level) eligen su propia profundidad de pensamiento, y los demás modelos usan el límite. Establece en `0` para deshabilitar el pensamiento en la API de Anthropic, excepto en Opus 5.5, Sonnet 5.5, Haiku 5.5 y los modelos Fable, en los que no se puede desactivar el pensamiento. En [proveedores externos](/docs/es/third-party-integrations), `0` omite en su lugar el parámetro `thinking`. Con el pensamiento desactivado en la API de Anthropic, Claude Code envía el esfuerzo `high` en lugar de un nivel superior a los modelos que sabe que [no aceptan esa combinación](/docs/es/errors#effort-isnt-available-with-thinking-turned-off), como Opus 5. Para un valor positivo, Claude Code ignora el número en sí en los modelos de razonamiento adaptativo, excepto cuando `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` desactiva el razonamiento adaptativo |491| `MAX_THINKING_TOKENS` | Presupuesto fijo de tokens para el [pensamiento extendido](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). Claude Code lo limita a un token por debajo del máximo de tokens de salida de la solicitud y nunca por debajo de 1,024. Consulta `CLAUDE_CODE_MAX_OUTPUT_TOKENS` para ver cómo se establece ese límite. Cuando no está establecida y el pensamiento está habilitado, los modelos con [razonamiento adaptativo](/docs/es/model-config#adjust-effort-level) eligen su propia profundidad de pensamiento, y los demás modelos usan el límite. Establécelo en `0` para deshabilitar el pensamiento en la API de Anthropic, excepto en Opus 5.5, Sonnet 5.5, Haiku 5.5 y los modelos Fable, en los que no se puede desactivar el pensamiento. En [proveedores externos](/docs/es/third-party-integrations), `0` omite el parámetro `thinking` en su lugar. Con el pensamiento desactivado en la API de Anthropic, Claude Code envía el esfuerzo `high` en lugar de un nivel superior a los modelos que sabe que [no aceptan esa combinación](/docs/es/errors#effort-isnt-available-with-thinking-turned-off), como Opus 5. Para un valor positivo, Claude Code ignora el número en sí en los modelos de razonamiento adaptativo, excepto cuando `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` desactiva el razonamiento adaptativo |

486| `MCP_CLIENT_SECRET` | Secreto de cliente OAuth para servidores MCP que requieren [credenciales preconfiguradas](/docs/es/mcp#use-pre-configured-oauth-credentials). Evita la solicitud interactiva al agregar un servidor con `--client-secret` |492| `MCP_CLIENT_SECRET` | Secreto de cliente OAuth para los servidores MCP que requieren [credenciales preconfiguradas](/docs/es/mcp#use-pre-configured-oauth-credentials). Evita la solicitud interactiva al agregar un servidor con `--client-secret` |

487| `MCP_CONNECTION_NONBLOCKING` | Controla si el inicio espera a que los servidores MCP se conecten antes de la primera consulta. El inicio de MCP no es bloqueante de forma predeterminada: los servidores se conectan en segundo plano y sus herramientas quedan disponibles a medida que terminan. Establece en `0` para que Claude Code espere a que los servidores se conecten antes de la primera consulta. Los servidores configurados con [`alwaysLoad: true`](/docs/es/mcp#exempt-a-server-from-deferral) siguen haciendo que el inicio espere de todos modos, excepto cuando se sirven desde la [caché de descubrimiento](/docs/es/mcp#server-status-detail), ya que sus herramientas deben estar presentes cuando se construye el primer prompt. En modo no interactivo (`-p`) sin `--input-format stream-json`, Claude Code también espera a los servidores aún pendientes antes del primer turno independientemente de esta variable. Cuando pasas [`--mcp-config`](/docs/es/cli-reference#cli-flags) explícitamente, la espera tiene un plazo más largo; consulta la entrada de ese flag para conocer la excepción de los servidores en caché |493| `MCP_CONNECTION_NONBLOCKING` | Controla si el inicio espera a que los servidores MCP se conecten antes de la primera consulta. El inicio de MCP no es bloqueante de forma predeterminada: los servidores se conectan en segundo plano y sus herramientas quedan disponibles a medida que terminan. Establécelo en `0` para que Claude Code espere a que los servidores se conecten antes de la primera consulta. Los servidores configurados con [`alwaysLoad: true`](/docs/es/mcp#exempt-a-server-from-deferral) siguen haciendo esperar al inicio de todos modos, excepto cuando se sirven desde la [caché de descubrimiento](/docs/es/mcp#server-status-detail), ya que sus herramientas deben estar presentes cuando se construye el primer prompt. En modo no interactivo (`-p`) sin `--input-format stream-json`, Claude Code también espera a los servidores aún pendientes antes del primer turno, independientemente de esta variable. Cuando pasas [`--mcp-config`](/docs/es/cli-reference#cli-flags) explícitamente, la espera tiene un plazo más largo; consulta la entrada de ese flag para ver la excepción de los servidores en caché |

488| `MCP_CONNECT_TIMEOUT_MS` | Cuánto tiempo espera el inicio bloqueante de MCP, en milisegundos, al lote de conexiones antes de tomar una instantánea de la lista de herramientas (predeterminado: 5000). Se aplica cuando `MCP_CONNECTION_NONBLOCKING=0` o para los servidores marcados con [`alwaysLoad: true`](/docs/es/mcp#exempt-a-server-from-deferral). Los servidores que siguen pendientes al cumplirse el plazo continúan conectándose en segundo plano. Distinta de `MCP_TIMEOUT`, que limita el intento de conexión de un servidor individual |494| `MCP_CONNECT_TIMEOUT_MS` | Cuánto tiempo espera el inicio bloqueante de MCP, en milisegundos, al lote de conexiones antes de tomar una instantánea de la lista de herramientas (predeterminado: 5000). Se aplica cuando `MCP_CONNECTION_NONBLOCKING=0` o para los servidores marcados con [`alwaysLoad: true`](/docs/es/mcp#exempt-a-server-from-deferral). Los servidores que siguen pendientes al cumplirse el plazo continúan conectándose en segundo plano. Distinta de `MCP_TIMEOUT`, que limita el intento de conexión de un servidor individual |

489| `MCP_DISCOVERY_CACHE` | Activa o desactiva la [caché de descubrimiento de MCP](/docs/es/mcp#server-status-detail). Con la caché activada, un servidor HTTP o SSE remoto que hayas usado antes puede mostrar el [estado `cached`](/docs/es/mcp#server-status-detail), y Claude Code lo conecta en su primera llamada a herramienta en lugar de al inicio. La caché está desactivada de forma predeterminada a menos que un despliegue gradual la haya habilitado para tu cuenta. Establece en `1` para activarla, o en `0` para mantenerla desactivada incluso cuando el despliegue la haya habilitado. Antes de v2.1.238, la caché estaba activada de forma predeterminada. El estado `cached` requiere Claude Code v2.1.221 o posterior |495| `MCP_DISCOVERY_CACHE` | Activa o desactiva la [caché de descubrimiento de MCP](/docs/es/mcp#server-status-detail). Con la caché activada, un servidor HTTP o SSE remoto que hayas usado antes puede mostrar el [estado `cached`](/docs/es/mcp#server-status-detail), y Claude Code lo conecta en su primera llamada a herramienta en lugar de al inicio. La caché está desactivada de forma predeterminada a menos que un despliegue gradual la haya habilitado para tu cuenta. Establécelo en `1` para activarla, o en `0` para mantenerla desactivada incluso cuando el despliegue la haya habilitado. Antes de v2.1.238, la caché estaba activada de forma predeterminada. El estado `cached` requiere Claude Code v2.1.221 o posterior |

490| `MCP_DISCOVERY_CACHE_MAX_STALE_S` | Antigüedad máxima, en segundos, de una entrada de la [caché de descubrimiento](/docs/es/mcp#server-status-detail) (predeterminado: 14400, o 4 horas). En un inicio en el que la entrada es más antigua que eso, Claude Code la descarta y conecta el servidor al inicio, como lo hace con la caché desactivada. Claude Code limita el valor a 7 días. Antes de v2.1.238, el valor predeterminado era 86400, o 24 horas, y Claude Code no limitaba el valor |496| `MCP_DISCOVERY_CACHE_MAX_STALE_S` | Antigüedad máxima, en segundos, de una entrada de la [caché de descubrimiento](/docs/es/mcp#server-status-detail) (predeterminado: 14400, o 4 horas). En un inicio en el que la entrada es más antigua que eso, Claude Code la descarta y conecta el servidor al inicio, como lo hace con la caché desactivada. Claude Code limita el valor a 7 días. Antes de v2.1.238, el valor predeterminado era 86400, o 24 horas, y Claude Code no limitaba el valor |

491| `MCP_DISCOVERY_CACHE_STRIKES` | En un inicio en el que una entrada de la [caché de descubrimiento](/docs/es/mcp#server-status-detail) es más antigua que `MCP_DISCOVERY_CACHE_TTL_S`, Claude Code la actualiza en segundo plano. Esta variable establece cuántas actualizaciones seguidas pueden fallar antes de que Claude Code descarte la entrada y, en su lugar, conecte el servidor en el siguiente inicio (predeterminado: 1). Auméntala si tu conexión de red se cae ocasionalmente, para que una sola actualización fallida no descarte la entrada. Requiere Claude Code v2.1.238 o posterior |497| `MCP_DISCOVERY_CACHE_STRIKES` | En un inicio en el que una entrada de la [caché de descubrimiento](/docs/es/mcp#server-status-detail) es más antigua que `MCP_DISCOVERY_CACHE_TTL_S`, Claude Code la actualiza en segundo plano. Esta variable establece cuántas actualizaciones seguidas pueden fallar antes de que Claude Code descarte la entrada y conecte el servidor en el siguiente inicio en su lugar (predeterminado: 1). Auméntala si tu conexión de red se cae ocasionalmente, para que una sola actualización fallida no descarte la entrada. Requiere Claude Code v2.1.238 o posterior |

492| `MCP_DISCOVERY_CACHE_TTL_S` | Segundos durante los cuales Claude Code usa una entrada de la [caché de descubrimiento](/docs/es/mcp#server-status-detail) sin actualizarla (predeterminado: 900). En un inicio en el que la entrada es más antigua que eso, Claude Code todavía la usa pero la actualiza en segundo plano. Una vez que la entrada es más antigua que `MCP_DISCOVERY_CACHE_MAX_STALE_S`, Claude Code la descarta en su lugar. Claude Code limita el valor a `MCP_DISCOVERY_CACHE_MAX_STALE_S`, que es 4 horas de forma predeterminada. Antes de v2.1.238, Claude Code no limitaba el valor |498| `MCP_DISCOVERY_CACHE_TTL_S` | Segundos durante los cuales Claude Code usa una entrada de la [caché de descubrimiento](/docs/es/mcp#server-status-detail) sin actualizarla (predeterminado: 900). En un inicio en el que la entrada es más antigua que eso, Claude Code la sigue usando pero la actualiza en segundo plano. Una vez que la entrada es más antigua que `MCP_DISCOVERY_CACHE_MAX_STALE_S`, Claude Code la descarta en su lugar. Claude Code limita el valor a `MCP_DISCOVERY_CACHE_MAX_STALE_S`, que es de 4 horas de forma predeterminada. Antes de v2.1.238, Claude Code no limitaba el valor |

493| `MCP_OAUTH_CALLBACK_PORT` | Puerto fijo para el callback de redirección de OAuth, como alternativa a `--callback-port` al agregar un servidor MCP con [credenciales preconfiguradas](/docs/es/mcp#use-pre-configured-oauth-credentials) |499| `MCP_OAUTH_CALLBACK_PORT` | Puerto fijo para la devolución de llamada de redirección de OAuth, como alternativa a `--callback-port` al agregar un servidor MCP con [credenciales preconfiguradas](/docs/es/mcp#use-pre-configured-oauth-credentials) |

494| `MCP_PROTOCOL_NEGOTIATION` | Solo en el [runtime de cliente MCP v2](/docs/es/mcp#mcp-client-runtimes), si Claude Code sondea los servidores para la revisión 2026-07-28 del protocolo MCP. Establece `auto` para sondear servidores HTTP, de conectores de claude.ai y stdio, o `legacy` para no sondear ninguno. Con la variable sin establecer, Claude Code sondea los servidores descritos en [Runtimes de cliente MCP](/docs/es/mcp#mcp-client-runtimes). Cualquier otro valor se ignora con una advertencia en el registro de depuración. Requiere Claude Code v2.1.221 o posterior |500| `MCP_PROTOCOL_NEGOTIATION` | Solo en el [entorno de ejecución de cliente MCP v2](/docs/es/mcp#mcp-client-runtimes), si Claude Code sondea los servidores para la revisión 2026-07-28 del protocolo MCP. Establece `auto` para sondear los servidores HTTP, de conector de claude.ai y stdio, o `legacy` para no sondear ninguno. Con la variable sin establecer, Claude Code sondea los servidores descritos en [Entornos de ejecución de cliente MCP](/docs/es/mcp#mcp-client-runtimes). Cualquier otro valor se ignora con una advertencia en el registro de depuración. Requiere Claude Code v2.1.221 o posterior |

495| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | Número máximo de servidores MCP remotos (HTTP/SSE) que se conectan en paralelo durante el inicio (predeterminado: 20) |501| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | Número máximo de servidores MCP remotos (HTTP/SSE) que se conectan en paralelo durante el inicio (predeterminado: 20) |

496| `MCP_SDK_GENERATION` | Fija con qué [runtime de cliente MCP](/docs/es/mcp#mcp-client-runtimes) se conecta este proceso a los servidores MCP: `v1`, basado en MCP TypeScript SDK 1.x, o `v2`, basado en [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/). Sin la variable, Claude Code usa v2, a partir de las versiones indicadas en esa sección. En Claude Code v2.1.221 o posterior, el runtime v2 comprueba el emisor que devuelve un servidor OAuth de MCP en su respuesta de autorización y hace fallar el inicio de sesión con un error que comienza por `Issuer mismatch in authorization response` cuando no coincide. El runtime v1 no ejecuta esta comprobación. Si estableces un valor no reconocido, Claude Code lo ignora y escribe una advertencia en el registro de depuración. Claude Code lee el valor una vez por proceso. Requiere Claude Code v2.1.218 o posterior |502| `MCP_SDK_GENERATION` | Fija con qué [entorno de ejecución de cliente MCP](/docs/es/mcp#mcp-client-runtimes) se conecta este proceso a los servidores MCP: `v1`, basado en MCP TypeScript SDK 1.x, o `v2`, basado en [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/). Sin la variable, Claude Code usa v2, a partir de las versiones indicadas en esa sección. En Claude Code v2.1.221 o posterior, el entorno de ejecución v2 comprueba el emisor que devuelve un servidor OAuth de MCP en su respuesta de autorización y hace fallar el inicio de sesión con un error que comienza con `Issuer mismatch in authorization response` cuando no coincide. El entorno de ejecución v1 no realiza esta comprobación. Si estableces un valor no reconocido, Claude Code lo ignora y escribe una advertencia en el registro de depuración. Claude Code lee el valor una vez por proceso. Requiere Claude Code v2.1.218 o posterior |

497| `MCP_SERVER_CONNECTION_BATCH_SIZE` | Número máximo de servidores MCP locales (stdio) que se conectan en paralelo durante el inicio (predeterminado: 3) |503| `MCP_SERVER_CONNECTION_BATCH_SIZE` | Número máximo de servidores MCP locales (stdio) que se conectan en paralelo durante el inicio (predeterminado: 3) |

498| `MCP_TIMEOUT` | Tiempo de espera en milisegundos para el inicio del servidor MCP (predeterminado: 30000, o 30 segundos) |504| `MCP_TIMEOUT` | Tiempo de espera en milisegundos para el inicio del servidor MCP (predeterminado: 30000, o 30 segundos) |

499| `MCP_TOOL_TIMEOUT` | Tiempo de espera en milisegundos para la ejecución de herramientas MCP (predeterminado: 100000000, unas 28 horas). Para un servidor HTTP, SSE o de conector de claude.ai, cada solicitud también agota su tiempo de espera tras 60 segundos de forma predeterminada; establece esta variable, o el `timeout` por servidor, por encima de 60000 para aumentar ese límite por solicitud. Un valor inferior sigue acortando el tiempo de espera general de ejecución de herramientas, pero deja el límite por solicitud en 60 segundos. Los servidores stdio y WebSocket no tienen temporizador por solicitud. Un campo `timeout` por servidor en `.mcp.json` sobrescribe esto para ese servidor. Un `timeout` por servidor de al menos 1000 también establece la ventana mínima de inactividad para las llamadas a herramientas de ese servidor, de modo que `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` nunca las aborta antes; este mínimo requiere Claude Code v2.1.203 o posterior. Para la variable de entorno, los valores inferiores a 1000 se elevan a un segundo; para el campo por servidor, los valores inferiores a 1000 se ignoran |505| `MCP_TOOL_TIMEOUT` | Tiempo de espera en milisegundos para la ejecución de herramientas MCP (predeterminado: 100000000, unas 28 horas). Para un servidor HTTP, SSE o de conector de claude.ai, a cada solicitud también se le agota el tiempo de espera tras 60 segundos de forma predeterminada; establece esta variable, o el `timeout` por servidor, por encima de 60000 para aumentar ese límite por solicitud. Un valor más bajo sigue acortando el tiempo de espera general de ejecución de herramientas, pero deja el límite por solicitud en 60 segundos. Los servidores stdio y WebSocket no tienen temporizador por solicitud. Un campo `timeout` por servidor en `.mcp.json` sobrescribe este valor para ese servidor. Un `timeout` por servidor de al menos 1000 también establece la ventana mínima de inactividad para las llamadas a herramientas de ese servidor, de modo que `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` nunca las aborte antes; este mínimo requiere Claude Code v2.1.203 o posterior. Para la variable de entorno, los valores inferiores a 1000 se elevan a un segundo; para el campo por servidor, los valores inferiores a 1000 se ignoran |

500| `NO_PROXY` | Lista de dominios e IP a los que las solicitudes se enviarán directamente, sin pasar por el proxy |506| `NO_PROXY` | Lista de dominios e IP a los que las solicitudes se enviarán directamente, sin pasar por el proxy |

501| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | Límite estándar del SDK de OpenTelemetry sobre la longitud del valor de los atributos. Claude Code limita los atributos de telemetría con contenido al menor entre este valor y `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH`, de modo que el marcador de truncamiento se mantenga dentro del límite del SDK. Claude Code lee las variantes `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT` y `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT` de la misma manera, y el menor valor establecido se aplica a todas las señales. Requiere Claude Code v2.1.214 o posterior. Consulta [Monitoreo](/docs/es/monitoring-usage#common-configuration-variables) |507| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | Límite estándar del SDK de OpenTelemetry sobre la longitud de los valores de los atributos. Claude Code limita los atributos de telemetría con contenido al menor entre este valor y `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH`, de modo que el marcador de truncamiento quede dentro del límite del SDK. Claude Code lee las variantes `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT` y `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT` de la misma manera, y el menor valor establecido se aplica a todas las señales. Requiere Claude Code v2.1.214 o posterior. Consulta [Monitoreo](/docs/es/monitoring-usage#common-configuration-variables) |

502| `OTEL_LOG_ASSISTANT_RESPONSES` | Establece en `1` para incluir el texto de respuesta del modelo en los eventos de registro de OpenTelemetry `assistant_response`. Cuando no está establecida, Claude Code usa en su lugar el valor de `OTEL_LOG_USER_PROMPTS`. Establece en `0` para mantener las respuestas censuradas incluso cuando `OTEL_LOG_USER_PROMPTS` está establecida. 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). Requiere Claude Code v2.1.193 o posterior. Consulta [Monitoreo](/docs/es/monitoring-usage#assistant-response-event) |508| `OTEL_LOG_ASSISTANT_RESPONSES` | Establécelo en `1` para incluir el texto de respuesta del modelo en los eventos de registro `assistant_response` de OpenTelemetry. Cuando no está establecida, Claude Code usa el valor de `OTEL_LOG_USER_PROMPTS` en su lugar. Establécelo en `0` para mantener las respuestas ocultas incluso cuando `OTEL_LOG_USER_PROMPTS` está establecida. Establécelo 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). Requiere Claude Code v2.1.193 o posterior. Consulta [Monitoreo](/docs/es/monitoring-usage#assistant-response-event) |

503| `OTEL_LOG_MANAGED_SETTINGS` | Establece en `1` para añadir la configuración administrada censurada, y un resumen SHA-256 de la configuración antes de la censura, a los eventos de registro de OpenTelemetry `managed_settings_resolved`. Deshabilitada de forma predeterminada. Establécela en tu shell, en la configuración de usuario o en la configuración administrada; un valor en la configuración de proyecto o local no la activa. Requiere Claude Code v2.1.274 o posterior. Consulta [Monitoreo](/docs/es/monitoring-usage#managed-settings-resolved-event) |509| `OTEL_LOG_MANAGED_SETTINGS` | Establécelo en `1` para añadir la configuración administrada con los datos sensibles ocultos, y un resumen SHA-256 de la configuración antes de ocultarlos, a los eventos de registro `managed_settings_resolved` de OpenTelemetry. Deshabilitado de forma predeterminada. Establécelo en tu shell, en la configuración de usuario o en la configuración administrada; un valor en la configuración de proyecto o local no lo activa. Requiere Claude Code v2.1.274 o posterior. Consulta [Monitoreo](/docs/es/monitoring-usage#managed-settings-resolved-event) |

504| `OTEL_LOG_RAW_API_BODIES` | Emite el JSON de las solicitudes y respuestas de la Messages API de Anthropic como eventos de registro `api_request_body` / `api_response_body`. Establece en `1` para cuerpos en línea truncados en el límite de contenido, o en `file:<dir>` para escribir los cuerpos sin truncar en disco y emitir en su lugar una ruta `body_ref`. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` configura el límite de contenido, de 60 KB de forma predeterminada. Deshabilitada de forma predeterminada; los cuerpos incluyen todo el historial de la conversación. 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#api-request-body-event) |510| `OTEL_LOG_RAW_API_BODIES` | Emite el JSON de solicitud y respuesta de la Messages API de Anthropic como eventos de registro `api_request_body` / `api_response_body`. Establécelo en `1` para obtener los cuerpos en línea truncados en el límite de contenido, o en `file:<dir>` para escribir los cuerpos sin truncar en el disco y emitir una ruta `body_ref` en su lugar. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` configura el límite de contenido, de 60 KB de forma predeterminada. Deshabilitado de forma predeterminada; los cuerpos incluyen todo el historial de la conversación. Establécelo 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#api-request-body-event) |

505| `OTEL_LOG_TOOL_CONTENT` | Establece en `1` para incluir el contenido de las herramientas en el evento de span de OpenTelemetry `tool.output`. Los atributos de span llevan el contenido de las herramientas bajo [sus propias restricciones](/docs/es/monitoring-usage#new-context-gates). Requiere [tracing](/docs/es/monitoring-usage#traces-beta). Deshabilitada de forma predeterminada para proteger los datos sensibles. 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), salvo los valores de desactivación que describe esa sección. Consulta [Monitoreo](/docs/es/monitoring-usage#tool-output-span-event) |511| `OTEL_LOG_TOOL_CONTENT` | Establécelo en `1` para incluir el contenido de las herramientas en el evento de span `tool.output` de OpenTelemetry. Los atributos de span llevan el contenido de las herramientas bajo [sus propias condiciones](/docs/es/monitoring-usage#new-context-gates). Requiere [rastreo](/docs/es/monitoring-usage#traces-beta). Deshabilitado de forma predeterminada para proteger los datos sensibles. Establécelo 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), salvo los valores de desactivación que describe esa sección. Consulta [Monitoreo](/docs/es/monitoring-usage#tool-output-span-event) |

506| `OTEL_LOG_TOOL_DETAILS` | Establece en `1` para incluir los argumentos de entrada de las herramientas; los nombres de los servidores MCP; los nombres de los flujos de trabajo creados por el usuario; las cadenas de error sin procesar en los fallos de herramientas; la `category` de rechazo en los eventos `api_refusal`; los nombres reales de agentes, skills, plugins y servidores MCP en las [métricas de costos y tokens](/docs/es/monitoring-usage#cost-counter); y otros detalles de las herramientas en las métricas, trazas y registros de OpenTelemetry. Deshabilitada de forma predeterminada para proteger la PII. 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), salvo los valores de desactivación que describe esa sección. Consulta [Monitoreo](/docs/es/monitoring-usage) |512| `OTEL_LOG_TOOL_DETAILS` | Establécelo en `1` para incluir los argumentos de entrada de las herramientas; los nombres de los servidores MCP; los nombres de los flujos de trabajo creados por el usuario; las cadenas de error sin procesar en los fallos de herramientas; la `category` del rechazo en los eventos `api_refusal`; los nombres reales de agentes, skills, plugins y servidores MCP en las [métricas de costo y tokens](/docs/es/monitoring-usage#cost-counter); y otros detalles de las herramientas en las métricas, trazas y registros de OpenTelemetry. Deshabilitado de forma predeterminada para proteger la PII. Establécelo 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), salvo los valores de desactivación que describe esa sección. Consulta [Monitoreo](/docs/es/monitoring-usage) |

507| `OTEL_LOG_USER_PROMPTS` | Establece en `1` para incluir el texto de los prompts del usuario en las trazas y registros de OpenTelemetry. Deshabilitada de forma predeterminada (los prompts se censuran). 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), salvo los valores de desactivación que describe esa sección. Consulta [Monitoreo](/docs/es/monitoring-usage) |513| `OTEL_LOG_USER_PROMPTS` | Establécelo en `1` para incluir el texto de los prompts del usuario en las trazas y registros de OpenTelemetry. Deshabilitado de forma predeterminada (los prompts se ocultan). Establécelo 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), salvo los valores de desactivación que describe esa sección. Consulta [Monitoreo](/docs/es/monitoring-usage) |

508| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Establece en `false` para excluir el UUID de la cuenta de los atributos de métricas (predeterminado: incluido). Consulta [Monitoreo](/docs/es/monitoring-usage) |514| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Establécelo en `false` para excluir el UUID de la cuenta de los atributos de las métricas (predeterminado: incluido). Consulta [Monitoreo](/docs/es/monitoring-usage) |

509| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Establece en `true` para incluir el punto de entrada de la sesión en los atributos de métricas (predeterminado: excluido). Añadida en v2.1.152. Consulta [Monitoreo](/docs/es/monitoring-usage) |515| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Establécelo en `true` para incluir el punto de entrada de la sesión en los atributos de las métricas (predeterminado: excluido). Añadida en v2.1.152. Consulta [Monitoreo](/docs/es/monitoring-usage) |

510| `OTEL_METRICS_INCLUDE_REPOSITORY` | Establece en `true` para etiquetar las métricas y eventos de OpenTelemetry con atributos `vcs.*` que identifican el repositorio de la sesión (predeterminado: excluido). Requiere Claude Code v2.1.269 o posterior. Consulta [Atributos de repositorio](/docs/es/monitoring-usage#repository-attributes) |516| `OTEL_METRICS_INCLUDE_REPOSITORY` | Establécelo en `true` para etiquetar las métricas y los eventos de OpenTelemetry con atributos `vcs.*` que identifican el repositorio de la sesión (predeterminado: excluido). Requiere Claude Code v2.1.269 o posterior. Consulta [Atributos del repositorio](/docs/es/monitoring-usage#repository-attributes) |

511| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | A partir de v2.1.161, Claude Code adjunta las claves de `OTEL_RESOURCE_ATTRIBUTES` a las etiquetas de los puntos de datos de métricas. Establece en `false` para excluirlas (predeterminado: incluidas). Consulta [Monitoreo](/docs/es/monitoring-usage#multi-team-organization-support) |517| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | A partir de v2.1.161, Claude Code adjunta las claves de `OTEL_RESOURCE_ATTRIBUTES` a las etiquetas de los puntos de datos de las métricas. Establécelo en `false` para excluirlas (predeterminado: incluidas). Consulta [Monitoreo](/docs/es/monitoring-usage#multi-team-organization-support) |

512| `OTEL_METRICS_INCLUDE_SESSION_ID` | Establece en `false` para excluir el ID de sesión de los atributos de métricas (predeterminado: incluido). Consulta [Monitoreo](/docs/es/monitoring-usage) |518| `OTEL_METRICS_INCLUDE_SESSION_ID` | Establécelo en `false` para excluir el ID de sesión de los atributos de las métricas (predeterminado: incluido). Consulta [Monitoreo](/docs/es/monitoring-usage) |

513| `OTEL_METRICS_INCLUDE_VERSION` | Establece en `true` para incluir la versión de Claude Code en los atributos de métricas (predeterminado: excluida). Consulta [Monitoreo](/docs/es/monitoring-usage) |519| `OTEL_METRICS_INCLUDE_VERSION` | Establécelo en `true` para incluir la versión de Claude Code en los atributos de las métricas (predeterminado: excluida). Consulta [Monitoreo](/docs/es/monitoring-usage) |

514| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | Sobrescribe el presupuesto de caracteres para los metadatos de skills que se muestran a la [herramienta Skill](/docs/es/skills#control-who-invokes-a-skill). El presupuesto escala dinámicamente al 1% de la ventana de contexto, con un valor de respaldo de 8,000 caracteres. Nombre heredado que se mantiene por compatibilidad con versiones anteriores |520| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | Sobrescribe el presupuesto de caracteres para los metadatos de los skills que se muestran a la [herramienta Skill](/docs/es/skills#control-who-invokes-a-skill). El presupuesto escala dinámicamente al 1% de la ventana de contexto, con un valor de respaldo de 8,000 caracteres. Nombre heredado que se conserva por compatibilidad con versiones anteriores |

515| `TASK_MAX_OUTPUT_LENGTH` | Se eliminó en v2.1.277 y ahora no tiene efecto, junto con la herramienta `TaskOutput` cuyo tamaño definía. Anteriormente establecía el número máximo de caracteres de la salida de una [tarea en segundo plano](/docs/es/tools-reference#background-commands) que conservaba la herramienta `TaskOutput`. Ahora Claude lee en su lugar el archivo de salida de una tarea en segundo plano con `Read` |521| `TASK_MAX_OUTPUT_LENGTH` | Eliminada en v2.1.277 y ahora no tiene efecto, junto con la herramienta `TaskOutput` cuyo tamaño definía. Anteriormente establecía el número máximo de caracteres de la salida de una [tarea en segundo plano](/docs/es/tools-reference#background-commands) que conservaba la herramienta `TaskOutput`. Ahora Claude lee el archivo de salida de una tarea en segundo plano con `Read` |

516| `USE_BUILTIN_RIPGREP` | Establece en `0` para usar el `rg` instalado en el sistema en lugar del `rg` incluido con Claude Code |522| `USE_BUILTIN_RIPGREP` | Establécelo en `0` para usar el `rg` instalado en el sistema en lugar del `rg` incluido con Claude Code |

517| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Sobrescribe la región para Claude 3.5 Haiku al usar Google Cloud's Agent Platform |523| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Sobrescribe la región de Claude 3.5 Haiku cuando se usa Google Cloud's Agent Platform |

518| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Sobrescribe la región para Claude 3.5 Sonnet al usar Google Cloud's Agent Platform |524| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Sobrescribe la región de Claude 3.5 Sonnet cuando se usa Google Cloud's Agent Platform |

519| `VERTEX_REGION_CLAUDE_3_7_SONNET` | Sobrescribe la región para Claude 3.7 Sonnet al usar Google Cloud's Agent Platform |525| `VERTEX_REGION_CLAUDE_3_7_SONNET` | Sobrescribe la región de Claude 3.7 Sonnet cuando se usa Google Cloud's Agent Platform |

520| `VERTEX_REGION_CLAUDE_4_0_OPUS` | Sobrescribe la región para Claude 4.0 Opus al usar Google Cloud's Agent Platform |526| `VERTEX_REGION_CLAUDE_4_0_OPUS` | Sobrescribe la región de Claude 4.0 Opus cuando se usa Google Cloud's Agent Platform |

521| `VERTEX_REGION_CLAUDE_4_0_SONNET` | Sobrescribe la región para Claude 4.0 Sonnet al usar Google Cloud's Agent Platform |527| `VERTEX_REGION_CLAUDE_4_0_SONNET` | Sobrescribe la región de Claude 4.0 Sonnet cuando se usa Google Cloud's Agent Platform |

522| `VERTEX_REGION_CLAUDE_4_1_OPUS` | Sobrescribe la región para Claude 4.1 Opus al usar Google Cloud's Agent Platform |528| `VERTEX_REGION_CLAUDE_4_1_OPUS` | Sobrescribe la región de Claude 4.1 Opus cuando se usa Google Cloud's Agent Platform |

523| `VERTEX_REGION_CLAUDE_4_5_OPUS` | Sobrescribe la región para Claude Opus 4.5 al usar Google Cloud's Agent Platform |529| `VERTEX_REGION_CLAUDE_4_5_OPUS` | Sobrescribe la región de Claude Opus 4.5 cuando se usa Google Cloud's Agent Platform |

524| `VERTEX_REGION_CLAUDE_4_5_SONNET` | Sobrescribe la región para Claude Sonnet 4.5 al usar Google Cloud's Agent Platform |530| `VERTEX_REGION_CLAUDE_4_5_SONNET` | Sobrescribe la región de Claude Sonnet 4.5 cuando se usa Google Cloud's Agent Platform |

525| `VERTEX_REGION_CLAUDE_4_6_OPUS` | Sobrescribe la región para Claude Opus 4.6 al usar Google Cloud's Agent Platform |531| `VERTEX_REGION_CLAUDE_4_6_OPUS` | Sobrescribe la región de Claude Opus 4.6 cuando se usa Google Cloud's Agent Platform |

526| `VERTEX_REGION_CLAUDE_4_6_SONNET` | Sobrescribe la región para Claude Sonnet 4.6 al usar Google Cloud's Agent Platform |532| `VERTEX_REGION_CLAUDE_4_6_SONNET` | Sobrescribe la región de Claude Sonnet 4.6 cuando se usa Google Cloud's Agent Platform |

527| `VERTEX_REGION_CLAUDE_4_7_OPUS` | Sobrescribe la región para Claude Opus 4.7 al usar Google Cloud's Agent Platform |533| `VERTEX_REGION_CLAUDE_4_7_OPUS` | Sobrescribe la región de Claude Opus 4.7 cuando se usa Google Cloud's Agent Platform |

528| `VERTEX_REGION_CLAUDE_4_8_OPUS` | Sobrescribe la región para Claude Opus 4.8 al usar Google Cloud's Agent Platform |534| `VERTEX_REGION_CLAUDE_4_8_OPUS` | Sobrescribe la región de Claude Opus 4.8 cuando se usa Google Cloud's Agent Platform |

529| `VERTEX_REGION_CLAUDE_5_5_OPUS` | Sobrescribe la región para Claude Opus 5.5 al usar Google Cloud's Agent Platform. Añadida en v2.1.280 |535| `VERTEX_REGION_CLAUDE_5_5_OPUS` | Sobrescribe la región de Claude Opus 5.5 cuando se usa Google Cloud's Agent Platform. Añadida en v2.1.280 |

530| `VERTEX_REGION_CLAUDE_5_5_SONNET` | Sobrescribe la región para Claude Sonnet 5.5 al usar Google Cloud's Agent Platform. Añadida en v2.1.284 |536| `VERTEX_REGION_CLAUDE_5_5_SONNET` | Sobrescribe la región de Claude Sonnet 5.5 cuando se usa Google Cloud's Agent Platform. Añadida en v2.1.284 |

531| `VERTEX_REGION_CLAUDE_5_OPUS` | Sobrescribe la región para Claude Opus 5 al usar Google Cloud's Agent Platform. Añadida en v2.1.219 |537| `VERTEX_REGION_CLAUDE_5_OPUS` | Sobrescribe la región de Claude Opus 5 cuando se usa Google Cloud's Agent Platform. Añadida en v2.1.219 |

532| `VERTEX_REGION_CLAUDE_5_SONNET` | Sobrescribe la región para Claude Sonnet 5 al usar Google Cloud's Agent Platform. Añadida en v2.1.197 |538| `VERTEX_REGION_CLAUDE_5_SONNET` | Sobrescribe la región de Claude Sonnet 5 cuando se usa Google Cloud's Agent Platform. Añadida en v2.1.197 |

533| `VERTEX_REGION_CLAUDE_FABLE_5` | Sobrescribe la región para Claude Fable 5 al usar Google Cloud's Agent Platform. Añadida en v2.1.170 |539| `VERTEX_REGION_CLAUDE_FABLE_5` | Sobrescribe la región de Claude Fable 5 cuando se usa Google Cloud's Agent Platform. Añadida en v2.1.170 |

534| `VERTEX_REGION_CLAUDE_FABLE_5_1` | Sobrescribe la región para Claude Fable 5.1 al usar Google Cloud's Agent Platform. Añadida en v2.1.257 |540| `VERTEX_REGION_CLAUDE_FABLE_5_1` | Sobrescribe la región de Claude Fable 5.1 cuando se usa Google Cloud's Agent Platform. Añadida en v2.1.257 |

535| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Sobrescribe la región para Claude Haiku 4.5 al usar Google Cloud's Agent Platform |541| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Sobrescribe la región de Claude Haiku 4.5 cuando se usa Google Cloud's Agent Platform |

536| `VERTEX_REGION_CLAUDE_HAIKU_5_5` | Sobrescribe la región para Claude Haiku 5.5 al usar Google Cloud's Agent Platform. Añadida en v2.1.293 |542| `VERTEX_REGION_CLAUDE_HAIKU_5_5` | Sobrescribe la región de Claude Haiku 5.5 cuando se usa Google Cloud's Agent Platform. Añadida en v2.1.293 |

537 543 

538También se admiten las variables estándar de exportadores de OpenTelemetry (`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES` y las variantes específicas de cada señal). Consulta [Monitoreo](/docs/es/monitoring-usage) para obtener detalles de configuración.544También se admiten las variables estándar de los exportadores de OpenTelemetry (`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES` y las variantes específicas de cada señal). Consulta [Monitoreo](/docs/es/monitoring-usage) para ver los detalles de configuración.

539 545 

540Establece `CLAUDE_CODE_ENABLE_TELEMETRY` y las variables de OpenTelemetry que activan la exportación, eligen su destino o capturan contenido en tu shell, en la configuración de usuario o en la configuración administrada. Claude Code [las ignora en la configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env), salvo los valores de desactivación que describe esa sección. `OTEL_RESOURCE_ATTRIBUTES` y las variables de intervalo, tiempo de espera y compresión de la exportación, como `OTEL_METRIC_EXPORT_INTERVAL`, siguen aplicándose desde la configuración de proyecto y local.546Establece `CLAUDE_CODE_ENABLE_TELEMETRY` y las variables de OpenTelemetry que activan la exportación, eligen su destino o capturan contenido en tu shell, en la configuración de usuario o en la configuración administrada. Claude Code [las ignora en la configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env), salvo los valores de desactivación que describe esa sección. `OTEL_RESOURCE_ATTRIBUTES` y las variables de intervalo, tiempo de espera y compresión de la exportación, como `OTEL_METRIC_EXPORT_INTERVAL`, siguen aplicándose desde la configuración de proyecto y local.

541 547 


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

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

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

593* Hacer que Claude Code sondee servidores de conectores de claude.ai para la [revisión 2026-07-28 del protocolo MCP](/docs/es/mcp#mcp-client-runtimes), a menos que establezcas `MCP_PROTOCOL_NEGOTIATION=auto`

594* Obtener la [herramienta PowerShell](/docs/es/tools-reference#powershell-tool) de forma predeterminada para cuentas de claude.ai y Console en Windows con Git Bash instalado; Claude Code enruta los comandos de shell a través de Git Bash a menos que establezcas `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`. En Windows sin Git Bash, la herramienta permanece activada599* Obtener la [herramienta PowerShell](/docs/es/tools-reference#powershell-tool) de forma predeterminada para cuentas de claude.ai y Console en Windows con Git Bash instalado; Claude Code enruta los comandos de shell a través de Git Bash a menos que establezcas `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`. En Windows sin Git Bash, la herramienta permanece activada

595* Obtener [comentarios redactados por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior), que Claude Code activa mediante un flag obtenido600* Obtener [comentarios redactados por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior), que Claude Code activa mediante un flag obtenido

596* Hacer que Claude [trate los pegados grandes como texto pegado en lugar de texto escrito](/docs/es/terminal-config#how-claude-treats-pasted-text); el contenido detrás de un marcador de posición `[Pasted text #N]` llega a Claude sin marcar601* Hacer que Claude [trate los pegados grandes como texto pegado en lugar de texto escrito](/docs/es/terminal-config#how-claude-treats-pasted-text); el contenido detrás de un marcador de posición `[Pasted text #N]` llega a Claude sin marcar

errors.md +10 −55

Details

189| `<model> has safety measures that flagged this message for a cybersecurity topic` | [Errores de solicitud](#safety-measures-flagged-a-cybersecurity-topic) |189| `<model> has safety measures that flagged this message for a cybersecurity topic` | [Errores de solicitud](#safety-measures-flagged-a-cybersecurity-topic) |

190| `` Details: `[reasoning_extraction]` `` | [Errores de solicitud](#safeguards-flagged-a-request-for-claudes-reasoning) |190| `` Details: `[reasoning_extraction]` `` | [Errores de solicitud](#safeguards-flagged-a-request-for-claudes-reasoning) |

191| `API Error: Output blocked by content filtering policy` | [Errores de solicitud](#output-blocked-by-content-filtering-policy) |191| `API Error: Output blocked by content filtering policy` | [Errores de solicitud](#output-blocked-by-content-filtering-policy) |

192| `Installation was killed before it could finish (exit code 137)` | [Errores de instalación](#installation-was-killed-before-it-could-finish) |192| `Installation was killed before it could finish (exit code 137)` | [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install#installation-was-killed-before-it-could-finish) |

193| `The connection dropped while downloading the update` | [Errores de instalación](#the-connection-dropped-while-downloading-the-update) |193| `The connection dropped while downloading the update` | [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |

194| `Download timed out: exceeded the total deadline` | [Errores de instalación](#the-connection-dropped-while-downloading-the-update) |194| `Download timed out: exceeded the total deadline` | [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |

195| `--bg and --print conflict` | [Errores de línea de comandos](#conflict-between-bg-and-print) |195| `--bg and --print conflict` | [Errores de línea de comandos](#conflict-between-bg-and-print) |

196| `Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.` | [Errores de línea de comandos](#conflict-between-a-system-prompt-flag-and-its-file-form) |196| `Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.` | [Errores de línea de comandos](#conflict-between-a-system-prompt-flag-and-its-file-form) |

197| `Cloud sessions cannot be created from a --restricted session` | [Errores de línea de comandos](#cloud-sessions-cannot-be-created-from-a-restricted-session) |197| `Cloud sessions cannot be created from a --restricted session` | [Errores de línea de comandos](#cloud-sessions-cannot-be-created-from-a-restricted-session) |


261| `Marketplace name impersonates an official Anthropic/Claude marketplace` | [Errores de plugins](#claude-code-refuses-the-marketplace-name) |261| `Marketplace name impersonates an official Anthropic/Claude marketplace` | [Errores de plugins](#claude-code-refuses-the-marketplace-name) |

262| `Marketplace "<name>" is already added from a different source` | [Errores de plugins](#marketplace-is-already-added-from-a-different-source) |262| `Marketplace "<name>" is already added from a different source` | [Errores de plugins](#marketplace-is-already-added-from-a-different-source) |

263| `"<name>" is another spelling of "<reserved>", a reserved marketplace name` | [Errores de plugins](#marketplace-name-is-another-spelling-of-a-reserved-name) |263| `"<name>" is another spelling of "<reserved>", a reserved marketplace name` | [Errores de plugins](#marketplace-name-is-another-spelling-of-a-reserved-name) |

264| `Cannot add marketplace "<name>": Claude Code cannot install plugins from a marketplace with this name` | [Solución de problemas de plugins](/docs/es/plugins/troubleshooting#cannot-install-plugins-from-a-marketplace-with-this-name) |

264| `Marketplace "<name>" is added but ignored` | [Solución de problemas de plugins](/docs/es/plugins/troubleshooting#marketplace-is-added-but-ignored) |265| `Marketplace "<name>" is added but ignored` | [Solución de problemas de plugins](/docs/es/plugins/troubleshooting#marketplace-is-added-but-ignored) |

265| `Marketplace "<name>" is registered but was refused (see the debug log)` | [Solución de problemas de plugins](/docs/es/plugins/troubleshooting#marketplace-is-added-but-ignored) |266| `Marketplace "<name>" is registered but was refused (see the debug log)` | [Solución de problemas de plugins](/docs/es/plugins/troubleshooting#marketplace-is-added-but-ignored) |

266| `references ${user_config.*} in a shell-form command` | [Errores de plugins](#plugin-command-references-user-config) |267| `references ${user_config.*} in a shell-form command` | [Errores de plugins](#plugin-command-references-user-config) |


269| `Plugin archive integrity check failed` | [Errores de plugins](#plugin-archive-integrity-check-failed) |270| `Plugin archive integrity check failed` | [Errores de plugins](#plugin-archive-integrity-check-failed) |

270| `An npm plugin source must name a registry package` | [Solución de problemas de plugins](/docs/es/plugins/troubleshooting#an-npm-plugin-source-must-name-a-registry-package) |271| `An npm plugin source must name a registry package` | [Solución de problemas de plugins](/docs/es/plugins/troubleshooting#an-npm-plugin-source-must-name-a-registry-package) |

271| `The packages it lists are not installed` / `The packages it lists were not installed, because` | [Solución de problemas de plugins](/docs/es/plugins/troubleshooting#the-packages-it-lists-are-not-installed) |272| `The packages it lists are not installed` / `The packages it lists were not installed, because` | [Solución de problemas de plugins](/docs/es/plugins/troubleshooting#the-packages-it-lists-are-not-installed) |

273| `does not load (...), so Claude Code ignores the whole file` | [Solución de problemas de plugins](/docs/es/plugins/troubleshooting#does-not-load-so-claude-code-ignores-the-whole-file) |

272| `path escapes plugin directory` | [Errores de plugins](#path-escapes-plugin-directory) |274| `path escapes plugin directory` | [Errores de plugins](#path-escapes-plugin-directory) |

273| `path could not be checked` | [Errores de plugins](#path-could-not-be-checked) |275| `path could not be checked` | [Errores de plugins](#path-could-not-be-checked) |

274| `its marketplace entry path does not stay inside the marketplace directory` | [Errores de plugins](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |276| `its marketplace entry path does not stay inside the marketplace directory` | [Errores de plugins](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |


279| `"<plugin>" was not uninstalled: it is still switched on in <file>` | [Errores de plugins](#plugin-was-not-uninstalled) |281| `"<plugin>" was not uninstalled: it is still switched on in <file>` | [Errores de plugins](#plugin-was-not-uninstalled) |

280| `"<plugin>" was not uninstalled: <file> is there and could not be read` | [Errores de plugins](#plugin-was-not-uninstalled) |282| `"<plugin>" was not uninstalled: <file> is there and could not be read` | [Errores de plugins](#plugin-was-not-uninstalled) |

281| `Plugin "<plugin>" was not uninstalled: installed_plugins.json` | [Solución de problemas de plugins](/docs/es/plugins/troubleshooting#installed-plugins-json-holds-a-record-this-version-cannot-read) |283| `Plugin "<plugin>" was not uninstalled: installed_plugins.json` | [Solución de problemas de plugins](/docs/es/plugins/troubleshooting#installed-plugins-json-holds-a-record-this-version-cannot-read) |

284| `Plugin directory does not exist: <path>` | [Solución de problemas de plugins](/docs/es/plugins/troubleshooting#plugin-directory-does-not-exist) |

282| `Error: No such tool available: <tool name>` | [Errores de herramientas](#no-such-tool-available) |285| `Error: No such tool available: <tool name>` | [Errores de herramientas](#no-such-tool-available) |

283| `would be spawned with zero tools — refusing` | [Errores de herramientas](#agent-would-be-spawned-with-zero-tools) |286| `would be spawned with zero tools — refusing` | [Errores de herramientas](#agent-would-be-spawned-with-zero-tools) |

284| `File is covered by a Read deny rule in your permission settings` | [Errores de herramientas](#file-is-covered-by-a-read-deny-rule) |287| `File is covered by a Read deny rule in your permission settings` | [Errores de herramientas](#file-is-covered-by-a-read-deny-rule) |


386* Un error del servidor o una respuesta de sobrecarga que llega después de que Claude ha terminado de pensar pero antes de que haya comenzado cualquier texto o llamada a herramienta. Claude Code reintenta un error del servidor en ese punto hasta dos veces. Antes de v2.1.284, Claude Code terminaba el turno con el error en ese punto.389* Un error del servidor o una respuesta de sobrecarga que llega después de que Claude ha terminado de pensar pero antes de que haya comenzado cualquier texto o llamada a herramienta. Claude Code reintenta un error del servidor en ese punto hasta dos veces. Antes de v2.1.284, Claude Code terminaba el turno con el error en ese punto.

387* Conexiones perdidas. Cuando una conexión se cae a mitad de una solicitud antes de que Claude haya completado cualquier parte de su respuesta, incluido su pensamiento, Claude Code reenvía la solicitud con el mismo retroceso y el turno continúa, incluso si algo de texto ya había comenzado a enviarse en streaming. Cuando se cae después de que Claude ha terminado de pensar pero antes de que haya comenzado cualquier texto o llamada a herramienta, Claude Code en su lugar reenvía la solicitud hasta dos veces en rápida sucesión, y termina el turno con `Connection lost before a response was produced` si la conexión sigue cayéndose en ese punto.390* Conexiones perdidas. Cuando una conexión se cae a mitad de una solicitud antes de que Claude haya completado cualquier parte de su respuesta, incluido su pensamiento, Claude Code reenvía la solicitud con el mismo retroceso y el turno continúa, incluso si algo de texto ya había comenzado a enviarse en streaming. Cuando se cae después de que Claude ha terminado de pensar pero antes de que haya comenzado cualquier texto o llamada a herramienta, Claude Code en su lugar reenvía la solicitud hasta dos veces en rápida sucesión, y termina el turno con `Connection lost before a response was produced` si la conexión sigue cayéndose en ese punto.

388* Una conexión que Claude Code detecta que se rompió porque tu computadora entró en suspensión a mitad de una solicitud. Claude Code la cuenta como una conexión perdida según las reglas anteriores; una vez que la etiqueta de reintento nombra la razón específica, dice `Connection lost while your computer was asleep`, y si el turno termina después de que Claude ha terminado de pensar pero antes de cualquier texto o llamada a herramienta, el mensaje dice `Your computer went to sleep before a response was produced`.391* Una conexión que Claude Code detecta que se rompió porque tu computadora entró en suspensión a mitad de una solicitud. Claude Code la cuenta como una conexión perdida según las reglas anteriores; una vez que la etiqueta de reintento nombra la razón específica, dice `Connection lost while your computer was asleep`, y si el turno termina después de que Claude ha terminado de pensar pero antes de cualquier texto o llamada a herramienta, el mensaje dice `Your computer went to sleep before a response was produced`.

389* Un stream de respuesta estancado, cuando los encabezados de respuesta han llegado pero ninguna parte de la respuesta de Claude ha llegado, o cuando Claude ha terminado de pensar pero no ha comenzado ningún texto ni llamada a herramienta: Claude Code aborta la conexión estancada y reenvía la solicitud como máximo una vez, fuera del presupuesto de 10 intentos anterior. Si la respuesta se estanca una segunda vez después de que Claude ha terminado de pensar pero antes de cualquier texto o llamada a herramienta, Claude Code termina el turno con `The response stalled before a response was produced`.392* Un stream de respuesta estancado, cuando los encabezados de respuesta han llegado pero ninguna parte de la respuesta de Claude ha llegado, o cuando Claude ha terminado de pensar pero no ha comenzado ningún texto ni llamada a herramienta: Claude Code aborta la conexión estancada y vuelve a enviar la solicitud en streaming como máximo una vez. Si la respuesta se estanca una segunda vez después de que Claude ha terminado de pensar pero antes de cualquier texto o llamada a herramienta, Claude Code termina el turno con `The response stalled before a response was produced`.

390* Una solicitud en streaming a la que la API nunca responde con encabezados de respuesta, en una conexión donde [se aplica el plazo del primer byte](/docs/es/network-config#streaming-idle-watchdogs): Claude Code la aborta al cumplirse el plazo y la reenvía como máximo una vez por solicitud al modelo, dentro del presupuesto de reintentos, y luego termina el turno con [No response from API](#no-response-from-api) si ese intento también queda sin respuesta. En otras conexiones, la solicitud espera hasta `API_TIMEOUT_MS`. Cuando estableces `CLAUDE_CODE_RETRY_WATCHDOG`, el límite de un reintento no se aplica.393* Una solicitud en streaming a la que la API nunca responde con encabezados de respuesta, en una conexión donde [se aplica el plazo del primer byte](/docs/es/network-config#streaming-idle-watchdogs): Claude Code la aborta al cumplirse el plazo y la reenvía como máximo una vez por solicitud al modelo, dentro del presupuesto de reintentos, y luego termina el turno con [No response from API](#no-response-from-api) si ese intento también queda sin respuesta. En otras conexiones, la solicitud espera hasta `API_TIMEOUT_MS`. Cuando estableces `CLAUDE_CODE_RETRY_WATCHDOG`, el límite de un reintento no se aplica.

391* Una respuesta en streaming que el filtro de contenido de salida de la API detiene antes de que Claude haya terminado de pensar o haya comenzado cualquier texto o llamada a herramienta. Claude Code reenvía la solicitud una vez, dentro del presupuesto de reintentos, y muestra [Output blocked by content filtering policy](#output-blocked-by-content-filtering-policy) si el filtro también detiene la segunda respuesta.394* Una respuesta en streaming que el filtro de contenido de salida de la API detiene antes de que Claude haya terminado de pensar o haya comenzado cualquier texto o llamada a herramienta. Claude Code reenvía la solicitud una vez, dentro del presupuesto de reintentos, y muestra [Output blocked by content filtering policy](#output-blocked-by-content-filtering-policy) si el filtro también detiene la segunda respuesta.

392* Limitaciones temporales 429, pero no el `429` de límite de gasto de un gateway, que no es una limitación; consulta [Spend limit reached](#spend-limit-reached).395* Limitaciones temporales 429, pero no el `429` de límite de gasto de un gateway, que no es una limitación; consulta [Spend limit reached](#spend-limit-reached).


2910* Reformula tu último mensaje o adopta un enfoque diferente2913* Reformula tu último mensaje o adopta un enfoque diferente

2911* Para retroceder a un checkpoint anterior al turno que provocó el bloqueo, presiona Esc dos veces o ejecuta `/rewind`. Consulta [Checkpointing](/docs/es/checkpointing)2914* Para retroceder a un checkpoint anterior al turno que provocó el bloqueo, presiona Esc dos veces o ejecuta `/rewind`. Consulta [Checkpointing](/docs/es/checkpointing)

2912 2915 

2913<h2 id="installation-errors">

2914 Errores de instalación

2915</h2>

2916 

2917Estos errores aparecen durante la instalación o actualización de Claude Code, desde el [script de instalación](/docs/es/setup#install-claude-code), `claude install`, o `claude update`. Para problemas de `command not found`, PATH, permisos y TLS durante la configuración, consulte [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install).

2918 

2919<h3 id="installation-was-killed-before-it-could-finish">

2920 La instalación fue interrumpida antes de poder finalizar

2921</h3>

2922 

2923El script de instalación informa cuando el paso `claude install` es terminado por una señal. En Linux, el código de salida 137 significa que el proceso recibió SIGKILL, y en un host con poca memoria, generalmente es el asesino de falta de memoria (OOM) del kernel. El script imprime esta explicación y sale con el código 137:

2924 

2925```text theme={null}

2926Installation was killed before it could finish (exit code 137). This usually means the system ran out of memory.

2927Claude Code needs roughly 512MB of free memory to install. Free up memory, then run this script again.

2928```

2929 

2930Para cualquier otra señal fatal, y para el código de salida 137 en macOS, el script imprime `Installation was killed before it could finish (exit code <N>)` con el código de salida real y omite la explicación de falta de memoria. El mensaje proviene del script de instalación que usan macOS y Linux, que también cubre instalaciones dentro de WSL; los scripts de instalación nativos de Windows nunca lo imprimen. Antes de v2.1.200, el script salía solo con la línea `Killed` desnuda del shell.

2931 

2932**Qué hacer:**

2933 

2934* Detenga otros procesos para liberar memoria, luego vuelva a ejecutar el instalador

2935* Agregue espacio de intercambio o muévase a una instancia más grande. Consulte [Instalación interrumpida en servidores Linux con poca memoria](/docs/es/troubleshoot-install#install-killed-on-low-memory-linux-servers) para los comandos del archivo de intercambio.

2936 

2937<h3 id="the-connection-dropped-while-downloading-the-update">

2938 La conexión se interrumpió mientras se descargaba la actualización

2939</h3>

2940 

2941La conexión al servidor de descarga se cerró mientras `claude install` o `claude update` estaba obteniendo el binario de Claude Code, y los reintentos no se recuperaron. Claude Code reintenta la descarga cuando la conexión se interrumpe, la transferencia se estanca o el archivo descargado falla su suma de verificación, hasta tres intentos en total. Un error HTTP completado, como un 404, no se reintenta porque el servidor ya respondió. Antes de v2.1.202, una única conexión interrumpida fallaba la descarga inmediatamente con el error desnudo `aborted` en lugar de reintentar.

2942 

2943```text theme={null}

2944The connection dropped while downloading the update (attempt 3/3: aborted). Check your network — proxies sometimes cut off large downloads.

2945```

2946 

2947El texto entre paréntesis nombra qué intento falló y el error de red subyacente. `claude update` precede el mensaje con `Error: Failed to install native update` en stderr.

2948 

2949Una descarga que permanece conectada pero no se completa dentro de 10 minutos falla con `Download timed out: exceeded the total deadline` en su lugar. Claude Code no reintenta una descarga agotada, porque una conexión demasiado lenta para terminar dentro del plazo no terminará en un reintento inmediato. Los pasos a continuación se aplican a ambos mensajes.

2950 

2951Un proxy o puerta de enlace puede cerrar una transferencia larga antes de que finalice, y el binario de Claude Code es una descarga grande.

2952 

2953**Qué hacer:**

2954 

2955* Ejecute `claude update` nuevamente. En una red por lo demás saludable, la descarga generalmente tiene éxito en la siguiente ejecución. Para el mensaje de tiempo agotado, ejecútelo nuevamente desde una red más rápida o menos limitada.

2956* Si su red requiere un proxy, establezca `HTTPS_PROXY` antes de ejecutar el instalador o `claude update`. Consulte [Verificar conectividad de red](/docs/es/troubleshoot-install#check-network-connectivity).

2957* Si un proxy corporativo sigue cerrando la transferencia, pida a su equipo de red que permita la descarga completa desde `downloads.claude.ai`. Consulte [Requisitos de acceso a la red](/docs/es/network-config#network-access-requirements).

2958* Ejecute `claude doctor` desde su shell para diagnósticos de instalación

2959 

2960<h2 id="command-line-errors">2916<h2 id="command-line-errors">

2961 Errores de la línea de comandos2917 Errores de la línea de comandos

2962</h2>2918</h2>


4064 Marketplace is already added from a different source4020 Marketplace is already added from a different source

4065</h3>4021</h3>

4066 4022 

4067Confirmó agregar un marketplace a través de [`/plugin install <plugin> --marketplace <source>`](/docs/es/plugins/install#add-a-marketplace-and-install-in-one-command), y el catálogo que Claude Code obtuvo de esa fuente se llama a sí mismo igual que un marketplace que ya agregó desde una fuente diferente. Claude Code mantiene el marketplace existente en lugar de reemplazarlo, y el plugin no se instala.4023Indicaste una nueva fuente de marketplace con [`--marketplace <source>` en el comando de instalación](/docs/es/plugins/install#add-a-marketplace-and-install-in-one-command), en una sesión o desde tu shell. El catálogo que Claude Code obtuvo de esa fuente tiene el mismo nombre que un marketplace que ya agregaste desde una fuente diferente. Claude Code mantiene el marketplace existente en lugar de reemplazarlo, y el plugin no se instala.

4068 4024 

4069```text theme={null}4025```text theme={null}

4070Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.4026Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.


4817 Esta sesión no tiene transcripción guardada4773 Esta sesión no tiene transcripción guardada

4818</h3>4774</h3>

4819 4775 

4820Te conectaste a una [sesión en segundo plano](/docs/es/agent-view) detenida que fue enviada a segundo plano desde otra conversación con `←` o `/background` y se detuvo antes de que su primera respuesta terminara. Hasta que esa primera respuesta termine, la conversación aún vive solo en la sesión desde la que fue enviada a segundo plano, por lo que `claude attach` se niega a iniciar la sesión detenida en lugar de comenzar una conversación en blanco bajo el mismo ID de sesión. El mensaje termina con el comando `claude respawn` para esta sesión:4776Te conectaste a una sesión que [moviste a segundo plano](/docs/es/agent-view#from-inside-a-session) con `←` o `/background` y que se detuvo antes de ejecutar un turno propio. Claude Code no pudo encontrar la conversación desde la que la moviste, por lo que la sesión no tiene nada que reanudar. El mensaje termina con el comando `claude respawn` para esta sesión:

4821 4777 

4822```text theme={null}4778```text theme={null}

4823This session has no saved transcript — it was stopped before its first response finished. If it was backgrounded from another conversation, that one is still intact; `claude respawn <id>` starts this one fresh.4779This session has no saved transcript — it was stopped before its first response finished. If it was backgrounded from another conversation, that one is still intact; `claude respawn <id>` starts this one fresh.


4827 4783 

4828**Qué hacer:**4784**Qué hacer:**

4829 4785 

4830* La conversación desde la que enviaste a segundo plano está intacta: reanúdala con [`claude --resume`](/docs/es/sessions) o sigue trabajando en ella4786* Para iniciar la sesión detenida desde cero, ejecuta `claude respawn <id>` con el ID del mensaje, o presiona `Enter` dos veces en su fila en agent view

4831* Para iniciar la sesión detenida desde cero de todas formas, ejecuta `claude respawn <id>` con el ID del mensaje, o presiona `Enter` dos veces en su fila en agent view

4832* Si la sesión sí terminó una respuesta y aún ves este rechazo en una versión anterior a v2.1.214, una carpeta ilegible en `~/.claude/projects` podía hacer que el escaneo de transcripciones no encontrara la conversación guardada; actualiza a v2.1.214 o posterior, que tolera carpetas ilegibles durante el escaneo4787* Si la sesión sí terminó una respuesta y aún ves este rechazo en una versión anterior a v2.1.214, una carpeta ilegible en `~/.claude/projects` podía hacer que el escaneo de transcripciones no encontrara la conversación guardada; actualiza a v2.1.214 o posterior, que tolera carpetas ilegibles durante el escaneo

4833 4788 

4834<h3 id="this-session-is-running-in-another-terminal">4789<h3 id="this-session-is-running-in-another-terminal">

glossary.md +2 −2

Details

465 465 

466Un comando, `/teleport`, que extrae una sesión de Claude Code en la nube a su terminal local. Claude obtiene la rama, carga el historial de conversación y reanuda desde el último estado de la sesión en la nube. La dirección inversa es `--cloud`, que envía una tarea local para ejecutarse en la nube.466Un comando, `/teleport`, que extrae una sesión de Claude Code en la nube a su terminal local. Claude obtiene la rama, carga el historial de conversación y reanuda desde el último estado de la sesión en la nube. La dirección inversa es `--cloud`, que envía una tarea local para ejecutarse en la nube.

467 467 

468Más información: [De nube a terminal](/docs/es/claude-code-on-the-web#from-cloud-to-terminal)468Más información: [Continúa una sesión en la nube en tu terminal](/docs/es/claude-code-on-the-web#from-cloud-to-terminal)

469 469 

470<h3 id="tool">470<h3 id="tool">

471 Tool471 Tool


511 Worktree isolation511 Worktree isolation

512</h3>512</h3>

513 513 

514Un modo de aislamiento que ejecuta Claude en un worktree git separado bajo `.claude/worktrees/`, habilitado con la bandera `-w` o `isolation: worktree` en la configuración de subagent. Los cambios permanecen en una rama separada en un directorio separado, por lo que los agentes paralelos no sobrescriben los archivos de los demás.514Un modo de aislamiento que ejecuta Claude en un worktree git separado bajo `.claude/worktrees/`, habilitado con la bandera `-w` o `isolation: worktree` en la configuración de subagente. Los cambios permanecen en una rama separada en un directorio separado, por lo que cada agente paralelo edita su propia copia de los archivos.

515 515 

516Más información: [Ejecutar sesiones paralelas con git worktrees](/docs/es/worktrees)516Más información: [Ejecutar sesiones paralelas con git worktrees](/docs/es/worktrees)

517 517 

goal.md +1 −1

Details

127claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"127claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"

128```128```

129 129 

130Con la salida de texto predeterminada, nada se imprime hasta que se termine la ejecución, por lo que un objetivo que se ejecuta muchos turnos puede parecer atascado. Agregue `--output-format stream-json --verbose` para emitir cada mensaje mientras se ejecuta el bucle.130Con la salida de texto predeterminada, la respuesta final de Claude se imprime cuando termina el bucle, por lo que un objetivo que se ejecuta muchos turnos puede parecer atascado. Agrega `--output-format stream-json --verbose` para emitir cada mensaje mientras se ejecuta el bucle.

131 131 

132Interrumpa el proceso con Ctrl+C para detener un objetivo no interactivo antes de que se resuelva.132Interrumpa el proceso con Ctrl+C para detener un objetivo no interactivo antes de que se resuelva.

133 133 

headless.md +20 −18

Details

20 Uso básico20 Uso básico

21</h2>21</h2>

22 22 

23Agregue la bandera `-p` (o `--print`) a cualquier comando `claude` para ejecutarlo de forma no interactiva. No todas las [opciones de CLI](/docs/es/cli-reference) se combinan con `-p`. Claude Code rechaza `--bg`, y rechaza `--cloud` con una descripción de tarea, con un error que nombra el conflicto; `--cloud` con un ID de sesión y `-p` en su lugar [pone en cola un mensaje en esa sesión en la nube](/docs/es/claude-code-on-the-web#send-follow-ups-from-the-cli) y sale. Las opciones que combinará con `-p` a menudo incluyen:23Agrega la bandera `-p` (o `--print`) a cualquier comando `claude` para ejecutarlo de forma no interactiva. No todas las [opciones de CLI](/docs/es/cli-reference) se combinan con `-p`. Claude Code rechaza `--bg`, y rechaza `--cloud` con una descripción de tarea, con un error que nombra el conflicto; `--cloud` con un ID de sesión y `-p` en su lugar [pone en cola un mensaje en esa sesión en la nube](/docs/es/claude-code-on-the-web#send-follow-ups-from-the-cli) y sale. Las opciones que combinarás con `-p` a menudo incluyen:

24 24 

25* `--continue` para [continuar conversaciones](#continue-conversations)25* `--continue` para [continuar conversaciones](#continue-conversations)

26* `--allowedTools` para [aprobar herramientas automáticamente](#auto-approve-tools)26* `--allowedTools` para [aprobar herramientas automáticamente](#auto-approve-tools)

27* `--output-format` para [obtener salida estructurada](#get-structured-output)27* `--output-format` para [obtener salida estructurada](#get-structured-output)

28 28 

29Este ejemplo le pregunta a Claude sobre su base de código e imprime la respuesta:29Este ejemplo le pregunta a Claude sobre tu base de código e imprime la respuesta:

30 30 

31```bash theme={null}31```bash theme={null}

32claude -p "What does the auth module do?"32claude -p "What does the auth module do?"

33```33```

34 34 

35Claude Code sale con código 0 en caso de éxito y con un código distinto de cero cuando la ejecución falla, por lo que sus scripts pueden ramificarse según el estado de salida. Si pasa una bandera inválida, Claude Code reporta el error a stderr antes de que comience la ejecución. Cuando ocurre una falla dentro de la ejecución, como autenticación faltante, Claude Code imprime la falla como resultado en stdout.35Claude Code sale con código 0 en caso de éxito y con un código distinto de cero cuando la ejecución falla, por lo que tus scripts pueden actuar según el estado de salida. Si pasas una bandera inválida, Claude Code reporta el error a stderr antes de que comience la ejecución. Cuando ocurre una falla dentro de la ejecución, como autenticación faltante, Claude Code imprime la falla como resultado en stdout.

36 36 

37<h3 id="start-faster-with-bare-mode">37<h3 id="start-faster-with-bare-mode">

38 Comience más rápido con modo bare38 Comienza más rápido con modo bare

39</h3>39</h3>

40 40 

41Agregue `--bare` para reducir el tiempo de inicio omitiendo el descubrimiento automático de hooks, skills, comandos personalizados, [subagentes](/docs/es/sub-agents), plugins instalados, servidores MCP, memoria automática y CLAUDE.md. Sin él, `claude -p` carga el mismo [contexto](/docs/es/how-claude-code-works#the-context-window) que cargaría una sesión interactiva, incluido cualquier elemento configurado en el directorio de trabajo o `~/.claude`.41Agrega `--bare` para reducir el tiempo de inicio omitiendo el descubrimiento automático de hooks, skills, comandos personalizados, [subagentes](/docs/es/sub-agents), plugins instalados, servidores MCP, memoria automática y CLAUDE.md. Sin él, `claude -p` carga el mismo [contexto](/docs/es/how-claude-code-works#the-context-window) que cargaría una sesión interactiva, incluido cualquier elemento configurado en el directorio de trabajo o `~/.claude`.

42 42 

43El modo bare es útil para CI y scripts donde necesita el mismo resultado en cada máquina. Un hook en `~/.claude` de un compañero de equipo o un servidor MCP en `.mcp.json` del proyecto no se ejecutará, porque el modo bare nunca los lee. Un directorio que nombre con `--add-dir` es una excepción parcial: el modo bare carga skills de su carpeta `.claude/skills/`, pero aún omite sus carpetas `.claude/commands/` y `.claude/agents/`. [Skills de directorios adicionales](/docs/es/skills#skills-from-additional-directories) cubre lo que sí y no se carga.43El modo bare es útil para CI y scripts donde necesitas el mismo resultado en cada máquina. Un hook en `~/.claude` de un compañero de equipo o un servidor MCP en `.mcp.json` del proyecto no se ejecutará, porque el modo bare nunca los lee. Un directorio que nombres con `--add-dir` es una excepción parcial: el modo bare carga skills de su carpeta `.claude/skills/`, pero aún omite sus carpetas `.claude/commands/` y `.claude/agents/`. [Skills de directorios adicionales](/docs/es/skills#skills-from-additional-directories) cubre lo que sí y no se carga.

44 44 

45Sin `--bare`, una sesión `-p` ejecuta los hooks en `.claude/settings.json` de un proyecto y conecta los servidores en su `.mcp.json`, incluso en una carpeta que nunca ha confiado. Una sesión `-p` no muestra diálogo de confianza del espacio de trabajo ni solicitud de aprobación por servidor. [Lo que se ejecuta antes de confiar en una carpeta](/docs/es/permissions#what-runs-before-you-trust-a-folder) cubre cada tipo de contenido del repositorio bajo `-p` y cómo mantenerlo fuera.45Sin `--bare`, una sesión `-p` ejecuta los hooks en `.claude/settings.json` de un proyecto y conecta los servidores en su `.mcp.json`, incluso en una carpeta en la que nunca has confiado. Una sesión `-p` no muestra diálogo de confianza del espacio de trabajo ni solicitud de aprobación por servidor. [Lo que se ejecuta antes de confiar en una carpeta](/docs/es/permissions#what-runs-before-you-trust-a-folder) cubre cada tipo de contenido del repositorio bajo `-p` y cómo mantenerlo fuera.

46 46 

47Este ejemplo ejecuta una tarea de resumen única en modo bare y aprueba previamente la herramienta Read para que la llamada se complete sin un aviso de permiso. Establezca `ANTHROPIC_API_KEY` antes de ejecutarlo, porque el modo bare no usa su inicio de sesión de suscripción:47Este ejemplo ejecuta una tarea de resumen única en modo bare y aprueba previamente la herramienta Read para que la llamada se complete sin una solicitud de permiso. Establece `ANTHROPIC_API_KEY` antes de ejecutarlo, porque el modo bare no usa tu inicio de sesión de suscripción:

48 48 

49```bash theme={null}49```bash theme={null}

50claude --bare -p "Summarize README.md" --allowedTools "Read"50claude --bare -p "Summarize README.md" --allowedTools "Read"

51```51```

52 52 

53En modo bare, Claude Code nunca lee credenciales OAuth ni el llavero del sistema. Para la API de Anthropic, establezca `ANTHROPIC_API_KEY` en el entorno, con una clave creada en la [Consola de Claude](https://platform.claude.com), o proporcione un `apiKeyHelper` en el JSON `--settings`. Amazon Bedrock, la Plataforma de Agentes de Google Cloud y Microsoft Foundry continúan leyendo sus propias credenciales de proveedor como de costumbre.53En modo bare, Claude Code nunca lee credenciales OAuth ni el llavero del sistema. Para la API de Anthropic, establece `ANTHROPIC_API_KEY` en el entorno, con una clave creada en la [Consola de Claude](https://platform.claude.com), o proporciona un `apiKeyHelper` en el JSON `--settings`. Amazon Bedrock, Agent Platform de Google Cloud y Microsoft Foundry continúan leyendo sus propias credenciales de proveedor como de costumbre.

54 54 

55En modo bare, Claude tiene acceso a las herramientas Bash, lectura de archivos y edición de archivos. Pase cualquier contexto que necesite con una bandera:55En modo bare, Claude tiene acceso a las herramientas Bash, lectura de archivos y edición de archivos. Pasa cualquier contexto que necesites con una bandera:

56 56 

57| Para cargar | Usar |57| Para cargar | Usar |

58| - | - |58| - | - |

59| Adiciones de solicitud del sistema | `--append-system-prompt`, `--append-system-prompt-file` |59| Adiciones al prompt del sistema | `--append-system-prompt`, `--append-system-prompt-file` |

60| Configuración | `--settings <file-or-json>` |60| Configuración | `--settings <file-or-json>` |

61| Servidores MCP | `--mcp-config <file-or-json>` |61| Servidores MCP | `--mcp-config <file-or-json>` |

62| [Agentes personalizados](/docs/es/sub-agents#choose-the-subagent-scope) | `--agents <file-or-json>` |62| [Agentes personalizados](/docs/es/sub-agents#choose-the-subagent-scope) | `--agents <file-or-json>` |


84 84 

85La ejecución espera trabajo en segundo plano como comandos en segundo plano, subagentes y flujos de trabajo, vigilancias de Monitor y activaciones pendientes de `/loop`:85La ejecución espera trabajo en segundo plano como comandos en segundo plano, subagentes y flujos de trabajo, vigilancias de Monitor y activaciones pendientes de `/loop`:

86 86 

87* **[Comandos en segundo plano](/docs/es/tools-reference#background-commands)**: para un comando que inició la conversación principal, por ejemplo un servidor de desarrollo o una compilación de vigilancia, la ejecución espera hasta que el comando sale o alcanza su [límite de tiempo](/docs/es/tools-reference#time-limit-for-background-commands). Luego Claude toma un turno más con el resultado, y el resultado de ese turno se convierte en el último de la ejecución, que es el que imprimen las salidas `text` y `json`. Mientras el comando se ejecuta, el límite de 10 minutos no finaliza la espera.87* **[Comandos en segundo plano](/docs/es/tools-reference#background-commands)**: para un comando que inició la conversación principal, por ejemplo un servidor de desarrollo o una compilación de vigilancia, la ejecución espera hasta que el comando sale o alcanza su [límite de tiempo](/docs/es/tools-reference#time-limit-for-background-commands). Luego Claude toma un turno más con el resultado. Mientras el comando se ejecuta, el límite de 10 minutos no finaliza la espera.

88* **[Subagentes](/docs/es/sub-agents) y flujos de trabajo en segundo plano**: la ejecución permanece abierta hasta que ese trabajo se complete, porque su resultado es parte de la salida final.88* **[Subagentes](/docs/es/sub-agents) y flujos de trabajo en segundo plano**: la ejecución permanece abierta hasta que ese trabajo se complete, porque su resultado es parte de la salida final.

89* **Vigilancias de [Monitor](/docs/es/tools-reference#monitor-tool)**: la ejecución espera hasta que se agote el tiempo de espera de la vigilancia o el límite de 10 minutos finalice la espera, lo que ocurra primero. Mientras espera, Claude continúa respondiendo a lo que reporta la vigilancia. De forma predeterminada, el tiempo de espera de una vigilancia se agota cinco minutos después de que Claude la inicia.89* **Vigilancias de [Monitor](/docs/es/tools-reference#monitor-tool)**: la ejecución espera hasta que se agote el tiempo de espera de la vigilancia o el límite de 10 minutos finalice la espera, lo que ocurra primero. Mientras espera, Claude continúa respondiendo a lo que reporta la vigilancia. De forma predeterminada, el tiempo de espera de una vigilancia se agota cinco minutos después de que Claude la inicia.

90* **Activaciones pendientes**: en una ejecución cuyo prompt pasaste como texto en lugar de con `--input-format stream-json`, cuando Claude ha programado una [activación de `/loop` a su propio ritmo](/docs/es/scheduled-tasks#let-claude-choose-the-interval), la ejecución espera a que se dispare cada activación y ejecuta su iteración hasta que [el bucle termina](/docs/es/scheduled-tasks#stop-a-loop), incluso más allá del límite de 10 minutos.90* **Activaciones pendientes**: en una ejecución cuyo prompt pasaste como texto en lugar de con `--input-format stream-json`, cuando Claude ha programado una [activación de `/loop` a su propio ritmo](/docs/es/scheduled-tasks#let-claude-choose-the-interval), la ejecución espera a que se dispare cada activación y ejecuta su iteración hasta que [el bucle termina](/docs/es/scheduled-tasks#stop-a-loop), incluso más allá del límite de 10 minutos.

91 91 

92Si la ejecución alcanza su límite de [`--max-budget-usd`](/docs/es/cli-reference#cli-flags), Claude Code detiene el trabajo en segundo plano restante en lugar de esperar.92Si la ejecución alcanza su límite de [`--max-budget-usd`](/docs/es/cli-reference#cli-flags), Claude Code detiene el trabajo en segundo plano restante en lugar de esperar.

93 93 

94Cuando el trabajo en segundo plano inicia otro turno, la ejecución imprime el resultado de cada turno con la salida `text` predeterminada y el resultado del último turno con la salida `json`. Antes de la v2.1.295, la ejecución también imprimía solo el resultado del último turno con la salida `text`.

95 

94<h3 id="stop-a-run-with-sigterm">96<h3 id="stop-a-run-with-sigterm">

95 Detener una ejecución con SIGTERM97 Detener una ejecución con SIGTERM

96</h3>98</h3>

97 99 

98Si detiene una ejecución `claude -p` con SIGTERM, por ejemplo con `kill` o desde un supervisor de procesos, Claude Code sale con código 143. Claude Code deja el turno que estaba en progreso sin terminar y no registra ningún resultado para él. Para terminar el turno en su lugar, envíe SIGINT, o llame a `interrupt()` del Agent SDK, antes de detener el proceso.100Si detienes una ejecución `claude -p` con SIGTERM, por ejemplo con `kill` o desde un supervisor de procesos, Claude Code sale con código 143. Claude Code deja el turno que estaba en progreso sin terminar y no registra ningún resultado para él. Para terminar el turno en su lugar, envía SIGINT, o llama a `interrupt()` del Agent SDK, antes de detener el proceso.

99 101 

100En SIGTERM, Claude Code termina el árbol de procesos de cualquier comando Bash que aún se esté ejecutando. Claude Code luego ejecuta [hooks `SessionEnd`](/docs/es/hooks#sessionend) y sale. Al salir, Claude Code no inicia ninguna nueva llamada de herramienta, no envía ninguna nueva solicitud de modelo y no ejecuta ningún hook que no sea `SessionEnd`. Si la ejecución estaba en medio de un comando o esperando una respuesta a un aviso de permiso cuando llegó la señal, Claude Code maneja ese paso de la siguiente manera:102En SIGTERM, Claude Code termina el árbol de procesos de cualquier comando Bash que aún se esté ejecutando. Claude Code luego ejecuta [hooks `SessionEnd`](/docs/es/hooks#sessionend) y sale. Al salir, Claude Code no inicia ninguna nueva llamada a herramienta, no envía ninguna nueva solicitud al modelo y no ejecuta ningún hook que no sea `SessionEnd`. Si la ejecución estaba en medio de un comando o esperando una solicitud de permiso cuando llegó la señal, Claude Code maneja ese paso de la siguiente manera:

101 103 

102* **Ejecutando un comando**: Claude Code registra el comando como terminado en la sesión.104* **Ejecutando un comando**: Claude Code registra el comando como terminado en la sesión.

103* **Esperando una respuesta a un aviso de permiso**: si envía SIGTERM al proceso, Claude Code deja el aviso sin responder. Si su programa cierra la sesión a través del Agent SDK, el SDK finaliza la entrada de Claude Code antes de enviar cualquier señal, y Claude Code cancela el aviso tan pronto como finaliza la entrada.105* **Esperando una respuesta a una solicitud de permiso**: si envías SIGTERM al proceso, Claude Code deja la solicitud sin responder. Si tu programa cierra la sesión a través del Agent SDK, el SDK finaliza la entrada de Claude Code antes de enviar cualquier señal, y Claude Code cancela la solicitud tan pronto como finaliza la entrada.

104 106 

105Cuando [reanuda la sesión](#continue-conversations), Claude Code deja el turno interrumpido tal como está, y su siguiente solicitud impulsa la conversación. Para que Claude Code continúe el turno interrumpido al reanudar, establezca [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN=1`](/docs/es/env-vars).107Cuando [reanudas la sesión](#continue-conversations), Claude Code deja el turno interrumpido tal como está, y tu siguiente prompt impulsa la conversación. Para que Claude Code continúe el turno interrumpido al reanudar, establece [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN=1`](/docs/es/env-vars).

106 108 

107<h3 id="if-the-working-directory-is-deleted">109<h3 id="if-the-working-directory-is-deleted">

108 Si el directorio de trabajo se elimina110 Si el directorio de trabajo se elimina


262| `type` | `"system"` | tipo de mensaje |264| `type` | `"system"` | tipo de mensaje |

263| `subtype` | `"api_retry"` | identifica esto como un evento de reintento |265| `subtype` | `"api_retry"` | identifica esto como un evento de reintento |

264| `attempt` | entero | número de intento actual, comenzando en 1 |266| `attempt` | entero | número de intento actual, comenzando en 1 |

265| `max_retries` | entero | reintentos totales permitidos para la causa de este fallo, que pueden ser menos que el presupuesto de toda la sesión |267| `max_retries` | entero | reintentos totales permitidos para la causa de este fallo |

266| `retry_delay_ms` | entero | milisegundos hasta el siguiente intento |268| `retry_delay_ms` | entero | milisegundos hasta el siguiente intento |

267| `error_status` | entero o nulo | código de estado HTTP del intento fallido, o `null` cuando el intento no obtuvo respuesta HTTP de la API |269| `error_status` | entero o nulo | código de estado HTTP del intento fallido, o `null` cuando el intento no obtuvo respuesta HTTP de la API |

268| `no_response` | objeto, opcional | presente solo cuando el intento fallido no obtuvo [encabezados de respuesta a tiempo](/docs/es/errors#no-response-from-api). `waited_ms` es cuánto tiempo esperó ese intento y `retry_wait_ms` es cuánto tiempo esperará el reintento. En estos eventos, `max_retries` refleja el reintento que normalmente obtiene esta causa, no el presupuesto de toda la sesión. Requiere Claude Code v2.1.261 o posterior |270| `no_response` | objeto, opcional | presente solo cuando el intento fallido no obtuvo [encabezados de respuesta a tiempo](/docs/es/errors#no-response-from-api). `waited_ms` es cuánto tiempo esperó ese intento y `retry_wait_ms` es cuánto tiempo esperará el reintento. Requiere Claude Code v2.1.261 o posterior |

269| `error` | cadena | categoría de error: `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `rate_limit`, `overloaded`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error`, o `unknown` |271| `error` | cadena | categoría de error: `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `rate_limit`, `overloaded`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error`, o `unknown` |

270| `uuid` | cadena | identificador único del evento |272| `uuid` | cadena | identificador único del evento |

271| `session_id` | cadena | sesión a la que pertenece el evento |273| `session_id` | cadena | sesión a la que pertenece el evento |

hipaa-setup.md +3 −0

Details

139}139}

140```140```

141 141 

142Para un `managed-settings.json` más completo con sandboxing, una lista de permitidos de red, protecciones de credenciales y retención de datos locales, consulta `settings-hipaa.json` y `README-hipaa.md` en el [repositorio de ejemplos de configuración](https://github.com/anthropics/claude-code/tree/main/examples/settings).

143 

142<h4 id="what-each-key-does">144<h4 id="what-each-key-does">

143 Qué hace cada clave145 Qué hace cada clave

144</h4>146</h4>


306 308 

307* [Set up Cowork (local mode) for a HIPAA-ready organization](https://claude.com/docs/cowork/hipaa-setup)309* [Set up Cowork (local mode) for a HIPAA-ready organization](https://claude.com/docs/cowork/hipaa-setup)

308* [Implementa la configuración administrada](/docs/es/managed-settings)310* [Implementa la configuración administrada](/docs/es/managed-settings)

311* [Ejemplo de configuración para HIPAA](https://github.com/anthropics/claude-code/tree/main/examples/settings)

309* [Configuración de red empresarial](/docs/es/network-config)312* [Configuración de red empresarial](/docs/es/network-config)

310* [Retención de datos cero](/docs/es/zero-data-retention)313* [Retención de datos cero](/docs/es/zero-data-retention)

311* [Aspectos legales y de cumplimiento](/docs/es/legal-and-compliance)314* [Aspectos legales y de cumplimiento](/docs/es/legal-and-compliance)

hooks.md +124 −35

Details

476| `async` | no | Si es `true`, se ejecuta en segundo plano sin bloquear. Consulta [Ejecutar hooks en segundo plano](#run-hooks-in-the-background) |476| `async` | no | Si es `true`, se ejecuta en segundo plano sin bloquear. Consulta [Ejecutar hooks en segundo plano](#run-hooks-in-the-background) |

477| `asyncRewake` | no | Si es `true`, se ejecuta en segundo plano y despierta a Claude en código de salida 2. El stderr del hook, o stdout si stderr está vacío, se muestra a Claude como un [recordatorio del sistema](/docs/es/glossary#system-reminder) para que pueda reaccionar a un fallo de fondo de larga duración |477| `asyncRewake` | no | Si es `true`, se ejecuta en segundo plano y despierta a Claude en código de salida 2. El stderr del hook, o stdout si stderr está vacío, se muestra a Claude como un [recordatorio del sistema](/docs/es/glossary#system-reminder) para que pueda reaccionar a un fallo de fondo de larga duración |

478| `shell` | no | Shell a usar para este hook. Acepta `"bash"` o `"powershell"`. Por defecto es `"bash"`, o `"powershell"` en Windows cuando Git Bash no está instalado. Establecer `"powershell"` ejecuta el comando a través de PowerShell en Windows. No requiere `CLAUDE_CODE_USE_POWERSHELL_TOOL` ya que los hooks generan PowerShell directamente. Se ignora cuando `args` está establecido |478| `shell` | no | Shell a usar para este hook. Acepta `"bash"` o `"powershell"`. Por defecto es `"bash"`, o `"powershell"` en Windows cuando Git Bash no está instalado. Establecer `"powershell"` ejecuta el comando a través de PowerShell en Windows. No requiere `CLAUDE_CODE_USE_POWERSHELL_TOOL` ya que los hooks generan PowerShell directamente. Se ignora cuando `args` está establecido |

479| `onFailure` | no | Qué le sucede a la acción cuando el hook falla: `"continue"`, el valor por defecto, o `"block"`. Consulta [Bloquear la acción cuando un hook falla](#block-the-action-when-a-hook-fails). Requiere Claude Code v2.1.295 o posterior |

479 480 

480<a id="exec-form-and-shell-form" />481<a id="exec-form-and-shell-form" />

481 482 


533| `url` | sí | URL a la que enviar la solicitud POST |534| `url` | sí | URL a la que enviar la solicitud POST |

534| `headers` | no | Encabezados HTTP adicionales como pares clave-valor. Los valores soportan interpolación de variables de entorno usando sintaxis `$VAR_NAME` o `${VAR_NAME}`. Solo se resuelven las variables listadas en `allowedEnvVars` |535| `headers` | no | Encabezados HTTP adicionales como pares clave-valor. Los valores soportan interpolación de variables de entorno usando sintaxis `$VAR_NAME` o `${VAR_NAME}`. Solo se resuelven las variables listadas en `allowedEnvVars` |

535| `allowedEnvVars` | no | Lista de nombres de variables de entorno que pueden interpolarse en valores de encabezado. Las referencias a variables no listadas se reemplazan con cadenas vacías. Requerido para que funcione cualquier interpolación de variable de entorno |536| `allowedEnvVars` | no | Lista de nombres de variables de entorno que pueden interpolarse en valores de encabezado. Las referencias a variables no listadas se reemplazan con cadenas vacías. Requerido para que funcione cualquier interpolación de variable de entorno |

537| `onFailure` | no | Qué le sucede a la acción cuando el hook falla: `"continue"`, el valor por defecto, o `"block"`. Consulta [Bloquear la acción cuando un hook falla](#block-the-action-when-a-hook-fails). Requiere Claude Code v2.1.295 o posterior |

536 538 

537Claude Code envía la [entrada JSON](#hook-input-and-output) del hook como el cuerpo de la solicitud POST con `Content-Type: application/json`. El cuerpo de respuesta utiliza el mismo [formato de salida JSON](#json-output) que los hooks de comando.539Claude Code envía la [entrada JSON](#hook-input-and-output) del hook como el cuerpo de la solicitud POST con `Content-Type: application/json`. El cuerpo de respuesta utiliza el mismo [formato de salida JSON](#json-output) que los hooks de comando.

538 540 


821 Salida por código de salida823 Salida por código de salida

822</h3>824</h3>

823 825 

824El código de salida de tu comando de hook le dice a Claude Code si la acción debe continuar, ser bloqueada o ser ignorada. El código de salida no actúa solo. Claude Code lee los [campos de salida JSON](#json-output) desde stdout con cualquier código de salida, no solo con 0, y para los eventos que usan el modelo de decisión estándar, un objeto analizado que pasa la validación del esquema tiene efecto junto con el código. El bloqueo de exit 2 es el único resultado que JSON no puede sobrescribir.826El 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:

825 827 

826Dos tablas recogen las excepciones por evento: [Comportamiento del código de salida 2 por evento](#exit-code-2-behavior-per-event) indica qué hacen los códigos de salida para cada evento, y [Control de decisión](#decision-control) indica qué campos de decisión respeta cada evento. Los campos universales como `systemMessage` funcionan en la mayoría de los eventos y se enumeran en la tabla de [salida JSON](#json-output).828* **É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.

829* **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.

830* **Error sin bloqueo**: tu hook sale con cualquier otro código, o falla de alguna otra manera, como no iniciarse o imprimir JSON no válido. La acción continúa, y en eventos como `PreToolUse` ves un aviso `<hook name> hook error` en la transcripción. Si quieres que un hook fallido bloquee la acción, establece [`onFailure: "block"`](#block-the-action-when-a-hook-fails).

831 

832Lo que tu hook imprime en stdout puede cambiar el resultado. Por ejemplo, si un hook `PreToolUse` sale con 1 pero imprime JSON que pasa la validación, la ejecución es un éxito y los campos JSON deciden qué sucede. Para saber el resultado de tu hook en un evento como `PreToolUse`, busca lo que imprimió en stdout en la primera columna y su código de salida en la parte superior:

833 

834| Stdout | Exit 0 | Exit 2 | Cualquier otro código de salida |

835| :- | :- | :- | :- |

836| Objeto JSON que pasa la [validación del esquema](#json-output) | Éxito. Los campos se aplican | Error de bloqueo. Claude Code sigue leyendo los campos, pero no pueden sobrescribir el bloqueo | Éxito. Claude Code ignora el código de salida, y solo los campos deciden. Con [`onFailure: "block"`](#block-the-action-when-a-hook-fails), esto cuenta como un fallo |

837| JSON que [no se puede analizar](#exit-code-0) o que falla la validación del esquema | Error sin bloqueo. El aviso incluye el mensaje de análisis o de validación | Error de bloqueo. Tu stderr es la razón | Error sin bloqueo. El aviso incluye el mensaje de análisis o de validación |

838| [Texto plano](#exit-code-0), o nada | Éxito | Error de bloqueo. Tu stderr es la razón | Error sin bloqueo. El aviso incluye la primera línea de tu stderr |

839 

840Algunos eventos tienen sus propias reglas:

841 

842* **`WorktreeCreate`**: cualquier código de salida distinto de cero hace que la creación del worktree falle, diga lo que diga tu JSON.

843* **`WorktreeRemove`**: cualquier código de salida distinto de cero hace que la eliminación del worktree falle si el directorio sigue existiendo después.

844* **`Stop`, `SubagentStop`, `TaskCompleted` y el hook `UserPromptSubmit` de un plugin**: cuando tu hook sale con 2 sin nada en stdout y su stderr indica que falta un archivo, como `No such file or directory`, Claude Code trata la ejecución como un error sin bloqueo.

845* **`Elicitation` y `ElicitationResult`**: Claude Code aplica tu `hookSpecificOutput` cuando tu hook sale con 0, y lo ignora con cualquier otro código de salida.

846* **Eventos que descartan la salida del hook, como `StopFailure`**: Claude Code ignora tu JSON con cualquier código de salida, aparte de los campos de efecto secundario como `terminalSequence`, que se siguen activando.

847 

848Para comprobar qué hace el código de salida 2 en tu evento, consulta [Comportamiento del código de salida 2 por evento](#exit-code-2-behavior-per-event). Para comprobar qué campos de decisión respeta, consulta [Control de decisión](#decision-control).

827 849 

828<h4 id="exit-code-0">850<h4 id="exit-code-0">

829 Exit code 0851 Exit code 0


835 857 

836Que Claude Code lea tu stdout como [salida JSON](#json-output) o como texto plano depende de cómo comienza y termina, ignorando los espacios en blanco circundantes:858Que Claude Code lea tu stdout como [salida JSON](#json-output) o como texto plano depende de cómo comienza y termina, ignorando los espacios en blanco circundantes:

837 859 

838* **Comienza con `{` y termina con `}`**: Claude Code lo analiza como JSON. Cuando la salida son dos o más líneas que se analizan como JSON cada una por su cuenta, y ninguna línea es un objeto de [salida JSON](#json-output) que establezca un campo, Claude Code trata toda la salida como texto plano. Cuando una de esas líneas sí establece un campo, toda la salida es un fallo de análisis, descrito a continuación.860* **Comienza con `{` y termina con `}`**: Claude Code lo analiza como JSON. Cuando la salida son dos o más líneas que se analizan como JSON cada una por su cuenta, y ninguna línea es un objeto de [salida JSON](#json-output) que establezca un campo, Claude Code trata toda la salida como texto plano. Cuando una de esas líneas sí establece un campo, toda la salida es un fallo de análisis.

839* **Comienza con `{` pero no termina con `}`**: Claude Code lo trata como texto plano.861* **Comienza con `{` pero no termina con `}`**: Claude Code lo trata como texto plano.

840* **Comienza con cualquier otra cosa**: Claude Code lo trata como texto plano, incluso si es un array JSON o una cadena JSON entrecomillada.862* **Comienza con cualquier otra cosa**: Claude Code lo trata como texto plano, incluso si es un array JSON o una cadena JSON entrecomillada.

841 863 

842Para los eventos que usan el modelo de decisión estándar, exit 0 con un objeto analizado que falla la validación del esquema es un error sin bloqueo: la acción continúa, y la transcripción muestra un aviso `<hook name> hook error` con el mensaje de validación. Lo mismo sucede con cualquier código de salida distinto de 2, mientras que [exit 2 sigue bloqueando](#exit-code-2).864Cuando Claude Code intenta analizar tu stdout como JSON y no puede, o el objeto analizado falla la [validación del esquema](#json-output), la ejecución 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.

843 

844Para los eventos que usan el modelo de decisión estándar, cuando Claude Code intenta analizar tu stdout como JSON y no puede, reporta un error sin bloqueo con cualquier código de salida distinto de 2. La transcripción muestra un aviso `<hook name> hook error` con el mensaje de análisis. En los eventos que agregan stdout de texto plano como contexto, Claude Code no agrega el texto. Antes de v2.1.248, Claude Code trataba ese stdout como texto plano.

845 865 

846El stderr de un hook que sale con 0 va solo al registro de depuración, nunca a la transcripción, y Claude nunca lo ve. Para leerlo tú mismo, 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.866Claude 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.

847 867 

848<h4 id="exit-code-2">868<h4 id="exit-code-2">

849 Exit code 2869 Exit code 2

850</h4>870</h4>

851 871 

852Exit 2 significa un error de bloqueo. En los [eventos que pueden bloquear](#exit-code-2-behavior-per-event), exit 2 bloquea independientemente de si imprimes JSON: ni siquiera un `permissionDecision` JSON de `"allow"` puede sobrescribirlo. Claude Code sigue leyendo cualquier [salida JSON](#json-output) válida en stdout. En `Elicitation` y `ElicitationResult`, el `hookSpecificOutput` de un hook que sale con 2 se ignora.872Sal con el código 2 para bloquear la acción. En los [eventos que pueden bloquear](#exit-code-2-behavior-per-event), Claude Code detiene la acción: un hook `PreToolUse` bloquea la llamada a herramienta, por ejemplo, y un hook `UserPromptSubmit` rechaza el prompt.

853 873 

854El mensaje de bloqueo es la razón de la decisión de bloqueo de tu JSON cuando la incluye, y tu texto de stderr en caso contrario. Lo que hace el bloqueo varía según el evento: `PreToolUse` bloquea la llamada a herramienta, `UserPromptSubmit` rechaza el prompt, y así sucesivamente. [Comportamiento del código de salida 2 por evento](#exit-code-2-behavior-per-event) enumera el efecto para cada evento, y la sección de cada evento indica adónde va el mensaje.874El mensaje que acompaña al bloqueo es el stderr de tu hook. Si tu hook también imprimió JSON que toma una decisión de bloqueo, Claude Code usa la razón de esa decisión en su lugar.

855 875 

856Un hook que sale con 2 mientras imprime JSON que falla la validación del esquema de [salida JSON](#json-output) sigue bloqueando: Claude Code usa stderr como la razón del bloqueo y registra el fallo de validación en el registro de depuración. Antes de v2.1.214, Claude Code trataba esa combinación como un error sin bloqueo y la acción continuaba.876Exit 2 bloquea incluso cuando tu hook imprime JSON:

877 

878* **JSON que pasa la validación del esquema**: Claude Code sigue leyendo los campos de [salida JSON](#json-output), pero no pueden sobrescribir el bloqueo. Ni siquiera un `permissionDecision` de `"allow"` deja pasar la acción. En `Elicitation` y `ElicitationResult`, el `hookSpecificOutput` de un hook que sale con 2 se ignora.

879* **JSON que falla la validación del esquema**: el hook sigue bloqueando. Claude Code usa tu stderr como la razón del bloqueo y registra el fallo de validación en el registro de depuración.

857 880 

858Este script bloquea los comandos `rm` saliendo con 2 y deja todos los demás comandos al flujo de permisos normal:881Este script bloquea los comandos `rm` saliendo con 2 y deja todos los demás comandos al flujo de permisos normal:

859 882 


871exit 0 # No decision: the normal permission flow applies894exit 0 # No decision: the normal permission flow applies

872```895```

873 896 

897Con este script registrado como un hook `PreToolUse` en `Bash`, un comando que comienza con `rm` se bloquea, y Claude recibe el stderr del hook como el error de la herramienta, con el prefijo del nombre del evento, el nombre de la herramienta y el comando del hook:

898 

899```text theme={null}

900PreToolUse:Bash hook error: [${CLAUDE_PROJECT_DIR}/.claude/hooks/no-rm.sh]: Blocked: rm commands are not allowed

901```

902 

874<h4 id="other-exit-codes">903<h4 id="other-exit-codes">

875 Otros códigos de salida904 Otros códigos de salida

876</h4>905</h4>

877 906 

878Cualquier otro código de salida no bloquea por sí solo en la mayoría de los eventos de hook. Lo que sucede depende de tu stdout:907Cuando tu hook sale con un código distinto de 0 o 2 e imprime texto plano o nada en stdout, la ejecución es un [error sin bloqueo](#exit-code-output). 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. Por 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:

879 908 

880* Con un objeto analizado que pasa la validación del esquema, para los eventos que usan el modelo de decisión estándar, Claude Code ignora el código de salida y solo el JSON decide el resultado:909```text theme={null}

881 * Se respeta cada campo que el evento admite, incluidos `permissionDecision`, `additionalContext`, `updatedInput` y `systemMessage`, y el hook no se reporta como error.910Failed with non-blocking status code: something broke

882 * [Control de decisión](#decision-control) enumera los campos de decisión por evento; los campos universales como `systemMessage` siguen la tabla de [salida JSON](#json-output).911```

883* Con un objeto analizado que falla la validación del esquema, para los eventos que usan el modelo de decisión estándar, es el mismo error sin bloqueo que [con exit 0](#exit-code-0): la acción continúa, y el aviso `<hook name> hook error` incluye el mensaje de validación.

884* Con stdout que Claude Code [intenta analizar como JSON](#exit-code-0) y no puede, Claude Code reporta el mismo error sin bloqueo que con exit 0 para los eventos que usan el modelo de decisión estándar. La acción continúa, y el aviso incluye el mensaje de análisis.

885* Con stdout que Claude Code [trata como texto plano](#exit-code-0), o con stdout vacío, es un error sin bloqueo para la mayoría de los eventos de hook: la acción continúa, y la transcripción muestra un aviso `<hook name> hook error` seguido de la primera línea de stderr, con el prefijo `Failed with non-blocking status code:`. Para capturar el stderr completo, habilita el [registro de depuración](#debug-hooks).

886 912 

887Los eventos fuera del modelo de decisión estándar mantienen sus propias filas en la [tabla por evento](#exit-code-2-behavior-per-event): `WorktreeCreate` hace fallar la creación con cualquier salida distinta de cero, diga lo que diga tu JSON, y los eventos que descartan por completo la salida del hook, como `StopFailure`, ignoran tu JSON con cualquier código de salida, aparte de los campos de efecto secundario como `terminalSequence`, que se siguen activando.913Para capturar el stderr completo en lugar de su primera línea, habilita el [registro de depuración](#debug-hooks).

888 914 

889Un hook que no puede iniciarse cae en la misma categoría sin bloqueo. Cuando la ruta del script no existe o no es ejecutable, el shell sale con un código como 127 y ves el mismo aviso con el mensaje del intérprete, por ejemplo `Failed with non-blocking status code: /bin/sh: /path/to/hook.sh: No such file or directory`. Para la mayoría de los eventos de hook, la acción continúa. Cuando configures un hook de política, fíjate en este aviso en su primera ejecución: una ruta mal escrita en `settings.json` deja el control deshabilitado en silencio.915Un 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 `Failed with non-blocking status code: /bin/sh: /path/to/hook.sh: No such file or directory`. Cuando 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 en su lugar, establece [`onFailure: "block"`](#block-the-action-when-a-hook-fails).

890 916 

891<Warning>917<Warning>

892 Para la mayoría de los eventos de hook, el código de salida 2 es el único código de salida que bloquea solo con el código. Sin JSON válido en stdout, Claude Code trata el código de salida 1 como un error sin bloqueo y continúa con la acción, aunque 1 es el código de fallo convencional de Unix. Si tu hook está pensado para aplicar una política, usa `exit 2`. Los eventos de worktree son diferentes: cualquier código de salida distinto de cero de `WorktreeCreate` aborta la creación del worktree, y cualquier código de salida distinto de cero de `WorktreeRemove` hace que la eliminación del worktree falle si el directorio sigue existiendo después.918 Sin JSON válido en stdout, Claude Code trata el código de salida 1 como un error sin bloqueo, aunque 1 es el código de fallo convencional de Unix. Si tu hook está pensado para aplicar una política, usa `exit 2`.

893</Warning>919</Warning>

894 920 

895<h4 id="timeouts">921<h4 id="timeouts">


900 926 

901En [`PreModelSwitch`](#premodelswitch), un hook cancelado al agotarse su tiempo de espera bloquea el cambio de modelo. En `PreToolUse`, las dos familias de hooks difieren:927En [`PreModelSwitch`](#premodelswitch), un hook cancelado al agotarse su tiempo de espera bloquea el cambio de modelo. En `PreToolUse`, las dos familias de hooks difieren:

902 928 

903* Un hook `command`, `http` o `mcp_tool` cuyo tiempo de espera se agota no bloquea la llamada a herramienta. 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.929* Un hook `command`, `http` o `mcp_tool` cuyo tiempo de espera se agota no bloquea la llamada a herramienta. 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).

904* Un [hook de callback del Agent SDK](/docs/es/agent-sdk/hooks) que excede su tiempo de espera [bloquea la llamada a herramienta](#pretooluse).930* Un [hook de callback del Agent SDK](/docs/es/agent-sdk/hooks) que excede su tiempo de espera [bloquea la llamada a herramienta](#pretooluse).

905 931 

932<h4 id="block-the-action-when-a-hook-fails">

933 Bloquear la acción cuando un hook falla

934</h4>

935 

936En la mayoría de los eventos, cuando un hook falla o se agota su tiempo de espera, Claude Code sigue llevando a cabo la acción, por lo que un hook de política con una ruta incorrecta o un script que se bloquea deja pasar todo. Para bloquear la acción en su lugar, establece `"onFailure": "block"` en un hook `command` o `http`. El valor predeterminado es `"continue"`. Requiere Claude Code v2.1.295 o posterior.

937 

938Este hook `PreToolUse` en `.claude/settings.json` ejecuta un script del proyecto antes de cada comando Bash, y bloquea el comando si el script falla:

939 

940```json theme={null}

941{

942 "hooks": {

943 "PreToolUse": [

944 {

945 "matcher": "Bash",

946 "hooks": [

947 {

948 "type": "command",

949 "command": "node",

950 "args": ["${CLAUDE_PROJECT_DIR}/.claude/hooks/check-command.js"],

951 "onFailure": "block"

952 }

953 ]

954 }

955 ]

956 }

957}

958```

959 

960Para probarlo, deja que falte `check-command.js` y pídele a Claude que ejecute un comando Bash como `ls`. Claude Code bloquea la llamada, y el error incluye `failed; blocking because onFailure is "block"` seguido de la salida de error propia de node, recortada aquí a una línea:

961 

962```text theme={null}

963PreToolUse:Bash hook error: [node ${CLAUDE_PROJECT_DIR}/.claude/hooks/check-command.js]: failed; blocking because onFailure is "block"

964Error: Cannot find module '/path/to/project/.claude/hooks/check-command.js'

965```

966 

967Después de que se agota el tiempo de espera, el mensaje dice `timed out` en lugar de `failed`. Sin `onFailure` establecido, el mismo script faltante es un error sin bloqueo y `ls` se ejecuta.

968 

969Cada uno de estos cuenta como un fallo:

970 

971* **No puede iniciarse**: un hook de comando no logra iniciarse, por ejemplo porque el script o el ejecutable no existe

972* **Código de salida distinto de 0 o 2**: cuenta para un hook de comando incluso si imprimió JSON que permite la acción, como `permissionDecision: "allow"`. Para devolver una decisión JSON, sal con 0

973* **Error HTTP**: la conexión de un hook HTTP falla, o el estado de la respuesta no es 2xx

974* **Tiempo de espera agotado**: el hook alcanza su [`timeout`](#common-fields)

975* **Salida no válida**: la salida JSON [no se puede analizar](#exit-code-0) o falla la [validación del esquema](#json-output). Para un hook HTTP, un cuerpo 2xx que no está vacío ni es un objeto JSON también cuenta. El stdout de texto plano de un hook de comando no es un fallo

976 

977Con `"block"` establecido, un fallo hace lo que [el código de salida 2 hace en ese evento](#exit-code-2-behavior-per-event), excepto en `PermissionRequest`, donde deniega la solicitud. Por ejemplo, un fallo de `PreToolUse` bloquea la llamada a herramienta y un fallo de `UserPromptSubmit` bloquea el prompt.

978 

979El campo no tiene efecto en estos hooks:

980 

981* **Hooks `Stop`, `SubagentStop`, `TaskCompleted` y `TeammateIdle`**: el código de salida 2 en estos eventos hace que Claude siga trabajando, y Claude no puede reparar un hook que no se ejecuta

982* **Hooks de comando en segundo plano**: hooks de comando que establecen [`async` o `asyncRewake`](#run-hooks-in-the-background)

983 

906<h4 id="exit-code-2-behavior-per-event">984<h4 id="exit-code-2-behavior-per-event">

907 Comportamiento del código de salida 2 por evento985 Comportamiento del código de salida 2 por evento

908</h4>986</h4>


960* **Fallo de conexión**: error sin bloqueo, la ejecución continúa1038* **Fallo de conexión**: error sin bloqueo, la ejecución continúa

961* **Tiempo de espera agotado**: el hook se cancela, como se describe en [Tiempos de espera](#timeouts)1039* **Tiempo de espera agotado**: el hook se cancela, como se describe en [Tiempos de espera](#timeouts)

962 1040 

963A diferencia de los hooks de comando, los hooks HTTP no pueden señalar un error de bloqueo solo mediante códigos de estado. 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 apropiados.1041Los hooks HTTP no pueden señalar un error de bloqueo solo mediante el código de estado: un estado que no es 2xx o una conexión fallida es un [error sin bloqueo](#exit-code-output). 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 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).

964 1042 

965<h3 id="json-output">1043<h3 id="json-output">

966 Salida JSON1044 Salida JSON


1237 Control de decisiones de SessionStart1315 Control de decisiones de SessionStart

1238</h4>1316</h4>

1239 1317 

1240Claude Code agrega al contexto de Claude la stdout que [trata como texto plano](#exit-code-0). Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, puedes devolver estos campos específicos del evento:1318Un hook SessionStart puede agregar contexto para Claude, proporcionar el primer mensaje del usuario, establecer el título de la sesión, vigilar archivos y recargar skills. Devuelve el campo correspondiente a cada uno, además de los [campos de salida JSON](#json-output) disponibles para todos los hooks:

1241 1319 

1242| Campo | Descripción |1320| Campo | Descripción |

1243| :- | :- |1321| :- | :- |

1244| `additionalContext` | Cadena agregada al contexto de Claude al inicio de la conversación, antes del primer prompt. Consulta [Agregar contexto para Claude](#add-context-for-claude) para saber cómo se entrega el texto y qué incluir en él |1322| `additionalContext` | Cadena agregada al contexto de Claude al inicio de la conversación, antes del primer prompt. Consulta [Agregar contexto para Claude](#add-context-for-claude) para saber cómo se entrega el texto y qué incluir en él |

1245| `initialUserMessage` | Cadena usada como el primer mensaje del usuario de la sesión. Se aplica en el [modo no interactivo](/docs/es/headless) con el flag `-p`, donde se convierte en el primer turno aunque no se proporcione ningún prompt. Si se proporciona un prompt, este sigue como el siguiente turno. A diferencia de `additionalContext`, que se adjunta a un turno existente, este crea el turno |1323| `initialUserMessage` | Cadena que se usa como primer mensaje del usuario de la sesión, en [modo no interactivo](/docs/es/headless) con el flag `-p`. Se convierte en el primer turno aunque no pases ningún prompt. Un prompt que sí pases va a continuación como el siguiente turno |

1246| `sessionTitle` | Establece el título de la sesión, con el mismo efecto que `/rename`. Úsalo para nombrar sesiones automáticamente a partir de la carpeta de inicio, la rama de git o el nombre del worktree. Se aplica cuando `source` es `"startup"`, `"resume"` o `"fork"`; se ignora en `"clear"` y `"compact"` |1324| `sessionTitle` | Establece el título de la sesión, con el mismo efecto que `/rename`. Se aplica cuando `source` es `"startup"`, `"resume"` o `"fork"` |

1247| `watchPaths` | Array de rutas absolutas que se vigilarán para eventos [FileChanged](#filechanged) durante esta sesión |1325| `watchPaths` | Array de rutas absolutas que se vigilarán para eventos [FileChanged](#filechanged) durante esta sesión |

1248| `reloadSkills` | Booleano. Cuando es `true`, Claude Code vuelve a escanear los directorios de [skills](/docs/es/skills) y de comandos después de que terminan los hooks SessionStart, de modo que los skills que instaló el hook estén disponibles en la misma sesión, a partir del primer prompt |1326| `reloadSkills` | Booleano. Cuando es `true`, Claude Code vuelve a examinar los directorios de [skills](/docs/es/skills) y comandos después de que terminan los hooks SessionStart. Consulta [Recargar los skills que instala un hook](#reload-skills-that-a-hook-installs) |

1327 

1328Esta salida agrega contexto y le pone nombre a la sesión:

1249 1329 

1250```json theme={null}1330```json theme={null}

1251{1331{


1257}1337}

1258```1338```

1259 1339 

1260Como la stdout en texto plano ya llega a Claude en este evento, un hook que solo carga contexto puede imprimir directamente en stdout sin construir JSON. Usa el formato JSON cuando necesites combinar contexto con otros campos como `sessionTitle`.1340Un hook que solo agrega contexto puede imprimirlo sin construir JSON, porque Claude Code agrega al contexto de Claude la [stdout en texto plano](#exit-code-0) de un hook SessionStart.

1341 

1342Si el hook SessionStart de tu plugin proporciona `initialUserMessage` o `sessionTitle`, instala el plugin antes de que se inicie la sesión. Claude Code ignora ambos campos de un plugin que termina de instalarse después de que se hayan ejecutado los hooks SessionStart.

1343 

1344<h4 id="reload-skills-that-a-hook-installs">

1345 Recargar los skills que instala un hook

1346</h4>

1347 

1348Para que los skills que instala un hook SessionStart estén disponibles en la misma sesión, devuelve `reloadSkills`. La detección de skills normalmente se ejecuta antes de que terminen los hooks SessionStart, así que, sin él, los archivos que un hook escribe en `~/.claude/skills/` o `.claude/skills/` pueden faltar cuando se ejecuta el primer prompt.

1261 1349 

1262Usa `reloadSkills` cuando un hook SessionStart instala o actualiza skills. El descubrimiento de skills normalmente se ejecuta antes de que terminen los hooks SessionStart, así que los archivos que el hook escribe en `~/.claude/skills/` o `.claude/skills/` de otro modo solo aparecerían en la siguiente sesión. Este ejemplo sincroniza un repositorio compartido de skills y solicita el nuevo escaneo:1350Este ejemplo sincroniza un repositorio compartido de skills y solicita el nuevo examen:

1263 1351 

1264```bash theme={null}1352```bash theme={null}

1265#!/bin/bash1353#!/bin/bash


1270echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'1358echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'

1271```1359```

1272 1360 

1273La URL del repositorio es un marcador de posición; reemplázala por tu propio repositorio de skills. Con el marcador de posición, la clonación falla e imprime un mensaje `fatal:` en stderr. La stderr de un hook SessionStart que termina con 0 es solo informativa, así que la solicitud `reloadSkills` se aplica de todos modos.1361La URL del repositorio es un marcador de posición. Reemplázala por tu propio repositorio de skills.

1274 1362 

1275<h4 id="persist-environment-variables">1363<h4 id="persist-environment-variables">

1276 Persistir variables de entorno1364 Persistir variables de entorno


1419 1507 

1420Los hooks `UserPromptSubmit` tienen un tiempo de espera predeterminado de 30 segundos para los tipos `command`, `http` y `mcp_tool`, más corto que el valor predeterminado de 600 segundos para esos tipos en la mayoría de los demás eventos. Como este hook se ejecuta antes de cada prompt y bloquea el procesamiento del modelo hasta que termina, un hook atascado detiene la sesión. Si tu hook necesita más tiempo, establece el campo `timeout` en la entrada del hook.1508Los hooks `UserPromptSubmit` tienen un tiempo de espera predeterminado de 30 segundos para los tipos `command`, `http` y `mcp_tool`, más corto que el valor predeterminado de 600 segundos para esos tipos en la mayoría de los demás eventos. Como este hook se ejecuta antes de cada prompt y bloquea el procesamiento del modelo hasta que termina, un hook atascado detiene la sesión. Si tu hook necesita más tiempo, establece el campo `timeout` en la entrada del hook.

1421 1509 

1422Salvo un hook de comando que ejecutes con [`async: true`](#run-hooks-in-the-background), cuando a un hook de comando, HTTP o de herramienta MCP de `UserPromptSubmit` se le agota el tiempo de espera, se cancela y su salida, incluido cualquier `additionalContext`, se descarta. El prompt llega igualmente a Claude sin ese contexto. La transcripción muestra un aviso con el nombre del hook, el tiempo de espera que se agotó y que la salida se descartó.1510Salvo un hook de comando que ejecutes con [`async: true`](#run-hooks-in-the-background), cuando se agota el tiempo de espera de un hook de comando, HTTP o de herramienta MCP de `UserPromptSubmit`, se cancela y se descarta su salida, incluido cualquier `additionalContext`. 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 indica el hook, el tiempo de espera que se agotó y que se descartó la salida.

1423 1511 

1424Cuando a un [hook de callback del Agent SDK](/docs/es/agent-sdk/hooks) en `UserPromptSubmit` 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 ahí 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.1512Cuando a un [hook de callback del Agent SDK](/docs/es/agent-sdk/hooks) en `UserPromptSubmit` 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 ahí 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.

1425 1513 


1860| :- | :- | :- | :- |1948| :- | :- | :- | :- |

1861| `url` | string | `"https://example.com/api"` | URL de la que se obtendrá el contenido |1949| `url` | string | `"https://example.com/api"` | URL de la que se obtendrá el contenido |

1862| `prompt` | string | `"Extract the API endpoints"` | Prompt que se ejecutará sobre el contenido obtenido |1950| `prompt` | string | `"Extract the API endpoints"` | Prompt que se ejecutará sobre el contenido obtenido |

1951| `offset` | number | `100000` | Número opcional de caracteres que se omitirán desde el inicio de la página. Claude lo establece para seguir leyendo una página larga. Requiere Claude Code v2.1.290 o posterior |

1863 1952 

1864<h5 id="websearch">1953<h5 id="websearch">

1865 WebSearch1954 WebSearch


2112| `message` | Solo para `"deny"`: le indica a Claude por qué se denegó el permiso |2201| `message` | Solo para `"deny"`: le indica a Claude por qué se denegó el permiso |

2113| `interrupt` | Solo para `"deny"`: si es `true`, detiene a Claude |2202| `interrupt` | Solo para `"deny"`: si es `true`, detiene a Claude |

2114 2203 

2115Un hook que termina con 2 sin un objeto `decision` deja el flujo de permisos sin cambios, y su stderr se descarta. Solo el objeto `decision` puede conceder o denegar la solicitud.2204Un hook que sale con 2 sin un objeto `decision` deja el flujo de permisos sin cambios, y su stderr se descarta. Para conceder o denegar la solicitud, devuelve el objeto `decision`.

2116 2205 

2117```json theme={null}2206```json theme={null}

2118{2207{


2678 Control de decisiones de TaskCreated2767 Control de decisiones de TaskCreated

2679</h4>2768</h4>

2680 2769 

2681Un hook TaskCreated puede bloquear la creación de dos maneras. En ambos casos, Claude Code elimina la tarea y devuelve tu mensaje a Claude como el error de la herramienta. Claude Code ignora `continue: false` de este evento y Claude sigue trabajando.2770Un hook TaskCreated puede bloquear la creación con el código de salida 2 o con una decisión JSON. En cualquier caso, Claude Code elimina la tarea y devuelve tu mensaje a Claude como error de la herramienta. Claude Code ignora `continue: false` en este evento y Claude sigue trabajando.

2682 2771 

2683* **Código de salida 2**: Claude Code devuelve el texto de stderr como mensaje.2772* **Código de salida 2**: Claude Code devuelve el texto de stderr como mensaje.

2684* **JSON `{"decision": "block", "reason": "..."}`**: Claude Code devuelve `reason` como mensaje.2773* **JSON `{"decision": "block", "reason": "..."}`**: Claude Code devuelve `reason` como mensaje.


3561 3650 

3562Claude Code muestra al usuario cualquier `systemMessage` que devuelva tu hook, independientemente de la decisión, por lo que un hook que informa costos puede devolver `{"systemMessage": "..."}` y terminar con 0.3651Claude Code muestra al usuario cualquier `systemMessage` que devuelva tu hook, independientemente de la decisión, por lo que un hook que informa costos puede devolver `{"systemMessage": "..."}` y terminar con 0.

3563 3652 

3564Un hook PreModelSwitch que no responde antes de su tiempo de espera bloquea el cambio. En [PreToolUse](#timeouts), en cambio, un hook de comando cuyo tiempo de espera se agota deja que la llamada a herramienta continúe. El tiempo de espera predeterminado para este evento es de 30 segundos. `PreModelSwitch` solo ejecuta hooks `command`, `http` y `mcp_tool`, por lo que los valores predeterminados de `prompt` y `agent` no se aplican.3653Un hook PreModelSwitch que no responde antes de que se agote su tiempo de espera bloquea el cambio. Para saber qué hace un tiempo de espera agotado en otros eventos, consulta [Tiempos de espera](#timeouts). El tiempo de espera predeterminado para este evento es de 30 segundos. `PreModelSwitch` solo ejecuta hooks `command`, `http` y `mcp_tool`, por lo que los valores predeterminados de `prompt` y `agent` no se aplican.

3565 3654 

3566Un hook que termina con un código distinto de 0 o 2 y no imprime ninguna decisión JSON no bloquea: Claude Code muestra su stderr y aplica el cambio, como se describe en [Otros códigos de salida](#other-exit-codes).3655Un hook que termina con un código distinto de 0 o 2 y no imprime ninguna decisión JSON es un error no bloqueante, como se describe en [Otros códigos de salida](#other-exit-codes).

3567 3656 

3568<h3 id="postmodelswitch">3657<h3 id="postmodelswitch">

3569 PostModelSwitch3658 PostModelSwitch


4279Los hooks asincronos tienen restricciones adicionales en comparación con los hooks sincronos:4368Los hooks asincronos tienen restricciones adicionales en comparación con los hooks sincronos:

4280 4369 

4281* La salida del hook se entrega en el siguiente turno de conversación. Si la sesión está inactiva, la respuesta espera hasta la siguiente interacción del usuario. Excepción: un hook `asyncRewake` que sale con código 2 despierta a Claude inmediatamente incluso cuando la sesión está inactiva.4370* La salida del hook se entrega en el siguiente turno de conversación. Si la sesión está inactiva, la respuesta espera hasta la siguiente interacción del usuario. Excepción: un hook `asyncRewake` que sale con código 2 despierta a Claude inmediatamente incluso cuando la sesión está inactiva.

4282* Cada ejecución crea un proceso de fondo separado. No hay deduplicación en múltiples activaciones del mismo hook asincrónico.4371* Cada ejecución crea un proceso en segundo plano separado.

4283 4372 

4284<h2 id="security-considerations">4373<h2 id="security-considerations">

4285 Consideraciones de seguridad4374 Consideraciones de seguridad

hooks-guide.md +14 −11

Details

242 242 

243Para probar el hook, pídele a Claude que añada una línea con cadenas entre comillas simples a un archivo JavaScript, luego abre el archivo: con la configuración predeterminada de Prettier, el hook las reescribe a comillas dobles.243Para probar el hook, pídele a Claude que añada una línea con cadenas entre comillas simples a un archivo JavaScript, luego abre el archivo: con la configuración predeterminada de Prettier, el hook las reescribe a comillas dobles.

244 244 

245Cuando el hook tiene éxito, Claude Code no muestra nada en la conversación. Para confirmar que el hook se ejecutó, verifica que el archivo editado esté reformateado, o consulta [Técnicas de depuración](#debug-techniques).245Cuando el hook tiene éxito, Claude Code no muestra nada en la conversación. Para confirmar que el hook se ejecutó, verifica que el archivo editado esté reformateado, o consulta [Comprueba qué hizo un hook](#check-what-a-hook-did).

246 246 

247Para reformatear un archivo específico sin importar cómo cambie, incluyendo cuando un comando `Bash` lo reescribe, usa un hook [FileChanged](/docs/es/hooks#filechanged) en su lugar.247Para reformatear un archivo específico sin importar cómo cambie, incluyendo cuando un comando `Bash` lo reescribe, usa un hook [FileChanged](/docs/es/hooks#filechanged) en su lugar.

248 248 


979}979}

980```980```

981 981 

982El punto final debe devolver un cuerpo de respuesta JSON usando el mismo [formato de salida](/docs/es/hooks#json-output) que los hooks de comando. Para bloquear una llamada a herramienta, devuelve una respuesta 2xx con los campos `hookSpecificOutput` apropiados. Los códigos de estado HTTP por sí solos no pueden bloquear acciones.982Tu endpoint responde con un cuerpo JSON en el mismo [formato de salida](/docs/es/hooks#json-output) que los hooks de comando, y Claude Code también verifica el código de estado de la respuesta:

983 

984* **Estado 2xx**: para bloquear una llamada a herramienta, devuelve los campos `hookSpecificOutput` apropiados en el cuerpo.

985* **Cualquier otro estado, o si la solicitud falla**: Claude Code informa un [error no bloqueante](/docs/es/hooks#exit-code-output) y permite que la acción continúe. Para que un endpoint que falla bloquee la acción, establece [`onFailure: "block"`](/docs/es/hooks#block-the-action-when-a-hook-fails) en el hook.

983 986 

984Los valores de encabezado soportan interpolación de variables de entorno usando la sintaxis `$VAR_NAME` o `${VAR_NAME}`. Solo las variables listadas en el array `allowedEnvVars` se resuelven; todas las otras referencias `$VAR` permanecen vacías.987Los valores de encabezado soportan interpolación de variables de entorno usando la sintaxis `$VAR_NAME` o `${VAR_NAME}`. Solo las variables listadas en el array `allowedEnvVars` se resuelven; todas las otras referencias `$VAR` permanecen vacías.

985 988 


1103 1106 

1104Cuando su hook devuelve `permissionDecision` o `additionalContext` en el nivel superior en lugar de dentro de `hookSpecificOutput`, el JSON aún se analiza, y Claude Code ignora los campos mal colocados sin reportar un error. Para ver qué campos ignoró, inicie Claude Code con `claude --debug` y busque en el [registro de depuración](/docs/es/hooks#debug-hooks) `Hook JSON output had unrecognized keys`.1107Cuando su hook devuelve `permissionDecision` o `additionalContext` en el nivel superior en lugar de dentro de `hookSpecificOutput`, el JSON aún se analiza, y Claude Code ignora los campos mal colocados sin reportar un error. Para ver qué campos ignoró, inicie Claude Code con `claude --debug` y busque en el [registro de depuración](/docs/es/hooks#debug-hooks) `Hook JSON output had unrecognized keys`.

1105 1108 

1106<h3 id="debug-techniques">1109<h3 id="check-what-a-hook-did">

1107 Técnicas de depuración1110 Verificar qué hizo un hook

1108</h3>1111</h3>

1109 1112 

1110Presione `Ctrl+O` para abrir la vista de transcripción para verificar el resultado de una ejecución de hook:1113Presiona `Ctrl+O` para abrir la vista de transcripción y busca el resultado del hook:

1111 1114 

1112* **Ejecución exitosa**: no ve nada, a menos que el JSON del hook muestre algo, como `systemMessage` o retroalimentación del hook Stop.1115* **Éxito**: no ves nada, a menos que el JSON del hook muestre algo, como `systemMessage` o retroalimentación del hook Stop.

1113 * Para confirmar que un hook se ejecutó, verifique su efecto, como un archivo reformateado, o active el registro de depuración como se describe a continuación y active el hook nuevamente1116 * Para confirmar que el hook se ejecutó, verifica su efecto, como un archivo reformateado

1114* **Error de bloqueo**: en la mayoría de eventos ve la retroalimentación del hook. Cuando el JSON del hook tomó una decisión de bloqueo, la retroalimentación es la razón de esa decisión; de lo contrario es el stderr del hook. En algunos eventos, como `ConfigChange` y `Elicitation`, un bloqueo no muestra ningún mensaje.1117* **Error de bloqueo**: en la mayoría de los eventos ves el mensaje que acompañó al bloqueo, por ejemplo `Blocked: rm commands are not allowed`. En algunos eventos, como `ConfigChange` y `Elicitation`, no ves ningún mensaje. [Exit code 2](/docs/es/hooks#exit-code-2) explica de dónde proviene el mensaje.

1115* **Error sin bloqueo**: la acción procedió, y ve un aviso `<hook name> hook error` con una explicación breve, como la primera línea de stderr prefijada con `Failed with non-blocking status code:`, o un mensaje de validación o análisis JSON.1118* **Error sin bloqueo**: ves un aviso `<hook name> hook error` con una explicación breve, como la primera línea de stderr después de `Failed with non-blocking status code:`, o un mensaje de validación o análisis JSON. La acción siguió adelante.

1116 1119 

1117Qué combinaciones de código de salida y JSON producen cada resultado, incluyendo las excepciones por evento, se define en la sección [Exit code output](/docs/es/hooks#exit-code-output) de la referencia.1120Para consultar el resultado de un código de salida y una stdout específicos, incluidas las excepciones por evento, consulta [Exit code output](/docs/es/hooks#exit-code-output) en la referencia.

1118 1121 

1119Para detalles de ejecución completos incluyendo qué hooks coincidieron, sus códigos de salida, stdout y stderr, lee el registro de depuración. Inicia Claude Code con `claude --debug-file /tmp/claude.log` para escribir en una ruta conocida, luego `tail -f /tmp/claude.log` en otra terminal. Si iniciaste sin esa bandera, ejecuta `/debug` a mitad de sesión para habilitar el registro y encontrar la ruta del registro.1122Para ver los detalles completos de ejecución, incluidos los códigos de salida, stdout y stderr del hook, lee el registro de depuración. Inicia Claude Code con `claude --debug-file /tmp/claude.log` para escribir en una ruta conocida y luego ejecuta `tail -f /tmp/claude.log` en otra terminal. Si iniciaste sin ese flag, ejecuta `/debug` a mitad de sesión para habilitar el registro y encontrar la ruta del registro.

1120 1123 

1121<h2 id="learn-more">1124<h2 id="learn-more">

1122 Aprende más1125 Aprende más

Details

216| `^` | Primer carácter no en blanco |216| `^` | Primer carácter no en blanco |

217| `gg` | Principio de entrada |217| `gg` | Principio de entrada |

218| `G` | Principio de la última línea |218| `G` | Principio de la última línea |

219| `f{char}` | Saltar a la siguiente ocurrencia del carácter |219| `f{char}` | Saltar a la siguiente ocurrencia del carácter en la línea actual |

220| `F{char}` | Saltar a la ocurrencia anterior del carácter |220| `F{char}` | Saltar a la ocurrencia anterior del carácter en la línea actual |

221| `t{char}` | Saltar justo antes de la siguiente ocurrencia del carácter |221| `t{char}` | Saltar justo antes de la siguiente ocurrencia del carácter en la línea actual |

222| `T{char}` | Saltar justo después de la ocurrencia anterior del carácter |222| `T{char}` | Saltar justo después de la ocurrencia anterior del carácter en la línea actual |

223| `;` | Repetir último movimiento f/F/t/T |223| `;` | Repetir último movimiento f/F/t/T |

224| `,` | Repetir último movimiento f/F/t/T en orden inverso |224| `,` | Repetir último movimiento f/F/t/T en orden inverso |

225| `/` | Abrir búsqueda de historial inverso, igual que `Ctrl+R`. El prompt de búsqueda vacío muestra una sugerencia: presione `Esc` luego `i` luego `/` para abrir el menú de comandos en su lugar |225| `/` | Abrir búsqueda de historial inverso, igual que `Ctrl+R`. El prompt de búsqueda vacío muestra una sugerencia: presione `Esc` luego `i` luego `/` para abrir el menú de comandos en su lugar |


239| `dd` | Eliminar línea |239| `dd` | Eliminar línea |

240| `D` | Eliminar hasta el final de la línea |240| `D` | Eliminar hasta el final de la línea |

241| `dw`/`de`/`db` | Eliminar palabra/hasta el final/hacia atrás |241| `dw`/`de`/`db` | Eliminar palabra/hasta el final/hacia atrás |

242| `df{char}`/`dt{char}` | Eliminar hasta e incluyendo, o hasta, la siguiente ocurrencia de un carácter |242| `df{char}`/`dt{char}` | Eliminar hasta e incluyendo, o hasta, la siguiente ocurrencia de un carácter en la línea actual |

243| `dj`/`dk` | Eliminar la línea actual y la línea debajo o arriba |243| `dj`/`dk` | Eliminar la línea actual y la línea debajo o arriba |

244| `dgg`/`dG` | Eliminar desde la línea actual hasta la primera o última línea |244| `dgg`/`dG` | Eliminar desde la línea actual hasta la primera o última línea |

245| `d0`/`c0`/`y0` | Eliminar, cambiar o yanquear desde el cursor hacia atrás hasta el principio de la línea. Requiere Claude Code v2.1.281 o posterior |245| `d0`/`c0`/`y0` | Eliminar, cambiar o yanquear desde el cursor hacia atrás hasta el principio de la línea. Requiere Claude Code v2.1.281 o posterior |


852 Enlaces de referencia de problemas852 Enlaces de referencia de problemas

853</h2>853</h2>

854 854 

855Cuando Claude menciona un problema como `owner/repo#123`, puede hacer clic en la referencia para abrirlo, siempre que su terminal admita hipervínculos. Si Claude Code no detecta compatibilidad con hipervínculos en su terminal, establezca [`FORCE_HYPERLINK`](/docs/es/env-vars) en `1` para activar los enlaces, o en `0` para mantener las referencias como texto sin formato.855Cuando Claude menciona un problema como `owner/repo#123`, puedes hacer clic en la referencia para abrirlo, siempre que tu terminal admita hipervínculos. Si Claude Code no detecta compatibilidad con hipervínculos en tu terminal, establece [`FORCE_HYPERLINK`](/docs/es/env-vars) en `1` para activar los enlaces, o en `0` para mantener las referencias como texto sin formato.

856 856 

857Solo obtiene un enlace para el formulario de dos partes `owner/repo#123`. Estos permanecen como texto sin formato:857Solo obtienes un enlace para la forma de dos partes `owner/repo#123`. Estos permanecen como texto sin formato:

858 858 

859* Un `#123` desnudo859* Un `#123` desnudo

860* Una ruta anidada de GitLab como `group/subgroup/project#123`860* Una ruta anidada de GitLab como `group/subgroup/project#123`

861* Cualquier referencia dentro de un intervalo de código o bloque de código861* Cualquier referencia dentro de un intervalo de código o bloque de código

862* Cualquier referencia en una respuesta de más de aproximadamente 1,000 líneas o 100,000 caracteres

862 863 

863Claude Code construye el enlace para el host del repositorio que identifica desde su remoto de git, no para el repositorio que nombra la referencia:864Claude Code crea el enlace para el host del repositorio que identifica desde tu remoto de git, no para el repositorio que nombra la referencia:

864 865 

865| Host del repositorio | Dónde `owner/repo#123` enlaza |866| Host del repositorio | Dónde `owner/repo#123` enlaza |

866| :- | :- |867| :- | :- |

jetbrains.md +8 −4

Details

55 Uso55 Uso

56</h2>56</h2>

57 57 

58<h3 id="from-your-ide">58<span id="from-your-ide" />

59 Desde tu IDE59 

60<h3 id="run-claude-code-from-your-ide">

61 Ejecutar Claude Code desde tu IDE

60</h3>62</h3>

61 63 

62Ejecuta `claude` desde la terminal integrada de tu IDE, y todas las características de integración estarán activas.64Ejecuta `claude` desde la terminal integrada de tu IDE, y todas las características de integración estarán activas.

63 65 

64<h3 id="from-external-terminals">66<span id="from-external-terminals" />

65 Desde terminales externos67 

68<h3 id="connect-from-an-external-terminal">

69 Conectarse desde una terminal externa

66</h3>70</h3>

67 71 

68Utiliza el comando `/ide` en cualquier terminal externo para conectar Claude Code a tu JetBrains IDE y activar todas las características:72Utiliza el comando `/ide` en cualquier terminal externo para conectar Claude Code a tu JetBrains IDE y activar todas las características:

Details

79 79 

80Las plantillas de inicio para Jamf, Iru, Intune y Group Policy están en el [repositorio de ejemplos de MDM](https://github.com/anthropics/claude-code/tree/main/examples/mdm).80Las plantillas de inicio para Jamf, Iru, Intune y Group Policy están en el [repositorio de ejemplos de MDM](https://github.com/anthropics/claude-code/tree/main/examples/mdm).

81 81 

82Si tu organización tiene aplicada la [configuración HIPAA](/docs/es/hipaa-setup#deploy-managed-settings), consulta `settings-hipaa.json` y `README-hipaa.md` en el [repositorio de ejemplos de configuración](https://github.com/anthropics/claude-code/tree/main/examples/settings) para ver un `managed-settings.json` más completo con sandboxing, una lista de dominios permitidos de red, protecciones de credenciales y retención local de datos.

83 

82Para servidores MCP administrados, que implementa junto con cualquiera de estos a través de `managed-mcp.json` o proporciona a través de la clave [`managedMcpServers`](/docs/es/settings-reference#managedmcpservers), consulte [Configuración MCP administrada](/docs/es/managed-mcp).84Para servidores MCP administrados, que implementa junto con cualquiera de estos a través de `managed-mcp.json` o proporciona a través de la clave [`managedMcpServers`](/docs/es/settings-reference#managedmcpservers), consulte [Configuración MCP administrada](/docs/es/managed-mcp).

83 85 

84<h3 id="where-and-when-a-policy-applies">86<h3 id="where-and-when-a-policy-applies">

mcp.md +18 −10

Details

181 181 

182Cada uno es una de las entradas que toman las cuatro opciones en [Instalación de servidores MCP](#installing-mcp-servers). Encuentra a continuación la forma que tienes para convertirla en el comando que Claude Code acepta. Cada comando escribe en [alcance local](#local-scope) a menos que agregues `--scope project` o `--scope user`.182Cada uno es una de las entradas que toman las cuatro opciones en [Instalación de servidores MCP](#installing-mcp-servers). Encuentra a continuación la forma que tienes para convertirla en el comando que Claude Code acepta. Cada comando escribe en [alcance local](#local-scope) a menos que agregues `--scope project` o `--scope user`.

183 183 

184<h4 id="from-a-url">184<span id="from-a-url" />

185 Desde una URL185 

186<h4 id="add-a-server-from-a-url">

187 Agregar un servidor desde una URL

186</h4>188</h4>

187 189 

188Una URL significa que el servidor es remoto. Para un endpoint `https://`, agrégalo con `--transport http`, o sigue la [Opción 2](#option-2-add-a-remote-sse-server) cuando las instrucciones digan que el endpoint usa SSE. Para un endpoint `wss://`, usa la [Opción 4](#option-4-add-a-remote-websocket-server) en su lugar, ya que `--transport` no acepta `ws`:190Una URL significa que el servidor es remoto. Para un endpoint `https://`, agrégalo con `--transport http`, o sigue la [Opción 2](#option-2-add-a-remote-sse-server) cuando las instrucciones digan que el endpoint usa SSE. Para un endpoint `wss://`, usa la [Opción 4](#option-4-add-a-remote-websocket-server) en su lugar, ya que `--transport` no acepta `ws`:


193 195 

194Si las instrucciones también dan una clave de API o un encabezado de token, pásalo con `--header` como se muestra en la [Opción 1](#option-1-add-a-remote-http-server).196Si las instrucciones también dan una clave de API o un encabezado de token, pásalo con `--header` como se muestra en la [Opción 1](#option-1-add-a-remote-http-server).

195 197 

196<h4 id="from-an-npx-uvx-or-binary-command">198<span id="from-an-npx-uvx-or-binary-command" />

197 Desde un comando `npx`, `uvx`, o binario199 

200<h4 id="add-a-server-from-an-npx-uvx-or-binary-command">

201 Agregar un servidor desde un comando `npx`, `uvx`, o binario

198</h4>202</h4>

199 203 

200Un comando de lanzamiento significa que el servidor se ejecuta como un proceso stdio local. Pon todo el comando después de `--`, para que Claude Code pase flags como `-y` al comando que inicia el servidor en lugar de leerlos como sus propias opciones. Pasa cualquier variable de entorno que las instrucciones soliciten con `--env`, después del nombre del servidor y antes de `--`:204Un comando de lanzamiento significa que el servidor se ejecuta como un proceso stdio local. Pon todo el comando después de `--`, para que Claude Code pase flags como `-y` al comando que inicia el servidor en lugar de leerlos como sus propias opciones. Pasa cualquier variable de entorno que las instrucciones soliciten con `--env`, después del nombre del servidor y antes de `--`:


205 209 

206La [Opción 3](#option-3-add-a-local-stdio-server) cubre el separador `--` en su totalidad.210La [Opción 3](#option-3-add-a-local-stdio-server) cubre el separador `--` en su totalidad.

207 211 

208<h4 id="from-an-mcpservers-json-block">212<span id="from-an-mcpservers-json-block" />

209 Desde un bloque JSON `mcpServers`213 

214<h4 id="add-a-server-from-an-mcpservers-json-block">

215 Agregar un servidor desde un bloque JSON `mcpServers`

210</h4>216</h4>

211 217 

212Un bloque `mcpServers` escrito para otro cliente MCP, como Claude Desktop, utiliza la clave contenedora y la forma de entrada que Claude Code lee. Pasa a `claude mcp add-json` el objeto dentro de `mcpServers`, no el contenedor. Dos tipos de entrada necesitan una reparación primero:218Un bloque `mcpServers` escrito para otro cliente MCP, como Claude Desktop, utiliza la clave contenedora y la forma de entrada que Claude Code lee. Pasa a `claude mcp add-json` el objeto dentro de `mcpServers`, no el contenedor. Dos tipos de entrada necesitan una reparación primero:


367 373 

368En v2, Claude Code también:374En v2, Claude Code también:

369 375 

370* Pregunta a los servidores HTTP y stdio si admiten la revisión más nueva, y la utiliza con los que la admiten. En sesiones donde obtiene feature flags, también pregunta a los servidores de conectores de claude.ai. Se conecta a todos los demás servidores como lo hace v1.376* Pregunta a los servidores HTTP, stdio y de conectores de claude.ai si admiten la revisión más nueva, y la utiliza con los que la admiten. Se conecta a todos los demás servidores como lo hace v1.

371* Recibe notificaciones `list_changed` de servidores en la revisión más nueva a través de una [secuencia que mantiene abierta](#notification-streams-on-the-v2-runtime).377* Recibe notificaciones `list_changed` de servidores en la revisión más nueva a través de una [secuencia que mantiene abierta](#notification-streams-on-the-v2-runtime).

372* No registra un servidor de [canal](#push-messages-with-channels) que se conecta en la revisión más nueva, porque esa revisión no puede transportar mensajes de canal.378* No registra un servidor de [canal](#push-messages-with-channels) que se conecta en la revisión más nueva, porque esa revisión no puede transportar mensajes de canal.

373* Hace fallar un [inicio de sesión OAuth de MCP](#authenticate-with-remote-mcp-servers) cuya respuesta de autorización nombra un emisor inesperado.379* Hace fallar un [inicio de sesión OAuth de MCP](#authenticate-with-remote-mcp-servers) cuya respuesta de autorización nombra un emisor inesperado.


891 Autenticarse desde la línea de comandos897 Autenticarse desde la línea de comandos

892</h3>898</h3>

893 899 

894El comando `claude mcp login <name>` ejecuta el flujo de OAuth de un servidor configurado directamente desde su shell, para que no necesite abrir el panel `/mcp` dentro de una sesión.900El comando `claude mcp login <name>` ejecuta el flujo de OAuth de un servidor configurado directamente desde tu shell, para que no necesites abrir el panel `/mcp` dentro de una sesión. Para un conector de claude.ai, sigue [Autorizar un conector de nuevo desde tu shell](/docs/es/remote-control#authorize-a-connector-again-from-your-shell).

895 901 

896```bash theme={null}902```bash theme={null}

897claude mcp login sentry903claude mcp login sentry


1581 La búsqueda de herramientas no es compatible con los [despliegues de Microsoft Foundry alojados en Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options), que la rechazan del lado del servidor: Claude Code detecta el rechazo y, en su lugar, carga las herramientas MCP por adelantado para ese despliegue. [`ENABLE_TOOL_SEARCH`](#configure-tool-search) no puede sobrescribir esto, ya que el rechazo proviene del propio despliegue.1587 La búsqueda de herramientas no es compatible con los [despliegues de Microsoft Foundry alojados en Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options), que la rechazan del lado del servidor: Claude Code detecta el rechazo y, en su lugar, carga las herramientas MCP por adelantado para ese despliegue. [`ENABLE_TOOL_SEARCH`](#configure-tool-search) no puede sobrescribir esto, ya que el rechazo proviene del propio despliegue.

1582</Note>1588</Note>

1583 1589 

1584<h3 id="for-mcp-server-authors">1590<span id="for-mcp-server-authors" />

1585 Para autores de servidores MCP1591 

1592<h3 id="tool-search-for-mcp-server-authors">

1593 Búsqueda de herramientas para autores de servidores MCP

1586</h3>1594</h3>

1587 1595 

1588Si estás creando un servidor MCP, el campo de instrucciones del servidor se vuelve más útil con la búsqueda de herramientas habilitada. Las instrucciones del servidor ayudan a Claude a entender cuándo buscar tus herramientas, de manera similar a cómo funcionan los [skills](/docs/es/skills).1596Si estás creando un servidor MCP, el campo de instrucciones del servidor se vuelve más útil con la búsqueda de herramientas habilitada. Las instrucciones del servidor ayudan a Claude a entender cuándo buscar tus herramientas, de manera similar a cómo funcionan los [skills](/docs/es/skills).

Details

599 599 

600En sesiones conectadas a una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) a través de `/login`, la CLI marca las exportaciones con la identidad autenticada: `user.id` es el sujeto del IdP, `user.email` es el correo electrónico con sesión iniciada, y `user.groups` lleva la pertenencia al grupo del IdP como una cadena separada por comas. Cada exportación también lleva `identity.source: gateway-oidc`. La identidad de la puerta de enlace se aplica en último lugar, por lo que las claves `user.*` e `identity.*` establecidas a través de `OTEL_RESOURCE_ATTRIBUTES` se ignoran en esas sesiones.600En sesiones conectadas a una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) a través de `/login`, la CLI marca las exportaciones con la identidad autenticada: `user.id` es el sujeto del IdP, `user.email` es el correo electrónico con sesión iniciada, y `user.groups` lleva la pertenencia al grupo del IdP como una cadena separada por comas. Cada exportación también lleva `identity.source: gateway-oidc`. La identidad de la puerta de enlace se aplica en último lugar, por lo que las claves `user.*` e `identity.*` establecidas a través de `OTEL_RESOURCE_ATTRIBUTES` se ignoran en esas sesiones.

601 601 

602<Note>

603 Los eventos que Claude Code registra antes de que un desarrollador inicie sesión no incluyen la identidad del gateway. Cuando Claude Code abre una sesión sin haber iniciado sesión en el gateway, por ejemplo después de que [el gateway finaliza el inicio de sesión](/docs/es/errors#cloud-gateway-session-expired), los eventos de inicio registrados antes del inicio de sesión incluyen el `user.id` anónimo y ningún `identity.source`. Entre ellos se encuentran [`managed_settings_resolved`](#managed-settings-resolved-event), [`plugin_loaded`](#plugin-loaded-event) y [`mcp_server_connection`](#mcp-server-connection-event).

604</Note>

605 

602Para los atributos de identidad en sesiones de Claude Desktop y Cowork que se conectan a través de una puerta de enlace, consulte la [referencia de telemetría de la puerta de enlace](/docs/es/claude-apps-gateway-config#telemetry).606Para los atributos de identidad en sesiones de Claude Desktop y Cowork que se conectan a través de una puerta de enlace, consulte la [referencia de telemetría de la puerta de enlace](/docs/es/claude-apps-gateway-config#telemetry).

603 607 

604Los eventos incluyen además los siguientes atributos. Estos nunca se adjuntan a las métricas porque causarían cardinalidad ilimitada:608Los eventos incluyen además los siguientes atributos. Estos nunca se adjuntan a las métricas porque causarían cardinalidad ilimitada:


917* `error`: Mensaje de error921* `error`: Mensaje de error

918* `status_code`: Código de estado HTTP como número. Ausente para errores no HTTP como fallos de conexión.922* `status_code`: Código de estado HTTP como número. Ausente para errores no HTTP como fallos de conexión.

919* `duration_ms`: Duración de la solicitud en milisegundos923* `duration_ms`: Duración de la solicitud en milisegundos

920* `attempt`: Número total de intentos realizados, incluida la solicitud inicial (`1` significa que no ocurrieron reintentos)924* `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

921* `request_id`: ID de solicitud de API, como `"req_011..."`, descrito en [Atributos de correlación de eventos](#event-correlation-attributes).925* `request_id`: ID de solicitud de API, como `"req_011..."`, descrito en [Atributos de correlación de eventos](#event-correlation-attributes).

922* `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 posterior926* `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 posterior

923* `speed`: `"fast"` o `"normal"`, indicando si el modo rápido estaba activo927* `speed`: `"fast"` o `"normal"`, indicando si el modo rápido estaba activo


1190 1194 

1191Se registra cuando Claude Code resuelve una mención `@` en un mensaje. No todas las menciones emiten un evento: las rutas de salida temprana como denegaciones de permiso, archivos de gran tamaño, archivos adjuntos de referencia PDF y fallos de listado de directorios se devuelven sin registrar.1195Se registra cuando Claude Code resuelve una mención `@` en un mensaje. No todas las menciones emiten un evento: las rutas de salida temprana como denegaciones de permiso, archivos de gran tamaño, archivos adjuntos de referencia PDF y fallos de listado de directorios se devuelven sin registrar.

1192 1196 

1197Cada vez que Claude Code lee un prompt, registra como máximo 100 eventos con un `mention_type` de `"agent"` y 100 con `"mcp_resource"`. Las menciones que superan cualquiera de los límites se siguen resolviendo, pero no emiten ningún evento.

1198 

1193**Nombre del evento**: `claude_code.at_mention`1199**Nombre del evento**: `claude_code.at_mention`

1194 1200 

1195**Atributos**:1201**Atributos**:


1528 1534 

1529Claude 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.1535Claude 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.

1530 1536 

1531El atributo `attempt` en el evento registra el número total de intentos. `CLAUDE_CODE_MAX_RETRIES` tiene un valor predeterminado de 10 y está limitado a 15. A partir de v2.1.199, puede establecer `CLAUDE_CODE_RETRY_WATCHDOG` para aumentar el valor predeterminado y eliminar el límite.1537El 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.

1532 1538 

1533Cuando la solicitud agota todos los reintentos en un error transitorio, `attempt` es igual a uno más que ese límite efectivo: 11 por defecto, y nunca más de 16 a menos que el vigilante esté configurado. Un valor más bajo indica un error no reintentable como una respuesta `400`, o una causa con su propio presupuesto de reintento más pequeño. Por ejemplo, Claude Code reintenta una falla al cargar credenciales de AWS o Google Cloud como máximo dos veces.1539Cuando 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.

1540 

1541Un valor más bajo aún puede significar que los reintentos se agotaron: `attempt` vuelve a empezar desde `1` cada vez que Claude Code vuelve a emitir la solicitud tras una falla de streaming.

1534 1542 

1535Para distinguir una sesión que se recuperó de una que se estancó, agrupe eventos por `session.id` y verifique si existe un evento `api_request` posterior después del error.1543Para distinguir una sesión que se recuperó de una que se estancó, agrupe eventos por `session.id` y verifique si existe un evento `api_request` posterior después del error.

1536 1544 


1699 1707 

1700Tu elección de backends de métricas, registros y trazas determina los tipos de análisis que puedes realizar:1708Tu elección de backends de métricas, registros y trazas determina los tipos de análisis que puedes realizar:

1701 1709 

1702<h3 id="for-metrics">1710<span id="for-metrics" />

1703 Para métricas1711 

1712<h3 id="backends-for-metrics">

1713 Backends para métricas

1704</h3>1714</h3>

1705 1715 

1706* **Bases de datos de series temporales**: Cálculos de tasa, métricas agregadas1716* **Bases de datos de series temporales**: Cálculos de tasa, métricas agregadas

1707* **Almacenes columnares**: Consultas complejas, análisis de usuario único1717* **Almacenes columnares**: Consultas complejas, análisis de usuario único

1708* **Plataformas de observabilidad completas**: Consultas avanzadas, visualización, alertas1718* **Plataformas de observabilidad completas**: Consultas avanzadas, visualización, alertas

1709 1719 

1710<h3 id="for-events/logs">1720<span id="for-events/logs" />

1711 Para eventos/registros1721 

1722<h3 id="backends-for-events-and-logs">

1723 Backends para eventos y registros

1712</h3>1724</h3>

1713 1725 

1714* **Sistemas de agregación de registros**: Búsqueda de texto completo, análisis de registros1726* **Sistemas de agregación de registros**: Búsqueda de texto completo, análisis de registros

1715* **Almacenes columnares**: Análisis de eventos estructurados1727* **Almacenes columnares**: Análisis de eventos estructurados

1716* **Plataformas de observabilidad completas**: Correlación entre métricas y eventos1728* **Plataformas de observabilidad completas**: Correlación entre métricas y eventos

1717 1729 

1718<h3 id="for-traces">1730<span id="for-traces" />

1719 Para trazas1731 

1732<h3 id="backends-for-traces">

1733 Backends para trazas

1720</h3>1734</h3>

1721 1735 

1722Elige un backend que admita almacenamiento de trazas distribuidas y correlación de spans:1736Elige un backend que admita almacenamiento de trazas distribuidas y correlación de spans:

Details

91| `-y, --yes` | Acepta el comando de instalación mostrado sin la solicitud `Run this command now?`. Se ignora cuando el comando se ejecuta dentro de una sesión de Claude Code, como desde la herramienta Bash o un hook. Requiere Claude Code v2.1.229 o posterior |91| `-y, --yes` | Acepta el comando de instalación mostrado sin la solicitud `Run this command now?`. Se ignora cuando el comando se ejecuta dentro de una sesión de Claude Code, como desde la herramienta Bash o un hook. Requiere Claude Code v2.1.229 o posterior |

92| `--accept-command <sha256>` | Acepta el comando de instalación mostrado cuyo `sha256` una ejecución anterior de [`--json`](#plugin-json-result) reportó en `shownCommand`, en lugar de `-y`. No se puede combinar con `-y`. Consulta [Aceptar un comando de instalación mostrado](#accept-a-displayed-install-command). Requiere Claude Code v2.1.271 o posterior |92| `--accept-command <sha256>` | Acepta el comando de instalación mostrado cuyo `sha256` una ejecución anterior de [`--json`](#plugin-json-result) reportó en `shownCommand`, en lugar de `-y`. No se puede combinar con `-y`. Consulta [Aceptar un comando de instalación mostrado](#accept-a-displayed-install-command). Requiere Claude Code v2.1.271 o posterior |

93| `--json` | Imprime el resultado como un objeto JSON en la última línea de stdout en lugar del mensaje legible por humanos, para usar en scripts. Consulta [Formato de resultado JSON](#plugin-json-result). Requiere Claude Code v2.1.268 o posterior |93| `--json` | Imprime el resultado como un objeto JSON en la última línea de stdout en lugar del mensaje legible por humanos, para usar en scripts. Consulta [Formato de resultado JSON](#plugin-json-result). Requiere Claude Code v2.1.268 o posterior |

94| `--marketplace <source>` | Instala `<plugin>`, indicado por su nombre simple, desde el marketplace en `<source>`, añadiendo primero el marketplace si aún no lo has añadido. Consulta [Añadir un marketplace e instalar en un solo comando](/docs/es/plugins/install#add-a-marketplace-and-install-in-one-command). Requiere Claude Code v2.1.292 o posterior |

94 95 

95Ejecuta `claude plugin install --help` en tu shell para ver todas las opciones que tu versión soporta.96Ejecuta `claude plugin install --help` en tu shell para ver todas las opciones que tu versión soporta.

96 97 

Details

185 185 

186Puede cargar un plugin para una sola sesión de tres formas: desde un directorio o archivo `.zip` en el disco con `--plugin-dir`, desde una URL con `--plugin-url`, o desde una variable de entorno cuando no puede agregar una bandera. Cada plugin se carga solo para esa sesión, y nada se escribe en su configuración para él. Cuando edita los archivos del plugin durante la sesión, ejecute `/reload-plugins` para cargar los cambios.186Puede cargar un plugin para una sola sesión de tres formas: desde un directorio o archivo `.zip` en el disco con `--plugin-dir`, desde una URL con `--plugin-url`, o desde una variable de entorno cuando no puede agregar una bandera. Cada plugin se carga solo para esa sesión, y nada se escribe en su configuración para él. Cuando edita los archivos del plugin durante la sesión, ejecute `/reload-plugins` para cargar los cambios.

187 187 

188<h4 id="from-a-directory-or-zip">188<span id="from-a-directory-or-zip" />

189 Desde un directorio o `.zip`189 

190<h4 id="load-a-plugin-from-a-directory-or-zip">

191 Cargar un plugin desde un directorio o `.zip`

190</h4>192</h4>

191 193 

192Cuando inicia `claude` desde su shell, pase `--plugin-dir` con el directorio raíz del plugin o un archivo `.zip` del mismo. Repita la bandera para cargar varios plugins:194Cuando inicia `claude` desde su shell, pase `--plugin-dir` con el directorio raíz del plugin o un archivo `.zip` del mismo. Repita la bandera para cargar varios plugins:


196```198```

197 199 

198<h4 id="load-a-folder-of-plugins">200<h4 id="load-a-folder-of-plugins">

199 Desde una carpeta de plugins201 Cargar una carpeta de plugins

200</h4>202</h4>

201 203 

202Para cargar varios plugins desde un lugar, pase una carpeta que los contenga, como `--plugin-dir ./plugins`. Cargar una carpeta de plugins requiere Claude Code v2.1.265 o posterior.204Para cargar varios plugins desde un lugar, pase una carpeta que los contenga, como `--plugin-dir ./plugins`. Cargar una carpeta de plugins requiere Claude Code v2.1.265 o posterior.


212 214 

213Un mensaje aparece en la sesión para cada uno de estos cambios. Si cargar o descargar un plugin a mitad de la conversación [invalidaría el caché de prompt](/docs/es/prompt-caching#enabling-or-disabling-a-plugin), el cambio se retiene en su lugar, y el mensaje le dice que ejecute `/reload-plugins` para aplicarlo.215Un mensaje aparece en la sesión para cada uno de estos cambios. Si cargar o descargar un plugin a mitad de la conversación [invalidaría el caché de prompt](/docs/es/prompt-caching#enabling-or-disabling-a-plugin), el cambio se retiene en su lugar, y el mensaje le dice que ejecute `/reload-plugins` para aplicarlo.

214 216 

215<h4 id="fetch-an-archive-from-a-url-for-one-session">217<span id="fetch-an-archive-from-a-url-for-one-session" />

216 Desde una URL218 

219<h4 id="load-a-plugin-from-a-url">

220 Cargar un plugin desde una URL

217</h4>221</h4>

218 222 

219Cuando inicia `claude` desde su shell, pase `--plugin-url` con la dirección de un archivo `.zip`, como un artefacto de compilación que su CI publica:223Cuando inicia `claude` desde su shell, pase `--plugin-url` con la dirección de un archivo `.zip`, como un artefacto de compilación que su CI publica:


228 232 

229Si Claude Code no puede obtener el archivo, o el archivo no es válido, se inicia sin el plugin y registra un error de carga de plugin que puede revisar en la pestaña **Errors** del administrador `/plugin`.233Si Claude Code no puede obtener el archivo, o el archivo no es válido, se inicia sin el plugin y registra un error de carga de plugin que puede revisar en la pestaña **Errors** del administrador `/plugin`.

230 234 

231<h4 id="from-an-environment-variable">235<span id="from-an-environment-variable" />

232 Desde una variable de entorno236 

237<h4 id="load-plugins-from-an-environment-variable">

238 Cargar plugins desde una variable de entorno

233</h4>239</h4>

234 240 

235Para cargar plugins en una sesión donde no puede agregar la bandera `--plugin-dir`, enumere sus rutas absolutas en la variable de entorno [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/es/env-vars#variables) en su lugar. Claude Code carga cada ruta como carga una ruta `--plugin-dir`. Estos plugins se cargan además de cualquiera que pase con `--plugin-dir`. [La configuración del proyecto y local no puede establecer esta variable](/docs/es/settings-reference#variables-claude-code-ignores-in-env). `CLAUDE_CODE_PLUGIN_DIRS` requiere Claude Code v2.1.280 o posterior.241Para cargar plugins en una sesión donde no puede agregar la bandera `--plugin-dir`, enumere sus rutas absolutas en la variable de entorno [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/es/env-vars#variables) en su lugar. Claude Code carga cada ruta como carga una ruta `--plugin-dir`. Estos plugins se cargan además de cualquiera que pase con `--plugin-dir`. [La configuración del proyecto y local no puede establecer esta variable](/docs/es/settings-reference#variables-claude-code-ignores-in-env). `CLAUDE_CODE_PLUGIN_DIRS` requiere Claude Code v2.1.280 o posterior.

Details

413 How users accept a headersHelper command413 How users accept a headersHelper command

414</h3>414</h3>

415 415 

416Un usuario acepta el comando de una entrada del plugin cada vez que instala o actualiza ese plugin solo. Lo hacen desde la vista propia del plugin en `/plugin`, o con `claude plugin install` o `claude plugin update`. Claude Code muestra el comando y la URL del archivo, y ejecuta el comando solo después de que el usuario acepta.416Un usuario acepta el comando de una entrada del plugin cada vez que instala o actualiza ese plugin solo. Claude Code muestra el comando y la URL del archivo, y ejecuta el comando solo después de que el usuario acepta.

417 

418Los usuarios pueden instalar o actualizar el plugin dentro de una sesión de Claude Code en una terminal, en su shell sin ninguna sesión en ejecución, o en la extensión de VS Code:

419 

420* **Sesión de terminal**: desde la vista propia del plugin en `/plugin`.

421* **Shell**: con `claude plugin install` o `claude plugin update`.

422* **Extensión de VS Code**: desde el [diálogo **Manage plugins**](/docs/es/vs-code#manage-plugins), con la versión 2.1.290 o posterior de la extensión.

417 423 

418En un shell no interactivo, pase [`--yes`](/docs/es/plugins/cli-reference#plugin-install) para aceptar el comando. Para aceptar solo el comando que una ejecución anterior de `--json` mostró, pase [`--accept-command`](/docs/es/plugins/cli-reference#plugin-install) con el `sha256` que la ejecución reportó.424En un shell no interactivo, pase [`--yes`](/docs/es/plugins/cli-reference#plugin-install) para aceptar el comando. Para aceptar solo el comando que una ejecución anterior de `--json` mostró, pase [`--accept-command`](/docs/es/plugins/cli-reference#plugin-install) con el `sha256` que la ejecución reportó.

419 425 

420Claude Code ejecuta solo el comando que mostró, para la URL del archivo que mostró. Si el comando o la URL del archivo de la entrada cambiaron entre tanto, Claude Code rechaza la instalación o actualización. Un cambio en la cadena de consulta solo no cuenta.426Claude Code ejecuta solo el comando que mostró, para la URL del archivo que mostró. Si el comando o la URL del archivo de la entrada cambiaron entre tanto, Claude Code rechaza la instalación o actualización. Un cambio solo en la cadena de consulta no cuenta, excepto en la extensión de VS Code o con `--accept-command`.

421 427 

422<h3 id="installs-and-updates-that-refuse-the-command-instead-of-asking">428<h3 id="installs-and-updates-that-refuse-the-command-instead-of-asking">

423 Installs and updates that refuse a command instead of asking429 Installs and updates that refuse a command instead of asking

Details

189 189 

190* **Scope**: alcance de usuario por defecto. Pase `--scope project` o `--scope local` para cambiarlo.190* **Scope**: alcance de usuario por defecto. Pase `--scope project` o `--scope local` para cambiarlo.

191* **When the plugins load**: los plugins que instala se cargan la próxima vez que inicia Claude Code, o cuando ejecuta `/reload-plugins` en una sesión que ya está abierta.191* **When the plugins load**: los plugins que instala se cargan la próxima vez que inicia Claude Code, o cuando ejecuta `/reload-plugins` en una sesión que ya está abierta.

192* **The marketplace must be added first**: en una máquina donde nadie ha abierto una sesión interactiva de Claude Code aún, el marketplace oficial no está registrado, así que un script que instala desde él ejecuta `claude plugin marketplace add anthropics/claude-plugins-official` antes de la instalación.192* **El marketplace en una máquina nueva**: en una máquina donde nadie ha abierto aún una sesión interactiva de Claude Code, el marketplace oficial no está registrado, así que un script que instala desde él ejecuta `claude plugin marketplace add anthropics/claude-plugins-official` antes de la instalación. Consulta [Agregar e instalar desde tu shell](#add-and-install-from-your-shell).

193 193 

194```bash theme={null}194```bash theme={null}

195claude plugin install formatter@your-org --scope project195claude plugin install formatter@your-org --scope project


232 Agregue un marketplace e instale en un comando232 Agregue un marketplace e instale en un comando

233</h3>233</h3>

234 234 

235Para instalar un plugin desde un marketplace que aún no ha agregado, ejecute `/plugin install` en una sesión de Claude Code y nombre la fuente del marketplace con `--marketplace`. Requiere Claude Code v2.1.275 o posterior.235Para instalar un plugin desde un marketplace que aún no has agregado, indica la fuente del marketplace con `--marketplace` en el comando de instalación, en una sesión o desde tu shell. La fuente acepta [las mismas formas que `/plugin marketplace add`](#add-a-marketplace), como GitHub `owner/repo`, una URL git o una ruta local. Da el nombre del plugin por sí solo, sin un sufijo `@marketplace`.

236 

237<h4 id="add-and-install-in-a-session">

238 Agrega e instala en una sesión

239</h4>

240 

241Ejecuta `/plugin install` en una sesión de Claude Code con el plugin y la fuente. Requiere Claude Code v2.1.275 o posterior. En una sesión, la fuente no puede contener espacios.

236 242 

237```text theme={null}243```text theme={null}

238/plugin install deploy-helper --marketplace your-org/plugins244/plugin install deploy-helper --marketplace your-org/plugins

239```245```

240 246 

241La fuente toma [las mismas formas que `/plugin marketplace add`](#add-a-marketplace), como GitHub `owner/repo`, una URL git, o una ruta local, excepto que no puede contener espacios. Dé el nombre del plugin por sí solo, sin un sufijo `@marketplace`.

242 

243Si aún no ha agregado ese marketplace, Claude Code muestra la fuente que resolvió y le pide que confirme antes de agregarlo. Una vez que se agrega el marketplace, los detalles del plugin se abren y elige un [alcance de instalación](#install-a-plugin). Si la fuente coincide con un marketplace que ya ha agregado, Claude Code omite la confirmación y abre los detalles del plugin en ese marketplace.247Si aún no ha agregado ese marketplace, Claude Code muestra la fuente que resolvió y le pide que confirme antes de agregarlo. Una vez que se agrega el marketplace, los detalles del plugin se abren y elige un [alcance de instalación](#install-a-plugin). Si la fuente coincide con un marketplace que ya ha agregado, Claude Code omite la confirmación y abre los detalles del plugin en ese marketplace.

244 248 

249<h4 id="add-and-install-from-your-shell">

250 Agrega e instala desde tu shell

251</h4>

252 

253En tu shell, sin iniciar una sesión, ejecuta `claude plugin install` con el plugin y la fuente. Requiere Claude Code v2.1.292 o posterior.

254 

255```bash theme={null}

256claude plugin install deploy-helper --marketplace your-org/plugins

257```

258 

259El comando de shell agrega el marketplace sin un paso de confirmación. Un marketplace que ya has agregado desde esa fuente se reutiliza. Uno nuevo se agrega bajo las mismas [verificaciones de políticas de la organización](/docs/es/plugins/org#restrict-what-users-can-install) que `claude plugin marketplace add`, y se declara en tu configuración de usuario incluso cuando pasas `--scope project`.

260 

261Si aún no has agregado ese marketplace, el comando imprime `Successfully added marketplace: <name> (declared in user settings)` y luego [instala el plugin](#install-from-your-shell).

262 

245<h3 id="add-a-private-marketplace">263<h3 id="add-a-private-marketplace">

246 Agregue un marketplace privado264 Agregue un marketplace privado

247</h3>265</h3>

Details

185| Pone `official` junto a `claude` o `anthropic`, como `official-claude-tools` | Error |185| Pone `official` junto a `claude` o `anthropic`, como `official-claude-tools` | Error |

186| Tiene `claude`, `anthropic`, o `anthropics` como palabra completa en cualquier otro lugar, como `mcp-for-claude` | Advertencia |186| Tiene `claude`, `anthropic`, o `anthropics` como palabra completa en cualquier otro lugar, como `mcp-for-claude` | Advertencia |

187 187 

188El error dice `Plugin name "<name>" is reserved: it passes as one of Anthropic's own`, y la advertencia dice `Plugin name "<name>" reads as one of Anthropic's own`. `claude plugin init` y `claude plugin tag` rechazan un nombre que genera el error. Solo estos comandos verifican el nombre. Claude Code aún instala y carga un plugin cuyo nombre rechazan.188El error dice `Plugin name "<name>" is reserved: it passes as one of Anthropic's own`, y la advertencia dice `Plugin name "<name>" reads as one of Anthropic's own`. `claude plugin init` y `claude plugin tag` rechazan un nombre que genera el error. Claude Code aún instala y carga un plugin cuyo nombre rechazan.

189 189 

190<h3 id="displayname">190<h3 id="displayname">

191 `displayName`191 `displayName`

Details

64 64 

65| Campo | Tipo | Descripción |65| Campo | Tipo | Descripción |

66| :- | :- | :- |66| :- | :- | :- |

67| `name` | string | Identificador de marketplace: letras, dígitos, `.`, `_` y `-`, comenzando con una letra o dígito, y sin `..`. `claude plugin validate` falla con cualquier otro nombre, porque Claude Code no puede instalar plugins desde un marketplace que use uno. Los usuarios escriben el nombre después de `@` en un [id de plugin](/docs/es/plugins/loading#find-where-a-plugin-came-from) como `my-plugin@my-marketplace` cuando instalan un plugin. Consulta [Nombres reservados](#reserved-names) |67| `name` | string | Identificador de marketplace: letras, dígitos, `.`, `_` y `-`, comenzando con una letra o dígito, y sin `..`. `claude plugin validate` falla con cualquier otro nombre, porque Claude Code [no puede instalar plugins desde un marketplace que use uno](/docs/es/plugins/troubleshooting#cannot-install-plugins-from-a-marketplace-with-this-name). Los usuarios escriben el nombre después de `@` en un [id de plugin](/docs/es/plugins/loading#find-where-a-plugin-came-from) como `my-plugin@my-marketplace` cuando instalan un plugin. Consulta [Nombres reservados](#reserved-names) |

68| `owner` | object | Información del mantenedor. `name` es obligatorio; `email` y `url` son opcionales |68| `owner` | object | Información del mantenedor. `name` es obligatorio; `email` y `url` son opcionales |

69| `plugins` | array | [Entradas de plugins](#plugin-entries). Cada entrada se valida por sí sola, por lo que una entrada inválida no falla el marketplace |69| `plugins` | array | [Entradas de plugins](#plugin-entries). Cada entrada se valida por sí sola, por lo que una entrada inválida no falla el marketplace |

70| `$schema` | string | URL de JSON Schema para autocompletado del editor. Se ignora en tiempo de carga |70| `$schema` | string | URL de JSON Schema para autocompletado del editor. Se ignora en tiempo de carga |

Details

138| `$.mcp.call` | Llama a una herramienta en un servidor MCP conectado, según las reglas de permisos de la sesión |138| `$.mcp.call` | Llama a una herramienta en un servidor MCP conectado, según las reglas de permisos de la sesión |

139| `$.model.complete` | Usa el plan o la clave de API del usuario para llamadas al modelo |139| `$.model.complete` | Usa el plan o la clave de API del usuario para llamadas al modelo |

140| `$.prompt.submit` | Envía un prompt y puede enviarlo como si fueran las propias palabras del usuario |140| `$.prompt.submit` | Envía un prompt y puede enviarlo como si fueran las propias palabras del usuario |

141| `$.session.send` | Envía un mensaje que lee el Claude de otra sesión o de un subagente |141| `$.session.send` | Envía un mensaje que lee el Claude de otra sesión, de un subagente o de un [compañero de equipo](/docs/es/agent-teams) |

142 142 

143En la línea `hooks:`, [`tool.call`](/docs/es/plugins/mods/reference#tools) y [`prompt.submit`](/docs/es/plugins/mods/reference#prompts-and-what-claude-reads) significan que el mod ve cada llamada a herramienta y cada prompt, y puede modificarlos. [`session.append`](/docs/es/plugins/mods/reference#session) significa que el mod puede reescribir cada fila de la conversación antes de que se almacene. [`ui.render{component=AskUserQuestion}`](/docs/es/plugins/mods/interface#change-what-claude-code-already-draws) significa que el mod puede volver a dibujar el diálogo que Claude usa para hacerle una pregunta al usuario. `tool.check` significa que el mod puede aprobar o denegar una llamada a herramienta antes de que aparezca una solicitud de permiso. [Conoce lo que sucede de forma predeterminada](#know-what-happens-by-default) enumera cuáles de tus reglas y hooks tienen precedencia sobre su respuesta.143En la línea `hooks:`, [`tool.call`](/docs/es/plugins/mods/reference#tools) y [`prompt.submit`](/docs/es/plugins/mods/reference#prompts-and-what-claude-reads) significan que el mod ve cada llamada a herramienta y cada prompt, y puede modificarlos. [`session.append`](/docs/es/plugins/mods/reference#session) significa que el mod puede reescribir cada fila de la conversación antes de que se almacene. [`ui.render{component=AskUserQuestion}`](/docs/es/plugins/mods/interface#change-what-claude-code-already-draws) significa que el mod puede volver a dibujar el diálogo que Claude usa para hacerle una pregunta al usuario. `tool.check` significa que el mod puede aprobar o denegar una llamada a herramienta antes de que aparezca una solicitud de permiso. [Conoce lo que sucede de forma predeterminada](#know-what-happens-by-default) enumera cuáles de tus reglas y hooks tienen precedencia sobre su respuesta.

144 144 

Details

79 Llamar a un modelo79 Llamar a un modelo

80</h2>80</h2>

81 81 

82Un mod puede hacerle a un modelo una pregunta propia, fuera de la conversación, para una tarea pequeña como clasificar o resumir un fragmento de texto. `$.model.complete` envía un prompt a un modelo con las credenciales de tu sesión y se resuelve con la respuesta. No tiene historial de conversación.82Un mod puede enviar sus propias solicitudes a un modelo para una tarea pequeña como clasificar o resumir texto. `$.model.complete` envía tu prompt por sí solo, y `$.model.fork({ prompt })` envía la conversación actual con tu prompt al final.

83 

84Esta tabla compara lo que contiene cada solicitud:

85 

86| En la solicitud | `$.model.complete` | `$.model.fork` |

87| :- | :- | :- |

88| Modelo | El `model` que pasas | El modelo de la sesión |

89| Prompt del sistema | Un breve [bloque de atribución](/docs/es/llm-gateway-protocol#system-prompt-attribution-block) y luego tu `system` si pasas uno | El prompt del sistema de la sesión |

90| Mensajes | Un mensaje de usuario, tu `prompt` | La conversación hasta el momento y luego tu `prompt` como mensaje de usuario |

91| CLAUDE.md y otro contexto del proyecto | No se incluye | Se incluye, como en la última solicitud de la conversación |

92| Herramientas | Ninguna | Las herramientas de Claude, que el modelo no puede llamar |

93 

94Un fork repite la última solicitud de la conversación, por lo que la API de Claude sirve la mayor parte desde la [caché de prompts](/docs/es/prompt-caching) mientras la conversación siga en caché.

95 

96Ambas llamadas usan las credenciales de la sesión, por lo que se facturan al plan, la clave de API o el proveedor de nube del usuario. [Los tipos de tu compilación](/docs/es/plugins/mods/create#get-the-types-for-your-build) documentan todos los métodos de `$.model`.

97 

98<h3 id="send-one-prompt">

99 Enviar un prompt

100</h3>

101 

102Pasa `model` y `prompt` a `$.model.complete`. `prompt` se convierte en el mensaje de usuario. Para darle instrucciones al modelo, como un rol o un formato de salida, pasa también `system`, que se convierte en el prompt del sistema.

83 103 

84Este hook responde a un comando `/triage`, [registrado como comando](#add-a-command), pidiéndole a un modelo pequeño que etiquete el texto escrito después de él:104Este hook responde a un comando `/triage`, [registrado como comando](#add-a-command), pidiéndole a un modelo pequeño que etiquete el texto escrito después de él:

85 105 


100})120})

101```121```

102 122 

103Cuando ejecutas `/triage the export button does nothing`, el mod envía ese texto al modelo e imprime su respuesta, como `Label: bug`. La conversación de Claude no forma parte de la solicitud. Cuando el modelo no responde, la etiqueta es `unknown`.123Cuando ejecutas `/triage the export button does nothing`, el mod envía ese texto al modelo e imprime su respuesta, como `Label: bug`. Cuando el modelo no responde, la etiqueta es `unknown`.

124 

125Un fallo de la API de Claude no rechaza la llamada, así que comprueba `r.isAnswered` y lee `r.reason` cuando sea `false`. La llamada se rechaza ante una solicitud que Claude Code no enviará, como un modelo que tu organización bloquea.

126 

127[Los tipos de tu compilación](/docs/es/plugins/mods/create#get-the-types-for-your-build) enumeran las demás opciones, como `effort`, y los [límites](/docs/es/plugins/mods/reference#limits) indican el valor predeterminado de `maxTokens`.

128 

129<h3 id="use-prompt-caching">

130 Usar la caché de prompts

131</h3>

132 

133`$.model.complete` admite la [caché de prompts](https://platform.claude.com/docs/en/build-with-claude/prompt-caching) de la API de Claude. La API almacena en caché el inicio de una solicitud, llamado prefijo, hasta un [punto de interrupción de caché](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#explicit-cache-breakpoints) que tú defines. Cuando todas las llamadas empiezan con el mismo contenido estático extenso, como instrucciones o material de referencia, define un punto de interrupción al final de ese contenido. Así, las llamadas posteriores lo leen desde la caché en lugar de pagar el precio completo de entrada por él.

134 

135Para definir un punto de interrupción, pasa `prompt` como un arreglo de bloques `{ text }` en lugar de una cadena, y agrega `cache: true` al último bloque del contenido estático. Claude Code envía ese bloque con el campo `cache_control` de la API. `system` acepta la misma forma de arreglo. Para decidir entre ambos, consulta [Elegir entre `prompt` y `system`](#choose-between-prompt-and-system).

136 

137<Note>

138 Los arreglos de bloques requieren Claude Code v2.1.292 o posterior. Las versiones anteriores rechazan un arreglo en `prompt` con un error que termina en `takes { model, prompt } (host check)`, y omiten de la solicitud un arreglo en `system`.

139</Note>

140 

141Esta versión del [hook `/triage`](#send-one-prompt) envía un conjunto extenso de reglas de etiquetado antes del texto a etiquetar, con un punto de interrupción después de las reglas. `RULES` es una cadena propia:

142 

143```javascript theme={null}

144on('command.run', { command: 'triage' }, async ($, e) => {

145 const r = await $.model.complete({

146 model: 'haiku',

147 prompt: [

148 // Identical on every call, so it forms the cached prefix

149 { text: RULES, cache: true },

150 // Changes on every call, so it goes after the breakpoint

151 { text: e.args },

152 ],

153 })

154 return { text: 'Label: ' + (r.isAnswered ? r.text.trim() : 'unknown') }

155})

156```

157 

158El TTL y la cantidad de puntos de interrupción tienen estos límites:

159 

160* **TTL**: una entrada de caché dura cinco minutos después de su último uso. El TTL proviene de la configuración de Claude Code del usuario, no de la llamada. Para una hora, establece [`subagentPromptCacheTtl`](/docs/es/prompt-caching#choose-the-ttl-yourself) en `1h`.

161* **Puntos de interrupción por solicitud**: la API acepta [hasta cuatro](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#when-to-use-multiple-breakpoints), y uno más vuelve como un `api-error` en `r.reason`

162 

163<h4 id="choose-between-prompt-and-system">

164 Elegir entre `prompt` y `system`

165</h4>

166 

167Coloca el contenido estático que comparten tus llamadas al inicio de `prompt`, a menos que sepas que tus solicitudes van directamente a la API de Claude:

168 

169* **Directamente a la API de Claude, con una clave de API o una suscripción a Claude**: cualquiera de los dos campos funciona

170* **A través de [Amazon Bedrock](/docs/es/amazon-bedrock), [Claude Platform on AWS](/docs/es/claude-platform-on-aws), [Agent Platform de Google Cloud](/docs/es/google-vertex-ai), [Microsoft Foundry](/docs/es/microsoft-foundry) o un [gateway de LLM](/docs/es/llm-gateway)**: usa `prompt`. Claude Code comienza el prompt del sistema con un [bloque de atribución](/docs/es/llm-gateway-protocol#system-prompt-attribution-block) cuya huella digital proviene del inicio del mensaje de usuario. El endpoint `api.anthropic.com` elimina ese bloque antes de almacenar en caché. Otros endpoints lo reciben como parte del prompt, por lo que un punto de interrupción en `system` puede fallar cuando `prompt` empieza de forma distinta.

171* **En un mod que ejecutan otras personas**: usa `prompt`, porque tú no eliges su proveedor

172 

173`system` va antes que `prompt` en el prefijo, por lo que un punto de interrupción en `prompt` también cubre `system`, y una llamada con un `system` distinto no acierta en la caché.

104 174 

105Un fallo de la API de Claude no rechaza la llamada, así que comprueba `r.isAnswered` y lee `r.reason` cuando sea `false`. La llamada se rechaza ante una solicitud que Claude Code no enviará, como un modelo que tu organización bloquea. [Los tipos de tu compilación](/docs/es/plugins/mods/create#get-the-types-for-your-build) enumeran las demás opciones, como `effort`, y los [límites](/docs/es/plugins/mods/reference#limits) indican el valor predeterminado de `maxTokens`.175<h4 id="check-for-cache-hits">

176 Comprobar los aciertos de caché

177</h4>

106 178 

107`$.model.fork({ prompt })`, en cambio, hace una pregunta sobre la conversación actual, con el mismo modelo y el mismo prompt del sistema, de modo que la API de Claude sirve la mayor parte desde la caché de prompts.179El resultado de `$.model.complete` tiene un objeto `usage` con los [campos de caché](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#tracking-cache-performance) de la API. `usage.cache_creation_input_tokens` cuenta los tokens que la llamada escribió en la caché, y `usage.cache_read_input_tokens` cuenta los tokens que leyó de la caché. Espera una escritura en la primera llamada y lecturas en las llamadas posteriores dentro del TTL.

108 180 

109Estas llamadas usan el plan o la clave de API del usuario.181Si todas las llamadas escriben y ninguna lee, el prefijo difiere entre llamadas o las llamadas están más separadas que el TTL. Si el prefijo difiere, consulta [Elegir entre `prompt` y `system`](#choose-between-prompt-and-system).

182 

183Si ambos campos se quedan en cero en llamadas que el modelo respondió, no se almacenó nada en caché. Comprueba cada una de estas causas:

184 

185* **El prefijo es demasiado corto**: la API no almacena en caché un prefijo por debajo de la [longitud mínima](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#cache-limitations) del modelo, y no devuelve ningún error

186* **La caché de prompts está desactivada**: cuando una [variable `DISABLE_PROMPT_CACHING`](/docs/es/prompt-caching#disable-prompt-caching) se aplica al modelo, Claude Code elimina los puntos de interrupción y envía el texto sin caché

187* **Tu gateway elimina `cache_control`**: un gateway puede [eliminar el campo y aun así devolver éxito](/docs/es/prompt-caching#where-the-cache-lives)

188* **Otro mod reescribe el inicio del texto**: Claude Code entonces [lo envía sin puntos de interrupción](#what-a-model-complete-hook-receives)

189 

190<h3 id="what-a-model-complete-hook-receives">

191 Qué recibe un hook de `model.complete`

192</h3>

193 

194Si conectas un hook al evento [`model.complete`](/docs/es/plugins/mods/reference#mods-api-calls) para inspeccionar o modificar las solicitudes de otros mods, lee el texto desde estos campos:

195 

196* **`e.prompt`**: siempre es una cadena. Cuando quien llama pasó un arreglo, es el texto de los bloques concatenado en orden.

197* **`e.system`**: una cadena construida de la misma forma, o ausente cuando quien llama no pasó `system`

198* **`e.promptBlocks` y `e.systemBlocks`**: los arreglos de quien llama, cada uno presente cuando quien llama pasó un arreglo para ese campo

199 

200Claude Code envía las cadenas que tu hook pasa a `next` y usa los arreglos que pasas con ellas para ubicar los [puntos de interrupción de caché](#use-prompt-caching). Conserva los bloques iniciales que todavía coinciden con el inicio de la cadena, con sus puntos de interrupción, y envía el resto de la cadena sin punto de interrupción. Por ejemplo, `next({ ...e, prompt: e.prompt + NOTE })` conserva los puntos de interrupción de quien llama, y un hook que cambia el inicio de `prompt` los elimina.

110 201 

111<h2 id="run-work-in-the-background">202<h2 id="run-work-in-the-background">

112 Ejecutar trabajo en segundo plano203 Ejecutar trabajo en segundo plano


140| Llamada | Lo que ve el usuario |231| Llamada | Lo que ve el usuario |

141| :- | :- |232| :- | :- |

142| `$.ui.status(text)` | Una línea debajo del prompt que permanece hasta que la cambies. Comienza con `⚠` y el nombre del mod, como en `⚠ my-mod: checks: 3 passing`. |233| `$.ui.status(text)` | Una línea debajo del prompt que permanece hasta que la cambies. Comienza con `⚠` y el nombre del mod, como en `⚠ my-mod: checks: 3 passing`. |

143| `$.ui.toast(text)` | Una notificación emergente en la parte superior derecha, con el nombre del mod encima del texto, que desaparece después de unos segundos |234| `$.ui.toast(text)` | Una notificación emergente con el nombre del mod que desaparece después de unos segundos. Es un cuadro en la parte superior derecha en el [renderizado de pantalla completa](/docs/es/fullscreen), y una línea a la derecha debajo del prompt en el renderizador clásico. |

144| `$.ui.log(text)` | Una línea atenuada en la transcripción que Claude no lee. Comienza con `●` y el nombre del mod, como en `● my-mod: build finished`. |235| `$.ui.log(text)` | Una línea atenuada en la transcripción que Claude no lee. Comienza con `●` y el nombre del mod, como en `● my-mod: build finished`. |

145 236 

146<h3 id="start-a-turn-from-a-background-job">237<h3 id="start-a-turn-from-a-background-job">


159 Enviar y recibir mensajes entre sesiones250 Enviar y recibir mensajes entre sesiones

160</h2>251</h2>

161 252 

162Un mod puede enviar un mensaje de texto sin formato a otra de tus sesiones o a uno de los subagentes de esta sesión, y observar los mensajes que llegan y salen. `$.session.send({ to, text })` envía uno, con la misma entrega que realiza la herramienta SendMessage. `to` es `{ sessionId }` para una sesión, `{ agentId }` para un subagente de `$.agent.list()`, o la dirección en forma de cadena de la que provino un mensaje recibido. La llamada se resuelve en cuanto el mensaje queda en cola, con `{ isDelivered: true }`. Cuando no se entregó nada, se resuelve con `{ isDelivered: false, reason }`, y `reason` indica el motivo.253Un mod puede enviar un mensaje de texto sin formato a otra de tus sesiones, a uno de los subagentes de esta sesión o a un compañero de su [equipo de agentes](/docs/es/agent-teams). También puede observar los mensajes que llegan y salen.

254 

255Para enviar uno, llama a `$.session.send({ to, text })`, que realiza la misma entrega que la herramienta SendMessage. Define `to` según quién recibe el mensaje:

256 

257* **Otra de tus sesiones**: `{ sessionId }`

258* **Un subagente o compañero**: `{ agentId }`, con un id de `$.agent.list()`

259* **El remitente de un mensaje que recibiste**: la dirección en forma de cadena de la que provino ese mensaje

260 

261La llamada se resuelve en cuanto el mensaje queda en cola, con `{ isDelivered: true }`. Cuando no se entregó nada, se resuelve con `{ isDelivered: false, reason }`, y `reason` indica el motivo.

163 262 

164Este hook responde a un comando `/ping`, [registrado como comando](#add-a-command), pidiéndole un estado a la sesión cuyo id escribes después:263Este hook responde a un comando `/ping`, [registrado como comando](#add-a-command), pidiéndole un estado a la sesión cuyo id escribes después:

165 264 

Details

281 Obtener las definiciones de tipos para tu versión281 Obtener las definiciones de tipos para tu versión

282</h3>282</h3>

283 283 

284Cada vez que Claude Code carga o recarga un mod desde un directorio que pasas a `--plugin-dir`, o un mod que [Claude escribió por ti](#ask-claude-for-a-mod), escribe archivos de declaración de TypeScript, que terminan en `.d.ts`, en `.claude-plugin/types/` dentro del directorio del mod. Describen exactamente los eventos, los métodos de la API de mods y los elementos de la versión de Claude Code que estás ejecutando, para que tu editor pueda autocompletar y verificar los tipos de tus hooks. Para consultar las declaraciones en línea, lee [`mods/types/claude-code.d.ts`](https://github.com/anthropics/claude-code/blob/main/mods/types/claude-code.d.ts) en el repositorio de Claude Code, cuya primera línea indica la versión que lo escribió. El directorio contiene estos archivos:284Cuando Claude Code carga un mod desde `--plugin-dir` en una sesión interactiva, o un mod que [Claude escribió por ti](#ask-claude-for-a-mod), escribe archivos de declaración de TypeScript en el directorio `.claude-plugin/types/` del mod. Describen exactamente los eventos, los métodos de la API de mods y los elementos de la versión de Claude Code que estás ejecutando, para que tu editor pueda autocompletar y verificar los tipos de tus hooks. El directorio contiene estos archivos:

285 285 

286| Ruta | Lo que declara |286| Ruta | Lo que declara |

287| :- | :- |287| :- | :- |

Details

145 145 

146Después de que Claude edita o escribe un archivo `.mdx`, una línea atenuada en la transcripción nombra el archivo. No se registra nada para otro tipo de archivo, ni para una llamada que fue rechazada o falló. La vista que Claude tiene de la llamada no cambia, porque el hook devuelve el resultado que recibió.146Después de que Claude edita o escribe un archivo `.mdx`, una línea atenuada en la transcripción nombra el archivo. No se registra nada para otro tipo de archivo, ni para una llamada que fue rechazada o falló. La vista que Claude tiene de la llamada no cambia, porque el hook devuelve el resultado que recibió.

147 147 

148Para cambiar una llamada, pasa argumentos modificados a `next`. Para reintentar una llamada, vuelve a llamar a `next(e)`: un hook que ve `isError` en el primer resultado puede ejecutar la herramienta una segunda vez y devolver ese resultado. Para responder tú mismo a una llamada, devuelve un objeto con un campo `result`, como `{ result: 'Skipped by my-mod' }`, sin llamar a `next`. Cuando haces eso, no aparece ninguna solicitud de permiso y la herramienta no se ejecuta, así que el resultado que devuelves es todo lo que Claude sabe sobre lo que pasó.148Tu hook también puede cambiar una llamada, reintentarla, responderla por sí mismo o retener su resultado:

149 

150* **Cambiar la llamada**: pasa argumentos modificados a `next`.

151* **Reintentar la llamada**: vuelve a llamar a `next(e)`. Un hook que ve `isError` en el primer resultado puede ejecutar la herramienta una segunda vez y devolver ese resultado.

152* **Responder tú mismo a la llamada**: devuelve un objeto con un campo `result`, sin llamar a `next`, y, para una herramienta integrada, dale a `result` la forma que tiene el resultado propio de esa herramienta en [los tipos de tu compilación](/docs/es/plugins/mods/create#get-the-types-for-your-build). No aparece ninguna solicitud de permiso y la herramienta no se ejecuta, así que el resultado que devuelves es todo lo que Claude sabe sobre lo que pasó.

153* **Ocultarle el resultado a Claude**: devuelve `{ deny: reason }` después de `await next(e)`. Claude lee tu motivo en lugar de lo que devolvió `next`. Cuando la herramienta se ejecutó, el deny le oculta su resultado a Claude y no deshace nada de lo que hizo la herramienta. Cuando la herramienta se ejecutó correctamente, el motivo va después de una nota como `Bash ran, and a plugin withheld its result:`.

149 154 

150Los hooks de la [configuración administrada](/docs/es/server-managed-settings) de tu organización se ejecutan antes que el hook `tool.call` de cualquier mod, y un bloqueo de uno de ellos es definitivo.155Los hooks de la [configuración administrada](/docs/es/server-managed-settings) de tu organización se ejecutan antes que el hook `tool.call` de cualquier mod, y un bloqueo de uno de ellos es definitivo.

151 156 


225 230 

226| Para hacer esto | Devuelve esto |231| Para hacer esto | Devuelve esto |

227| :- | :- |232| :- | :- |

228| Reescribir el prompt. El mensaje en la transcripción muestra el texto nuevo. | `next({ ...e, text: newText })` |233| Reescribir el prompt. La transcripción y tu [historial de prompts](/docs/es/interactive-mode#command-history) muestran el texto nuevo. | `next({ ...e, text: newText })` |

229| Agregar texto que solo Claude lee, después del prompt | `next({ ...e, context: [...(e.context ?? []), extraText] })` |234| Agregar texto que solo Claude lee, después del prompt | `next({ ...e, context: [...(e.context ?? []), extraText] })` |

230| Impedir que se envíe el prompt | `{ drop: 'the reason' }` |235| Impedir que se envíe el prompt | `{ drop: 'the reason' }` |

231 236 


245 250 

246Cuando envías un prompt como `open a PR for this change`, tu mensaje se ve igual en la transcripción, y Claude también lee una línea como `Current branch: feature/auth` después de él. Un prompt que no menciona un pull request pasa sin cambios, y `git` no se ejecuta.251Cuando envías un prompt como `open a PR for this change`, tu mensaje se ve igual en la transcripción, y Claude también lee una línea como `Current branch: feature/auth` después de él. Un prompt que no menciona un pull request pasa sin cambios, y `git` no se ejecuta.

247 252 

248Para detener un prompt, devuelve `{ drop: 'the reason' }` sin llamar a `next`. Si tu hook devuelve un `drop` después de que su llamada a `next(e)` dejó pasar el prompt, el turno se ejecuta de todos modos, y el hook [falla](#handle-a-hook-that-fails) con un mensaje que incluye `a drop after its next() was answered`.253Para detener un prompt, devuelve `{ drop: 'the reason' }` sin llamar a `next`. El texto vuelve al campo de entrada de prompts del usuario, y este ve `Prompt dropped by a hook:` seguido de tu motivo, así que dirígele el motivo a él. Si tu hook devuelve un `drop` después de que su llamada a `next(e)` dejó pasar el prompt, el turno se ejecuta de todos modos, y el hook [falla](#handle-a-hook-that-fails) con un mensaje que incluye `a drop after its next() was answered`.

249 254 

250[Otros eventos](/docs/es/plugins/mods/reference#prompts-and-what-claude-reads) cubren el resto de lo que Claude lee: `prompt.section` para cada sección del prompt del sistema, `prompt.context` para el contexto enviado con el primer mensaje y `skill.prompt` para el texto de un skill. El texto de estos hooks que cambia entre solicitudes [invalida la caché de prompts](/docs/es/prompt-caching).255[Otros eventos](/docs/es/plugins/mods/reference#prompts-and-what-claude-reads) cubren el resto de lo que Claude lee: `prompt.section` para cada sección del prompt del sistema, `prompt.context` para el contexto enviado con el primer mensaje y `skill.prompt` para el texto de un skill. El texto de estos hooks que cambia entre solicitudes [invalida la caché de prompts](/docs/es/prompt-caching).

251 256 


281 286 

282`result.usage` contiene los recuentos de tokens que la API de Claude informa para una solicitud, además del `model` que respondió: `input_tokens`, `output_tokens`, `cache_read_input_tokens` y `cache_creation_input_tokens`. El hook también se ejecuta para las solicitudes de los subagentes, así que comprueba `e.agentId` cuando solo quieras la conversación principal.287`result.usage` contiene los recuentos de tokens que la API de Claude informa para una solicitud, además del `model` que respondió: `input_tokens`, `output_tokens`, `cache_read_input_tokens` y `cache_creation_input_tokens`. El hook también se ejecuta para las solicitudes de los subagentes, así que comprueba `e.agentId` cuando solo quieras la conversación principal.

283 288 

289Para ver las llamadas a herramientas que la propia API ejecutó durante la solicitud, como las llamadas a la [herramienta advisor](/docs/es/advisor), lee `result.serverToolUses`. Claude Code no ejecuta estas llamadas, así que ningún hook `tool.call` o `tool.check` se dispara para ellas. El campo no está presente cuando la respuesta no tiene ese tipo de llamadas, y requiere Claude Code v2.1.290 o posterior.

290 

284<h3 id="hook-the-settings-hook-events">291<h3 id="hook-the-settings-hook-events">

285 Manejar los eventos de los hooks de configuración292 Manejar los eventos de los hooks de configuración

286</h3>293</h3>


369* **`tool.check`**: devuelve `{ decision: 'deny', reason: 'the reason' }`376* **`tool.check`**: devuelve `{ decision: 'deny', reason: 'the reason' }`

370* **`plugin.register`**: devuelve `{ refuse: 'the reason' }`, como se muestra en [Rechazar mods cuando tu comprobación falla](/docs/es/plugins/mods/admin#refuse-mods-when-your-check-fails)377* **`plugin.register`**: devuelve `{ refuse: 'the reason' }`, como se muestra en [Rechazar mods cuando tu comprobación falla](/docs/es/plugins/mods/admin#refuse-mods-when-your-check-fails)

371 378 

379En `tool.call`, un `deny` devuelto después de que `next` se resolvió [oculta el resultado a Claude](#guard-or-change-a-tool-call).

380 

372<h2 id="next-steps">381<h2 id="next-steps">

373 Próximos pasos382 Próximos pasos

374</h2>383</h2>

Details

10 10 

11Este mapa muestra dónde puede dibujar un mod en una sesión de terminal:11Este mapa muestra dónde puede dibujar un mod en una sesión de terminal:

12 12 

13<img src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-screen-map.svg?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=5fda26b6609c62b68c6f9e528c1590ea" className="dark:hidden" alt="Mapa de una sesión de terminal de Claude Code. Un mod puede agregar un panel como barra lateral a la derecha, una notificación emergente en la parte superior derecha de la transcripción, una línea de registro en la transcripción, una franja sobre el prompt y una línea de estado debajo del prompt. Un mod puede redibujar mensajes, filas de llamadas a herramientas y el spinner. El prompt es propio de Claude Code." width="600" height="336" data-path="images/mods-screen-map.svg" />13<img src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-screen-map.svg?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=5fda26b6609c62b68c6f9e528c1590ea" className="dark:hidden" alt="Mapa de una sesión de terminal de Claude Code con renderizado en pantalla completa. Un mod puede agregar un panel como barra lateral a la derecha, una notificación emergente en la parte superior derecha de la transcripción, una línea de registro en la transcripción, una franja sobre el prompt y una línea de estado debajo del prompt. Un mod puede redibujar mensajes, filas de llamadas a herramientas y el spinner. El prompt es propio de Claude Code." width="600" height="336" data-path="images/mods-screen-map.svg" />

14 14 

15<img src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-screen-map-dark.svg?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=5b4161581a1bd2c0450b0c8b57bc1225" className="hidden dark:block" alt="Mapa de una sesión de terminal de Claude Code. Un mod puede agregar un panel como barra lateral a la derecha, una notificación emergente en la parte superior derecha de la transcripción, una línea de registro en la transcripción, una franja sobre el prompt y una línea de estado debajo del prompt. Un mod puede redibujar mensajes, filas de llamadas a herramientas y el spinner. El prompt es propio de Claude Code." width="600" height="336" data-path="images/mods-screen-map-dark.svg" />15<img src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-screen-map-dark.svg?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=5b4161581a1bd2c0450b0c8b57bc1225" className="hidden dark:block" alt="Mapa de una sesión de terminal de Claude Code con renderizado en pantalla completa. Un mod puede agregar un panel como barra lateral a la derecha, una notificación emergente en la parte superior derecha de la transcripción, una línea de registro en la transcripción, una franja sobre el prompt y una línea de estado debajo del prompt. Un mod puede redibujar mensajes, filas de llamadas a herramientas y el spinner. El prompt es propio de Claude Code." width="600" height="336" data-path="images/mods-screen-map-dark.svg" />

16 16 

17En una terminal más angosta, el panel se ubica sobre el prompt en lugar de junto a la transcripción.17En una terminal más angosta, el panel se ubica sobre el prompt en lugar de junto a la transcripción.

18 18 


324| `title` | La etiqueta de la pestaña del panel cuando hay más de un panel abierto |324| `title` | La etiqueta de la pestaña del panel cuando hay más de un panel abierto |

325| `focus` | Solicita el [foco del teclado](#know-which-keys-your-mod-can-receive) |325| `focus` | Solicita el [foco del teclado](#know-which-keys-your-mod-can-receive) |

326| `closeOnEscape` | Hace que Esc cierre el panel |326| `closeOnEscape` | Hace que Esc cierre el panel |

327| `holdToasts` | Retiene los toasts, los pequeños avisos de [`$.ui.toast`](/docs/es/plugins/mods/api#show-something-without-starting-a-turn), hasta que el panel se cierre |327| `holdToasts` | En la terminal, retiene los toasts mientras este panel es el que se muestra. Consulta [Retén los toasts detrás de un diálogo](#hold-toasts-behind-a-dialog). |

328| `rows` | La altura que se solicita cuando el panel está encima del prompt. El valor predeterminado es un tercio del espacio. |328| `rows` | La altura que se solicita cuando el panel está encima del prompt. El valor predeterminado es un tercio del espacio. |

329| `columns` | El ancho que se solicita cuando el panel está junto a la transcripción |329| `columns` | El ancho que se solicita cuando el panel está junto a la transcripción |

330 330 


337 337 

338Para permitir que un comando abra el panel mientras Claude está trabajando, agrega `immediate: true` cuando [registres el comando](/docs/es/plugins/mods/api#add-a-command). Sin eso, un comando escrito durante un turno espera a que el turno termine.338Para permitir que un comando abra el panel mientras Claude está trabajando, agrega `immediate: true` cuando [registres el comando](/docs/es/plugins/mods/api#add-a-command). Sin eso, un comando escrito durante un turno espera a que el turno termine.

339 339 

340<h4 id="hold-toasts-behind-a-dialog">

341 Retén los toasts detrás de un diálogo

342</h4>

343 

344Pasa `holdToasts: true` a `$.ui.open` cuando el panel sea un diálogo que el usuario responde y luego deja, para que no aparezcan toasts mientras decide. En la terminal, la retención dura mientras ese panel es el que se muestra, y un toast generado durante ese tiempo espera hasta que termine la retención.

345 

346Claude Code retiene los toasts de otros mods y sus propias notificaciones de corta duración, además de los que tu mod genera con [`$.ui.toast`](/docs/es/plugins/mods/api#show-something-without-starting-a-turn). No uses el campo en un panel que permanece abierto, para que el usuario siga viéndolos.

347 

340<h4 id="when-a-pane-waits-for-a-wider-terminal">348<h4 id="when-a-pane-waits-for-a-wider-terminal">

341 Cuándo un panel espera a que la terminal sea más ancha349 Cuándo un panel espera a que la terminal sea más ancha

342</h4>350</h4>

Details

64| :- | :- | :- |64| :- | :- | :- |

65| [`tool.call`](/docs/es/plugins/mods/events#guard-or-change-a-tool-call) | Una herramienta está a punto de ejecutarse | `next(e)`, `{ deny: reason }` o `{ result }` |65| [`tool.call`](/docs/es/plugins/mods/events#guard-or-change-a-tool-call) | Una herramienta está a punto de ejecutarse | `next(e)`, `{ deny: reason }` o `{ result }` |

66| [`tool.check`](/docs/es/plugins/mods/events#where-settings-hooks-run-in-the-order) | Claude Code decide si una llamada a herramienta puede ejecutarse, después de los hooks `tool.call` y `PreToolUse`. `next(e)` se resuelve en la decisión a la que llegaron las reglas, el modo de permisos y esos hooks. | `{ decision }`, que es `allow`, `ask` o `deny` |66| [`tool.check`](/docs/es/plugins/mods/events#where-settings-hooks-run-in-the-order) | Claude Code decide si una llamada a herramienta puede ejecutarse, después de los hooks `tool.call` y `PreToolUse`. `next(e)` se resuelve en la decisión a la que llegaron las reglas, el modo de permisos y esos hooks. | `{ decision }`, que es `allow`, `ask` o `deny` |

67| `tool.describe` | Una vez por cada herramienta, cuando su descripción se envía por primera vez a Claude | `{ description }`, opcionalmente con `isDeferred` establecido en `true` para poner la herramienta detrás de la [búsqueda de herramientas](/docs/es/mcp#scale-with-mcp-tool-search) o en `false` para cargarla desde el inicio |67| `tool.describe` | Una vez por cada herramienta, cuando su descripción se envía por primera vez a Claude. Una segunda vez para una herramienta MCP cuando Claude la carga mediante la [búsqueda de herramientas](/docs/es/mcp#scale-with-mcp-tool-search), con `e.description` establecido en el texto que lee Claude para la herramienta cargada. | `{ description }`, opcionalmente con `isDeferred` establecido en `true` para poner la herramienta detrás de la búsqueda de herramientas o en `false` para cargarla desde el inicio |

68 68 

69<h4 id="agent-and-organization-fields-on-tool-check">69<h4 id="agent-and-organization-fields-on-tool-check">

70 Campos de agente y organización en `tool.check`70 Campos de agente y organización en `tool.check`


133| `session.end` | La sesión termina, o se ejecuta `/clear`, `/resume` o `/branch`. `e.reason` es `clear`, `resume`, `logout`, `prompt_input_exit` u `other`. `/branch` informa `resume`. | `next(e)` |133| `session.end` | La sesión termina, o se ejecuta `/clear`, `/resume` o `/branch`. `e.reason` es `clear`, `resume`, `logout`, `prompt_input_exit` u `other`. `/branch` informa `resume`. | `next(e)` |

134| `session.compact` | La conversación está a punto de compactarse | `{ skip: reason }` |134| `session.compact` | La conversación está a punto de compactarse | `{ skip: reason }` |

135| [`session.receive`](/docs/es/plugins/mods/api#send-and-receive-messages-between-sessions), [`session.send`](/docs/es/plugins/mods/api#send-and-receive-messages-between-sessions) | Llega un mensaje de otro agente o sesión, o está a punto de enviarse a uno. Consulta [Enviar y recibir mensajes entre sesiones](/docs/es/plugins/mods/api#send-and-receive-messages-between-sessions). | `{ consumed: reason }` para `receive`, `{ isDelivered: false, reason }` para `send` |135| [`session.receive`](/docs/es/plugins/mods/api#send-and-receive-messages-between-sessions), [`session.send`](/docs/es/plugins/mods/api#send-and-receive-messages-between-sessions) | Llega un mensaje de otro agente o sesión, o está a punto de enviarse a uno. Consulta [Enviar y recibir mensajes entre sesiones](/docs/es/plugins/mods/api#send-and-receive-messages-between-sessions). | `{ consumed: reason }` para `receive`, `{ isDelivered: false, reason }` para `send` |

136| `session.append` | Una vez por cada fila que conserva la conversación, como un prompt, un bloque de respuesta, un resultado de herramienta o un aviso, antes de almacenarla | `next({ ...e, message })` para reescribir el `content` de la fila |136| `session.append` | Una vez por cada fila que conserva la conversación, como un prompt, un bloque de respuesta, un resultado de herramienta o un aviso, antes de almacenarla | `next({ ...e, message })` con un `message.content` cambiado, para reescribir los bloques de texto de la fila o el `content` de un bloque `tool_result` que contenga |

137| `session.attach`, `session.detach` | Otra aplicación se conecta a la sesión o se desconecta de ella | `next(e)` |137| `session.attach`, `session.detach` | Otra aplicación se conecta a la sesión o se desconecta de ella | `next(e)` |

138| `session.measure` | Después de cada turno, y cuando cambia el porcentaje usado de un límite del plan | `next(e)` |138| `session.measure` | Después de cada turno, y cuando cambia el porcentaje usado de un límite del plan | `next(e)` |

139 139 


209| [`$.ui`](/docs/es/plugins/mods/interface#pick-where-to-draw) | `resolve`, `invalidate`, `open`, `close`, `panes`, `focus`, `scroll`, `toast`, `status`, `log`, `notice`, `ask`, `copy`, `selection`, `blit` |209| [`$.ui`](/docs/es/plugins/mods/interface#pick-where-to-draw) | `resolve`, `invalidate`, `open`, `close`, `panes`, `focus`, `scroll`, `toast`, `status`, `log`, `notice`, `ask`, `copy`, `selection`, `blit` |

210| [`$.command`](/docs/es/plugins/mods/api#add-a-command) | `register`, `run`, `list` |210| [`$.command`](/docs/es/plugins/mods/api#add-a-command) | `register`, `run`, `list` |

211| [`$.tool`](/docs/es/plugins/mods/api#add-a-tool) | `register`, `call`, `check`, `list` |211| [`$.tool`](/docs/es/plugins/mods/api#add-a-tool) | `register`, `call`, `check`, `list` |

212| `$.agent` | `register`, `spawn`, `list` |212| `$.agent` | `register`, `spawn`, `list`. `list()` devuelve los subagentes y compañeros de equipo de esta sesión, cada uno con un `status` de `pending`, `running`, `waiting`, `idle`, `completed`, `failed` o `killed`, donde `idle` y `waiting` requieren Claude Code v2.1.289 o posterior. |

213| [`$.model`](/docs/es/plugins/mods/api#call-a-model) | `complete`, `fork`, `classify` |213| [`$.model`](/docs/es/plugins/mods/api#call-a-model) | `complete`, `fork`, `classify` |

214| [`$.prompt`](/docs/es/plugins/mods/api#start-a-turn-from-a-background-job) | `submit`, `read`, `fill`, `suggest`, `compose`. Claude lee el texto de `submit({ text })` después de una oración que nombra a tu mod como remitente. `submit({ text, asUser: true })` envía el texto como las propias palabras del usuario, sin esa oración. |214| [`$.prompt`](/docs/es/plugins/mods/api#start-a-turn-from-a-background-job) | `submit`, `read`, `fill`, `suggest`, `compose`. Claude lee el texto de `submit({ text })` después de una oración que nombra a tu mod como remitente. `submit({ text, asUser: true })` envía el texto como las propias palabras del usuario, sin esa oración. |

215| `$.turn` | `abort` |215| `$.turn` | `abort` |


317| Tiempo de espera de `$.process.run` | 30 segundos de forma predeterminada, 10 minutos como máximo |317| Tiempo de espera de `$.process.run` | 30 segundos de forma predeterminada, 10 minutos como máximo |

318| `maxTokens` de `$.model.complete` | 1024 de forma predeterminada, hasta 64,000 o el límite de salida del modelo |318| `maxTokens` de `$.model.complete` | 1024 de forma predeterminada, hasta 64,000 o el límite de salida del modelo |

319| `$.fs.read` y `$.fs.write` | 4 MiB por archivo |319| `$.fs.read` y `$.fs.write` | 4 MiB por archivo |

320| El motivo de `drop` de un hook o el motivo de `deny` de `config.set` | 4,096 caracteres. Se corta el final de un motivo más largo, y el drop o deny se sigue aplicando. El corte requiere Claude Code v2.1.292 o posterior, y en versiones anteriores el hook [falla](/docs/es/plugins/mods/events#handle-a-hook-that-fails) en su lugar. |

320| Texto en un árbol | Se dibujan los primeros 100,000 caracteres |321| Texto en un árbol | Se dibujan los primeros 100,000 caracteres |

321| El `language` o `path` de un `Code`, el `value` de una opción de `Select` o el `module` de un `Client` | 10,000 caracteres. Si alguno es más largo, Claude Code [dibuja su propia versión del sitio](/docs/es/plugins/mods/interface#build-a-tree-from-elements). |322| El `language` o `path` de un `Code`, el `value` de una opción de `Select` o el `module` de un `Client` | 10,000 caracteres. Si alguno es más largo, Claude Code [dibuja su propia versión del sitio](/docs/es/plugins/mods/interface#build-a-tree-from-elements). |

322| El `href` de un `Link` | 2,048 caracteres. Un `href` más largo impide que se dibuje todo el árbol. |323| El `href` de un `Link` | 2,048 caracteres. Un `href` más largo impide que se dibuje todo el árbol. |


325| Redibujados de `$.ui.invalidate('ui.render')` | Limitados a 10 por segundo, o 30 en la terminal para el panel visible, la banda expandida y la línea de sugerencia debajo del prompt. Las llamadas que llegan antes se agrupan. |326| Redibujados de `$.ui.invalidate('ui.render')` | Limitados a 10 por segundo, o 30 en la terminal para el panel visible, la banda expandida y la línea de sugerencia debajo del prompt. Las llamadas que llegan antes se agrupan. |

326| `$.ui.toast` | Se muestra durante 4 segundos a menos que pases `{ timeoutMs }` |327| `$.ui.toast` | Se muestra durante 4 segundos a menos que pases `{ timeoutMs }` |

327| Un panel abierto sin que el usuario lo pida | Se coloca a partir de 144 columnas de la terminal, 110 después de que lo haya abierto una vez |328| Un panel abierto sin que el usuario lo pida | Se coloca a partir de 144 columnas de la terminal, 110 después de que lo haya abierto una vez |

329| Alcances, como funciones, bloques y bucles, anidados unos dentro de otros en un archivo de un módulo de hooks | 2,000 |

328| Nombres de comandos, herramientas, tipos de subagente y paneles | Letras, dígitos, `_` y `-`, hasta 64 caracteres |330| Nombres de comandos, herramientas, tipos de subagente y paneles | Letras, dígitos, `_` y `-`, hasta 64 caracteres |

329| Una prueba de `claude plugin test` | 5 segundos a menos que la prueba establezca `timeoutMs` |331| Una prueba de `claude plugin test` | 5 segundos a menos que la prueba establezca `timeoutMs` |

330 332 

Details

110* `returned neither { value } nor { deny }`: un stub para una llamada a la API de mods devolvió un valor sin envolver, lo que hace fallar la prueba110* `returned neither { value } nor { deny }`: un stub para una llamada a la API de mods devolvió un valor sin envolver, lo que hace fallar la prueba

111* `no implementation for` seguido de un nombre: tu mod hizo esa llamada y ningún stub la responde111* `no implementation for` seguido de un nombre: tu mod hizo esa llamada y ningún stub la responde

112 112 

113El kit también exporta mocks en memoria que responden a un espacio de nombres completo por ti. `mock.clock(on)` responde a [`$.clock`](/docs/es/plugins/mods/api#run-work-in-the-background), `mock.store(on, { count: 7 })` responde a `$.store` desde un almacén que empieza con esas entradas, y `mock.env(on, { CI: 'true' })` responde a `$.env.get` desde esas variables. `mock.clock` devuelve un reloj simulado que tu prueba hace avanzar, así que una prueba de un temporizador no espera. `mock.store` no devuelve nada, así que para comprobar lo que guardó tu mod, escribe tú mismo los dos stubs de `store` como lo hace la [prueba de dibujo](#test-a-drawing).113El kit también exporta mocks listos para usar para el reloj, el almacén, las variables de entorno y las filas que se agregan a la conversación:

114 

115* **`mock.clock(on)`**: responde a [`$.clock`](/docs/es/plugins/mods/api#run-work-in-the-background) y devuelve un reloj simulado que tu prueba hace avanzar, así que una prueba de un temporizador no espera.

116* **`mock.store(on, { count: 7 })`**: responde a `$.store` desde un almacén que empieza con esas entradas. No devuelve nada, así que para comprobar lo que guardó tu mod, escribe tú mismo los dos stubs de `store` como lo hace la [prueba de dibujo](#test-a-drawing).

117* **`mock.env(on, { CI: 'true' })`**: responde a `$.env.get` desde esas variables.

118* **`mock.session(on)`**: devuelve una sesión simulada cuyo método `appended()` enumera las filas que tu mod agregó con [`$.session.append`](/docs/es/plugins/mods/reference#session), de la más antigua a la más reciente; requiere Claude Code v2.1.293 o posterior.

114 119 

115<h3 id="follow-the-test-kit’s-rules">120<h3 id="follow-the-test-kit’s-rules">

116 Seguir las reglas del kit de pruebas121 Seguir las reglas del kit de pruebas


168 Consultar lo que devuelve un stub173 Consultar lo que devuelve un stub

169</h3>174</h3>

170 175 

171Cada llamada a la API de mods que hace tu mod en una prueba necesita un stub que responda en lugar de Claude Code, excepto las pocas que el kit responde por sí mismo: las llamadas a [`$.ui.invalidate`](/docs/es/plugins/mods/interface#redraw-when-something-changes) y [`$.state`](/docs/es/plugins/mods/interface#keep-state). Para las llamadas a `$.clock`, usa `mock.clock(on)`, o el `$.clock.now()` de tu mod falla con `no implementation for clock.now`.176Cada llamada a la API de mods que hace tu mod en una prueba necesita un stub que responda en lugar de Claude Code, excepto las pocas que el kit responde por sí mismo: las llamadas a [`$.ui.invalidate`](/docs/es/plugins/mods/interface#redraw-when-something-changes), [`$.state`](/docs/es/plugins/mods/interface#keep-state) y `$.session.append`. Para las llamadas a `$.clock`, usa `mock.clock(on)`, o el `$.clock.now()` de tu mod falla con `no implementation for clock.now`.

172 177 

173Esta tabla enumera las que más usan los mods. La primera columna es la llamada que hace tu mod o el evento que pasa con `next(e)`. La segunda es la función que se pasa a `on` con ese nombre, así que la fila de `$.store.get` se convierte en `on('store.get', ($, e) => ({ value: saved.get(e.key) }))`. Un `'...'` en un stub marca texto que debes completar tú:178Esta tabla enumera las que más usan los mods. La primera columna es la llamada que hace tu mod o el evento que pasa con `next(e)`. La segunda es la función que se pasa a `on` con ese nombre, así que la fila de `$.store.get` se convierte en `on('store.get', ($, e) => ({ value: saved.get(e.key) }))`. Un `'...'` en un stub marca texto que debes completar tú:

174 179 

Details

116 116 

117Establece o cambia el valor. El final de la línea nombra su entrada `pluginConfigs` en `settings.json`.117Establece o cambia el valor. El final de la línea nombra su entrada `pluginConfigs` en `settings.json`.

118 118 

119<h3 id="code-nested-too-deep-to-scan-more-than-2000-scopes">

120 `code nested too deep to scan: more than 2000 scopes`

121</h3>

122 

123La línea empieza con el nombre del mod, luego `hooks module did not load:`, el archivo y `code nested too deep to scan: more than 2000 scopes`. Un archivo de un módulo de hooks no puede anidar alcances, como funciones, bloques y bucles, a más de [2000 niveles de profundidad](/docs/es/plugins/mods/reference#limits). [`claude plugin validate`](/docs/es/plugins/mods/create#check-what-claude-code-reads-from-your-mod) informa el mismo motivo.

124 

125Reescribe el código para que sus alcances se aniden con menos profundidad.

126 

119<h3 id="no-mod-loads-in-a-directory-you-opened-for-the-first-time">127<h3 id="no-mod-loads-in-a-directory-you-opened-for-the-first-time">

120 Ningún mod se carga en un directorio que abriste por primera vez128 Ningún mod se carga en un directorio que abriste por primera vez

121</h3>129</h3>


132 140 

133Inicia sin el flag.141Inicia sin el flag.

134 142 

143<h3 id="claude-code-stops-asking-to-enable-hot-reloading">

144 Claude Code deja de preguntar si quieres habilitar la recarga en caliente

145</h3>

146 

147Claude escribe un mod en una sesión interactiva, no se carga nada y Claude Code no vuelve a preguntar [si quieres habilitar la recarga en caliente](/docs/es/plugins/mods/create#ask-claude-for-a-mod). Si la pregunta termina tres veces sin que se elija una respuesta, la recarga en caliente permanece desactivada. Por ejemplo, la pregunta termina así cuando estableces [`askUserQuestionTimeout`](/docs/es/settings-reference#askuserquestiontimeout) y el tiempo se agota antes de que respondas. Ese ajuste se aplica aquí porque Claude Code pregunta en el mismo [cuadro de diálogo de preguntas que usa `AskUserQuestion`](/docs/es/tools-reference#question-auto-continue-timeout). Una pregunta que descartas tú mismo no cuenta para las tres.

148 

149Para ejecutar el mod, [copia su directorio fuera de la carpeta de mods](/docs/es/plugins/mods/create#use-the-mod-in-other-sessions) y luego, en tu shell, inicia una nueva sesión con `--plugin-dir`, como en `claude --plugin-dir ~/mods/git-branch`.

150 

135<h2 id="a-hook-is-skipped-or-a-mod-is-unloaded">151<h2 id="a-hook-is-skipped-or-a-mod-is-unloaded">

136 Un hook se omite o un mod se descarga152 Un hook se omite o un mod se descarga

137</h2>153</h2>


209 Un dibujo no aparece o no responde225 Un dibujo no aparece o no responde

210</h2>226</h2>

211 227 

212El mod se cargó, y su panel, banda o controles no se comportan como esperas.228El mod se cargó, y su panel, banda, toast o controles no se comportan como esperas.

213 229 

214<h3 id="a-pane-or-band-is-empty-or-shows-claude-code’s-usual-content">230<h3 id="a-pane-or-band-is-empty-or-shows-claude-code’s-usual-content">

215 Un panel o una banda está vacío o muestra el contenido habitual de Claude Code231 Un panel o una banda está vacío o muestra el contenido habitual de Claude Code


247 263 

248Abre el panel desde un comando o un botón, o revisa el resultado `isPlaced` de la llamada. Consulta [Abrir un panel en el momento adecuado](/docs/es/plugins/mods/interface#open-a-pane-at-the-right-time).264Abre el panel desde un comando o un botón, o revisa el resultado `isPlaced` de la llamada. Consulta [Abrir un panel en el momento adecuado](/docs/es/plugins/mods/interface#open-a-pane-at-the-right-time).

249 265 

266<h3 id="a-toast-doesn’t-appear">

267 Un toast no aparece

268</h3>

269 

270Tu mod llama a [`$.ui.toast`](/docs/es/plugins/mods/api#show-something-without-starting-a-turn) en una sesión interactiva de la terminal y no ves el toast. Para confirmar que la llamada se ejecutó, busca en el [registro de depuración](#read-the-debug-log) una línea con el nombre de tu mod y el texto del toast, como en `$.ui.toast (first-mod): build finished`. Luego revisa causas como estas:

271 

272* **Falta la línea de la llamada**: busca una que diga por qué Claude Code rechazó la llamada, como en `first-mod: $.ui.toast dropped: timeoutMs is a whole number of ms, 1 to 60000`.

273* **Un panel está reteniendo los toasts**: tu mod u otro pasó [`holdToasts`](/docs/es/plugins/mods/interface#hold-toasts-behind-a-dialog) al abrir el panel que se está mostrando. Cierra el panel para terminar la retención. Si el panel es tuyo y debe permanecer abierto, quita `holdToasts` de su llamada a `$.ui.open` y vuelve a abrir el panel.

274* **El toast está debajo del prompt**: en el [renderizador clásico](/docs/es/fullscreen#enable-fullscreen-rendering), mira a la derecha, debajo del prompt. Un toast ahí es una línea que empieza con el nombre del mod, en lugar de un recuadro en la esquina superior derecha.

275* **Tu mod lanzó un toast más reciente**: en el renderizador clásico, un toast más reciente de tu mod puede ocupar el lugar de uno que se está mostrando o que espera para mostrarse. El registro de depuración tiene otra línea para el toast anterior, que termina con `gave way, cut short` si se estaba mostrando, o con `gave way, unseen` si nunca apareció. Para mostrar ambos mensajes, ponlos en un solo toast.

276* **Al toast se le acabó el tiempo sin dibujarse**: en el renderizado de pantalla completa, Claude Code dibuja como máximo tres toasts a la vez, así que a un toast se le puede acabar el tiempo antes de dibujarse. El registro de depuración tiene otra línea para ese toast, que termina con `left the stack, never drawn`. Cuando tu mod lance varios a la vez, pon los mensajes en un solo toast.

277 

278Antes de v2.1.290, Claude Code descartaba un toast lanzado dentro de los dos segundos posteriores al último que mostró para tu mod, y la línea del registro de depuración del toast descartado decía `within 2000ms of the last; dropped`.

279 

250<h3 id="hotkeys-do-nothing">280<h3 id="hotkeys-do-nothing">

251 Los atajos de teclado no hacen nada281 Los atajos de teclado no hacen nada

252</h3>282</h3>

Details

110}110}

111```111```

112 112 

113En su shell, ejecute `claude plugin validate .` en el repositorio para verificar el archivo antes de hacer push.113En tu shell, ejecuta `claude plugin validate .` en el repositorio antes de hacer push. Para saber qué verifica la ejecución, consulta [Validar un directorio](/docs/es/plugins/cli-reference#validate-a-directory).

114 114 

115[Crear un marketplace](/docs/es/plugins/create-marketplace) cubre el diseño con varios plugins en un repositorio.115[Crear un marketplace](/docs/es/plugins/create-marketplace) cubre el diseño con varios plugins en un repositorio.

116 116 


129* Agregue el marketplace una vez: `claude plugin marketplace add your-org/your-marketplace`, donde el argumento es un atajo de GitHub `owner/repo`, una URL o una ruta129* Agregue el marketplace una vez: `claude plugin marketplace add your-org/your-marketplace`, donde el argumento es un atajo de GitHub `owner/repo`, una URL o una ruta

130* Instale el plugin: `claude plugin install deploy-helper@your-marketplace`130* Instale el plugin: `claude plugin install deploy-helper@your-marketplace`

131* O haga ambos desde dentro de una sesión: `/plugin install deploy-helper --marketplace your-org/your-marketplace`. Requiere Claude Code v2.1.275 o posterior. Consulte [Agregar un marketplace e instalar en un comando](/docs/es/plugins/install#add-a-marketplace-and-install-in-one-command)131* O haga ambos desde dentro de una sesión: `/plugin install deploy-helper --marketplace your-org/your-marketplace`. Requiere Claude Code v2.1.275 o posterior. Consulte [Agregar un marketplace e instalar en un comando](/docs/es/plugins/install#add-a-marketplace-and-install-in-one-command)

132* O haz ambos desde el shell en un solo comando: `claude plugin install deploy-helper --marketplace your-org/your-marketplace`. Requiere Claude Code v2.1.292 o posterior

132 133 

133<h3 id="ship-updates-to-users">134<h3 id="ship-updates-to-users">

134 Enviar actualizaciones a los usuarios135 Enviar actualizaciones a los usuarios

Details

163 `Invalid marketplace source format`163 `Invalid marketplace source format`

164</h3>164</h3>

165 165 

166Ejecutó `/plugin marketplace add <source>` o `claude plugin marketplace add <source>`, y Claude Code respondió `Invalid marketplace source format. Try: owner/repo, https://..., or ./path`.166Ejecutaste `/plugin marketplace add <source>`, `claude plugin marketplace add <source>` o `claude plugin install <plugin> --marketplace <source>`, y Claude Code respondió `Invalid marketplace source format. Try: owner/repo, https://..., or ./path`.

167 167 

168Claude Code acepta una fuente en una de estas formas:168Claude Code acepta una fuente en una de estas formas:

169 169 


237* **Usted es el propietario del mercado**: coloque el archivo en esa ubicación y vuelva a agregar el mercado237* **Usted es el propietario del mercado**: coloque el archivo en esa ubicación y vuelva a agregar el mercado

238* **Alguien más lo aloja**: pida al propietario la fuente exacta que publican238* **Alguien más lo aloja**: pida al propietario la fuente exacta que publican

239 239 

240<h3 id="cannot-install-plugins-from-a-marketplace-with-this-name">

241 `Cannot add marketplace "<name>": Claude Code cannot install plugins from a marketplace with this name`

242</h3>

243 

244Agregaste un marketplace, y el [`name`](/docs/es/plugins/marketplace-reference#top-level-fields) en su `marketplace.json` no es válido como la parte posterior a `@` en un [id de plugin](/docs/es/plugins/loading#find-where-a-plugin-came-from) como `my-plugin@my-marketplace`. Claude Code rechaza la adición y no registra nada.

245 

246El resto del mensaje indica la regla para el nombre. En este ejemplo, `_internal` incumple la regla porque comienza con `_`:

247 

248```text theme={null}

249Cannot add marketplace "_internal": Claude Code cannot install plugins from a marketplace with this name. Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. The name is set by "name" in the marketplace's marketplace.json; ask its maintainer to change it.

250```

251 

252Dale al marketplace un nombre que cumpla esa regla y luego vuelve a agregarlo:

253 

254* **Eres el propietario del marketplace**: cambia `name` en `marketplace.json`, por ejemplo a `internal-tools`

255* **Otra persona lo aloja**: pídele al propietario que cambie el nombre

256 

257Antes de v2.1.295, Claude Code informaba la adición de este ejemplo como exitosa.

258 

240<h3 id="ssh-authentication-failed-or-https-authentication-failed">259<h3 id="ssh-authentication-failed-or-https-authentication-failed">

241 `SSH authentication failed` or `HTTPS authentication failed`260 `SSH authentication failed` or `HTTPS authentication failed`

242</h3>261</h3>


568 `Marketplace "<name>" is already added from a different source`587 `Marketplace "<name>" is already added from a different source`

569</h3>588</h3>

570 589 

571Confirmaste agregar un marketplace mediante [`/plugin install <plugin> --marketplace <source>`](/docs/es/plugins/install#add-a-marketplace-and-install-in-one-command), y el catálogo que Claude Code obtuvo de esa fuente tiene el mismo nombre que un marketplace que ya agregaste desde una fuente diferente. Claude Code conserva el marketplace existente en lugar de reemplazarlo, y el plugin no se instala.590Indicaste una nueva fuente de marketplace con [`--marketplace <source>` en el comando de instalación](/docs/es/plugins/install#add-a-marketplace-and-install-in-one-command), en una sesión o desde tu shell. El catálogo que Claude Code obtuvo de esa fuente tiene el mismo nombre que un marketplace que ya agregaste desde una fuente diferente. Claude Code conserva el marketplace existente en lugar de reemplazarlo, y el plugin no se instala.

572 591 

573El mensaje completo se ve así:592El mensaje completo se ve así:

574 593 


786 805 

787Claude Code copia los registros inutilizables en el archivo `.set-aside` y los elimina de la lista. Claude Code nunca vuelve a leer las copias, y las copias envejecen en el cronograma [`cleanupPeriodDays`](/docs/es/settings-reference#cleanupperioddays).806Claude Code copia los registros inutilizables en el archivo `.set-aside` y los elimina de la lista. Claude Code nunca vuelve a leer las copias, y las copias envejecen en el cronograma [`cleanupPeriodDays`](/docs/es/settings-reference#cleanupperioddays).

788 807 

808<h3 id="does-not-load-so-claude-code-ignores-the-whole-file">

809 `does not load (...), so Claude Code ignores the whole file`

810</h3>

811 

812El comando funcionó. El archivo de configuración que nombra la advertencia tiene un error, por lo que Claude Code ignora el archivo completo, incluido todo lo que el comando escribió allí, hasta que lo corrijas.

813 

814Corrige el error que nombra la advertencia. Para un valor que Claude Code no acepta, [Corregir un archivo de configuración dañado](/docs/es/settings#fix-a-broken-settings-file) explica cómo hacerlo. Luego vuelve a ejecutar el comando si su cambio ya no está en el archivo.

815 

816La advertencia aparece después de la línea de éxito de `claude plugin install`, `enable`, `disable` o `claude plugin marketplace add` en tu shell:

817 

818```text theme={null}

819⚠ /home/user/.claude/settings.json does not load (its "permissions" is not valid), so Claude Code ignores the whole file, including anything this command wrote there. Fix the file, then run this command again if its change is missing. If a newer Claude Code wrote the file, update Claude Code instead.

820```

821 

822El texto entre paréntesis nombra el error:

823 

824* **`its "<key>" is not valid`**: el ajuste entre comillas contiene un valor que Claude Code no acepta. Busca el ajuste en la [referencia de configuración](/docs/es/settings-reference) para ver los valores que admite. Cuando falla más de un valor, el texto nombra el primer ajuste y cuenta los demás, como en `its "permissions" and 1 other value are not valid`.

825* **`it is not a JSON object`**: el nivel superior del archivo no es un objeto JSON, como un archivo cuyo nivel superior es un arreglo.

826 

789<h3 id="a-plugin-you-disabled-still-loads">827<h3 id="a-plugin-you-disabled-still-loads">

790 `Disabled in ~/.claude/settings.json but still loads`828 `Disabled in ~/.claude/settings.json but still loads`

791</h3>829</h3>


812 850 

813Si su organización pre-instala plugins para usted, lo hace a través de configuración administrada en su lugar. Vea [Pre-install and require plugins](/docs/es/plugins/org#pre-install-and-require-plugins).851Si su organización pre-instala plugins para usted, lo hace a través de configuración administrada en su lugar. Vea [Pre-install and require plugins](/docs/es/plugins/org#pre-install-and-require-plugins).

814 852 

853<h3 id="a-plugin-stays-installed-after-plugin-uninstall-on-windows">

854 Un plugin sigue instalado después de `plugin uninstall` en Windows

855</h3>

856 

857En Windows, ejecutas `claude plugin uninstall` con alcance de proyecto o local e informa que tuvo éxito, pero `claude plugin list` o `/plugin` siguen mostrando el plugin.

858 

859`installed_plugins.json` tenía dos registros de instalación del plugin para la carpeta del proyecto, cada uno con la ruta de la carpeta escrita de forma distinta, y una desinstalación elimina solo uno de ellos. Para comprobarlo, ejecuta `claude plugin list --json` en tu shell. La fila restante del plugin tiene un `projectPath` que escribe la carpeta de forma distinta a donde ejecutaste la desinstalación, como `c:\work\app` en lugar de `C:\work\app`.

860 

861Vuelve a ejecutar el mismo comando de desinstalación, con el mismo `--scope`, desde la misma carpeta. La segunda ejecución no encuentra ningún registro con su propia forma de escribir la ruta, así que elimina el que tiene la otra forma. Para una instalación con alcance de proyecto:

862 

863```shell theme={null}

864claude plugin uninstall <name>@<marketplace> --scope project

865```

866 

867Luego vuelve a ejecutar `claude plugin list --json` para confirmar que la fila desapareció.

868 

869Antes de v2.1.295, la segunda ejecución falla con `Plugin "<name>" is not installed in project scope`. Ejecuta `claude update` y luego vuelve a ejecutar la desinstalación.

870 

815<h3 id="failed-to-load-hooks-from-and-hooks-that-dont-fire">871<h3 id="failed-to-load-hooks-from-and-hooks-that-dont-fire">

816 `Failed to load hooks from <path>` and hooks that don't fire872 `Failed to load hooks from <path>` and hooks that don't fire

817</h3>873</h3>


835 891 

836Si el stderr muestra la ruta del plugin cortada en un espacio, el comando en forma de shell del hook usa `${CLAUDE_PLUGIN_ROOT}` fuera de comillas y la ruta de instalación contiene un espacio. Envuelva la variable entre comillas dobles o use [exec form](/docs/es/hooks#exec-form-and-shell-form). Para encontrar la variable sin comillas, ejecute `claude plugin validate` en el directorio del plugin y busque su [advertencia de entrecomillado](/docs/es/plugins/manifest-reference#quoting-and-path-separators).892Si el stderr muestra la ruta del plugin cortada en un espacio, el comando en forma de shell del hook usa `${CLAUDE_PLUGIN_ROOT}` fuera de comillas y la ruta de instalación contiene un espacio. Envuelva la variable entre comillas dobles o use [exec form](/docs/es/hooks#exec-form-and-shell-form). Para encontrar la variable sin comillas, ejecute `claude plugin validate` en el directorio del plugin y busque su [advertencia de entrecomillado](/docs/es/plugins/manifest-reference#quoting-and-path-separators).

837 893 

894Si el aviso dice `Failed to run: Plugin directory does not exist: <path>`, consulta [`Plugin directory does not exist`](#plugin-directory-does-not-exist).

895 

838Para cualquier otro error, ejecute el comando del hook usted mismo desde el directorio del plugin para ver la salida completa, o capture el stderr completo con [debug logging](/docs/es/hooks#debug-hooks).896Para cualquier otro error, ejecute el comando del hook usted mismo desde el directorio del plugin para ver la salida completa, o capture el stderr completo con [debug logging](/docs/es/hooks#debug-hooks).

839 897 

840<h4 id="a-plugin-hook-blocks-a-tool-call-or-prompt">898<h4 id="a-plugin-hook-blocks-a-tool-call-or-prompt">


869 </Step>927 </Step>

870</Steps>928</Steps>

871 929 

930<h3 id="plugin-directory-does-not-exist">

931 `Plugin directory does not exist: <path>`

932</h3>

933 

934Ejecuta primero `/reload-plugins` en el prompt de Claude Code, aunque el mensaje diga que reinstales. Un hook de plugin falla con `Failed to run: Plugin directory does not exist: <path> (<plugin> — run /plugin to reinstall)`, y el hook no se ejecuta, cuando el directorio desde el que tu sesión cargó los hooks del plugin ya no existe en el disco. [`Plugin directory not found at path: <path>`](#plugin-directory-not-found-at-path) es un mensaje diferente, sobre una entrada de marketplace.

935 

936La recarga carga los hooks del plugin desde su directorio actual. El fallo se muestra una vez por sesión para cada evento y comando de hook, así que el hecho de que el hook deje de mostrar errores no confirma la solución. En su lugar, lee la salida de la recarga:

937 

938* **`Reloaded:` sin línea de errores**: los hooks del plugin ya no apuntan al directorio faltante

939* **`N errors during load. Run /plugin for details.`**: abre la pestaña **Errors** en `/plugin` y sigue la entrada de esta página para el mensaje que muestra

940* **Una línea que termina con `Run /reload-plugins --force to apply.`**: no se recargó nada y los hooks siguen fallando. Ejecuta `/reload-plugins --force` en el prompt de Claude Code

941 

872<h3 id="invalid-mcp-server-config-for-and-mcp-servers-that-dont-start">942<h3 id="invalid-mcp-server-config-for-and-mcp-servers-that-dont-start">

873 `Invalid MCP server config for "<server>"` and MCP servers that don't start943 `Invalid MCP server config for "<server>"` and MCP servers that don't start

874</h3>944</h3>


1063 1133 

1064Ejecutaste `claude plugin validate <path>`, o `/plugin validate <path>` en una sesión, e imprimió `Found N errors` y `Validation failed`, y luego terminó con el código 1.1134Ejecutaste `claude plugin validate <path>`, o `/plugin validate <path>` en una sesión, e imprimió `Found N errors` y `Validation failed`, y luego terminó con el código 1.

1065 1135 

1066El validador lee el manifiesto en la ruta que le indicas: `.claude-plugin/plugin.json` para un directorio de plugin, o `.claude-plugin/marketplace.json` para un directorio de marketplace. Para un marketplace, antepone a los problemas del manifiesto propio de una entrada el índice de la entrada, como en `plugins[1] plugin.json → json: ...`.1136El validador lee el manifiesto en la ruta que le indicas: `.claude-plugin/plugin.json` para un directorio de plugin, `.claude-plugin/marketplace.json` para un directorio de marketplace, o ambos para un directorio que contiene ambos. Para un marketplace, antepone a los problemas del manifiesto propio de una entrada el índice de la entrada, como en `plugins[1] plugin.json → json: ...`. Antes de la v2.1.289, Claude Code validaba un directorio que contiene ambos solo como marketplace.

1067 1137 

1068La tabla cubre los mensajes que detienen la validación y dos advertencias, `No frontmatter block found` y `Unknown field '<key>'`, que la detienen solo cuando pasas `--strict`. Otras advertencias, como la falta de una descripción, no se incluyen.1138La tabla cubre los mensajes que detienen la validación y dos advertencias, `No frontmatter block found` y `Unknown field '<key>'`, que la detienen solo cuando pasas `--strict`. Otras advertencias, como la falta de una descripción, no se incluyen.

1069 1139 

remote-control.md +54 −21

Details

364 Limitaciones364 Limitaciones

365</h2>365</h2>

366 366 

367* **Una sesión remota por proceso interactivo**: fuera del modo servidor, cada instancia de Claude Code admite una sesión remota a la vez. Usa el [modo servidor](#start-a-remote-control-session) para ejecutar múltiples sesiones concurrentes desde un único proceso.367* **Una sesión remota por proceso interactivo**: fuera del modo servidor, cada instancia de Claude Code admite una sesión remota a la vez. Usa el [modo servidor](#start-a-remote-control-session) para ejecutar varias sesiones simultáneas desde un solo proceso.

368* **El proceso local debe seguir ejecutándose**: Remote Control se ejecuta como un proceso local. Si cierras la terminal, sales de la aplicación de escritorio o VS Code, o detienes de otra manera el proceso `claude`, la sesión se desconecta hasta que [la vuelvas a conectar](#resume-sessions-after-stopping-the-server). Si ejecutas `claude` desde una terminal en una máquina remota, inícialo dentro de `tmux` o `screen` para mantener la sesión ejecutándose después de desconectarte de SSH.368* **El proceso local debe seguir ejecutándose**: Remote Control se ejecuta como un proceso local. Si cierras la terminal, sales de la aplicación de escritorio o de VS Code, o detienes de cualquier otra forma el proceso `claude`, la sesión se desconecta hasta que [la recuperes](#resume-sessions-after-stopping-the-server). Si ejecutas `claude` desde una terminal en una máquina remota, inícialo dentro de `tmux` o `screen` para que la sesión siga ejecutándose después de desconectarte de SSH.

369* **Sesiones que se cuelgan en modo servidor**: si una sesión servida por `claude remote-control` se cuelga, envíale un mensaje desde un dispositivo conectado. Claude Code la sirve de nuevo. No tienes que reiniciar el servidor. Requiere Claude Code v2.1.238 o posterior.369* **Sesiones bloqueadas en modo servidor**: si una sesión servida por `claude remote-control` se bloquea, envíale un mensaje desde un dispositivo conectado. Claude Code la vuelve a servir. No tienes que reiniciar el servidor. Requiere Claude Code v2.1.238 o posterior.

370* **Rechazos HTTP 403 en una sesión conectada**: una vez que una sesión interactiva está conectada, Claude Code sigue reintentando durante hasta tres minutos cuando algo entre tu máquina y los servidores de Anthropic responde con HTTP 403, lo que puede ocurrir después de un cambio de VPN o red. Si los rechazos duran más tiempo, Claude Code se desconecta, y el motivo indica qué rechazó: un borde de red, o un proxy, VPN o firewall en tu propia red.370* **Rechazos HTTP 403 en una sesión conectada**: una vez que una sesión interactiva está conectada, Claude Code sigue reintentando durante un máximo de tres minutos cuando algo entre tu máquina y los servidores de Anthropic responde con HTTP 403, como puede ocurrir después de un cambio de VPN o de red. Si los rechazos duran más, Claude Code se desconecta, y el motivo indica qué los rechazó: un borde de red, o un proxy, VPN o firewall en tu propia red.

371* **Interrupción de red extendida**: si tu máquina está encendida pero no puede alcanzar la red, lo que hagas a continuación depende del modo:371* **Interrupción prolongada de la red**: si tu máquina está activa pero no puede acceder a la red, lo que hagas a continuación depende del modo:

372 * **Modo servidor**: Claude Code se rinde después de aproximadamente 10 minutos y el proceso `claude remote-control` se cierra. Ejecuta `claude remote-control` de nuevo para iniciar una nueva sesión.372 * **Modo servidor**: Claude Code se rinde después de unos 10 minutos y el proceso `claude remote-control` finaliza. Ejecuta `claude remote-control` de nuevo para iniciar una nueva sesión.

373 * **Sesión interactiva**: sigue trabajando localmente. Claude Code reintenta mientras dure la interrupción y se reconecta automáticamente cuando la red vuelve.373 * **Sesión interactiva**: sigue trabajando localmente. Claude Code reintenta mientras dure la interrupción y se vuelve a conectar por sí solo cuando la red regresa.

374* **Adjuntos que no se descargan**: si un archivo que adjuntas desde tu teléfono o navegador no se puede descargar en tu máquina, Claude igualmente recibe tu mensaje y los archivos que sí se descargaron. En lugar de los archivos faltantes, Claude Code agrega al mensaje una nota como `[1 of 3 attachments did not arrive]`.374* **Archivos adjuntos que no se descargan**: si un archivo que adjuntas desde tu teléfono o navegador no se puede descargar a tu máquina, Claude igualmente recibe tu mensaje y los archivos que sí se descargaron. En lugar de los archivos faltantes, Claude Code agrega al mensaje una nota como `[1 of 3 attachments did not arrive]`.

375* **Latidos de presencia fallidos**: si una sesión interactiva se desconecta con `could not reach the Remote Control server for about 30 minutes`, ejecuta `/remote-control` para reconectarte.375* **Fallos en las señales de presencia**: si una sesión interactiva se desconecta con `could not reach the Remote Control server for about 30 minutes`, ejecuta `/remote-control` para volver a conectarte.

376* **Los diálogos reenviados expiran**: Claude Code mantiene las solicitudes de permiso y las preguntas de `AskUserQuestion` abiertas hasta que las respondas. Cuando Claude Code reenvía otro tipo de diálogo a la sesión remota, como el prompt de selección de modelo que se muestra después de un rechazo de seguridad, espera cinco minutos por defecto, luego cierra el diálogo y continúa con el valor predeterminado sin acción del diálogo. Establece [`dialogExpiry`](/docs/es/settings-reference#dialogexpiry) para ajustar o desactivar el plazo. Requiere Claude Code v2.1.224 o posterior.376* **Los diálogos reenviados caducan**: Claude Code mantiene abiertas las solicitudes de permiso y las preguntas de `AskUserQuestion` hasta que las respondes. Cuando Claude Code reenvía otro tipo de diálogo a la sesión remota, como el prompt de elección de modelo que se muestra después de un rechazo por seguridad, espera cinco minutos de forma predeterminada y luego cierra el diálogo y continúa con la opción predeterminada del diálogo, que no realiza ninguna acción. Configura [`dialogExpiry`](/docs/es/settings-reference#dialogexpiry) para ajustar o desactivar el plazo. Requiere Claude Code v2.1.224 o posterior.

377* **El prompt de consentimiento de créditos de uso de Fable no se reenvía**: Claude Code muestra el [prompt de consentimiento de créditos de uso de Fable](/docs/es/model-config#fable-and-usage-credits) a mitad de sesión solo donde se ejecuta la sesión, no en tu dispositivo. Cuando la sesión se ejecuta en una terminal y nadie allí responde antes de que Claude Code cierre el prompt, el turno termina sin enviar la solicitud; consulta [El prompt de confirmación quedó sin respuesta](/docs/es/errors#the-prompt-to-confirm-went-unanswered).377* **El prompt de consentimiento de créditos de uso de Fable no se reenvía**: Claude Code muestra el [prompt de consentimiento de créditos de uso de Fable](/docs/es/model-config#fable-and-usage-credits) que aparece a mitad de la sesión solo donde se ejecuta la sesión, no en tu dispositivo. Cuando la sesión se ejecuta en una terminal y nadie allí responde antes de que Claude Code cierre el prompt, el turno termina sin enviar la solicitud; consulta [The prompt to confirm went unanswered](/docs/es/errors#the-prompt-to-confirm-went-unanswered).

378* **Algunos comandos son solo locales**: los comandos que solo se ejecutan en la interfaz de terminal, como `/plugin` o `/resume`, funcionan solo desde la CLI local, independientemente de si pasas un argumento o no. `/claude-api` tampoco está disponible cuando lo escribes desde dispositivos móviles o web. Allí, Claude aún puede [cargar ese skill por su cuenta](/docs/es/skills#work-on-claude-api-projects). Los siguientes funcionan desde dispositivos móviles y web:378* **Algunos comandos son solo locales**: los comandos que solo se ejecutan en la interfaz de la terminal, como `/plugin` o `/resume`, funcionan únicamente desde la CLI local, pases o no un argumento. `/claude-api` tampoco está disponible cuando lo escribes desde el móvil o la web. Claude aún puede [cargar ese skill por su cuenta](/docs/es/skills#work-on-claude-api-projects) allí. Los siguientes funcionan desde el móvil y la web:

379 * Comandos de salida de texto: `/compact`, `/clear`, `/context`, `/usage`, `/exit`, `/usage-credits`, `/recap`, y `/reload-plugins`. `/usage-credits` imprime la URL de facturación en lugar de abrir un navegador. `/reload-plugins` funciona solo cuando la sesión se ejecuta en una terminal interactiva; una sesión sin una la rechaza.379 * Comandos de salida de texto: `/compact`, `/clear`, `/context`, `/usage`, `/exit`, `/usage-credits`, `/recap` y `/reload-plugins`. `/usage-credits` imprime la URL de facturación en lugar de abrir un navegador. `/reload-plugins` solo funciona cuando la sesión se ejecuta en una terminal interactiva; una sesión sin ella lo rechaza.

380 * `/model`, `/effort`, `/fast`, `/color`, y `/rename`: pasa el valor como argumento, por ejemplo `/model sonnet` o `/effort high`. Desde dispositivos móviles y web, `/model` y `/effort` toman el argumento en lugar del selector de terminal o deslizador.380 * `/model`, `/effort`, `/fast`, `/color` y `/rename`: pasa el valor como argumento, por ejemplo `/model sonnet` o `/effort high`. Desde el móvil y la web, `/model` y `/effort` toman el argumento en lugar del selector o el control deslizante de la terminal.

381 * `/mcp`: desde la aplicación móvil, devuelve un resumen de texto del estado del servidor en lugar de abrir el selector. En la web, `/mcp` por sí solo abre un directorio de [conectores de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai) en lugar de devolver el resumen. Los [subcomandos](/docs/es/commands#all-commands) `reconnect`, `enable`, y `disable` funcionan desde ambos. `/mcp reconnect` sin un nombre de servidor reintenta cada servidor que ha fallado o necesita autenticación.381 * `/mcp`: desde la aplicación móvil, devuelve un resumen en texto del estado de los servidores en lugar de abrir el selector. En la web, `/mcp` por sí solo abre un directorio de [conectores de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai) en lugar de devolver el resumen. Los [subcomandos](/docs/es/commands#all-commands) `reconnect`, `enable` y `disable` funcionan desde ambos cuando la sesión se ejecuta en una terminal interactiva. `/mcp reconnect` sin nombre de servidor reintenta todos los servidores que fallaron o que necesitan autenticación. Para autorizar un conector de claude.ai sin el selector, consulta [Autorizar un conector de nuevo desde tu shell](#authorize-a-connector-again-from-your-shell).

382 * `/config`: desde la aplicación móvil, pasa `key=value` para establecer un ajuste, o ejecútalo sin argumento para enumerar las claves que puedes establecer. En la web, `/config` abre la sección Claude Code de tu configuración en su lugar, e ignora el texto después del comando.382 * `/config`: desde la aplicación móvil, pasa `key=value` para establecer un ajuste, o ejecútalo sin argumento para listar las claves que puedes establecer. En la web, `/config` abre en su lugar la sección de Claude Code de tu configuración e ignora el texto que sigue al comando.

383 * En Team y Enterprise, `/usage-credits` desde dispositivos móviles o web no envía una [solicitud de créditos de uso a tu administrador](/docs/es/costs#add-usage-credits-to-your-subscription). El envío requiere una confirmación que aparece solo en la CLI interactiva, por lo que el comando te indica que lo ejecutes allí en su lugar.383 * En Team y Enterprise, `/usage-credits` desde el móvil o la web no envía una [solicitud de créditos de uso a tu administrador](/docs/es/costs#add-usage-credits-to-your-subscription). El envío requiere una confirmación que solo aparece en la CLI interactiva, por lo que el comando te indica que lo ejecutes allí.

384 * `/autocompact`, desde v2.1.221: pasa el tamaño de la ventana como argumento, por ejemplo `/autocompact 500k`. Sin argumento, imprime el tamaño de ventana actual como texto en lugar de abrir el diálogo que muestra el comando en una sesión de terminal.384 * `/autocompact`, desde v2.1.221: pasa el tamaño de la ventana como argumento, por ejemplo `/autocompact 500k`. Sin argumento, imprime el tamaño actual de la ventana como texto en lugar de abrir el diálogo que el comando muestra en una sesión de terminal.

385 * `/advisor`, desde v2.1.260: pasa el modelo como argumento, por ejemplo `/advisor opus`, o pasa `off` para desactivar el asesor. Ambas formas se aplican solo a la sesión actual y dejan tu valor predeterminado guardado sin cambios. Sin argumento, imprime el asesor actual como texto en lugar de abrir el selector.385 * `/advisor`, desde v2.1.260: pasa el modelo como argumento, por ejemplo `/advisor opus`, o pasa `off` para desactivar el asesor. Ambas formas se aplican solo a la sesión actual y no modifican tu valor predeterminado guardado. Sin argumento, imprime el asesor actual como texto en lugar de abrir el selector.

386 * `/output-style`, desde v2.1.269: pasa el nombre del estilo como argumento, por ejemplo `/output-style concise`, o ejecútalo sin argumento para enumerar los estilos. Desde dispositivos móviles y web, puedes enumerar y seleccionar solo [estilos integrados](/docs/es/output-styles#built-in-output-styles). Para usar un [estilo personalizado](/docs/es/output-styles#create-a-custom-output-style), selecciónalo en la sesión misma.386 * `/output-style`, desde v2.1.269: pasa el nombre del estilo como argumento, por ejemplo `/output-style concise`, o ejecútalo sin argumento para listar los estilos. Desde el móvil y la web, solo puedes listar y seleccionar [estilos integrados](/docs/es/output-styles#built-in-output-styles). Para usar un [estilo personalizado](/docs/es/output-styles#create-a-custom-output-style), selecciónalo en la propia sesión.

387 * `/focus`, desde v2.1.281: pasa `on` u `off` como argumento, por ejemplo `/focus on`, o ejecútalo sin argumento para alternar la [vista de enfoque](/docs/es/commands#all-commands). Ambas formas se aplican solo a la sesión actual y dejan tu selección guardada sin cambios.387 * `/focus`, desde v2.1.281: pasa `on` u `off` como argumento, por ejemplo `/focus on`, o ejecútalo sin argumento para alternar la [vista de enfoque](/docs/es/commands#all-commands). Ambas formas se aplican solo a la sesión actual y no modifican tu selección guardada.

388 

389<h2 id="authorize-a-connector-again-from-your-shell">

390 Volver a autorizar un conector desde tu shell

391</h2>

392 

393Cuando un conector de claude.ai necesita autenticación en una sesión que manejas mediante Remote Control, el panel `/mcp` no está disponible desde la aplicación móvil ni desde la web. Obtén el enlace de autorización desde una terminal en la máquina donde se ejecuta la sesión y luego abre el enlace en el dispositivo que estás usando. No puedes ejecutar el comando desde la aplicación móvil ni desde la web. Una línea que envíes desde allí y que comience con `!` llega a Claude como un mensaje y no se ejecuta en [modo shell](/docs/es/interactive-mode#shell-mode-with-prefix).

394 

395<Steps>

396 <Step title="Obtén el enlace de autorización">

397 En una terminal de la máquina donde se ejecuta la sesión, por ejemplo a través de SSH, ejecuta `claude mcp login` con el nombre del conector entre comillas. El nombre de un conector comienza con `claude.ai`, como `claude.ai Slack` para el conector de Slack. El siguiente comando obtiene el enlace para el conector de Slack:

398 

399 ```bash theme={null}

400 claude mcp login "claude.ai Slack" --no-browser

401 ```

402 

403 El comando imprime un enlace de claude.ai y termina. Abre el enlace en tu navegador y completa la autorización en claude.ai. `--no-browser` evita que el comando abra un navegador en esa máquina, que podría no ser el dispositivo que estás usando.

404 </Step>

405 

406 <Step title="Usa el conector en una sesión">

407 Inicia una nueva sesión o vuelve a conectar el conector en la sesión que ya se está ejecutando:

408 

409 * **Nueva sesión**: una sesión que inicies después de autorizar se conecta al conector sin ningún paso adicional.

410 * **Sesión en ejecución**: ejecuta `/mcp reconnect` con el mismo nombre y sin comillas, en el prompt de Claude Code o desde la aplicación móvil o la web. Para comprobar que tu sesión acepta el comando desde allí, consulta la entrada de `/mcp` en [qué comandos funcionan desde el móvil y la web](#limitations).

411 

412 El siguiente comando vuelve a conectar el conector de Slack:

413 

414 ```text theme={null}

415 /mcp reconnect claude.ai Slack

416 ```

417 

418 En la terminal, Claude Code imprime `Successfully reconnected to claude.ai Slack`. Desde la aplicación móvil o la web, la respuesta es `Reconnected "claude.ai Slack".`

419 </Step>

420</Steps>

388 421 

389<h2 id="troubleshooting">422<h2 id="troubleshooting">

390 Solución de problemas423 Solución de problemas

Details

191 Jitter191 Jitter

192</h3>192</h3>

193 193 

194Para evitar que cada sesión golpee la API en el mismo momento de reloj de pared, el programador agrega un desplazamiento determinista a los tiempos de disparo:194Una tarea programada puede ejecutarse en un momento distinto al que indica su programación. Si las tareas de cada sesión se ejecutaran exactamente según lo programado, muchas de ellas llamarían a la API en el mismo momento, por lo que Claude Code desplaza la hora de ejecución de cada tarea. Las tareas recurrentes se ejecutan con retraso, y las tareas únicas programadas en punto o a la media hora se ejecutan un poco antes.

195 195 

196* Las tareas recurrentes se ejecutan hasta 30 minutos después de la hora programada (o hasta la mitad del intervalo, para tareas que se ejecutan más frecuentemente que cada hora). Un trabajo por hora programado para `:00` puede ejecutarse en cualquier momento hasta `:30`.196<h4 id="how-late-a-recurring-task-runs">

197* Las tareas únicas programadas para la parte superior o inferior de la hora se ejecutan hasta 90 segundos antes.197 Cuánto se retrasa una tarea recurrente

198</h4>

198 199 

199El desplazamiento se deriva del ID de la tarea, por lo que la misma tarea siempre obtiene el mismo desplazamiento. Si el tiempo exacto es importante, elija un minuto que no sea `:00` o `:30`, por ejemplo `3 9 * * *` en lugar de `0 9 * * *`, y el jitter único no se aplicará.200Cuando creas una tarea recurrente, Claude Code le asigna un retraso fijo y lo agrega a cada ejecución. El retraso se calcula a partir del ID de la tarea, por lo que la misma tarea se ejecuta con la misma cantidad de minutos de retraso cada vez, incluso cuando la sesión está inactiva y no se está ejecutando nada más.

201 

202Las tareas que se ejecutan con más frecuencia obtienen retrasos más cortos, y 30 minutos es el retraso máximo que puede tener una tarea. Estos son los rangos de retraso para algunas programaciones comunes:

203 

204| La tarea se ejecuta | El retraso está entre |

205| :- | :- |

206| Cada 10 minutos | 0 y 5 minutos |

207| Cada 30 minutos | 0 y 15 minutos |

208| Cada hora, o con menos frecuencia, como una vez al día | 0 y 30 minutos |

209 

210Por ejemplo, `7,37 * * * *` programa una tarea para `:07` y `:37`, que están separados por 30 minutos, por lo que su retraso está entre 0 y 15 minutos. Si el retraso de esta tarea es de 14 minutos, se ejecuta a las `:21` y `:51` cada hora. Cambiar la programación a un minuto diferente mueve la hora de ejecución, y aun así se agrega un retraso encima.

211 

212<h4 id="when-a-one-shot-task-runs-early">

213 Cuándo una tarea única se ejecuta antes

214</h4>

215 

216Una tarea única programada para `:00` o `:30` se ejecuta hasta 90 segundos antes. Claude Code no desplaza una tarea única programada para cualquier otro minuto, así que cuando el momento exacto importa, prográmala fuera de la hora en punto y la media hora: `3 9 * * *` en lugar de `0 9 * * *`.

200 217 

201<h3 id="seven-day-expiry">218<h3 id="seven-day-expiry">

202 Vencimiento de siete días219 Vencimiento de siete días

Details

74 74 

75Puede extender cada capa [agregando sus propias reglas](#add-your-own-rules). Las verificaciones integradas no se pueden eliminar individualmente, pero puede [desactivar cada capa](#disable-or-uninstall) de forma independiente.75Puede extender cada capa [agregando sus propias reglas](#add-your-own-rules). Las verificaciones integradas no se pueden eliminar individualmente, pero puede [desactivar cada capa](#disable-or-uninstall) de forma independiente.

76 76 

77<h3 id="on-each-file-edit">77<span id="on-each-file-edit" />

78 En cada edición de archivo78 

79<h3 id="checks-on-each-file-edit">

80 Verificaciones en cada edición de archivo

79</h3>81</h3>

80 82 

81Cuando Claude escribe en un archivo, el plugin escanea el nuevo contenido en busca de patrones conocidos riesgosos. Esta es una coincidencia de patrón sin llamada de modelo, por lo que no agrega ningún costo de uso.83Cuando Claude escribe en un archivo, el plugin escanea el nuevo contenido en busca de patrones conocidos riesgosos. Esta es una coincidencia de patrón sin llamada de modelo, por lo que no agrega ningún costo de uso.


91 93 

92Puede [agregar sus propios patrones](#add-custom-per-edit-patterns) a esta capa con un archivo `security-patterns.yaml`.94Puede [agregar sus propios patrones](#add-custom-per-edit-patterns) a esta capa con un archivo `security-patterns.yaml`.

93 95 

94<h3 id="at-the-end-of-each-turn">96<span id="at-the-end-of-each-turn" />

95 Al final de cada turno97 

98<h3 id="checks-at-the-end-of-each-turn">

99 Verificaciones al final de cada turno

96</h3>100</h3>

97 101 

98Un turno es una ronda de Claude respondiendo: usted envía un mensaje, Claude trabaja y responde, y el turno termina. Después de cada turno, el plugin calcula un git diff de todo lo que cambió en el árbol de trabajo durante el turno, incluidos los cambios de las herramientas de edición de Claude, comandos Bash y subagentes, y lo envía a una revisión de Claude separada enfocada en seguridad. La revisión se ejecuta en segundo plano, por lo que la respuesta de Claude no se retrasa. Si la revisión encuentra problemas, Claude se vuelve a solicitar con los hallazgos y los aborda como seguimiento.102Un turno es una ronda de Claude respondiendo: usted envía un mensaje, Claude trabaja y responde, y el turno termina. Después de cada turno, el plugin calcula un git diff de todo lo que cambió en el árbol de trabajo durante el turno, incluidos los cambios de las herramientas de edición de Claude, comandos Bash y subagentes, y lo envía a una revisión de Claude separada enfocada en seguridad. La revisión se ejecuta en segundo plano, por lo que la respuesta de Claude no se retrasa. Si la revisión encuentra problemas, Claude se vuelve a solicitar con los hallazgos y los aborda como seguimiento.


107 111 

108Usted ve tanto el hallazgo como la resolución de Claude directamente en su sesión. La revisión cubre hasta 30 archivos cambiados por turno y se activa como máximo tres veces seguidas antes de ceder el control a usted.112Usted ve tanto el hallazgo como la resolución de Claude directamente en su sesión. La revisión cubre hasta 30 archivos cambiados por turno y se activa como máximo tres veces seguidas antes de ceder el control a usted.

109 113 

110<h3 id="on-each-commit-or-push-claude-makes">114<span id="on-each-commit-or-push-claude-makes" />

111 En cada commit o push que Claude realiza115 

116<h3 id="checks-on-each-commit-or-push-claude-makes">

117 Verificaciones en cada commit o push que Claude realiza

112</h3>118</h3>

113 119 

114Cuando Claude ejecuta `git commit` o `git push` a través de su herramienta Bash, el plugin ejecuta una revisión agéntica más profunda del cambio en segundo plano. Esta revisión lee el código circundante, incluidos los llamadores, sanitizadores y archivos relacionados, para decidir si un hallazgo es real antes de reportarlo. El contexto adicional mantiene los falsos positivos bajos en patrones que se ven peligrosos en aislamiento pero son seguros en su base de código.120Cuando Claude ejecuta `git commit` o `git push` a través de su herramienta Bash, el plugin ejecuta una revisión agéntica más profunda del cambio en segundo plano. Esta revisión lee el código circundante, incluidos los llamadores, sanitizadores y archivos relacionados, para decidir si un hallazgo es real antes de reportarlo. El contexto adicional mantiene los falsos positivos bajos en patrones que se ven peligrosos en aislamiento pero son seguros en su base de código.

Details

403 403 

404* El [archivo MCP administrado](/docs/es/managed-mcp) de alcance empresarial en su ruta estándar del sistema: `/etc/claude-code/managed-mcp.json` en hosts de runner Linux, `/Library/Application Support/ClaudeCode/managed-mcp.json` en hosts macOS. Úsalo para flotas restringidas donde solo pueden cargarse los servidores que indica el administrador. Consulta [control exclusivo con managed-mcp.json](/docs/es/managed-mcp#exclusive-control-with-managed-mcp-json) para conocer las reglas de precedencia. Cuando este archivo está en el host del runner, Claude Code omite los servidores MCP que el plano de control de Anthropic entrega a una sesión, incluidos los conectores de claude.ai, y los nombra en una advertencia en el stderr del proceso hijo de la sesión, que el runner registra en el nivel de registro `debug`. Antes de la v2.1.229, esas sesiones terminaban al iniciar con `You cannot dynamically configure MCP servers when an enterprise MCP config is present`.404* El [archivo MCP administrado](/docs/es/managed-mcp) de alcance empresarial en su ruta estándar del sistema: `/etc/claude-code/managed-mcp.json` en hosts de runner Linux, `/Library/Application Support/ClaudeCode/managed-mcp.json` en hosts macOS. Úsalo para flotas restringidas donde solo pueden cargarse los servidores que indica el administrador. Consulta [control exclusivo con managed-mcp.json](/docs/es/managed-mcp#exclusive-control-with-managed-mcp-json) para conocer las reglas de precedencia. Cuando este archivo está en el host del runner, Claude Code omite los servidores MCP que el plano de control de Anthropic entrega a una sesión, incluidos los conectores de claude.ai, y los nombra en una advertencia en el stderr del proceso hijo de la sesión, que el runner registra en el nivel de registro `debug`. Antes de la v2.1.229, esas sesiones terminaban al iniciar con `You cannot dynamically configure MCP servers when an enterprise MCP config is present`.

405* La clave [`managedMcpServers`](/docs/es/settings-reference#managedmcpservers) en la [configuración administrada](/docs/es/managed-settings) del host del runner: proporciona servidores HTTP y SSE sin tomar el control exclusivo, por lo que los servidores de las demás fuentes se siguen cargando. Requiere Claude Code v2.1.259 o posterior.405* La clave [`managedMcpServers`](/docs/es/settings-reference#managedmcpservers) en la [configuración administrada](/docs/es/managed-settings) del host del runner: proporciona servidores HTTP y SSE sin tomar el control exclusivo, por lo que los servidores de las demás fuentes se siguen cargando. Requiere Claude Code v2.1.259 o posterior.

406* `<repo>/.mcp.json`: alcance de proyecto. Haz commit del archivo en el repositorio; sus servidores se aprueban automáticamente en las sesiones en la nube.406* `<repo>/.mcp.json`: alcance de proyecto. Haz commit del archivo en el repositorio; sus servidores se aprueban automáticamente en las sesiones en la nube. En una sesión con varios repositorios, [se carga como máximo el archivo de un repositorio](#repository-settings-in-sessions-with-several-repositories).

407 407 

408Cuando la entrega de conectores está habilitada para tu organización, el plano de control de Anthropic entrega los conectores que configuraste en claude.ai a las sesiones creadas de forma interactiva mediante configuración MCP proporcionada por el servidor, enrutada a través de `api.anthropic.com`. Las sesiones creadas de forma programática, como los [envíos desde la CLI](/docs/es/self-hosted-environments-testing#run-the-test-loop), no reciben la entrega de conectores; en su lugar, proporciónales servidores MCP mediante cualquiera de las otras fuentes que enumera esta sección. El token OAuth del proceso hijo no incluye un alcance para obtener conectores directamente, así que el proceso hijo no intenta obtenerlos por sí mismo; la entrega la gestiona el servidor.408Cuando la entrega de conectores está habilitada para tu organización, el plano de control de Anthropic entrega los conectores que configuraste en claude.ai a las sesiones creadas de forma interactiva mediante configuración MCP proporcionada por el servidor, enrutada a través de `api.anthropic.com`. Las sesiones creadas de forma programática, como los [envíos desde la CLI](/docs/es/self-hosted-environments-testing#run-the-test-loop), no reciben la entrega de conectores; en su lugar, proporciónales servidores MCP mediante cualquiera de las otras fuentes que enumera esta sección. El token OAuth del proceso hijo no incluye un alcance para obtener conectores directamente, así que el proceso hijo no intenta obtenerlos por sí mismo; la entrega la gestiona el servidor.

409 409 


542exit 0542exit 0

543```543```

544 544 

545El hook solicita a Claude que confirme y envíe antes de que la sesión termine, y permanece silencioso cuando el directorio no es un repositorio git o no tiene remoto.545El hook solicita a Claude que confirme y envíe antes de que la sesión termine, y permanece silencioso cuando el directorio no es un repositorio git o no tiene remoto. Para una sesión con varios repositorios, consulta [a qué se refiere `$CLAUDE_PROJECT_DIR`](#repository-settings-in-sessions-with-several-repositories).

546 546 

547<h2 id="permissions-and-tool-approval">547<h2 id="permissions-and-tool-approval">

548 Permisos y aprobación de herramientas548 Permisos y aprobación de herramientas


571 571 

572Establezca `SELF_HOSTED_RUNNER_HOST_CONFIG_DIR` para sembrar desde una ruta diferente, o apúntelo a un directorio vacío para deshabilitar la siembra.572Establezca `SELF_HOSTED_RUNNER_HOST_CONFIG_DIR` para sembrar desde una ruta diferente, o apúntelo a un directorio vacío para deshabilitar la siembra.

573 573 

574El `.claude/settings.json` confirmado en el repositorio se superpone como configuración del proyecto. Las sesiones también leen [`managed-settings.json`](/docs/es/settings#where-settings-live) desde la ruta estándar del sistema en su imagen de ejecutor. Si sus claves se aplican junto con [configuración administrada por servidor](/docs/es/server-managed-settings) sigue [cómo Claude Code combina fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources): por defecto, cuando su organización entrega cualquier clave administrada por servidor, las sesiones ignoran el archivo de imagen del ejecutor aparte de las [claves que Claude Code lee de cada fuente de administrador](/docs/es/managed-settings#keys-read-from-every-admin-source), como el bloque `env`, los bloqueos de sandbox, las rutas binarias de sandbox y `forceRemoteSettingsRefresh`. Consulte [precedencia de configuración](/docs/es/settings#settings-precedence).574El `.claude/settings.json` confirmado en el repositorio se superpone como configuración del proyecto. En una sesión con varios repositorios, [como máximo tiene efecto el archivo de un solo repositorio](#repository-settings-in-sessions-with-several-repositories). Las sesiones también leen [`managed-settings.json`](/docs/es/settings#where-settings-live) desde la ruta estándar del sistema en tu imagen del ejecutor. Si sus claves se aplican junto con la [configuración administrada por el servidor](/docs/es/server-managed-settings) depende de [cómo Claude Code combina las fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources): de forma predeterminada, cuando tu organización entrega cualquier clave administrada por el servidor, las sesiones ignoran el archivo de la imagen del ejecutor, salvo las [claves que Claude Code lee de todas las fuentes de administrador](/docs/es/managed-settings#keys-read-from-every-admin-source), como el bloque `env`, los bloqueos del sandbox, las rutas de los binarios del sandbox y `forceRemoteSettingsRefresh`. Consulta [precedencia de configuración](/docs/es/settings#settings-precedence).

575 575 

576Cuando el plano de control de Anthropic proporciona una sesión con [hooks de Claude Code](/docs/es/hooks), el ejecutor los instala junto a, no sobre, su propia configuración. Requiere Claude Code v2.1.229 o posterior.576Cuando el plano de control de Anthropic proporciona una sesión con [hooks de Claude Code](/docs/es/hooks), el ejecutor los instala junto a, no sobre, su propia configuración. Requiere Claude Code v2.1.229 o posterior.

577 577 


583 583 

584La instantánea del `~/.claude/` del host que toma el ejecutor excluye el directorio `projects/`. La ubicación de almacenamiento predeterminada de la memoria automática está dentro de ese directorio. Si colocas archivos de memoria allí, el ejecutor no los copia a las sesiones, y no activan la memoria automática.584La instantánea del `~/.claude/` del host que toma el ejecutor excluye el directorio `projects/`. La ubicación de almacenamiento predeterminada de la memoria automática está dentro de ese directorio. Si colocas archivos de memoria allí, el ejecutor no los copia a las sesiones, y no activan la memoria automática.

585 585 

586<h3 id="repository-settings-in-sessions-with-several-repositories">

587 Configuración de repositorios en sesiones con varios repositorios

588</h3>

589 

590En una sesión con varios repositorios, Claude Code lee la configuración del proyecto desde el directorio en el que se inicia la sesión, por lo que como máximo el `.claude/settings.json` de un solo repositorio tiene efecto como configuración del proyecto. Un hook definido en el archivo de otro repositorio no se ejecuta, una regla de denegación en él no se aplica y su `env` no se establece.

591 

592* **`--capacity 1`, el valor predeterminado, con el checkout integrado**: la sesión se inicia en el primer repositorio de su lista de repositorios. El `.claude/settings.json` de ese repositorio tiene efecto como configuración del proyecto y su `.mcp.json` se carga, y los de los demás repositorios no.

593* **Un `--capacity` mayor que uno, o un [hook `checkout`](#checkout)**: la sesión se inicia en un directorio por sesión que contiene los checkouts. Ningún `.claude/settings.json` de repositorio tiene efecto como configuración del proyecto, ningún `.mcp.json` de repositorio se carga, y [`$CLAUDE_PROJECT_DIR`](/docs/es/hooks#reference-scripts-by-path) en un comando de hook es ese directorio, no un checkout.

594 

595El `CLAUDE.md` y los skills de cada repositorio se cargan dondequiera que se inicie la sesión. El ejecutor pasa cada repositorio a Claude Code como un [directorio adicional](/docs/es/permissions#additional-directories-grant-file-access-not-configuration), por lo que Claude Code también lee las claves `enabledPlugins` y `extraKnownMarketplaces` del `.claude/settings.json` de cada repositorio.

596 

597Para ejecutar un hook o aplicar una regla de permisos en todas las sesiones, colócalo en `~/.claude/settings.json` en el host del ejecutor. El ejecutor [siembra el archivo del host en todas las sesiones](#how-each-session’s-config-is-assembled), dondequiera que se inicie la sesión. Escribe la ruta en una regla `Read` o `Edit` como un [patrón](/docs/es/permissions#read-and-edit) absoluto con `//` o relativo al directorio personal con `~/`, porque los demás patrones se anclan a la fuente de configuración o al directorio actual.

598 

586<h3 id="repository-committed-permission-rules">599<h3 id="repository-committed-permission-rules">

587 Reglas de permiso confirmadas en el repositorio600 Reglas de permiso confirmadas en el repositorio

588</h3>601</h3>

Details

87 87 

88 Debido a que los hooks ejecutan comandos de shell, los usuarios en sesiones interactivas ven un [diálogo de aprobación de seguridad](#security-approval-dialogs) antes de que Claude Code los aplique.88 Debido a que los hooks ejecutan comandos de shell, los usuarios en sesiones interactivas ven un [diálogo de aprobación de seguridad](#security-approval-dialogs) antes de que Claude Code los aplique.

89 89 

90 Para configurar el clasificador del [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) para que sepa qué repositorios, buckets y dominios confía su organización, entregue un bloque `autoMode` de la misma manera; consulte [Configurar el modo automático](/docs/es/auto-mode-config) para ver cómo las entradas de `autoMode` afectan lo que el clasificador bloquea y advertencias importantes sobre los campos `environment`, `allow`, `soft_deny` y `hard_deny`.90 Para configurar el clasificador del [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) para que sepa en qué repositorios, buckets y dominios confía tu organización, entrega un bloque `autoMode` de la misma manera; consulta [Configurar el modo automático](/docs/es/auto-mode-config) para ver cómo las entradas de `autoMode` afectan lo que el clasificador bloquea y advertencias importantes sobre los campos `environment`, `allow`, `soft_deny` y `hard_deny`.

91 </Step>91 </Step>

92 92 

93 <Step title="Guardar e implementar">93 <Step title="Guardar e implementar">

94 Guarde sus cambios. Los clientes de Claude Code reciben la configuración actualizada en su próximo inicio o ciclo de sondeo por hora.94 Guarda tus cambios. Los clientes de Claude Code reciben la configuración actualizada en su próximo inicio o ciclo de sondeo por hora.

95 

96 El editor comprueba tu JSON con el esquema JSON publicado para la configuración de Claude Code. Si encuentra un problema en un JSON que se analiza correctamente, muestra una advertencia y cambia la etiqueta del botón de guardar. La etiqueta es **Update with errors** cuando ya hay configuración guardada, y **Add with errors** cuando todavía no hay configuración guardada. Ese botón sigue guardando, porque una advertencia del esquema no bloquea el guardado.

97 

98 El esquema [puede quedar rezagado respecto a las versiones más recientes](/docs/es/settings#edit-a-settings-file), por lo que el editor puede marcar una clave o un valor que la [referencia de configuración](/docs/es/settings-reference#all-settings) documenta. Claude Code recibe las claves y los valores que guardaste y ejecuta [su propia validación](#invalid-entries-in-delivered-settings) cuando los carga.

95 </Step>99 </Step>

96</Steps>100</Steps>

97 101 

settings.md +44 −44

Details

402 402 

403Claude Code lee la configuración de cuatro archivos, y una organización también puede entregar configuración administrada desde la consola de claude.ai. Cada fuente tiene un alcance: el conjunto de personas y proyectos a los que se aplica un ajuste guardado en ella, ya seas solo tú, todos en un proyecto o todos en tu organización.403Claude Code lee la configuración de cuatro archivos, y una organización también puede entregar configuración administrada desde la consola de claude.ai. Cada fuente tiene un alcance: el conjunto de personas y proyectos a los que se aplica un ajuste guardado en ella, ya seas solo tú, todos en un proyecto o todos en tu organización.

404 404 

405| Ámbito | Archivo | A quién afecta | Úselo para |405| Alcance | Archivo | A quién afecta | Úsalo para |

406| :- | :- | :- | :- |406| :- | :- | :- | :- |

407| Usuario | `~/.claude/settings.json` | Usted, en cada proyecto en esta máquina | Preferencias personales: tema, modo de editor, modelo predeterminado, sus propias reglas de permiso |407| Usuario | `~/.claude/settings.json` | Tú, en cada proyecto en esta máquina | Preferencias personales: tema, modo de editor, modelo predeterminado, tus propias reglas de permisos |

408| Proyecto compartido | `.claude/settings.json` | Todos los que trabajan en la carpeta que lo contiene. En un repositorio de git, confirme para que los compañeros de equipo lo obtengan | Permisos de equipo, hooks, plugins y las variables de entorno que el proyecto necesita |408| Proyecto compartido | `.claude/settings.json` | Todos los que trabajan en la carpeta que lo contiene. En un repositorio de git, haz commit del archivo para que tus compañeros de equipo lo obtengan | Permisos de equipo, hooks, plugins y las variables de entorno que el proyecto necesita |

409| Proyecto local | `.claude/settings.local.json` | Usted, solo en este proyecto. Claude Code lo mantiene fuera de git cuando crea el archivo; si lo crea a mano, agréguelo a `.gitignore` usted mismo | Anulaciones personales para un proyecto y pruebas antes de compartir |409| Proyecto local | `.claude/settings.local.json` | Tú, solo en este proyecto. Claude Code lo mantiene fuera de git cuando crea el archivo; si lo creas a mano, agrégalo a `.gitignore` tú mismo | Sobrescrituras personales para un proyecto y pruebas antes de compartir |

410| Administrado | `managed-settings.json` y otras [fuentes administradas](/docs/es/managed-settings#delivery-mechanisms) | Todos aquellos a quienes tu organización lo implementa; [Precedencia de la configuración](#settings-precedence) indica qué puede sobrescribirlo | Políticas de seguridad y requisitos de cumplimiento |410| Administrado | `managed-settings.json` y otras [fuentes administradas](/docs/es/managed-settings#delivery-mechanisms) | Todos aquellos a quienes tu organización lo implementa; [Precedencia de la configuración](#settings-precedence) indica qué puede sobrescribirlo | Políticas de seguridad y requisitos de cumplimiento |

411 411 

412En la columna Archivo, `~/.claude` es la carpeta `.claude` en su directorio de inicio, y un `.claude` simple es la carpeta `.claude` dentro de su proyecto.412En la columna Archivo, `~/.claude` es la carpeta `.claude` en tu directorio home, y un `.claude` simple es la carpeta `.claude` dentro de tu proyecto.

413 413 

414<span id="where-each-file-applies" />414<span id="where-each-file-applies" />

415 415 

416<span id="compare-what-each-file-reaches" />416<span id="compare-what-each-file-reaches" />

417 417 

418<h3 id="compare-the-scope-of-each-settings-file">418<h3 id="compare-the-scope-of-each-settings-file">

419 Compare el ámbito de cada archivo de configuración419 Compara el alcance de cada archivo de configuración

420</h3>420</h3>

421 421 

422Suponga que tiene tres proyectos en su máquina, `website/`, `api/` y `acme-app/`, un compañero de equipo tiene su propio clon de `acme-app/`, e inicia una [sesión en la nube](#settings-in-cloud-sessions) en `acme-app/`.422Supón que tienes tres proyectos en tu máquina, `website/`, `api/` y `acme-app/`, un compañero de equipo tiene su propio clon de `acme-app/`, e inicias una [sesión en la nube](#settings-in-cloud-sessions) en `acme-app/`.

423 423 

424El gráfico a continuación muestra a cuál de esas carpetas se aplica una configuración cuando inicia Claude Code desde ellas. Haga clic en un archivo de configuración para ver las carpetas que alcanza.424El gráfico a continuación muestra en cuáles de esas carpetas se aplica un ajuste cuando inicias Claude Code desde ellas. Haz clic en un archivo de configuración para ver las carpetas que alcanza.

425 425 

426<SettingsScope />426<SettingsScope />

427 427 

428* **`~/.claude/settings.json`**: cada proyecto en su máquina, y nada en la de su compañero de equipo o en la sesión en la nube428* **`~/.claude/settings.json`**: cada proyecto en tu máquina, y nada en la de tu compañero de equipo ni en la sesión en la nube

429* **`acme-app/.claude/settings.json`**: su `acme-app/`. Alcanza el clon de su compañero de equipo y la sesión en la nube solo si confirma el archivo en el control de versiones; hasta entonces, es un archivo en su disco como cualquier otro y nadie más lo tiene429* **`acme-app/.claude/settings.json`**: tu `acme-app/`. Alcanza el clon de tu compañero de equipo y la sesión en la nube solo si haces commit del archivo en el control de versiones; hasta entonces, es un archivo en tu disco como cualquier otro y nadie más lo tiene

430* **`acme-app/.claude/settings.local.json`**: su `acme-app/` solo. Claude Code lo agrega a sus exclusiones globales de git la primera vez que escribe el archivo, por lo que se mantiene fuera de sus confirmaciones; si crea el archivo a mano, [agréguelo a `.gitignore` usted mismo](#keep-personal-settings-out-of-a-repository)430* **`acme-app/.claude/settings.local.json`**: solo tu `acme-app/`. Claude Code lo agrega a tus exclusiones globales de git la primera vez que escribe el archivo, por lo que se mantiene fuera de tus commits; si creas el archivo a mano, [agrégalo a `.gitignore` tú mismo](#keep-personal-settings-out-of-a-repository)

431* **Configuraciones administradas**, ya sea un archivo `managed-settings.json`, una política MDM, o [configuraciones administradas por servidor](/docs/es/server-managed-settings) desde la consola de claude.ai: cada proyecto en cada máquina en la que su organización lo implementa, o en la que inicia sesión con su cuenta de organización. Solo las configuraciones administradas por servidor alcanzan la sesión en la nube431* **Configuración administrada**, ya sea un archivo `managed-settings.json`, una política MDM o la [configuración administrada por servidor](/docs/es/server-managed-settings) desde la consola de claude.ai: cada proyecto en cada máquina en la que tu organización la implementa, o en la que inicias sesión con tu cuenta de organización. Solo la configuración administrada por servidor alcanza la sesión en la nube

432 432 

433<span id="which-files-you-have" />433<span id="which-files-you-have" />

434 434 

435<h3 id="find-or-create-your-settings-files">435<h3 id="find-or-create-your-settings-files">

436 Encuentre o cree sus archivos de configuración436 Encuentra o crea tus archivos de configuración

437</h3>437</h3>

438 438 

439Instalar Claude Code no crea ningún archivo de configuración. Si su máquina o proyecto ya tiene uno, vino de una de estas fuentes:439Instalar Claude Code no crea ningún archivo de configuración. Si tu máquina o proyecto ya tiene uno, vino de una de estas fuentes:

440 440 

441* **Administrado**: su organización lo implementa. Usted no lo crea ni lo edita.441* **Administrado**: tu organización lo implementa. Tú no lo creas ni lo editas.

442* **Proyecto compartido**: un proyecto que ya usa Claude Code puede tener uno confirmado. Si no, créelo en `.claude/settings.json` en la carpeta del proyecto.442* **Proyecto compartido**: un proyecto que ya usa Claude Code puede tener uno con commit. Si no, créalo en `.claude/settings.json` en la carpeta del proyecto.

443* **Usuario** y **Proyecto local**: créelos usted mismo, o deje que Claude Code los cree. Escribe `~/.claude/settings.json` la primera vez que cambia una opción en el menú `/config` que almacena en configuraciones de usuario, como el tema, y `.claude/settings.local.json` la primera vez que da una aprobación permanente en un aviso de permiso, como "Sí, y no preguntes de nuevo" para un comando Bash. Algunas opciones de `/config`, incluyendo **Mostrar consejos**, se guardan en `.claude/settings.local.json` en su lugar.443* **Usuario** y **Proyecto local**: créalos tú mismo, o deja que Claude Code los cree. Escribe `~/.claude/settings.json` la primera vez que cambias una opción en el menú `/config` que almacena en la configuración de usuario, como el tema, y `.claude/settings.local.json` la primera vez que das una aprobación permanente en una solicitud de permiso, como "Sí, y no preguntes de nuevo" para un comando Bash. Algunas opciones de `/config`, incluida **Mostrar consejos**, se guardan en `.claude/settings.local.json` en lugar del archivo de usuario.

444 444 

445<Info>445<Info>

446 En Windows, `~/.claude` significa `%USERPROFILE%\.claude`. Para mantener los archivos del directorio de inicio en otro lugar, establezca [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars); Claude Code almacena sus configuraciones, historial de sesiones y plugins allí en su lugar.446 En Windows, `~/.claude` significa `%USERPROFILE%\.claude`. Para mantener los archivos del directorio home en otro lugar, establece [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars); Claude Code entonces almacena tu configuración, historial de sesiones y plugins allí.

447</Info>447</Info>

448 448 

449Claude Code también mantiene un quinto archivo, [`~/.claude.json`](/docs/es/claude-directory#ce-claude-json), que escribe para sí mismo; no necesita editarlo. Contiene su sesión de inicio de sesión, configuraciones de [servidor MCP](/docs/es/mcp), estado por proyecto como decisiones de confianza, y las [claves de configuración global](/docs/es/settings-reference#global-config-settings) que `/config` escribe para usted.449Claude Code también mantiene un quinto archivo, [`~/.claude.json`](/docs/es/claude-directory#ce-claude-json), que escribe para sí mismo; no necesitas editarlo. Contiene tu sesión de inicio de sesión, configuraciones de [servidores MCP](/docs/es/mcp), estado por proyecto como decisiones de confianza, y las [claves de configuración global](/docs/es/settings-reference#global-config-settings) que `/config` escribe por ti.

450 450 

451<h3 id="share-settings-with-your-team">451<h3 id="share-settings-with-your-team">

452 Comparta configuraciones con su equipo452 Comparte la configuración con tu equipo

453</h3>453</h3>

454 454 

455Confirme `.claude/settings.json` para que todos los que clonan el repositorio obtengan los mismos permisos, hooks y plugins. Cada compañero de equipo aún puede anularlo para sí mismo en su propio `.claude/settings.local.json`, por lo que las excepciones personales no necesitan una confirmación. Para un archivo de equipo completo, vea [configuraciones compartidas de un equipo](/docs/es/settings-example#a-teams-shared-settings).455Haz commit de `.claude/settings.json` para que todos los que clonen el repositorio obtengan los mismos permisos, hooks y plugins. Cada compañero de equipo aún puede sobrescribirlo para sí mismo en su propio `.claude/settings.local.json`, por lo que las excepciones personales no necesitan un commit. Para un archivo de equipo completo, consulta [la configuración compartida de un equipo](/docs/es/settings-example#a-teams-shared-settings).

456 456 

457Parte de lo que confirma espera hasta que cada compañero de equipo [confíe en la carpeta](/docs/es/permissions#project-allow-rules-and-workspace-trust), y algunas claves nunca surten efecto desde un archivo de repositorio; [Solucione una configuración que no se aplica](#common-cases) cubre ambas.457Parte de lo que incluyes en el commit espera hasta que cada compañero de equipo [confíe en la carpeta](/docs/es/permissions#project-allow-rules-and-workspace-trust), y algunas claves nunca surten efecto desde un archivo del repositorio; [Solucionar un ajuste que no se aplica](#common-cases) cubre ambos casos.

458 458 

459<span id="local-settings-file" />459<span id="local-settings-file" />

460 460 


465<span id="keep-personal-settings-out-of-the-repository" />465<span id="keep-personal-settings-out-of-the-repository" />

466 466 

467<h3 id="keep-personal-settings-out-of-a-repository">467<h3 id="keep-personal-settings-out-of-a-repository">

468 Mantenga las configuraciones personales fuera de un repositorio468 Mantén la configuración personal fuera de un repositorio

469</h3>469</h3>

470 470 

471Para cambiar una configuración para usted en un proyecto sin cambiarla para sus compañeros de equipo, guárdela en `.claude/settings.local.json` dentro del proyecto. Claude Code aplica ese archivo sobre el `.claude/settings.json` confirmado, por lo que si el archivo de su equipo establece `"model": "claude-sonnet-5"` y usted quiere Opus, ponga `"model": "claude-opus-5-5"` en su archivo local y solo sus sesiones cambian.471Para cambiar un ajuste solo para ti en un proyecto sin cambiarlo para tus compañeros de equipo, guárdalo en `.claude/settings.local.json` dentro del proyecto. Claude Code aplica ese archivo sobre el `.claude/settings.json` con commit, por lo que si el archivo de tu equipo establece `"model": "claude-sonnet-5"` y tú quieres Opus, pon `"model": "claude-opus-5-5"` en tu archivo local y solo tus sesiones cambian.

472 472 

473Claude Code también escribe en este archivo, lo mantiene fuera de sus confirmaciones, y aplica sus reglas allow sin el paso de confianza:473Claude Code también escribe en este archivo, lo mantiene fuera de tus commits y aplica sus reglas allow sin el paso de confianza:

474 474 

475* **Claude Code también lo escribe.** Cuando Claude pide permiso para ejecutar un comando Bash y elige "Sí, y no preguntes de nuevo", Claude Code guarda esa [aprobación de permiso](/docs/es/permissions#permission-system) aquí como una regla `allow`.475* **Claude Code también lo escribe.** Cuando Claude pide permiso para ejecutar un comando Bash y eliges "Sí, y no preguntes de nuevo", Claude Code guarda esa [aprobación de permiso](/docs/es/permissions#permission-system) aquí como una regla `allow`.

476* **No necesita gitignore usted mismo, a menos que lo haya creado a mano.** La primera vez que Claude Code escribe el archivo en un repositorio de git que aún no lo ignora, agrega `**/.claude/settings.local.json` a su archivo de exclusiones global de git, por lo que el archivo se mantiene fuera de sus confirmaciones en cada repositorio. Ese archivo es `core.excludesFile` cuando su configuración global de git lo establece en una ruta absoluta o con prefijo `~`; de lo contrario es `$XDG_CONFIG_HOME/git/ignore`, o `~/.config/git/ignore` cuando `XDG_CONFIG_HOME` no está establecido. Si creó el archivo a mano y Claude Code aún no ha escrito en él, agréguelo a `.gitignore` usted mismo.476* **No necesitas agregarlo a gitignore tú mismo, a menos que lo hayas creado a mano.** La primera vez que Claude Code escribe el archivo en un repositorio de git que aún no lo ignora, agrega `**/.claude/settings.local.json` a tu archivo global de exclusiones de git, por lo que el archivo se mantiene fuera de tus commits en cada repositorio. Ese archivo es `core.excludesFile` cuando tu configuración global de git lo establece en una ruta absoluta o con prefijo `~`; de lo contrario es `$XDG_CONFIG_HOME/git/ignore`, o `~/.config/git/ignore` cuando `XDG_CONFIG_HOME` no está establecido. Si creaste el archivo a mano y Claude Code aún no ha escrito en él, agrégalo a `.gitignore` tú mismo.

477* **Sus reglas allow no esperan confianza mientras el archivo permanece sin rastrear.** Porque el archivo es suyo y no del repositorio, Claude Code aplica sus reglas `allow` sin el paso de [confianza del espacio de trabajo](/docs/es/permissions#project-allow-rules-and-workspace-trust) que requiere para el archivo confirmado. Si el archivo es rastreado por git, el paso de confianza también se aplica a él; vea [Cuando su archivo de configuración local necesita confianza](/docs/es/permissions#when-your-local-settings-file-needs-trust).477* **Sus reglas allow no esperan confianza mientras el archivo permanezca sin rastrear.** Como el archivo es tuyo y no del repositorio, Claude Code aplica sus reglas `allow` sin el paso de [confianza del espacio de trabajo](/docs/es/permissions#project-allow-rules-and-workspace-trust) que requiere para el archivo con commit. Si git rastrea el archivo, el paso de confianza también se le aplica; consulta [Cuando tu archivo de configuración local necesita confianza](/docs/es/permissions#when-your-local-settings-file-needs-trust).

478 478 

479<span id="where-claude-code-looks-for-each-file" />479<span id="where-claude-code-looks-for-each-file" />

480 480 


483<span id="local-allow-rules-dont-wait-for-workspace-trust" />483<span id="local-allow-rules-dont-wait-for-workspace-trust" />

484 484 

485<h4 id="where-claude-code-keeps-the-local-file-in-a-git-repository">485<h4 id="where-claude-code-keeps-the-local-file-in-a-git-repository">

486 Dónde Claude Code mantiene el archivo local en un repositorio de git486 Dónde mantiene Claude Code el archivo local en un repositorio de git

487</h4>487</h4>

488 488 

489Cuando Claude pide permiso para ejecutar un comando Bash y elige "Sí, y no preguntes de nuevo", Claude Code guarda esa aprobación como una regla `allow` en `.claude/settings.local.json`. Si inicia Claude Code en un subdirectorio de un repositorio de git, lee y escribe ese archivo en la raíz del repositorio y aplica la aprobación en todo el repositorio. En un [worktree](/docs/es/worktrees), usa el archivo en la raíz del checkout principal.489Cuando Claude pide permiso para ejecutar un comando Bash y eliges "Sí, y no preguntes de nuevo", Claude Code guarda esa aprobación como una regla `allow` en `.claude/settings.local.json`. Si inicias Claude Code en un subdirectorio de un repositorio de git, lee y escribe ese archivo en la raíz del repositorio y aplica la aprobación en todo el repositorio. En un [worktree](/docs/es/worktrees), usa el archivo en la raíz del checkout principal.

490 490 

491Dos reglas califican la ubicación raíz:491Dos reglas matizan la ubicación en la raíz:

492 492 

493* **Cuando el archivo se queda con `.claude/settings.json` en su lugar**: fuera de un repositorio de git, cuando la raíz del repositorio es su directorio de inicio, en Windows, o cuando la raíz del repositorio o su entrada `.git` o `.claude` no es propiedad de su usuario.493* **Cuando el archivo se queda junto a `.claude/settings.json`**: fuera de un repositorio de git, cuando la raíz del repositorio es tu directorio home, en Windows, o cuando la raíz del repositorio o su entrada `.git` o `.claude` no es propiedad de tu usuario.

494* **Las rutas en el archivo no se anclan en la raíz del repositorio**: una regla de permiso que comienza con `/` o una ruta de sandbox relativa [se ancla en el directorio de trabajo principal de la sesión](/docs/es/permissions#read-and-edit) en su lugar.494* **Las rutas en el archivo no se anclan en la raíz del repositorio**: una regla de permisos que comienza con `/` o una ruta relativa del sandbox [se ancla en el directorio de trabajo principal de la sesión](/docs/es/permissions#read-and-edit).

495 495 

496Antes de v2.1.211, Claude Code mantenía el archivo en el directorio de inicio. Aún lee un archivo que una versión anterior dejó allí junto al archivo raíz; donde ambos establecen la misma clave, se aplica el valor de la raíz, y las reglas de permiso de ambos archivos se aplican. El asistente [`resolveSettings()`](/docs/es/agent-sdk/typescript#resolvesettings) del Agent SDK siempre lee el archivo desde el directorio de inicio.496Antes de v2.1.211, Claude Code mantenía el archivo en el directorio donde lo iniciaste. Aún lee un archivo que una versión anterior dejó allí junto al archivo de la raíz; donde ambos establecen la misma clave, se aplica el valor de la raíz, y se aplican las reglas de permisos de ambos archivos. El helper [`resolveSettings()`](/docs/es/agent-sdk/typescript#resolvesettings) del Agent SDK siempre lee el archivo desde el directorio donde se inició.

497 497 

498Claude Code lee el `.claude/settings.json` compartido desde el [directorio de trabajo principal](/docs/es/permissions#working-directories) de la sesión, por lo que para usar un archivo confirmado en la raíz del repositorio, inicie Claude Code allí. Después de [mover la sesión con `/cd`](/docs/es/permissions#move-the-session-to-another-directory), Claude Code lee ambos archivos de proyecto desde el nuevo directorio en su lugar, colocando el archivo local por las mismas reglas. Leerlos desde el directorio al que se movió requiere Claude Code v2.1.246 o posterior.498Claude Code lee el `.claude/settings.json` compartido desde el [directorio de trabajo principal](/docs/es/permissions#working-directories) de la sesión, así que para usar un archivo con commit en la raíz del repositorio, inicia Claude Code allí. Después de [mover la sesión con `/cd`](/docs/es/permissions#move-the-session-to-another-directory), Claude Code lee ambos archivos de proyecto desde el nuevo directorio, ubicando el archivo local según las mismas reglas. Leerlos desde el directorio al que te moviste requiere Claude Code v2.1.246 o posterior.

499 499 

500<span id="managed-settings-delivery" />500<span id="managed-settings-delivery" />

501 501 


508<span id="settings-your-organization-manages" />508<span id="settings-your-organization-manages" />

509 509 

510<h3 id="check-what-your-organization-enforces">510<h3 id="check-what-your-organization-enforces">

511 Verifique qué aplica su organización511 Verifica qué impone tu organización

512</h3>512</h3>

513 513 

514Si su organización administra Claude Code, algunas configuraciones se deciden para usted y nada de lo que ponga en sus propios archivos las cambia. Para ver cuáles, ejecute `/status`: la línea `Setting sources` nombra la fuente administrada que se aplica a usted. Las configuraciones administradas se aplican dondequiera que Claude Code se ejecute en esta máquina; [Lo que un desarrollador puede cambiar](/docs/es/managed-settings#what-a-developer-can-change) cubre derechos de administrador local y herramientas distintas de Claude Code.514Si tu organización administra Claude Code, algunos ajustes se deciden por ti y nada de lo que pongas en tus propios archivos los cambia. Para ver cuáles, ejecuta `/status`: la línea `Setting sources` nombra la fuente administrada que se te aplica. La configuración administrada se aplica dondequiera que Claude Code se ejecute en esta máquina; [Lo que un desarrollador puede cambiar](/docs/es/managed-settings#what-a-developer-can-change) cubre los derechos de administrador local y las herramientas distintas de Claude Code.

515 515 

516Las configuraciones administradas lo alcanzan a través de los [mecanismos de entrega](/docs/es/managed-settings#delivery-mechanisms) en la página de configuraciones administradas, más comúnmente:516La configuración administrada te llega a través de los [mecanismos de entrega](/docs/es/managed-settings#delivery-mechanisms) de la página de configuración administrada, más comúnmente:

517 517 

518* [Configuraciones administradas por servidor](/docs/es/server-managed-settings), que Claude Code obtiene de la consola de administrador de claude.ai o de una [puerta de aplicaciones Claude](/docs/es/claude-apps-gateway) autohospedada518* [Configuración administrada por servidor](/docs/es/server-managed-settings), que Claude Code obtiene de la consola de administración de claude.ai o de un [gateway de aplicaciones de Claude](/docs/es/claude-apps-gateway) autohospedado

519* Políticas MDM o a nivel de SO, y archivos `managed-settings.json` en un directorio del sistema519* Políticas MDM o a nivel del sistema operativo, y archivos `managed-settings.json` en un directorio del sistema

520* Un host de incrustación como Claude Desktop, a través de la opción SDK `managedSettings`; vea [Controlar política desde un host de incrustación](/docs/es/managed-settings#parent-settings-from-embedding-hosts)520* Un host de incrustación como Claude Desktop, a través de la opción `managedSettings` del SDK; consulta [Controlar la política desde un host de incrustación](/docs/es/managed-settings#parent-settings-from-embedding-hosts)

521 521 

522En una sesión de [Cowork](https://claude.com/docs/cowork/overview) que se ejecuta en su máquina en la aplicación Claude Desktop, Claude Code no obtiene configuraciones administradas por servidor de la consola de administrador de claude.ai, y lee la política implementada en su dispositivo a menos que la configuración de Claude Desktop de su organización establezca `requireCoworkFullVmSandbox`. [Dónde y cuándo se aplica una política](/docs/es/managed-settings#where-and-when-a-policy-applies) cubre Cowork y sesiones en la nube.522En 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 Code no obtiene la configuración administrada por servidor de la consola de administración de claude.ai, y lee la política implementada en tu dispositivo a menos que la configuración de Claude Desktop de tu organización establezca `requireCoworkFullVmSandbox`. [Dónde y cuándo se aplica una política](/docs/es/managed-settings#where-and-when-a-policy-applies) cubre Cowork y las sesiones en la nube.

523 523 

524Si es el administrador, [Configure Claude Code para su organización](/docs/es/admin-setup) lo guía a través de elegir qué aplicar, y [Implemente configuraciones administradas](/docs/es/managed-settings) cubre la entrega y cómo confirmar que una política está en vigor.524Si eres el administrador, [Configurar Claude Code para tu organización](/docs/es/admin-setup) te guía para elegir qué imponer, y [Implementar la configuración administrada](/docs/es/managed-settings) cubre la entrega y cómo confirmar que una política está en vigor. Para la advertencia que puede mostrar el editor de configuración administrada en la consola de administración de claude.ai, consulta [Configurar la configuración administrada por servidor](/docs/es/server-managed-settings#configure-server-managed-settings).

525 525 

526<h2 id="change-a-setting">526<h2 id="change-a-setting">

527 Cambie una configuración527 Cambie una configuración


809 809 

810Una [sesión en la nube](/docs/es/claude-code-on-the-web) se ejecuta en un [entorno en la nube](/docs/es/cloud-environments) en un clon fresco de su repositorio, no en su máquina. Eso cambia qué configuraciones lo alcanzan:810Una [sesión en la nube](/docs/es/claude-code-on-the-web) se ejecuta en un [entorno en la nube](/docs/es/cloud-environments) en un clon fresco de su repositorio, no en su máquina. Eso cambia qué configuraciones lo alcanzan:

811 811 

812* **Configuraciones compartidas de proyecto** (`.claude/settings.json`): se leen en una sesión con un repositorio, porque el archivo es parte del clon y la sesión comienza dentro de él. Confirme una configuración allí para aplicarla en esas sesiones. Una sesión con varios repositorios comienza por encima de los clones y lee solo las claves `enabledPlugins` y `extraKnownMarketplaces` de cada `.claude/settings.json` del repositorio, no reglas de permisos, hooks, `env` u otras claves. Los mercados y plugins que esas dos claves declaran aún [no se cargan en una sesión en la nube](/docs/es/cloud-environments#what-carries-over-from-your-setup).812* **Configuraciones compartidas de proyecto** (`.claude/settings.json`): se leen en una sesión con un repositorio, porque el archivo es parte del clon y la sesión comienza dentro de él. Haz commit de un ajuste allí para aplicarlo en esas sesiones. En un entorno alojado por Anthropic, una sesión con varios repositorios comienza por encima de los clones y lee solo las claves `enabledPlugins` y `extraKnownMarketplaces` del `.claude/settings.json` de cada repositorio, no reglas de permisos, hooks, `env` u otras claves. Los marketplaces y plugins que esas dos claves declaran aún [no se cargan en una sesión en la nube](/docs/es/cloud-environments#what-carries-over-from-your-setup). Para un entorno autohospedado, consulta [qué configuración del repositorio se aplica](/docs/es/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories).

813* **Configuraciones de usuario y proyecto local** (`~/.claude/settings.json` y `.claude/settings.local.json`): no se leen. Ambas permanecen en su máquina, y el archivo local no está en el clon.813* **Configuraciones de usuario y proyecto local** (`~/.claude/settings.json` y `.claude/settings.local.json`): no se leen. Ambas permanecen en su máquina, y el archivo local no está en el clon.

814* **Configuraciones administradas**: un archivo `managed-settings.json` o perfil MDM en su dispositivo no alcanza una sesión en la nube. Las [configuraciones administradas por servidor](/docs/es/server-managed-settings) de su organización sí; [cobertura de superficie](/docs/es/model-config#surface-coverage) enumera qué sesiones en la nube las reciben. Un [entorno autohospedado](/docs/es/self-hosted-environments) también lee el archivo de configuraciones administradas en su imagen de ejecutor. [Cómo Claude Code combina fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources) dice cuándo se aplica ese archivo.814* **Configuraciones administradas**: un archivo `managed-settings.json` o perfil MDM en su dispositivo no alcanza una sesión en la nube. Las [configuraciones administradas por servidor](/docs/es/server-managed-settings) de su organización sí; [cobertura de superficie](/docs/es/model-config#surface-coverage) enumera qué sesiones en la nube las reciben. Un [entorno autohospedado](/docs/es/self-hosted-environments) también lee el archivo de configuraciones administradas en su imagen de ejecutor. [Cómo Claude Code combina fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources) dice cuándo se aplica ese archivo.

815* **`/config`**: en su navegador en claude.ai/code, abre la sección Claude Code de su configuración de claude.ai en lugar de cambiar un valor. Para cambiar una configuración para una sesión en la nube, establezca una [variable de entorno](/docs/es/cloud-environments#set-environment-variables) en el entorno, o en una sesión con un repositorio, confirme la clave en el `.claude/settings.json` de ese repositorio.815* **`/config`**: en su navegador en claude.ai/code, abre la sección Claude Code de su configuración de claude.ai en lugar de cambiar un valor. Para cambiar una configuración para una sesión en la nube, establezca una [variable de entorno](/docs/es/cloud-environments#set-environment-variables) en el entorno, o en una sesión con un repositorio, confirme la clave en el `.claude/settings.json` de ese repositorio.

setup.md +20 −10

Details

638 638 

639Para eliminar Claude Code, siga las instrucciones para su método de instalación. Si `claude` aún se ejecuta después, probablemente tenga una segunda instalación o un alias de shell residual de un instalador anterior. Consulte [Verificar instalaciones conflictivas](/docs/es/troubleshoot-install#check-for-conflicting-installations) para encontrarlo y eliminarlo.639Para eliminar Claude Code, siga las instrucciones para su método de instalación. Si `claude` aún se ejecuta después, probablemente tenga una segunda instalación o un alias de shell residual de un instalador anterior. Consulte [Verificar instalaciones conflictivas](/docs/es/troubleshoot-install#check-for-conflicting-installations) para encontrarlo y eliminarlo.

640 640 

641<h3 id="native-installation">641<span id="native-installation" />

642 Instalación nativa642 

643<h3 id="uninstall-a-native-installation">

644 Desinstalar una instalación nativa

643</h3>645</h3>

644 646 

645Elimine el binario de Claude Code y los archivos de versión:647Elimine el binario de Claude Code y los archivos de versión:


660 </Tab>662 </Tab>

661</Tabs>663</Tabs>

662 664 

663<h3 id="homebrew-installation">665<span id="homebrew-installation" />

664 Instalación de Homebrew666 

667<h3 id="uninstall-with-homebrew">

668 Desinstalar con Homebrew

665</h3>669</h3>

666 670 

667Elimine el cask de Homebrew que instaló. Si instaló el cask estable:671Elimine el cask de Homebrew que instaló. Si instaló el cask estable:


676brew uninstall --cask claude-code@latest680brew uninstall --cask claude-code@latest

677```681```

678 682 

679<h3 id="winget-installation">683<span id="winget-installation" />

680 Instalación de WinGet684 

685<h3 id="uninstall-with-winget">

686 Desinstalar con WinGet

681</h3>687</h3>

682 688 

683Elimine el paquete de WinGet:689Elimine el paquete de WinGet:


686winget uninstall Anthropic.ClaudeCode692winget uninstall Anthropic.ClaudeCode

687```693```

688 694 

689<h3 id="apt-/-dnf-/-apk">695<span id="apt-/-dnf-/-apk" />

690 apt / dnf / apk696 

697<h3 id="uninstall-with-apt-dnf-or-apk">

698 Desinstalar con apt, dnf o apk

691</h3>699</h3>

692 700 

693Elimine el paquete y la configuración del repositorio:701Elimine el paquete y la configuración del repositorio:


716 </Tab>724 </Tab>

717</Tabs>725</Tabs>

718 726 

719<h3 id="npm">727<span id="npm" />

720 npm728 

729<h3 id="uninstall-with-npm">

730 Desinstalar con npm

721</h3>731</h3>

722 732 

723Elimine el paquete npm global:733Elimine el paquete npm global:

skills.md +2 −0

Details

94| `migrate` | Actualice su código existente de Claude API a un modelo más nuevo | Anterior a v2.1.221 |94| `migrate` | Actualice su código existente de Claude API a un modelo más nuevo | Anterior a v2.1.221 |

95| `upgrade` | Mueva la dependencia del SDK de Anthropic de su proyecto a través de una versión principal, actualmente el paquete `anthropic` de Python de 0.x a 1.x | v2.1.236 o posterior |95| `upgrade` | Mueva la dependencia del SDK de Anthropic de su proyecto a través de una versión principal, actualmente el paquete `anthropic` de Python de 0.x a 1.x | v2.1.236 o posterior |

96| `managed-agents-onboard` | Recorra la creación de un nuevo Managed Agent | Anterior a v2.1.221 |96| `managed-agents-onboard` | Recorra la creación de un nuevo Managed Agent | Anterior a v2.1.221 |

97| `managed-agents-onboard <url>` | Crea el Managed Agent que describe la página en la URL, como una página de la [documentación de Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) | v2.1.290 o posterior |

98| `managed-agents-onboard <quickstart-name>` | Crea una de las plantillas de inicio rápido de la Console, como `deep-researcher`. Si escribes una palabra que no es un nombre de plantilla, Claude enumera los nombres válidos | v2.1.290 o posterior |

97| `prompt-audit` | Marque las instrucciones escritas para modelos más antiguos en sus prompts, skills y descripciones de herramientas y proponga correcciones como un diff | v2.1.221 o posterior |99| `prompt-audit` | Marque las instrucciones escritas para modelos más antiguos en sus prompts, skills y descripciones de herramientas y proponga correcciones como un diff | v2.1.221 o posterior |

98| `cost-optimize` | Perfil dónde va el gasto de Claude API de su proyecto y proponga ahorros de opciones como prompt caching, recorte de tokens de entrada y salida innecesarios, procesamiento por lotes, esfuerzo y elección de modelo, un cambio a la vez | v2.1.247 o posterior |100| `cost-optimize` | Perfil dónde va el gasto de Claude API de su proyecto y proponga ahorros de opciones como prompt caching, recorte de tokens de entrada y salida innecesarios, procesamiento por lotes, esfuerzo y elección de modelo, un cambio a la vez | v2.1.247 o posterior |

99| `build-eval` | Construya un conjunto de evaluación para su aplicación impulsada por Claude | v2.1.259 o posterior |101| `build-eval` | Construya un conjunto de evaluación para su aplicación impulsada por Claude | v2.1.259 o posterior |

sub-agents.md +4 −2

Details

609El modo de permiso de la conversación principal decide si Claude Code usa el valor que establece:609El modo de permiso de la conversación principal decide si Claude Code usa el valor que establece:

610 610 

611* Cuando la conversación principal está en `bypassPermissions`, `acceptEdits`, o [modo auto](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), el subagente se ejecuta en ese mismo modo y Claude Code ignora el `permissionMode` que establece. Bajo modo auto, el clasificador evalúa las llamadas de herramientas del subagente con las reglas de bloqueo y permiso de la conversación principal. Cuando el subagente termina, el clasificador también revisa su trabajo y su informe final antes de que el informe se entregue, como [Cómo el modo auto maneja subagentes](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) describe.611* Cuando la conversación principal está en `bypassPermissions`, `acceptEdits`, o [modo auto](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), el subagente se ejecuta en ese mismo modo y Claude Code ignora el `permissionMode` que establece. Bajo modo auto, el clasificador evalúa las llamadas de herramientas del subagente con las reglas de bloqueo y permiso de la conversación principal. Cuando el subagente termina, el clasificador también revisa su trabajo y su informe final antes de que el informe se entregue, como [Cómo el modo auto maneja subagentes](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) describe.

612* Cuando la conversación principal está en modo `default`, `dontAsk`, o `plan`, el subagente se ejecuta en el modo de permiso que establece, excepto `bypassPermissions`. Un subagente que declara `bypassPermissions` mantiene el modo de la conversación principal en su lugar. La excepción `bypassPermissions` requiere Claude Code v2.1.267 o posterior.612* Cuando la conversación principal está en modo `default`, `dontAsk` o `plan`, el subagente se ejecuta en el modo de permisos que estableces. En su lugar, mantiene el modo de permisos de la conversación principal en estos casos:

613 * Estableces `bypassPermissions`. La excepción de `bypassPermissions` requiere Claude Code v2.1.267 o posterior.

614 * Estableces `auto` y el [modo automático no está disponible](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) para el subagente, por ejemplo cuando un archivo de configuración establece [`disableAutoMode`](/docs/es/settings-reference#disableautomode) o el modelo del subagente no soporta el modo automático.

613 615 

614`permissionMode` acepta estos valores, y `manual` como alias para `default`:616`permissionMode` acepta estos valores, y `manual` como alias para `default`:

615 617 


640Implement API endpoints. Follow the conventions and patterns from the preloaded skills.642Implement API endpoints. Follow the conventions and patterns from the preloaded skills.

641```643```

642 644 

643El contenido completo de cada skill listada se inyecta en el contexto del subagente al inicio. Este campo controla qué skills se precargan, no qué skills el subagente puede acceder: sin él, el subagente aún puede descubrir e invocar skills de proyecto, usuario y plugin a través de la herramienta Skill durante la ejecución. Para evitar que un subagente invoque skills en absoluto, omita `Skill` de la lista [`tools`](#available-tools) o agréguelo a `disallowedTools`.645El contenido completo de cada skill listado se inyecta en el contexto del subagente al inicio, hasta los primeros 32 nombres distintos de la lista. Este campo controla qué skills se precargan, no a qué skills puede acceder el subagente: sin él, el subagente aún puede descubrir e invocar skills de proyecto, usuario y plugin a través de la herramienta Skill durante la ejecución. Para evitar que un subagente invoque skills en absoluto, omite `Skill` de la lista [`tools`](#available-tools) o agrégalo a `disallowedTools`.

644 646 

645No puedes precargar skills que establezcan [`disable-model-invocation: true`](/docs/es/skills#control-who-invokes-a-skill), ya que la precarga se toma del mismo conjunto de skills que Claude puede invocar. Esto incluye el skill integrado `/verify`, que Claude no puede ejecutar por sí solo.647No puedes precargar skills que establezcan [`disable-model-invocation: true`](/docs/es/skills#control-who-invokes-a-skill), ya que la precarga se toma del mismo conjunto de skills que Claude puede invocar. Esto incluye el skill integrado `/verify`, que Claude no puede ejecutar por sí solo.

646 648 

Details

666 666 

667* WebFetch rechaza `localhost` y cualquier otro nombre de host sin un punto, como un nombre de intranet simple, antes de hacer una solicitud. El [error que devuelve](/docs/es/errors#webfetch-cannot-fetch-localhost) le dice a Claude que alcance servidores locales con `curl` a través de Bash en su lugar.667* WebFetch rechaza `localhost` y cualquier otro nombre de host sin un punto, como un nombre de intranet simple, antes de hacer una solicitud. El [error que devuelve](/docs/es/errors#webfetch-cannot-fetch-localhost) le dice a Claude que alcance servidores locales con `curl` a través de Bash en su lugar.

668* Las URLs HTTP se actualizan automáticamente a HTTPS.668* Las URLs HTTP se actualizan automáticamente a HTTPS.

669* Las páginas grandes se truncan a un límite de caracteres fijo antes del procesamiento.669* WebFetch lee hasta 100,000 caracteres del contenido de una página por llamada. En Claude Code v2.1.290 o posterior, el resultado de una página más larga le indica a Claude cuánto quedó sin leer, para que Claude pueda obtener la siguiente parte.

670* 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.670* 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.

671* 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.671* 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.

672* 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.672* 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.

Details

4 4 

5# Solucionar problemas de instalación e inicio de sesión5# Solucionar problemas de instalación e inicio de sesión

6 6 

7> Corrija errores de comando no encontrado, PATH, permisos, red y autenticación al instalar o iniciar sesión en Claude Code.7> Corrige errores de comando no encontrado, PATH, permisos, red y autenticación al instalar o iniciar sesión en Claude Code.

8 8 

9Si la instalación falla o no puede iniciar sesión, encuentre su error a continuación. Para problemas en tiempo de ejecución después de que Claude Code esté funcionando, consulte [Solución de problemas](/docs/es/troubleshooting). Para problemas de configuración como configuraciones que no se aplican o hooks que no se disparan, consulte [Depurar su configuración](/docs/es/debug-your-config).9Si la instalación falla o no puedes iniciar sesión, encuentra tu error a continuación. Para problemas en tiempo de ejecución después de que Claude Code esté funcionando, consulta [Solución de problemas](/docs/es/troubleshooting). Para problemas de configuración como ajustes que no se aplican o hooks que no se disparan, consulta [Depurar tu configuración](/docs/es/debug-your-config).

10 10 

11<h2 id="find-your-error">11<h2 id="find-your-error">

12 Encuentre su error12 Encuentra tu error

13</h2>13</h2>

14 14 

15Haga coincidir el mensaje de error o síntoma que está viendo con una solución:15Haz coincidir el mensaje de error o síntoma que estás viendo con una solución:

16 16 

17| Lo que ve | Solución |17| Lo que ves | Solución |

18| :- | :- |18| :- | :- |

19| `command not found: claude` o `'claude' is not recognized` | [Corrija su PATH](#command-not-found-claude-after-installation) |19| `command not found: claude` o `'claude' is not recognized` | [Corrige tu PATH](#command-not-found-claude-after-installation) |

20| `Native installation exists but ... is not in your PATH` | [Agrega el directorio de instalación a tu PATH](#verify-your-path) |

21| `INFO: Could not find files for the given pattern(s).` de `where.exe claude` | [Verifica si Claude Code está instalado](#check-for-conflicting-installations) |

22| `zsh: permission denied: /Users/you/.zshrc` o `bash: /home/you/.bashrc: Permission denied` | [Haz que tu archivo de configuración del shell tenga permisos de escritura](#permission-denied-when-adding-to-your-path) |

20| `syntax error near unexpected token '<'` | [El script de instalación devuelve HTML](#install-script-returns-html-instead-of-a-shell-script) |23| `syntax error near unexpected token '<'` | [El script de instalación devuelve HTML](#install-script-returns-html-instead-of-a-shell-script) |

24| `< was unexpected at this time` en CMD | [El script de instalación devuelve HTML](#install-script-returns-html-instead-of-a-shell-script) |

25| `The term 'System.Xml.XmlDocument' is not recognized` | [El script de instalación devuelve HTML](#install-script-returns-html-instead-of-a-shell-script) |

21| `curl: (22) The requested URL returned error: 403` | [El script de instalación devolvió 403](#install-script-returns-html-instead-of-a-shell-script) |26| `curl: (22) The requested URL returned error: 403` | [El script de instalación devolvió 403](#install-script-returns-html-instead-of-a-shell-script) |

22| `curl: (23)` o `curl: (56) Failure writing output to destination` | [Verifique la conectividad o use un instalador alternativo](#curl-56-failure-writing-output-to-destination) |27| `curl: (23)` o `curl: (56) Failure writing output to destination` | [Verifica la conectividad o usa un instalador alternativo](#curl-56-failure-writing-output-to-destination) |

23| `Killed` durante la instalación en Linux, o `Installation was killed before it could finish (exit code 137)` | [Libere memoria o agregue espacio de intercambio](#install-killed-on-low-memory-linux-servers) |28| `Killed` durante la instalación en Linux | [Libera memoria o agrega espacio de intercambio](#install-killed-on-low-memory-linux-servers) |

24| `Raw mode is not supported` durante la instalación | [Vuelva a ejecutar el instalador](#raw-mode-is-not-supported-during-install) |29| `Installation was killed before it could finish` | [Libera memoria y luego vuelve a ejecutar el instalador](#installation-was-killed-before-it-could-finish) |

30| `Raw mode is not supported` durante la instalación | [Vuelve a ejecutar el instalador](#raw-mode-is-not-supported-during-install) |

25| `EACCES: permission denied` durante la instalación | [Corrige los permisos del directorio de instalación](#permission-errors-during-installation) |31| `EACCES: permission denied` durante la instalación | [Corrige los permisos del directorio de instalación](#permission-errors-during-installation) |

26| `TLS connect error` o `SSL/TLS secure channel` | [Actualice los certificados CA](#tls-or-ssl-connection-errors) |32| `TLS connect error` o `SSL/TLS secure channel` | [Actualiza los certificados CA](#tls-or-ssl-connection-errors) |

27| `Failed to fetch version` o no puede alcanzar el servidor de descarga | [Verifique la configuración de red y proxy](#check-network-connectivity) |33| `CRYPT_E_NO_REVOCATION_CHECK` o `CRYPT_E_REVOCATION_OFFLINE` | [Soluciona las verificaciones de revocación bloqueadas](#tls-or-ssl-connection-errors) |

28| `irm is not recognized` o `The token '&&' is not a valid statement separator` | [Use el comando correcto para su shell](#wrong-install-command-on-windows) |34| `Failed to fetch version` o no puedes alcanzar el servidor de descarga | [Verifica la configuración de red y proxy](#check-network-connectivity) |

29| `Cask 'claude-code' is unavailable: No Cask with this name exists` | [Actualice Homebrew](#homebrew-cask-unavailable-or-outdated) |35| `The connection dropped while downloading the update` o `Download timed out: exceeded the total deadline` | [Vuelve a ejecutar la actualización o configura tu proxy](#the-connection-dropped-while-downloading-the-update) |

30| `'bash' is not recognized as the name of a cmdlet` | [Use el comando del instalador de Windows](#wrong-install-command-on-windows) |36| `irm is not recognized` o `The token '&&' is not a valid statement separator` | [Usa el comando correcto para tu shell](#wrong-install-command-on-windows) |

31| `A parameter cannot be found that matches parameter name 'fsSL'` | [Use el comando del instalador de Windows](#wrong-install-command-on-windows) |37| `Cask 'claude-code' is unavailable: No Cask with this name exists` | [Actualiza Homebrew](#homebrew-cask-unavailable-or-outdated) |

32| `Claude Code on Windows requires either Git for Windows (for bash) or PowerShell` | [Instale un shell](#claude-code-on-windows-requires-either-git-for-windows-for-bash-or-powershell) |38| `Cask 'claude-code@latest' is not installed` | [Actualiza el cask que instalaste](#cask-is-not-installed) |

33| `Claude Code does not support 32-bit Windows` | [Abra Windows PowerShell, no la entrada x86](#claude-code-does-not-support-32-bit-windows) |39| `'bash' is not recognized as the name of a cmdlet` | [Usa el comando del instalador de Windows](#wrong-install-command-on-windows) |

34| `The process cannot access the file ... because it is being used by another process` | [Borre la carpeta de descargas e intente de nuevo](#the-process-cannot-access-the-file-during-windows-install) |40| `A parameter cannot be found that matches parameter name 'fsSL'` | [Usa el comando del instalador de Windows](#wrong-install-command-on-windows) |

35| `Error loading shared library` | [Variante binaria incorrecta para su sistema](#linux-musl-or-glibc-binary-mismatch) |41| `Claude Code on Windows requires either Git for Windows (for bash) or PowerShell` | [Instala un shell](#claude-code-on-windows-requires-either-git-for-windows-for-bash-or-powershell) |

42| `Claude Code does not support 32-bit Windows` | [Abre Windows PowerShell, no la entrada x86](#claude-code-does-not-support-32-bit-windows) |

43| `The process cannot access the file ... because it is being used by another process` | [Borra la carpeta de descargas e intenta de nuevo](#the-process-cannot-access-the-file-during-windows-install) |

44| `Error loading shared library` | [Variante binaria incorrecta para tu sistema](#linux-musl-or-glibc-binary-mismatch) |

36| `Illegal instruction` | [Desajuste de arquitectura o conjunto de instrucciones de CPU](#illegal-instruction) |45| `Illegal instruction` | [Desajuste de arquitectura o conjunto de instrucciones de CPU](#illegal-instruction) |

37| `cannot execute binary file: Exec format error` en WSL | [Regresión binaria nativa de WSL1](#exec-format-error-on-wsl1) |46| `cannot execute binary file: Exec format error` en WSL | [Regresión binaria nativa de WSL1](#exec-format-error-on-wsl1) |

38| `Bus error` u `oh no: Bun has crashed` mientras una sesión está en ejecución | [Mantén el ejecutable legible](#bus-error-while-a-session-is-running) |47| `Bus error` u `oh no: Bun has crashed` mientras una sesión está en ejecución | [Mantén el ejecutable legible](#bus-error-while-a-session-is-running) |

39| El instalador de PowerShell se completa pero `claude` no se encuentra o muestra una versión anterior | [Agregue el directorio de instalación a su PATH](#verify-your-path), luego abra una nueva terminal |48| El instalador de PowerShell se completa pero `claude` no se encuentra o muestra una versión anterior | [Agrega el directorio de instalación a tu PATH](#verify-your-path), luego abre una nueva terminal |

40| `dyld: Symbol not found`, `dyld: cannot load`, o `Abort trap` en macOS | [Incompatibilidad binaria](#dyld-cannot-load-on-macos) |49| `dyld: Symbol not found`, `dyld: cannot load`, o `Abort trap` en macOS | [Incompatibilidad binaria](#dyld-cannot-load-on-macos) |

41| `claude update` se cuelga después de `Checking for updates`, o `claude doctor` se cuelga sin salida | [Mueva el directorio en una ruta de configuración de shell](#claude-update-or-claude-doctor-hangs) |50| `claude update` se cuelga después de `Checking for updates`, o `claude doctor` se cuelga sin salida | [Mueve el directorio en una ruta de configuración de shell](#claude-update-or-claude-doctor-hangs) |

42| `Invoke-Expression` o `iex` errores de análisis citando etiquetas HTML o CSS, o `ParserError` con `ParseException` | [El script de instalación devuelve HTML](#install-script-returns-html-instead-of-a-shell-script) |51| `Invoke-Expression` o `iex` errores de análisis citando etiquetas HTML o CSS, o `ParserError` con `ParseException` | [El script de instalación devuelve HTML](#install-script-returns-html-instead-of-a-shell-script) |

43| `running scripts is disabled on this system` o `PSSecurityException` | [Permita que los shims de npm se ejecuten](#running-scripts-is-disabled-on-this-system) |52| `running scripts is disabled on this system` o `PSSecurityException` | [Permite que los shims de npm se ejecuten](#running-scripts-is-disabled-on-this-system) |

44| `Error: claude native binary not installed` | [Complete la instalación de npm](#native-binary-not-found-after-npm-install) |53| `Error: claude native binary not installed` | [Completa la instalación de npm](#native-binary-not-found-after-npm-install) |

45| `npm error code ENOTEMPTY` durante la actualización o reinstalación | [Elimine el directorio de paquete sobrante](#npm-enotempty-during-update-or-reinstall) |54| `npm error code ENOTEMPTY` durante la actualización o reinstalación | [Elimina el directorio de paquete sobrante](#npm-enotempty-during-update-or-reinstall) |

46| `'claude' is not recognized` justo después de una actualización en Windows | [Restaure `claude.exe` desde su copia de seguridad](#claude-exe-missing-after-an-update-on-windows) |55| `'claude' is not recognized` justo después de una actualización en Windows | [Restaura `claude.exe` desde su copia de seguridad](#claude-exe-missing-after-an-update-on-windows) |

47| En Windows, el comando de instalación imprime texto de script y nada se instala | [Ejecute el comando de instalación completo](#wrong-install-command-on-windows) |56| En Windows, el comando de instalación imprime texto de script y nada se instala | [Ejecuta el comando de instalación completo](#wrong-install-command-on-windows) |

48| `App unavailable in region` | Claude Code no está disponible en su país. Consulte [países admitidos](https://www.anthropic.com/supported-countries). |57| `App unavailable in region` | Claude Code no está disponible en tu país. Consulta [países admitidos](https://www.anthropic.com/supported-countries). |

49| `unable to get local issuer certificate` | [Configure certificados CA corporativos](#tls-or-ssl-connection-errors) |58| `unable to get local issuer certificate` | [Configura certificados CA corporativos](#tls-or-ssl-connection-errors) |

50| `OAuth error` u `403 Forbidden` | [Corrija la autenticación](#login-and-authentication) |59| `OAuth error` u `403 Forbidden` | [Corrige la autenticación](#login-and-authentication) |

51| `Claude Code access has not been granted for this account` | [Obtenga un rol que incluya Claude Code](#claude-code-access-has-not-been-granted-for-this-account) |60| `Claude Code access has not been granted for this account` | [Obtén un rol que incluya Claude Code](#claude-code-access-has-not-been-granted-for-this-account) |

52| `Unable to connect to Anthropic services` durante la configuración | Consulte [Unable to connect to Anthropic services](/docs/es/errors#unable-to-connect-to-anthropic-services) en la referencia de errores |61| `Unable to connect to Anthropic services` durante la configuración | Consulta [Unable to connect to Anthropic services](/docs/es/errors#unable-to-connect-to-anthropic-services) en la referencia de errores |

53| `Could not load the default credentials` o `Could not load credentials from any providers` | [Credenciales de Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry](#bedrock-agent-platform-or-foundry-credentials-not-loading) |62| `Could not load the default credentials` o `Could not load credentials from any providers` | [Credenciales de Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry](#bedrock-agent-platform-or-foundry-credentials-not-loading) |

54| `ChainedTokenCredential authentication failed` o `CredentialUnavailableError` | [Credenciales de Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry](#bedrock-agent-platform-or-foundry-credentials-not-loading) |63| `ChainedTokenCredential authentication failed` o `CredentialUnavailableError` | [Credenciales de Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry](#bedrock-agent-platform-or-foundry-credentials-not-loading) |

55| `API Error: 500`, `529 Overloaded`, `429`, u otros errores 4xx y 5xx no listados arriba | Consulte la [referencia de errores](/docs/es/errors) |64| `API Error: 500`, `529 Overloaded`, `429`, u otros errores 4xx y 5xx no listados arriba | Consulta la [referencia de errores](/docs/es/errors) |

56 65 

57Si su problema no está listado, trabaje a través de las verificaciones de diagnóstico a continuación para reducir la causa.66Si tu problema no está listado, sigue las verificaciones de diagnóstico a continuación para acotar la causa.

58 67 

59<Tip>68<Tip>

60 Si prefiere omitir la terminal por completo, la [aplicación de escritorio Claude Code](/docs/es/desktop-quickstart) le permite instalar y usar Claude Code a través de una interfaz gráfica. Descárguela para [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs) o [Windows](https://claude.com/download?utm_source=claude_code\&utm_medium=docs) y comience a codificar sin ninguna configuración de línea de comandos. En Linux, instale la aplicación con apt siguiendo las [instrucciones de instalación de Linux](/docs/es/desktop-linux).69 Si prefieres omitir la terminal por completo, la [aplicación de escritorio Claude Code](/docs/es/desktop-quickstart) te permite instalar y usar Claude Code a través de una interfaz gráfica. Descárgala para [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs) o [Windows](https://claude.com/download?utm_source=claude_code\&utm_medium=docs) y comienza a programar sin ninguna configuración de línea de comandos. En Linux, instala la aplicación con apt siguiendo las [instrucciones de instalación de Linux](/docs/es/desktop-linux).

61</Tip>70</Tip>

62 71 

63<h2 id="run-diagnostic-checks">72<h2 id="run-diagnostic-checks">

64 Ejecute verificaciones de diagnóstico73 Ejecuta verificaciones de diagnóstico

65</h2>74</h2>

66 75 

67<h3 id="check-network-connectivity">76<h3 id="check-network-connectivity">

68 Verifique la conectividad de red77 Verifica la conectividad de red

69</h3>78</h3>

70 79 

71El instalador descarga desde `downloads.claude.ai`. Verifique que pueda alcanzarlo:80El instalador descarga desde `downloads.claude.ai`. Verifica que puedas alcanzarlo:

72 81 

73<Tabs>82<Tabs>

74 <Tab title="macOS/Linux">83 <Tab title="macOS/Linux">


82 curl.exe -sI https://downloads.claude.ai/claude-code-releases/latest91 curl.exe -sI https://downloads.claude.ai/claude-code-releases/latest

83 ```92 ```

84 93 

85 PowerShell crea un alias de `curl` a `Invoke-WebRequest`, que rechaza los indicadores `-sI`, así que llame a `curl.exe` explícitamente.94 PowerShell crea un alias de `curl` a `Invoke-WebRequest`, que rechaza los flags `-sI`, así que llama a `curl.exe` explícitamente.

86 </Tab>95 </Tab>

87</Tabs>96</Tabs>

88 97 

89Alcanzó el servidor si la primera línea muestra un estado `200`. Verá `HTTP/2 200` en macOS y Linux, e `HTTP/1.1 200 OK` desde `curl.exe` incluido con Windows. Otros resultados apuntan a la causa:98Alcanzaste el servidor si la primera línea muestra un estado `200`. Verás `HTTP/2 200` en macOS y Linux, y `HTTP/1.1 200 OK` desde el `curl.exe` incluido con Windows. Otros resultados apuntan a la causa:

90 99 

91* `403`: generalmente un proxy o filtro de red bloqueando el host, o Claude Code [no está disponible en su región](https://www.anthropic.com/supported-countries)100* `403`: generalmente un proxy o filtro de red bloqueando el host, o Claude Code [no está disponible en tu región](https://www.anthropic.com/supported-countries)

92* `5xx`: generalmente un problema temporal del servicio; espere unos minutos e intente de nuevo101* `5xx`: generalmente un problema temporal del servicio; espera unos minutos y vuelve a intentarlo

93 102 

94Si no ve salida, `Could not resolve host`, o un tiempo de espera de conexión, su red está bloqueando la conexión. Las causas comunes incluyen:103Si no ves salida, `Could not resolve host`, o se agota el tiempo de espera de la conexión, tu red está bloqueando la conexión. Las causas comunes incluyen:

95 104 

96* Firewalls corporativos o proxies bloqueando `downloads.claude.ai`105* Firewalls corporativos o proxies bloqueando `downloads.claude.ai`

97* Restricciones de red regional: intente una VPN o red alternativa106* Restricciones de red regional: intenta una VPN o una red alternativa

98* Problemas de TLS/SSL: actualice los certificados CA de su sistema, o verifique si `HTTPS_PROXY` está configurado107* Problemas de TLS/SSL: actualiza los certificados CA de tu sistema, o verifica si `HTTPS_PROXY` está configurado

99 108 

100Si está detrás de un proxy corporativo, establezca `HTTPS_PROXY` y `HTTP_PROXY` en la dirección de su proxy antes de instalar. Pregunte a su equipo de TI por la URL del proxy si no la conoce, o verifique la configuración del proxy de su navegador.109Si estás detrás de un proxy corporativo, establece `HTTPS_PROXY` y `HTTP_PROXY` en la dirección de tu proxy antes de instalar. Pregunta a tu equipo de TI por la URL del proxy si no la conoces, o verifica la configuración del proxy de tu navegador.

101 110 

102Este ejemplo establece ambas variables de proxy, luego ejecuta el instalador a través de su proxy:111Este ejemplo establece ambas variables de proxy y luego ejecuta el instalador a través de tu proxy:

103 112 

104<Tabs>113<Tabs>

105 <Tab title="macOS/Linux">114 <Tab title="macOS/Linux">


120</Tabs>129</Tabs>

121 130 

122<h3 id="verify-your-path">131<h3 id="verify-your-path">

123 Verifique su PATH132 Verifica tu PATH

124</h3>133</h3>

125 134 

126Si la instalación fue exitosa pero obtiene un error `command not found` o `not recognized` al ejecutar `claude`, el directorio de instalación no está en su PATH. Su shell busca programas en directorios listados en PATH, y el instalador coloca `claude` en `~/.local/bin/claude` en macOS/Linux o `%USERPROFILE%\.local\bin\claude.exe` en Windows.135Si la instalación fue exitosa pero obtienes un error `command not found` o `not recognized` al ejecutar `claude`, el directorio de instalación no está en tu PATH. Tu shell busca programas en los directorios listados en PATH, y el instalador coloca `claude` en `~/.local/bin/claude` en macOS/Linux o `%USERPROFILE%\.local\bin\claude.exe` en Windows.

136 

137El instalador detecta este caso y lo informa en `Setup notes:` en su salida: `Native installation exists but ~/.local/bin is not in your PATH.` en macOS y Linux, o `Native installation exists but C:\Users\you\.local\bin is not in your PATH.` en Windows. Imprime la corrección junto con esa nota, pero no modifica el PATH por sí mismo.

127 138 

128<Note>139<Note>

129 La [extensión de VS Code](/docs/es/vs-code) no coloca `claude` en esta ubicación. Agrupa una copia privada de la CLI dentro del directorio de la extensión para su propio panel de chat y no la agrega a PATH. Si solo ha instalado la extensión, `~/.local/bin/claude` no existirá. Ejecute la [instalación independiente](/docs/es/setup) para usar `claude` desde una terminal, luego continúe a continuación.140 La [extensión de VS Code](/docs/es/vs-code) no coloca `claude` en esta ubicación. Incluye una copia privada de la CLI dentro del directorio de la extensión para su propio panel de chat y no la agrega a PATH. Si solo has instalado la extensión, `~/.local/bin/claude` no existirá. Ejecuta la [instalación independiente](/docs/es/setup) para usar `claude` desde una terminal y luego continúa con lo siguiente.

130</Note>141</Note>

131 142 

132Verifique si el directorio de instalación está en su PATH listando sus entradas de PATH y filtrando por `local/bin`:143Primero verifica que el programa esté ahí, y luego verifica si su carpeta está en tu PATH. La corrección del PATH es permanente, así que la aplicas una sola vez. Elige la pestaña de tu plataforma y ejecuta sus comandos allí: en tu terminal en macOS y Linux, o en PowerShell o el Símbolo del sistema en Windows.

133 144 

134<Tabs>145<Tabs>

135 <Tab title="macOS/Linux">146 <Tab title="macOS/Linux">

147 Verifica que el instalador haya colocado el programa:

148 

149 ```bash theme={null}

150 ls -la ~/.local/bin/claude

151 ```

152 

153 * **`No such file or directory`**: no hay una instalación nativa. Si no has instalado Claude Code de otra manera, como con npm, Homebrew o un gestor de paquetes de Linux, [instala Claude Code](/docs/es/setup#install-claude-code). Si lo instalaste de otra manera, consulta [Verifica instalaciones conflictivas](#check-for-conflicting-installations).

154 * **Un listado del archivo**: el programa está ahí. Verifica tu PATH a continuación.

155 

156 Lista tus entradas de PATH y filtra por la carpeta de instalación:

157 

136 ```bash theme={null}158 ```bash theme={null}

137 echo $PATH | tr ':' '\n' | grep -Fx "$HOME/.local/bin"159 echo $PATH | tr ':' '\n' | grep -Fx "$HOME/.local/bin"

138 ```160 ```

139 161 

140 Si esto imprime `/Users/you/.local/bin` o `/home/you/.local/bin`, el directorio está en su PATH y puede saltar a [Verifique instalaciones conflictivas](#check-for-conflicting-installations). Si no hay salida, agréguelo a su configuración de shell.162 Si esto imprime `/Users/you/.local/bin` o `/home/you/.local/bin`, el directorio está en tu PATH y puedes saltar a [Verifica instalaciones conflictivas](#check-for-conflicting-installations). Si no hay salida, agrégalo a la configuración de tu shell con los dos comandos correspondientes a tu shell. El comando `echo` guarda el ajuste para cada terminal nueva, y `source` lo aplica a la ventana en la que estás. El comando `echo` no imprime nada cuando tiene éxito.

141 163 

142 Para Zsh, el predeterminado en macOS:164 Para Zsh, el predeterminado en macOS:

143 165 


146 source ~/.zshrc168 source ~/.zshrc

147 ```169 ```

148 170 

149 Para Bash en Linux, donde es el predeterminado en la mayoría de distribuciones:171 Para Bash en Linux, donde es el predeterminado en la mayoría de las distribuciones:

150 172 

151 ```bash theme={null}173 ```bash theme={null}

152 echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc174 echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc

153 source ~/.bashrc175 source ~/.bashrc

154 ```176 ```

155 177 

156 Para Bash en macOS, agregue la línea a `~/.bash_profile` en su lugar. Terminal en macOS inicia Bash como un shell de inicio de sesión, que ignora `~/.bashrc` y lee solo el primero de `~/.bash_profile`, `~/.bash_login`, o `~/.profile` que existe. Si ya tiene un `~/.bash_login` o `~/.profile` y ningún `~/.bash_profile`, ponga la línea en ese archivo en lugar de crear `~/.bash_profile`:178 Para Bash en macOS, agrega la línea a `~/.bash_profile` en su lugar. Terminal en macOS inicia Bash como un shell de inicio de sesión, que ignora `~/.bashrc` y lee solo el primero que exista de `~/.bash_profile`, `~/.bash_login` o `~/.profile`. Si ya tienes un `~/.bash_login` o `~/.profile` y ningún `~/.bash_profile`, pon la línea en ese archivo en lugar de crear `~/.bash_profile`:

157 179 

158 ```bash theme={null}180 ```bash theme={null}

159 echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bash_profile181 echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bash_profile

160 source ~/.bash_profile182 source ~/.bash_profile

161 ```183 ```

162 184 

163 Alternativamente, cierre y vuelva a abrir su terminal.185 Alternativamente, cierra y vuelve a abrir tu terminal.

186 

187 Si el comando `echo` imprime `permission denied`, consulta [`permission denied` al agregar a tu PATH](#permission-denied-when-adding-to-your-path).

164 188 

165 Para otros shells como fish o Nushell, agregue `~/.local/bin` a su PATH usando la sintaxis de configuración propia de su shell, luego reinicie su terminal.189 Para otros shells como fish o Nushell, agrega `~/.local/bin` a tu PATH usando la sintaxis de configuración propia de tu shell y luego reinicia tu terminal.

166 190 

167 Verifique que la corrección funcionó:191 Verifica que la corrección funcionó:

168 192 

169 ```bash theme={null}193 ```bash theme={null}

170 claude --version194 claude --version

171 ```195 ```

196 

197 Si todavía no se encuentra `claude`, revisa estas causas:

198 

199 * **La terminal es anterior al cambio**: una ventana que ya estaba abierta conserva su PATH anterior, y una terminal dentro de un editor toma su PATH del editor. Abre una ventana nueva, o cierra y vuelve a abrir el editor.

200 * **La línea no se guardó**: ejecuta `grep -n '.local/bin' ~/.zshrc`, usando el nombre de archivo de tu shell. Imprime la línea con su número de línea cuando la línea está ahí. Si no imprime nada, ejecuta de nuevo los dos comandos de PATH.

201 * **La línea fue al archivo de otro shell**: ejecuta `echo $0` para ver tu shell y luego ejecuta los dos comandos de PATH para ese shell.

172 </Tab>202 </Tab>

173 203 

174 <Tab title="Windows PowerShell">204 <Tab title="Windows PowerShell">

205 Verifica que el instalador haya colocado el programa:

206 

207 ```powershell theme={null}

208 Test-Path "$env:USERPROFILE\.local\bin\claude.exe"

209 ```

210 

211 * **`False`**: no hay una instalación nativa. Si no has instalado Claude Code de otra manera, como con npm o WinGet, [instala Claude Code](/docs/es/setup#install-claude-code). Si lo instalaste de otra manera, consulta [Verifica instalaciones conflictivas](#check-for-conflicting-installations).

212 * **`True`**: el programa está ahí. Verifica tu PATH a continuación.

213 

214 Lista tus entradas de PATH y filtra por la carpeta de instalación:

215 

175 ```powershell theme={null}216 ```powershell theme={null}

176 $env:PATH -split ';' | Select-String '\.local\\bin'217 $env:PATH -split ';' | Select-String '\.local\\bin'

177 ```218 ```

178 219 

179 Si no hay salida, agregue el directorio de instalación a su PATH de usuario:220 Si esto imprime `C:\Users\you\.local\bin`, el directorio está en tu PATH y puedes saltar a [Verifica instalaciones conflictivas](#check-for-conflicting-installations). Si no hay salida, agrega el directorio de instalación a tu PATH de usuario:

180 221 

181 ```powershell theme={null}222 ```powershell theme={null}

182 $currentPath = [Environment]::GetEnvironmentVariable('PATH', 'User')223 $currentPath = [Environment]::GetEnvironmentVariable('PATH', 'User')

183 [Environment]::SetEnvironmentVariable('PATH', "$currentPath;$env:USERPROFILE\.local\bin", 'User')224 [Environment]::SetEnvironmentVariable('PATH', "$currentPath;$env:USERPROFILE\.local\bin", 'User')

184 ```225 ```

185 226 

186 Reinicie su terminal para que el cambio surta efecto.227 Reinicia tu terminal para que el cambio surta efecto.

187 228 

188 Verifique que la corrección funcionó:229 Verifica que la corrección funcionó:

189 230 

190 ```powershell theme={null}231 ```powershell theme={null}

191 claude --version232 claude --version

192 ```233 ```

234 

235 Si todavía no se encuentra `claude` en una terminal nueva, revisa estas causas:

236 

237 * **La terminal se ejecuta dentro de un editor**: toma su PATH del editor, así que cierra y vuelve a abrir el editor.

238 * **El cambio no se guardó**: ejecuta `[Environment]::GetEnvironmentVariable('PATH', 'User')` y busca `.local\bin` en el PATH que imprime. Si falta, ejecuta de nuevo los dos comandos.

193 </Tab>239 </Tab>

194 240 

195 <Tab title="Windows CMD">241 <Tab title="Windows CMD">

242 Verifica que el instalador haya colocado el programa:

243 

244 ```batch theme={null}

245 dir "%USERPROFILE%\.local\bin\claude.exe"

246 ```

247 

248 * **`File Not Found` o `The system cannot find the path specified.`**: no hay una instalación nativa. Si no has instalado Claude Code de otra manera, como con npm o WinGet, [instala Claude Code](/docs/es/setup#install-claude-code). Si lo instalaste de otra manera, consulta [Verifica instalaciones conflictivas](#check-for-conflicting-installations).

249 * **Un listado de `claude.exe`**: el programa está ahí. Verifica tu PATH a continuación.

250 

251 Lista tus entradas de PATH y filtra por la carpeta de instalación:

252 

196 ```batch theme={null}253 ```batch theme={null}

197 echo %PATH% | findstr /i "local\bin"254 echo %PATH% | findstr /i "local\bin"

198 ```255 ```

199 256 

200 Si no hay salida, abra Configuración del sistema, vaya a Variables de entorno, y agregue `%USERPROFILE%\.local\bin` a su variable PATH de usuario. Reinicie su terminal.257 Si no hay salida, abre Configuración del sistema, ve a Variables de entorno y agrega `%USERPROFILE%\.local\bin` a tu variable PATH de usuario. Reinicia tu terminal.

201 258 

202 Verifique que la corrección funcionó:259 Verifica que la corrección funcionó:

203 260 

204 ```batch theme={null}261 ```batch theme={null}

205 claude --version262 claude --version

206 ```263 ```

264 

265 Si todavía no se encuentra `claude` en una terminal nueva, ten en cuenta que una terminal dentro de un editor toma su PATH del editor, así que cierra y vuelve a abrir también el editor.

207 </Tab>266 </Tab>

208</Tabs>267</Tabs>

209 268 

210<h3 id="check-for-conflicting-installations">269<h3 id="check-for-conflicting-installations">

211 Verifique instalaciones conflictivas270 Verifica instalaciones conflictivas

212</h3>271</h3>

213 272 

214Múltiples instalaciones de Claude Code pueden causar desajustes de versión o comportamiento inesperado. Verifique qué está instalado:273Múltiples instalaciones de Claude Code pueden causar desajustes de versión o comportamiento inesperado. Verifica qué está instalado:

215 274 

216<Tabs>275<Tabs>

217 <Tab title="macOS/Linux">276 <Tab title="macOS/Linux">

218 Liste todos los binarios `claude` encontrados en su PATH:277 Lista todos los binarios `claude` encontrados en tu PATH:

219 278 

220 ```bash theme={null}279 ```bash theme={null}

221 which -a claude280 which -a claude

222 ```281 ```

223 282 

224 Si esto no imprime nada, ningún `claude` está en su PATH aún. Vuelva a [Verifique su PATH](#verify-your-path).283 Si esto imprime `claude not found`, una línea `no claude in`, o nada, no hay ningún `claude` en tu PATH. Las siguientes verificaciones muestran si hay alguno instalado.

225 284 

226 Verifique las tres ubicaciones de donde puede venir un binario `claude`. `~/.local/bin/claude` es el instalador nativo, `~/.claude/local/` es una instalación npm local heredada creada por versiones anteriores de Claude Code, y la lista npm global muestra una instalación `-g`:285 Verifica las tres ubicaciones de donde puede venir un binario `claude`. `~/.local/bin/claude` es el instalador nativo, `~/.claude/local/` es una instalación npm local heredada creada por versiones anteriores de Claude Code, y la lista npm global muestra una instalación `-g`:

227 286 

228 ```bash theme={null}287 ```bash theme={null}

229 ls -la ~/.local/bin/claude288 ls -la ~/.local/bin/claude

230 ```289 ```

231 290 

232 Una instalación nativa muestra un enlace simbólico en `~/.local/share/claude/versions/`. Un script o un enlace simbólico que creó usted mismo en esta ruta es un iniciador personalizado, que [la actualización automática deja en su lugar](/docs/es/setup#auto-updates).291 Una instalación nativa muestra un enlace simbólico en `~/.local/share/claude/versions/`. Un script o un enlace simbólico que creaste tú mismo en esta ruta es un iniciador personalizado, que [la actualización automática deja en su lugar](/docs/es/setup#auto-updates).

233 292 

234 Si algún comando `ls` imprime `No such file or directory`, eso no es un error. Significa que nada está instalado en esa ubicación, así que continúe con la siguiente verificación.293 Si algún comando `ls` imprime `No such file or directory`, eso no es un error. Significa que no hay nada instalado en esa ubicación, así que continúa con la siguiente verificación.

235 294 

236 ```bash theme={null}295 ```bash theme={null}

237 ls -la ~/.claude/local/296 ls -la ~/.claude/local/


240 ```bash theme={null}299 ```bash theme={null}

241 npm -g ls @anthropic-ai/claude-code 2>/dev/null300 npm -g ls @anthropic-ai/claude-code 2>/dev/null

242 ```301 ```

302 

303 Si `ls -la ~/.local/bin/claude` imprimió `No such file or directory`, no hay una instalación nativa. Si no has instalado Claude Code de otra manera, como con npm, Homebrew o un gestor de paquetes de Linux, [instala Claude Code](/docs/es/setup#install-claude-code). Si `~/.local/bin/claude` existe pero `which -a claude` no lo listó, la carpeta no está en tu PATH: consulta [Verifica tu PATH](#verify-your-path).

243 </Tab>304 </Tab>

244 305 

245 <Tab title="Windows PowerShell">306 <Tab title="Windows PowerShell">

246 Liste todos los binarios `claude` encontrados en su PATH:307 Lista todos los binarios `claude` encontrados en tu PATH:

247 308 

248 ```powershell theme={null}309 ```powershell theme={null}

249 where.exe claude310 where.exe claude

250 ```311 ```

251 312 

252 Verifique si el instalador nativo colocó un binario:313 Si esto imprime `INFO: Could not find files for the given pattern(s).`, no hay ningún `claude` en tu PATH.

314 

315 Verifica si el instalador nativo colocó un binario:

253 316 

254 ```powershell theme={null}317 ```powershell theme={null}

255 Test-Path "$env:USERPROFILE\.local\bin\claude.exe"318 Test-Path "$env:USERPROFILE\.local\bin\claude.exe"

256 ```319 ```

320 

321 * **`True`**: la instalación nativa está ahí. Si `where.exe` no encontró nada, su carpeta no está en tu PATH: consulta [Verifica tu PATH](#verify-your-path).

322 * **`False`**: no hay una instalación nativa. Si no has instalado Claude Code de otra manera, como con npm o WinGet, [instala Claude Code](/docs/es/setup#install-claude-code).

257 </Tab>323 </Tab>

258</Tabs>324</Tabs>

259 325 

260Si encuentra múltiples instalaciones, mantenga solo una. La instalación nativa en `~/.local/bin/claude` en macOS/Linux o `%USERPROFILE%\.local\bin\claude.exe` en Windows es recomendada. Elimine las extras:326Si encuentras múltiples instalaciones, mantén solo una. Se recomienda la instalación nativa en `~/.local/bin/claude` en macOS/Linux o `%USERPROFILE%\.local\bin\claude.exe` en Windows. Elimina las adicionales:

261 327 

262Desinstale una instalación npm global:328Desinstala una instalación npm global:

263 329 

264```bash theme={null}330```bash theme={null}

265npm uninstall -g @anthropic-ai/claude-code331npm uninstall -g @anthropic-ai/claude-code

266```332```

267 333 

268Elimine la instalación npm local heredada:334Elimina la instalación npm local heredada:

269 335 

270<Tabs>336<Tabs>

271 <Tab title="macOS/Linux">337 <Tab title="macOS/Linux">


281 </Tab>347 </Tab>

282</Tabs>348</Tabs>

283 349 

284Elimine una instalación de Homebrew en macOS. Si instaló el cask `claude-code@latest`, sustituya ese nombre:350Elimina una instalación de Homebrew en macOS. Si instalaste el cask `claude-code@latest`, sustituye ese nombre:

285 351 

286```bash theme={null}352```bash theme={null}

287brew uninstall --cask claude-code353brew uninstall --cask claude-code

288```354```

289 355 

290Elimine una instalación de WinGet en Windows:356Elimina una instalación de WinGet en Windows:

291 357 

292```powershell theme={null}358```powershell theme={null}

293winget uninstall Anthropic.ClaudeCode359winget uninstall Anthropic.ClaudeCode

294```360```

295 361 

296<h3 id="check-directory-permissions">362<h3 id="check-directory-permissions">

297 Verifique permisos de directorio363 Verifica los permisos de directorio

298</h3>364</h3>

299 365 

300Una instalación que falla por permisos indica la ruta que no pudo crear o en la que no pudo escribir. En Windows, la instalación escribe dentro de `%USERPROFILE%`, en el que tu usuario puede escribir de forma predeterminada, por lo que esta sección rara vez se aplica allí.366Una instalación que falla por permisos indica la ruta que no pudo crear o en la que no pudo escribir. En Windows, la instalación escribe dentro de `%USERPROFILE%`, en el que tu usuario puede escribir de forma predeterminada, por lo que esta sección rara vez se aplica allí.


310 376 

311Si estableces `XDG_DATA_HOME`, `XDG_STATE_HOME` o `XDG_CACHE_HOME`, la instalación los usa en lugar de `~/.local/share`, `~/.local/state` y `~/.cache`. Si estableces [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars), el archivo de configuración global se ubica en ese directorio en lugar de tu directorio home.377Si estableces `XDG_DATA_HOME`, `XDG_STATE_HOME` o `XDG_CACHE_HOME`, la instalación los usa en lugar de `~/.local/share`, `~/.local/state` y `~/.cache`. Si estableces [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars), el archivo de configuración global se ubica en ese directorio en lugar de tu directorio home.

312 378 

313Verifique si los directorios son escribibles:379Verifica si los directorios son escribibles:

314 380 

315```bash theme={null}381```bash theme={null}

316test -w ~/.local/bin && echo "writable" || echo "not writable"382test -w ~/.local/bin && echo "writable" || echo "not writable"

317test -w ~/.claude && echo "writable" || echo "not writable"383test -w ~/.claude && echo "writable" || echo "not writable"

318```384```

319 385 

320Si algún directorio no es escribible, cree el directorio de instalación y establezca su usuario como propietario:386Si algún directorio no es escribible, crea el directorio de instalación y establece tu usuario como propietario:

321 387 

322```bash theme={null}388```bash theme={null}

323sudo mkdir -p ~/.local/bin389sudo mkdir -p ~/.local/bin


325```391```

326 392 

327<h3 id="verify-the-binary-works">393<h3 id="verify-the-binary-works">

328 Verifique que el binario funciona394 Verifica que el binario funciona

329</h3>395</h3>

330 396 

331Si `claude --version` imprime una versión pero `claude` se bloquea o cuelga al iniciar, ejecute estas verificaciones para reducir la causa. Si `claude --version` dice comando no encontrado, vaya a [Verifique su PATH](#verify-your-path) primero; los comandos a continuación asumen que `claude` está en su PATH.397Si `claude --version` imprime una versión pero `claude` se bloquea o se cuelga al iniciar, ejecuta estas verificaciones para acotar la causa. Si `claude --version` dice comando no encontrado, ve primero a [Verifica tu PATH](#verify-your-path); los comandos a continuación asumen que `claude` está en tu PATH.

332 398 

333Confirme que el binario existe y es ejecutable:399Confirma que el binario existe y es ejecutable:

334 400 

335<Tabs>401<Tabs>

336 <Tab title="macOS/Linux">402 <Tab title="macOS/Linux">


346 </Tab>412 </Tab>

347</Tabs>413</Tabs>

348 414 

349En Linux, verifique bibliotecas compartidas faltantes. Si `ldd` muestra bibliotecas faltantes, es posible que deba instalar paquetes del sistema. En Alpine Linux y otras distribuciones basadas en musl, consulte [Configuración de Alpine Linux](/docs/es/setup#alpine-linux-and-musl-based-distributions).415En Linux, verifica si faltan bibliotecas compartidas. Si `ldd` muestra bibliotecas faltantes, es posible que debas instalar paquetes del sistema. En Alpine Linux y otras distribuciones basadas en musl, consulta [Configuración de Alpine Linux](/docs/es/setup#alpine-linux-and-musl-based-distributions).

350 416 

351```bash theme={null}417```bash theme={null}

352ldd "$(command -v claude)" | grep "not found"418ldd "$(command -v claude)" | grep "not found"

353```419```

354 420 

355Confirme que el binario puede ejecutarse:421Confirma que el binario puede ejecutarse:

356 422 

357```bash theme={null}423```bash theme={null}

358claude --version424claude --version


368 El script de instalación devuelve HTML en lugar de un script de shell434 El script de instalación devuelve HTML en lugar de un script de shell

369</h3>435</h3>

370 436 

371Al ejecutar el comando de instalación, puede ver uno de estos errores:437El comando de instalación falla con uno de estos errores cuando lo que descargó no es el script de instalación.

438 

439**Bash o Zsh**: el error cita la primera línea de la página devuelta.

372 440 

373```text theme={null}441```text theme={null}

374bash: line 1: syntax error near unexpected token `<'442bash: line 1: syntax error near unexpected token `<'

375bash: line 1: `<!DOCTYPE html>'443bash: line 1: `<!DOCTYPE html>'

376```444```

377 445 

378En PowerShell, el mismo problema aparece como errores de análisis que apuntan a la página devuelta, con `iex` intentando ejecutar HTML y CSS como PowerShell:446**PowerShell, errores de análisis**: los errores apuntan a la página devuelta, con `iex` intentando ejecutar HTML y CSS como PowerShell.

379 447 

380```text theme={null}448```text theme={null}

381iex : At line:1 char:2310449iex : At line:1 char:2310


384...452...

385```453```

386 454 

387La redacción varía según la versión de PowerShell e idioma del sistema: puede ver `Missing expression after unary operator '--'` o un `ParserError` con `ParseException` en su lugar. Las etiquetas HTML o CSS en el texto entrecomillado identifican este fallo. Si descarga con `-OutFile install.ps1` en su lugar, el archivo guardado es la misma página web, por lo que eso tampoco ayuda.455La redacción varía según la versión de PowerShell y el idioma del sistema: puedes ver `Missing expression after unary operator '--'` o un `ParserError` con `ParseException` en su lugar. Las etiquetas HTML o el CSS en el texto citado identifican este fallo. Si descargas con `-OutFile install.ps1` en su lugar, el archivo guardado es la misma página web, por lo que eso tampoco ayuda.

388 456 

389Dependiendo de cómo se enrutó la solicitud, en su lugar puede ver un 403 sin cuerpo HTML:457**PowerShell, `System.Xml.XmlDocument`**: el error nombra este tipo en lugar de citar la página.

458 

459```text theme={null}

460System.Xml.XmlDocument : The term 'System.Xml.XmlDocument' is not recognized as the name of a cmdlet, function, script

461file, or operable program.

462```

463 

464Cuando `irm` puede analizar la respuesta como XML, devuelve un objeto XML en lugar de texto, y `iex` luego intenta ejecutar el nombre de tipo de ese objeto como un comando. El script de instalación es código de PowerShell y no se analiza como XML, así que este error también significa que la respuesta fue algo distinto del script. La redacción alrededor del nombre de tipo varía según la versión de PowerShell y el idioma del sistema, pero `System.Xml.XmlDocument` en sí se mantiene igual, así que búscalo por el nombre de tipo.

465 

466**CMD**: ves este error, seguido del HTML de la página devuelta.

467 

468```text theme={null}

469< was unexpected at this time.

470 

471C:\Users\you><!DOCTYPE html>...

472```

473 

474La primera línea aparece en el idioma de tu sistema, así que busca el HTML que le sigue.

475 

476**Un 403 sin página**: dependiendo de cómo se enrutó la solicitud, curl reporta un estado 403 sin cuerpo HTML.

390 477 

391```text theme={null}478```text theme={null}

392curl: (22) The requested URL returned error: 403479curl: (22) The requested URL returned error: 403

393```480```

394 481 

395Todos estos significan que la URL de instalación devolvió una página HTML o un estado de error en lugar del script de instalación. Si la página HTML dice "App unavailable in region", Claude Code no está disponible en su país. Consulte [países admitidos](https://www.anthropic.com/supported-countries).482Todos estos significan que la URL de instalación devolvió una página web, un documento XML o un estado de error en lugar del script de instalación. Si la salida del error cita "App unavailable in region", Claude Code no está disponible en tu país. Consulta [países admitidos](https://www.anthropic.com/supported-countries).

396 483 

397Un 403 desnudo sin cuerpo a menudo tiene la misma causa, pero también puede provenir de un proxy corporativo o firewall que bloquea la descarga. Si está en un país admitido y aún ve el 403, trabaje a través de [Verifique la conectividad de red](#check-network-connectivity) antes de intentar los instaladores alternativos a continuación, ya que esos alcanzan los mismos hosts.484Un 403 sin cuerpo a menudo tiene la misma causa, pero también puede provenir de un proxy corporativo o un firewall que bloquea la descarga. Si estás en un país admitido y aún ves el 403, sigue los pasos de [Verifica la conectividad de red](#check-network-connectivity) antes de intentar los instaladores alternativos a continuación, ya que esos acceden a los mismos hosts.

398 485 

399De lo contrario, esto puede ocurrir debido a problemas de red, enrutamiento regional o una interrupción temporal del servicio.486De lo contrario, esto puede ocurrir debido a problemas de red, enrutamiento regional o una interrupción temporal del servicio.

400 487 

401**Soluciones:**488**Soluciones:**

402 489 

4031. **Use un método de instalación alternativo**:4901. **Reintenta después de unos minutos**: el problema suele ser temporal. Espera e intenta el comando original nuevamente.

491 

4922. **Usa un método de instalación alternativo**: a diferencia de una instalación nativa, una instalación con Homebrew o WinGet [no se actualiza sola de forma predeterminada](/docs/es/setup#auto-updates).

404 493 

405 En macOS, instale a través de Homebrew:494 En macOS, instala a través de Homebrew:

406 495 

407 ```bash theme={null}496 ```bash theme={null}

408 brew install --cask claude-code497 brew install --cask claude-code

409 ```498 ```

410 499 

411 En Windows, instale a través de WinGet:500 En Windows, instala a través de WinGet:

412 501 

413 ```powershell theme={null}502 ```powershell theme={null}

414 winget install Anthropic.ClaudeCode503 winget install Anthropic.ClaudeCode

415 ```504 ```

416 505 

417 Luego ejecute `claude --version` para confirmar: el comando imprime un número de versión como `2.1.211 (Claude Code)`. Si el shell reporta que `claude` no se encuentra, abra una nueva ventana de terminal e intente nuevamente: la sesión desde la que instaló mantiene su antiguo `PATH`.506 Luego ejecuta `claude --version` para confirmar: el comando imprime un número de versión como `2.1.211 (Claude Code)`. Si el shell reporta que no se encuentra `claude`, abre una nueva ventana de terminal e intenta nuevamente: la sesión desde la que instalaste mantiene su antiguo `PATH`.

418 

4192. **Reintente después de unos minutos**: el problema suele ser temporal. Espere e intente el comando original nuevamente.

420 507 

421<h3 id="command-not-found-claude-after-installation">508<h3 id="command-not-found-claude-after-installation">

422 `command not found: claude` después de la instalación509 `command not found: claude` después de la instalación


435 522 

436De lo contrario, consulta [Verifica tu PATH](#verify-your-path) para la corrección en cada plataforma.523De lo contrario, consulta [Verifica tu PATH](#verify-your-path) para la corrección en cada plataforma.

437 524 

525<h3 id="permission-denied-when-adding-to-your-path">

526 `permission denied` al agregar a tu PATH

527</h3>

528 

529Si el comando `echo` que agrega `~/.local/bin` a tu PATH imprime `zsh: permission denied: /Users/you/.zshrc` o `bash: /home/you/.bashrc: Permission denied`, tu usuario no puede escribir en ese archivo y no se guardó nada. En tu terminal, verifica quién es el propietario del archivo, usando el nombre de archivo de tu shell en lugar de `~/.zshrc`:

530 

531```bash theme={null}

532ls -l ~/.zshrc

533```

534 

535El tercer campo de la salida es el propietario.

536 

537* **El propietario es otro usuario, como `root`**: toma la propiedad con `sudo chown $(whoami) ~/.zshrc`, lo cual requiere derechos de administrador.

538* **El propietario eres tú**: el archivo es de solo lectura. Hazlo escribible con `chmod u+w ~/.zshrc`.

539 

540Luego ejecuta nuevamente los dos comandos de PATH para tu shell en [Verifica tu PATH](#verify-your-path).

541 

438<h3 id="curl-56-failure-writing-output-to-destination">542<h3 id="curl-56-failure-writing-output-to-destination">

439 `curl: (56) Failure writing output to destination`543 `curl: (56) Failure writing output to destination`

440</h3>544</h3>

441 545 

442El comando `curl ... | bash` descarga el script y lo canaliza a Bash para su ejecución. Este error, y el relacionado `curl: (23) Failure writing output to destination`, significa que Bash no recibió el script completo. El código de salida 56 indica que la descarga en sí fue interrumpida, y el código de salida 23 indica que curl no pudo escribir lo que recibió en la tubería, generalmente porque Bash salió temprano.546El comando `curl ... | bash` descarga el script y lo canaliza a Bash para su ejecución. Este error, y el relacionado `curl: (23) Failure writing output to destination`, significa que Bash no recibió el script completo. El código de salida 56 indica que la descarga en sí fue interrumpida, y el código de salida 23 indica que curl no pudo escribir lo que recibió en la tubería, generalmente porque Bash terminó antes de tiempo.

443 547 

444Pruebe que pueda alcanzar `downloads.claude.ai` con la verificación en [Verifique la conectividad de red](#check-network-connectivity). Si alcanzó el servidor, el fallo original probablemente fue intermitente; reintente el comando de instalación. También puede [intentar un método de instalación alternativo](/docs/es/setup#install-claude-code).548Prueba que puedas acceder a `downloads.claude.ai` con la verificación en [Verifica la conectividad de red](#check-network-connectivity). Si accediste al servidor, el fallo original probablemente fue intermitente; reintenta el comando de instalación. También puedes [probar un método de instalación alternativo](/docs/es/setup#install-claude-code).

445 549 

446<h3 id="homebrew-cask-unavailable-or-outdated">550<h3 id="homebrew-cask-unavailable-or-outdated">

447 Cask de Homebrew no disponible u obsoleto551 Cask de Homebrew no disponible u obsoleto

448</h3>552</h3>

449 553 

450Homebrew reporta `Error: Cask 'claude-code' is unavailable: No Cask with this name exists` cuando su copia local del índice de cask de Homebrew es anterior a la publicación del cask. Actualice el índice e intente nuevamente:554Homebrew reporta `Error: Cask 'claude-code' is unavailable: No Cask with this name exists` cuando tu copia local del índice de casks de Homebrew es anterior a la publicación del cask. Actualiza el índice e intenta nuevamente:

451 555 

452```bash theme={null}556```bash theme={null}

453brew update557brew update

454brew install --cask claude-code558brew install --cask claude-code

455```559```

456 560 

457Si Homebrew instala una versión anterior de Claude Code de la que espera, el mismo índice obsoleto suele ser la causa. El cask `claude-code` rastrea el canal estable y típicamente está aproximadamente una semana detrás de la última versión; para la versión más reciente ejecute `brew install --cask claude-code@latest` en su lugar. Consulte [Configurar canal de versión](/docs/es/setup#configure-release-channel) para la diferencia entre los dos casks.561Si Homebrew instala una versión de Claude Code más antigua de la que esperas, el mismo índice obsoleto suele ser la causa. El cask `claude-code` sigue el canal estable y normalmente está aproximadamente una semana detrás de la última versión; para la versión más reciente ejecuta `brew install --cask claude-code@latest` en su lugar. Consulta [Configurar canal de versión](/docs/es/setup#configure-release-channel) para ver la diferencia entre los dos casks.

562 

563<h3 id="cask-is-not-installed">

564 `Cask 'claude-code@latest' is not installed`

565</h3>

566 

567Homebrew ofrece dos casks, `claude-code` y `claude-code@latest`. Ejecutar `brew upgrade --cask claude-code@latest` cuando ese cask no es el instalado imprime `Error: Cask 'claude-code@latest' is not installed.` Para ver qué cask tienes, ejecuta esto en tu terminal:

568 

569```bash theme={null}

570brew list --cask | grep claude-code

571```

572 

573Actualiza el cask que imprime. Si no imprime nada, ninguno de los dos casks está instalado.

458 574 

459<h3 id="tls-or-ssl-connection-errors">575<h3 id="tls-or-ssl-connection-errors">

460 Errores de conexión TLS o SSL576 Errores de conexión TLS o SSL


467* El `Could not create SSL/TLS secure channel` de PowerShell583* El `Could not create SSL/TLS secure channel` de PowerShell

468* El `Could not establish trust relationship for the SSL/TLS secure channel` de PowerShell584* El `Could not establish trust relationship for the SSL/TLS secure channel` de PowerShell

469 585 

586Para `CRYPT_E_NO_REVOCATION_CHECK` o `CRYPT_E_REVOCATION_OFFLINE`, ve al paso 4.

587 

470**Soluciones:**588**Soluciones:**

471 589 

4721. **Actualice sus certificados CA del sistema**:5901. **Actualiza los certificados CA de tu sistema**:

473 591 

474 En Ubuntu/Debian:592 En Ubuntu/Debian:

475 593 


479 597 

480 En macOS, el curl del sistema usa el almacén de confianza de Keychain; actualizar macOS en sí actualiza los certificados raíz.598 En macOS, el curl del sistema usa el almacén de confianza de Keychain; actualizar macOS en sí actualiza los certificados raíz.

481 599 

4822. **En Windows, habilite TLS 1.2** en PowerShell antes de ejecutar el instalador:6002. **En Windows PowerShell 5.1, habilita TLS 1.2**:

483 ```powershell theme={null}601 ```powershell theme={null}

484 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12602 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

603 ```

604 Luego ejecuta el instalador en la misma ventana:

605 ```powershell theme={null}

485 irm https://claude.ai/install.ps1 | iex606 irm https://claude.ai/install.ps1 | iex

486 ```607 ```

487 608 

4883. **Verifique la interferencia de proxy o firewall**: los proxies corporativos que realizan inspección TLS pueden causar estos errores, incluidos `unable to get local issuer certificate` y `SELF_SIGNED_CERT_IN_CHAIN`. Para el paso de instalación, haga que la descarga de instalación confíe en el CA corporativo:6093. **Verifica si hay interferencia de un proxy o firewall**: los proxies corporativos que realizan inspección TLS pueden causar estos errores, incluidos `unable to get local issuer certificate` y `SELF_SIGNED_CERT_IN_CHAIN`. Para el paso de instalación, haz que la descarga de instalación confíe en la CA de tu proxy corporativo:

489 610 

490 <Tabs>611 <Tabs>

491 <Tab title="macOS/Linux">612 <Tab title="macOS/Linux">


495 </Tab>616 </Tab>

496 617 

497 <Tab title="Windows PowerShell">618 <Tab title="Windows PowerShell">

498 El instalador de PowerShell descarga a través de .NET, que valida TLS contra el almacén de certificados de Windows. Pida a su equipo de TI que agregue el certificado CA del proxy al almacén de Windows si aún no está allí, luego ejecute el instalador:619 El instalador de PowerShell descarga a través de .NET, que valida TLS contra el almacén de certificados de Windows. Pide a tu equipo de TI que agregue el certificado CA del proxy al almacén de Windows si aún no está allí, y luego ejecuta el instalador:

499 620 

500 ```powershell theme={null}621 ```powershell theme={null}

501 irm https://claude.ai/install.ps1 | iex622 irm https://claude.ai/install.ps1 | iex


503 </Tab>624 </Tab>

504 </Tabs>625 </Tabs>

505 626 

506 Para Claude Code en sí una vez instalado, establezca `NODE_EXTRA_CA_CERTS` para que las solicitudes de API confíen en el mismo paquete:627 Para Claude Code en sí una vez instalado, establece `NODE_EXTRA_CA_CERTS` para que las solicitudes de API confíen en el mismo paquete:

507 628 

508 <Tabs>629 <Tabs>

509 <Tab title="macOS/Linux">630 <Tab title="macOS/Linux">


519 </Tab>640 </Tab>

520 </Tabs>641 </Tabs>

521 642 

522 Pida a su equipo de TI el archivo de certificado si no lo tiene. También puede intentar en una conexión directa para confirmar que el proxy es la causa.643 Pide a tu equipo de TI el archivo de certificado si no lo tienes. También puedes intentar en una conexión directa para confirmar que el proxy es la causa.

523 644 

5244. **En Windows, solucione verificaciones de revocación bloqueadas**. Los errores `CRYPT_E_NO_REVOCATION_CHECK (0x80092012)` y `CRYPT_E_REVOCATION_OFFLINE (0x80092013)` significan que curl alcanzó el servidor pero su red bloquea la búsqueda de revocación de certificados, que es común detrás de firewalls corporativos. Si el comando que falla es el `curl` que descarga `install.cmd`, ejecútelo nuevamente desde un símbolo del sistema con `--ssl-revoke-best-effort` agregado:6454. **En Windows, evita las verificaciones de revocación bloqueadas**. Los errores `CRYPT_E_NO_REVOCATION_CHECK (0x80092012)` y `CRYPT_E_REVOCATION_OFFLINE (0x80092013)` significan que curl accedió al servidor pero tu red bloquea la consulta de revocación de certificados, algo común detrás de firewalls corporativos. Si el comando que falla es el `curl` que descarga `install.cmd`, ejecútalo nuevamente desde CMD agregando `--ssl-revoke-best-effort`:

525 ```batch theme={null}646 ```batch theme={null}

526 curl --ssl-revoke-best-effort -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd647 curl --ssl-revoke-best-effort -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

527 ```648 ```

528 Cuando las descargas propias del script encuentran los mismos errores, las reintenta con verificación de revocación de mejor esfuerzo automáticamente, por lo que la bandera solo es necesaria en el comando que ejecuta usted mismo. La verificación de mejor esfuerzo tolera un servidor de revocación inaccesible pero aún rechaza un certificado que se sabe que está revocado, coincidiendo con cómo los navegadores manejan la revocación. También puede evitar completamente la verificación de revocación de curl ejecutando el instalador de PowerShell desde PowerShell, que descarga a través de .NET y no falla cuando el servidor de revocación es inaccesible:649 Cuando las descargas propias del script encuentran los mismos errores, el script las reintenta automáticamente con verificación de revocación de mejor esfuerzo, por lo que el flag solo es necesario en el comando que ejecutas tú mismo. La verificación de mejor esfuerzo tolera un servidor de revocación inaccesible pero aún rechaza un certificado que se sabe que está revocado, igual que los navegadores manejan la revocación. También puedes evitar por completo la verificación de revocación de curl ejecutando el instalador de PowerShell desde PowerShell, que descarga a través de .NET y no falla cuando el servidor de revocación es inaccesible:

529 ```powershell theme={null}650 ```powershell theme={null}

530 irm https://claude.ai/install.ps1 | iex651 irm https://claude.ai/install.ps1 | iex

531 ```652 ```

532 También puede instalar con `winget install Anthropic.ClaudeCode`, que evita curl por completo.653 También puedes instalar con `winget install Anthropic.ClaudeCode`, que evita curl por completo.

533 654 

534<h3 id="failed-to-fetch-version-from-downloads-claude-ai">655<h3 id="failed-to-fetch-version-from-downloads-claude-ai">

535 `Failed to fetch version from downloads.claude.ai`656 `Failed to fetch version from downloads.claude.ai`

536</h3>657</h3>

537 658 

538El instalador no pudo alcanzar el servidor de descarga. Esto típicamente significa que `downloads.claude.ai` está bloqueado en su red. Consulte [Verifique la conectividad de red](#check-network-connectivity).659El instalador no pudo acceder al servidor de descarga. Esto normalmente significa que `downloads.claude.ai` está bloqueado en tu red. Consulta [Verifica la conectividad de red](#check-network-connectivity).

660 

661<h3 id="the-connection-dropped-while-downloading-the-update">

662 La conexión se interrumpió mientras se descargaba la actualización

663</h3>

664 

665La conexión con el servidor de descarga se cerró mientras `claude install` o `claude update` obtenía el binario de Claude Code, y los reintentos no lograron recuperarla. Claude Code reintenta la descarga cuando la conexión se interrumpe, la transferencia se detiene o el archivo descargado no pasa su verificación de checksum, hasta un total de tres intentos. Un error HTTP completo, como un 404, no se reintenta porque el servidor ya respondió. Antes de v2.1.202, una sola conexión interrumpida hacía fallar la descarga de inmediato con el error escueto `aborted` en lugar de reintentar.

666 

667```text theme={null}

668The connection dropped while downloading the update (attempt 3/3: aborted). Check your network — proxies sometimes cut off large downloads.

669```

670 

671El texto entre paréntesis indica qué intento falló y el error de red subyacente. `claude update` antepone al mensaje `Error: Failed to install native update` en stderr.

672 

673Una descarga que se mantiene conectada pero no termina en 10 minutos falla con `Download timed out: exceeded the total deadline` en su lugar. Claude Code no reintenta una descarga que agotó el tiempo, porque una conexión demasiado lenta para terminar dentro del plazo tampoco terminará en un reintento inmediato. Los pasos a continuación aplican a ambos mensajes.

674 

675Un proxy o gateway puede cerrar una transferencia larga antes de que termine, y el binario de Claude Code es una descarga grande.

676 

677**Qué hacer:**

678 

679* Ejecuta `claude update` nuevamente. En una red que por lo demás funciona bien, la descarga suele completarse en el siguiente intento. Para el mensaje de tiempo agotado, ejecútalo nuevamente desde una red más rápida o menos limitada.

680* Si tu red requiere un proxy, establece `HTTPS_PROXY` antes de ejecutar el instalador o `claude update`. Consulta [Verifica la conectividad de red](#check-network-connectivity).

681* Si un proxy corporativo sigue cerrando la transferencia, pide a tu equipo de redes que permita la descarga completa desde `downloads.claude.ai`. Consulta [Requisitos de acceso a la red](/docs/es/network-config#network-access-requirements).

682* Ejecuta `claude doctor` desde tu shell para obtener diagnósticos de la instalación

539 683 

540<h3 id="wrong-install-command-on-windows">684<h3 id="wrong-install-command-on-windows">

541 Comando de instalación incorrecto en Windows685 Comando de instalación incorrecto en Windows

542</h3>686</h3>

543 687 

544Si ve `'irm' is not recognized`, `The token '&&' is not a valid statement separator`, `A parameter cannot be found that matches parameter name 'fsSL'`, o `'bash' is not recognized as the name of a cmdlet`, copió el comando de instalación para un shell o sistema operativo diferente. Si el comando imprime el texto del script en lugar de instalar algo, ejecutó solo parte del mismo.688Si ves `'irm' is not recognized`, `The token '&&' is not a valid statement separator`, `A parameter cannot be found that matches parameter name 'fsSL'` o `'bash' is not recognized as the name of a cmdlet`, copiaste el comando de instalación para un shell o sistema operativo diferente. Si el comando imprime el texto del script en lugar de instalar algo, ejecutaste solo una parte del comando.

545 689 

546* **`irm` no reconocido**: está en CMD, no en PowerShell. Tiene dos opciones:690* **`irm` no reconocido**: estás en CMD, no en PowerShell. Tienes dos opciones:

547 691 

548 Abra PowerShell buscando "PowerShell" en el menú Inicio, luego ejecute el comando de instalación original:692 Abre PowerShell buscando "PowerShell" en el menú Inicio y luego ejecuta el comando de instalación original:

549 693 

550 ```powershell theme={null}694 ```powershell theme={null}

551 irm https://claude.ai/install.ps1 | iex695 irm https://claude.ai/install.ps1 | iex

552 ```696 ```

553 697 

554 O permanezca en CMD y use el instalador de CMD en su lugar:698 O permanece en CMD y usa el instalador de CMD en su lugar:

555 699 

556 ```batch theme={null}700 ```batch theme={null}

557 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd701 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

558 ```702 ```

559 703 

560* **`&&` no es un separador de instrucción válido**: está en PowerShell pero ejecutó el comando del instalador de CMD. Use el instalador de PowerShell:704* **`&&` no es un separador de instrucciones válido**: estás en PowerShell pero ejecutaste el comando del instalador de CMD. Usa el instalador de PowerShell:

561 ```powershell theme={null}705 ```powershell theme={null}

562 irm https://claude.ai/install.ps1 | iex706 irm https://claude.ai/install.ps1 | iex

563 ```707 ```

564 708 

565* **`A parameter cannot be found that matches parameter name 'fsSL'`**: ejecutó el instalador de macOS/Linux `curl -fsSL ... | bash` en Windows PowerShell, donde `curl` es un alias para `Invoke-WebRequest` y rechaza los indicadores `-fsSL`. Use el instalador de PowerShell en su lugar:709* **`A parameter cannot be found that matches parameter name 'fsSL'`**: ejecutaste el instalador de macOS/Linux `curl -fsSL ... | bash` en Windows PowerShell, donde `curl` es un alias de `Invoke-WebRequest` y rechaza los flags `-fsSL`. Usa el instalador de PowerShell en su lugar:

566 ```powershell theme={null}710 ```powershell theme={null}

567 irm https://claude.ai/install.ps1 | iex711 irm https://claude.ai/install.ps1 | iex

568 ```712 ```

569 713 

570* **`bash` no reconocido**: ejecutó el instalador de macOS/Linux en Windows. Use el instalador de PowerShell en su lugar:714* **`bash` no reconocido**: ejecutaste el instalador de macOS/Linux en Windows. Usa el instalador de PowerShell en su lugar:

571 ```powershell theme={null}715 ```powershell theme={null}

572 irm https://claude.ai/install.ps1 | iex716 irm https://claude.ai/install.ps1 | iex

573 ```717 ```

574 718 

575* **El comando imprime texto del script en lugar de instalar**: ejecutó la mitad de descarga del comando sin la parte que lo ejecuta. `irm https://claude.ai/install.ps1` por sí solo imprime el script descargado en la terminal. Canalícelo a `iex` para ejecutarlo:719* **El comando imprime el texto del script en lugar de instalar**: ejecutaste la mitad de descarga del comando sin la parte que lo ejecuta. `irm https://claude.ai/install.ps1` por sí solo imprime el script descargado en la terminal. Canalízalo a `iex` para ejecutarlo:

576 720 

577 ```powershell theme={null}721 ```powershell theme={null}

578 irm https://claude.ai/install.ps1 | iex722 irm https://claude.ai/install.ps1 | iex

579 ```723 ```

580 724 

581 En CMD, `curl -fsSL https://claude.ai/install.cmd` sin `-o` imprime el script por lotes en lugar de guardarlo. Ejecute el comando completo:725 En CMD, `curl -fsSL https://claude.ai/install.cmd` sin `-o` imprime el script por lotes en lugar de guardarlo. Ejecuta el comando completo:

582 726 

583 ```batch theme={null}727 ```batch theme={null}

584 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd728 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

585 ```729 ```

586 730 

587Cualquiera que sea el instalador que use, confirme que funcionó: abra una nueva terminal y ejecute `claude --version`, que imprime un número de versión como `2.1.211 (Claude Code)`.731Sea cual sea el instalador que uses, confirma que funcionó: abre una nueva terminal y ejecuta `claude --version`, que imprime un número de versión como `2.1.211 (Claude Code)`.

588 732 

589<h3 id="running-scripts-is-disabled-on-this-system">733<h3 id="running-scripts-is-disabled-on-this-system">

590 `running scripts is disabled on this system`734 `running scripts is disabled on this system`


598 + CategoryInfo : SecurityError: (:) [], PSSecurityException742 + CategoryInfo : SecurityError: (:) [], PSSecurityException

599```743```

600 744 

601El mismo error nombra `claude.ps1` cuando ejecuta `claude` después de una instalación de npm. La política de ejecución de PowerShell está bloqueando los scripts de lanzador `.ps1` que npm crea para sus comandos. La política se aplica a archivos de script, por lo que no afecta al instalador de PowerShell `irm https://claude.ai/install.ps1 | iex`, que ejecuta el texto descargado directamente.745El mismo error nombra `claude.ps1` cuando ejecutas `claude` después de una instalación con npm. La política de ejecución de PowerShell está bloqueando los scripts lanzadores `.ps1` que npm crea para sus comandos. La política se aplica a archivos de script, por lo que no afecta al instalador de PowerShell `irm https://claude.ai/install.ps1 | iex`, que ejecuta directamente el texto descargado.

602 746 

603**Soluciones:**747**Soluciones:**

604 748 

6051. **Permita scripts creados localmente para su usuario**, luego intente nuevamente:7491. **Permite los scripts creados localmente para tu usuario** y luego intenta nuevamente:

606 ```powershell theme={null}750 ```powershell theme={null}

607 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser751 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

608 ```752 ```

6092. **Llame al lanzador `.cmd` en su lugar**: `npm.cmd` y `claude.cmd` hacen el mismo trabajo, y la política no los cubre.7532. **Llama al lanzador `.cmd` en su lugar**: `npm.cmd` y `claude.cmd` hacen el mismo trabajo, y la política no los cubre.

6103. **Use el [instalador de PowerShell](/docs/es/setup#install-claude-code)** en lugar de npm. Instala un binario en lugar de un script `.ps1`.7543. **Usa el [instalador de PowerShell](/docs/es/setup#install-claude-code)** en lugar de npm. Instala un binario en lugar de un script `.ps1`.

611 755 

612<h3 id="the-process-cannot-access-the-file-during-windows-install">756<h3 id="the-process-cannot-access-the-file-during-windows-install">

613 `The process cannot access the file` durante la instalación en Windows757 `The process cannot access the file` durante la instalación en Windows

614</h3>758</h3>

615 759 

616Si el instalador de PowerShell falla con `Failed to download binary: The process cannot access the file ... because it is being used by another process`, el instalador no pudo escribir en `%USERPROFILE%\.claude\downloads`. Esto generalmente significa que un intento de instalación anterior aún se está ejecutando, o el software antivirus está escaneando un binario descargado parcialmente en esa carpeta.760Si el instalador de PowerShell falla con `Failed to download binary: The process cannot access the file ... because it is being used by another process`, el instalador no pudo escribir en `%USERPROFILE%\.claude\downloads`. Esto generalmente significa que un intento de instalación anterior aún se está ejecutando, o que un software antivirus está analizando un binario descargado parcialmente en esa carpeta.

617 761 

618Cierre cualquier otra ventana de PowerShell ejecutando el instalador y espere a que los escaneos de antivirus liberen el archivo. Luego elimine la carpeta de descargas y ejecute el instalador nuevamente:762Cierra cualquier otra ventana de PowerShell que esté ejecutando el instalador y espera a que los análisis del antivirus liberen el archivo. Luego elimina la carpeta de descargas y ejecuta el instalador nuevamente:

619 763 

620```powershell theme={null}764```powershell theme={null}

621Remove-Item -Recurse -Force "$env:USERPROFILE\.claude\downloads"765Remove-Item -Recurse -Force "$env:USERPROFILE\.claude\downloads"


628 772 

629Si tu terminal informa `'claude' is not recognized` justo después de que Claude Code se actualizara en Windows, verifica si `%USERPROFILE%\.local\bin` aún contiene `claude.exe`. Si ese directorio no está en tu PATH en absoluto, consulta [Verifica tu PATH](#verify-your-path) en su lugar. Para actualizarse en Windows, Claude Code cambia el nombre del `claude.exe` existente para apartarlo como respaldo y mueve la nueva versión a su lugar. Si mover la nueva versión a su lugar falla y Claude Code tampoco puede devolverle el nombre original al respaldo, el directorio conserva el respaldo pero no tiene `claude.exe`.773Si tu terminal informa `'claude' is not recognized` justo después de que Claude Code se actualizara en Windows, verifica si `%USERPROFILE%\.local\bin` aún contiene `claude.exe`. Si ese directorio no está en tu PATH en absoluto, consulta [Verifica tu PATH](#verify-your-path) en su lugar. Para actualizarse en Windows, Claude Code cambia el nombre del `claude.exe` existente para apartarlo como respaldo y mueve la nueva versión a su lugar. Si mover la nueva versión a su lugar falla y Claude Code tampoco puede devolverle el nombre original al respaldo, el directorio conserva el respaldo pero no tiene `claude.exe`.

630 774 

631El respaldo es un archivo en el mismo directorio cuyo nombre comienza con `claude.exe.old.` seguido de una marca de tiempo numérica. Ejecute lo siguiente en PowerShell para cambiar el nombre del respaldo más reciente de vuelta a `claude.exe`:775El respaldo es un archivo en el mismo directorio cuyo nombre comienza con `claude.exe.old.` seguido de una marca de tiempo numérica. Ejecuta lo siguiente en PowerShell para devolverle al respaldo más reciente el nombre `claude.exe`:

632 776 

633```powershell theme={null}777```powershell theme={null}

634Get-ChildItem "$env:USERPROFILE\.local\bin\claude.exe.old.*" | Sort-Object Name | Select-Object -Last 1 | Rename-Item -NewName claude.exe778Get-ChildItem "$env:USERPROFILE\.local\bin\claude.exe.old.*" | Sort-Object Name | Select-Object -Last 1 | Rename-Item -NewName claude.exe

635```779```

636 780 

637Luego ejecute `claude --version` para confirmar la corrección. Un `claude.exe` restaurado imprime un número de versión.781Luego ejecuta `claude --version` para confirmar la corrección. Un `claude.exe` restaurado imprime un número de versión.

638 782 

639Si no hay un archivo `claude.exe.old.*`, o `claude` aún falla después del cambio de nombre, reinstale en su lugar:783Si no hay ningún archivo `claude.exe.old.*`, o `claude` aún falla después del cambio de nombre, reinstala en su lugar:

640 784 

641```powershell theme={null}785```powershell theme={null}

642irm https://claude.ai/install.ps1 | iex786irm https://claude.ai/install.ps1 | iex

643```787```

644 788 

645Antes de v2.1.281, Claude Code podría eliminar el respaldo mientras `claude.exe` aún estaba faltante.789Antes de v2.1.281, Claude Code podía eliminar el respaldo mientras `claude.exe` aún faltaba.

646 790 

647<h3 id="install-killed-on-low-memory-linux-servers">791<h3 id="install-killed-on-low-memory-linux-servers">

648 La instalación se cuelga en servidores Linux con poca memoria792 La instalación se interrumpe en servidores Linux con poca memoria

649</h3>793</h3>

650 794 

651Un mensaje `Killed` durante la instalación generalmente significa que el asesino de falta de memoria (OOM) de Linux terminó el paso `claude install` porque el sistema se quedó sin memoria libre. Esto es común en VPS pequeños e instancias en la nube. El script de instalación reporta la causa y sale con código 137. En este ejemplo, el número de línea e ID de proceso varían según la versión y ejecución:795Un mensaje `Killed` durante la instalación generalmente significa que el OOM killer (out-of-memory) de Linux terminó el paso `claude install` porque el sistema se quedó sin memoria libre. Esto es común en VPS pequeños e instancias en la nube. El script de instalación reporta la causa y termina con el código 137. En este ejemplo, el número de línea y el ID de proceso varían según la versión y la ejecución:

652 796 

653```text theme={null}797```text theme={null}

654Setting up Claude Code...798Setting up Claude Code...


657Claude Code needs roughly 512MB of free memory to install. Free up memory, then run this script again.801Claude Code needs roughly 512MB of free memory to install. Free up memory, then run this script again.

658```802```

659 803 

660La instalación necesita aproximadamente 512 MB de memoria libre, y ejecutar Claude Code necesita más. Consulte los [requisitos del sistema](/docs/es/setup#system-requirements).804La instalación necesita aproximadamente 512 MB de memoria libre, y ejecutar Claude Code necesita más. Consulta los [requisitos del sistema](/docs/es/setup#system-requirements).

661 805 

662**Soluciones:**806**Soluciones:**

663 807 

6641. **Agregue espacio de intercambio** si su servidor tiene RAM limitada. El intercambio usa espacio en disco como memoria de desbordamiento, permitiendo que la instalación se complete incluso con RAM física baja.8081. **Agrega espacio de intercambio (swap)** si tu servidor tiene RAM limitada. El swap usa espacio en disco como memoria adicional, lo que permite que la instalación se complete incluso con poca RAM física.

665 809 

666 Cree un archivo de intercambio de 2 GB y habilítelo:810 Crea un archivo de swap de 2 GB y habilítalo:

667 811 

668 ```bash theme={null}812 ```bash theme={null}

669 sudo fallocate -l 2G /swapfile813 sudo fallocate -l 2G /swapfile


672 sudo swapon /swapfile816 sudo swapon /swapfile

673 ```817 ```

674 818 

675 Luego reintente la instalación:819 Luego reintenta la instalación:

676 820 

677 ```bash theme={null}821 ```bash theme={null}

678 curl -fsSL https://claude.ai/install.sh | bash822 curl -fsSL https://claude.ai/install.sh | bash

679 ```823 ```

680 824 

6812. **Cierre otros procesos** para liberar memoria antes de instalar.8252. **Cierra otros procesos** para liberar memoria antes de instalar.

826 

8273. **Usa una instancia más grande** si es posible. Claude Code requiere al menos 4 GB de RAM.

828 

829<h3 id="installation-was-killed-before-it-could-finish">

830 Installation was killed before it could finish

831</h3>

832 

833El script de instalación informa cuando el paso `claude install` es terminado por una señal. En Linux, el código de salida 137 significa que el proceso recibió SIGKILL, y en un host con poca memoria eso suele ser el OOM killer (out-of-memory) del kernel. El script imprime esta explicación y termina con el código 137:

834 

835```text theme={null}

836Installation was killed before it could finish (exit code 137). This usually means the system ran out of memory.

837Claude Code needs roughly 512MB of free memory to install. Free up memory, then run this script again.

838```

839 

840Para cualquier otra señal fatal, y para el código de salida 137 en macOS, el script imprime `Installation was killed before it could finish (exit code <N>)` con el código de salida real y omite la explicación de falta de memoria. El mensaje proviene del script de instalación que usan macOS y Linux, que también cubre las instalaciones dentro de WSL; los scripts de instalación nativos de Windows nunca lo imprimen. Antes de v2.1.200, el script terminaba solo con la línea escueta `Killed` del shell.

841 

842**Qué hacer:**

682 843 

6833. **Use una instancia más grande** si es posible. Claude Code requiere al menos 4 GB de RAM.844* Detén otros procesos para liberar memoria y luego vuelve a ejecutar el instalador

845* Agrega espacio de swap o cambia a una instancia más grande. Consulta [La instalación se interrumpe en servidores Linux con poca memoria](#install-killed-on-low-memory-linux-servers) para ver los comandos del archivo de swap.

684 846 

685<h3 id="install-hangs-in-docker">847<h3 id="install-hangs-in-docker">

686 La instalación se cuelga en Docker848 La instalación se cuelga en Docker


690 852 

691**Soluciones:**853**Soluciones:**

692 854 

6931. **Establezca un directorio de trabajo** antes de ejecutar el instalador. Cuando se ejecuta desde `/`, el instalador escanea todo el sistema de archivos, lo que causa un uso excesivo de memoria. Establecer `WORKDIR` limita el escaneo a un directorio pequeño:8551. **Establece un directorio de trabajo** antes de ejecutar el instalador. Cuando se ejecuta desde `/`, el instalador analiza todo el sistema de archivos, lo que causa un uso excesivo de memoria. Establecer `WORKDIR` limita el análisis a un directorio pequeño:

694 ```dockerfile theme={null}856 ```dockerfile theme={null}

695 WORKDIR /tmp857 WORKDIR /tmp

696 RUN curl -fsSL https://claude.ai/install.sh | bash858 RUN curl -fsSL https://claude.ai/install.sh | bash

697 ```859 ```

698 860 

6992. **Aumente la memoria de Docker** si usa Docker Desktop. Los contenedores de compilación comparten la memoria asignada a la máquina virtual de Docker Desktop, así que abra **Settings > Resources** en Docker Desktop, aumente el límite de memoria, y reejecutar la compilación.8612. **Asigna más memoria a Docker** si usas Docker Desktop. Los contenedores de compilación comparten la memoria asignada a la máquina virtual de Docker Desktop, así que abre **Settings > Resources** en Docker Desktop, aumenta el límite de memoria y vuelve a ejecutar la compilación.

700 862 

701<h3 id="raw-mode-is-not-supported-during-install">863<h3 id="raw-mode-is-not-supported-during-install">

702 `Raw mode is not supported` durante la instalación864 `Raw mode is not supported` durante la instalación

703</h3>865</h3>

704 866 

705Cuando la [configuración administrada por servidor](/docs/es/server-managed-settings) de su organización incluye cambios que necesitan [aprobación de seguridad](/docs/es/server-managed-settings#security-approval-dialogs), las versiones de Claude Code anteriores a 2.1.246 intentan mostrar el diálogo de aprobación durante `claude install`. El diálogo necesita una terminal en stdin. Cuando el instalador ejecuta `claude install` desde una tubería, como `curl -fsSL https://claude.ai/install.sh | bash` hace, stdin es la tubería en lugar de una terminal, por lo que la instalación falla con un error que contiene `Raw mode is not supported`.867Cuando la [configuración administrada por servidor](/docs/es/server-managed-settings) de tu organización incluye cambios que necesitan [aprobación de seguridad](/docs/es/server-managed-settings#security-approval-dialogs), las versiones de Claude Code anteriores a 2.1.246 intentan mostrar el diálogo de aprobación durante `claude install`. El diálogo necesita una terminal en stdin. Cuando el instalador ejecuta `claude install` desde una tubería, como hace `curl -fsSL https://claude.ai/install.sh | bash`, stdin es la tubería en lugar de una terminal, por lo que la instalación falla con un error que contiene `Raw mode is not supported`.

706 868 

707Claude Code v2.1.246 y posterior no muestran el diálogo durante `claude install` o `claude update`. El comando se ejecuta con la configuración que aprobó por última vez, y Claude Code muestra el diálogo en su próxima sesión interactiva. Si la configuración de inicio de su organización [espera la obtención de configuración](/docs/es/server-managed-settings#enforce-fail-closed-startup), como cuando establece `forceRemoteSettingsRefresh`, el diálogo aún aparece durante estos comandos, y una ejecución de instalación desde una tubería aún falla.869Claude Code v2.1.246 y posteriores no muestran el diálogo durante `claude install` ni `claude update`. El comando se ejecuta con la configuración que aprobaste por última vez, y Claude Code muestra el diálogo en tu próxima sesión interactiva. Si la configuración de inicio de tu organización [espera la obtención de la configuración](/docs/es/server-managed-settings#enforce-fail-closed-startup), como cuando establece `forceRemoteSettingsRefresh`, el diálogo aún aparece durante estos comandos, y una instalación ejecutada desde una tubería aún falla.

708 870 

709En todas las demás configuraciones, reejecutar el instalador supera este error, porque el script ejecuta el comando `install` de la versión más reciente incluso cuando le pide que instale una versión anterior. Reejecute el comando para su plataforma:871En todas las demás configuraciones, volver a ejecutar el instalador supera este error, porque el script ejecuta el comando `install` de la versión más reciente incluso cuando le pides que instale una versión anterior. Vuelve a ejecutar el comando para tu plataforma:

710 872 

711<Tabs>873<Tabs>

712 <Tab title="macOS/Linux">874 <Tab title="macOS/Linux">


722 </Tab>884 </Tab>

723</Tabs>885</Tabs>

724 886 

725`claude --version` imprime la versión que la reejecución instaló.887`claude --version` imprime la versión que instaló la nueva ejecución.

726 888 

727<h3 id="claude-update-or-claude-doctor-hangs">889<h3 id="claude-update-or-claude-doctor-hangs">

728 `claude update` o `claude doctor` se cuelga890 `claude update` o `claude doctor` se cuelga

729</h3>891</h3>

730 892 

731`claude update` y `claude doctor` escanean sus archivos de configuración de shell para un alias `claude` obsoleto: `~/.zshrc`, `~/.bashrc`, y `~/.config/fish/config.fish`, más en macOS el primero de `~/.bash_profile`, `~/.bash_login`, o `~/.profile` que existe. Si establece `ZDOTDIR`, el archivo Zsh es `$ZDOTDIR/.zshrc` en su lugar. Cuando una de esas rutas es un directorio, Claude Code la omite y ambos comandos se completan normalmente. Antes de v2.1.214, un directorio en una de esas rutas hacía que ambos comandos se cuelguen y dejaba la sección de diagnósticos del sistema de `/status` en blanco. `claude doctor` se colgaba sin salida; `claude update` se colgaba justo después de imprimir `Checking for updates`.893`claude update` y `claude doctor` analizan tus archivos de configuración del shell en busca de un alias `claude` obsoleto: `~/.zshrc`, `~/.bashrc` y `~/.config/fish/config.fish`, además, en macOS, el primero que exista de `~/.bash_profile`, `~/.bash_login` o `~/.profile`. Si estableces `ZDOTDIR`, el archivo de Zsh es `$ZDOTDIR/.zshrc` en su lugar. Cuando una de esas rutas es un directorio, Claude Code la omite y ambos comandos se completan normalmente. Antes de v2.1.214, un directorio en una de esas rutas hacía que ambos comandos se colgaran y dejaba en blanco la sección System diagnostics de `/status`. `claude doctor` se colgaba sin salida; `claude update` se colgaba justo después de imprimir `Checking for updates`.

732 894 

733Si encuentra el cuelgue en una versión anterior, encuentre el directorio. En la salida de este comando, una línea que comienza con `d` marca esa ruta como un directorio. Una línea `No such file or directory` significa que nada existe en esa ruta y no es la causa:895Si encuentras el cuelgue en una versión anterior, localiza el directorio. En la salida de este comando, una línea que comienza con `d` marca esa ruta como un directorio. Una línea `No such file or directory` significa que no existe nada en esa ruta y no es la causa:

734 896 

735```bash theme={null}897```bash theme={null}

736ls -ld ~/.zshrc ~/.bashrc ~/.bash_profile ~/.bash_login ~/.profile ~/.config/fish/config.fish898ls -ld ~/.zshrc ~/.bashrc ~/.bash_profile ~/.bash_login ~/.profile ~/.config/fish/config.fish

737```899```

738 900 

739Mueva el directorio a un lado, o actualice a v2.1.214 o posterior. Dado que `claude update` se cuelga en las versiones afectadas, actualice reejecutando el [script de instalación](/docs/es/setup#install-claude-code) en su lugar.901Mueve el directorio a otro lugar, o actualiza a v2.1.214 o posterior. Dado que `claude update` se cuelga en las versiones afectadas, actualiza volviendo a ejecutar el [script de instalación](/docs/es/setup#install-claude-code) en su lugar.

740 902 

741<h3 id="claude-desktop-overrides-the-claude-command-on-windows">903<h3 id="claude-desktop-overrides-the-claude-command-on-windows">

742 Claude Desktop anula el comando `claude` en Windows904 Claude Desktop sobrescribe el comando `claude` en Windows

743</h3>905</h3>

744 906 

745Si instaló una versión anterior de Claude Desktop, puede registrar un `Claude.exe` en el directorio `WindowsApps` que toma prioridad de PATH sobre Claude Code CLI. Ejecutar `claude` abre la aplicación de escritorio en lugar de la CLI.907Si instalaste una versión anterior de Claude Desktop, puede registrar un `Claude.exe` en el directorio `WindowsApps` que tiene prioridad en el PATH sobre Claude Code CLI. Ejecutar `claude` abre la aplicación de escritorio en lugar de la CLI.

746 908 

747Actualice Claude Desktop a la versión más reciente para corregir este problema.909Actualiza Claude Desktop a la versión más reciente para corregir este problema.

748 910 

749<h3 id="claude-code-on-windows-requires-either-git-for-windows-for-bash-or-powershell">911<h3 id="claude-code-on-windows-requires-either-git-for-windows-for-bash-or-powershell">

750 Claude Code en Windows requiere Git para Windows (para bash) o PowerShell912 Claude Code on Windows requires either Git for Windows (for bash) or PowerShell

751</h3>913</h3>

752 914 

753Git para Windows es opcional. Claude Code usa la [herramienta PowerShell](/docs/es/tools-reference#powershell-tool) cuando Git Bash está ausente, por lo que este error significa que ninguno de los dos shells fue encontrado.915Git para Windows es opcional. Claude Code usa la [herramienta PowerShell](/docs/es/tools-reference#powershell-tool) cuando Git Bash no está presente, por lo que este error significa que no se encontró ninguno de los dos shells.

754 916 

755**Si PowerShell falta de su PATH**, su ubicación predeterminada es `C:\Windows\System32\WindowsPowerShell\v1.0\`. Agregue ese directorio a su `PATH`, o instale [PowerShell 7](https://aka.ms/powershell), que proporciona `pwsh`.917**Si PowerShell no está en tu PATH**, su ubicación predeterminada es `C:\Windows\System32\WindowsPowerShell\v1.0\`. Agrega ese directorio a tu `PATH`, o instala [PowerShell 7](https://aka.ms/powershell), que proporciona `pwsh`.

756 918 

757**Para instalar Git para Windows en su lugar**, descárguelo desde [git-scm.com/downloads/win](https://git-scm.com/downloads/win). Durante la configuración, seleccione "Add to PATH." Reinicie su terminal después de instalar. Instalarlo habilita la herramienta Bash, útil cuando se trabaja con scripts y herramientas basadas en Bash.919**Para instalar Git para Windows en su lugar**, descárgalo desde [git-scm.com/downloads/win](https://git-scm.com/downloads/win). Durante la instalación, selecciona "Add to PATH." Reinicia tu terminal después de instalar. Instalarlo habilita la herramienta Bash, útil cuando trabajas con scripts y herramientas basadas en Bash.

758 920 

759**Si Git ya está instalado** pero Claude Code no puede encontrarlo, compare su ubicación contra los lugares que Claude Code verifica. Cuando `CLAUDE_CODE_GIT_BASH_PATH` no está establecido, Claude Code busca `bash.exe` en este orden:921**Si Git ya está instalado** pero Claude Code no puede encontrarlo, compara su ubicación con los lugares que Claude Code verifica. Cuando `CLAUDE_CODE_GIT_BASH_PATH` no está establecido, Claude Code busca `bash.exe` en este orden:

760 922 

7611. Las ubicaciones de instalación predeterminadas `C:\Program Files\Git` y `C:\Program Files (x86)\Git`.9231. Las ubicaciones de instalación predeterminadas `C:\Program Files\Git` y `C:\Program Files (x86)\Git`.

7622. El `git` en su `PATH`, usando el `bin\bash.exe` de esa instalación de Git.9242. El `git` en tu `PATH`, usando el `bin\bash.exe` de esa instalación de Git.

763 925 

764En el paso 2, Claude Code omite un `git` que se encuentra en la carpeta desde la que lanzó Claude Code, o debajo de ella en una ruta que contiene `node_modules` o una carpeta de entorno virtual como `.venv` o `env`, por ejemplo `C:\dev\env\myproject\Git` cuando lanzó desde `C:\dev\env\myproject`. Esto evita que Claude Code ejecute un ejecutable que un proyecto colocó allí. Si su Git está en una ubicación como esa, apunte `CLAUDE_CODE_GIT_BASH_PATH` a él.926En el paso 2, Claude Code omite un `git` que se encuentra en la carpeta desde la que iniciaste Claude Code, o debajo de ella en una ruta que contiene `node_modules` o una carpeta de entorno virtual como `.venv` o `env`, por ejemplo `C:\dev\env\myproject\Git` cuando iniciaste desde `C:\dev\env\myproject`. Esto evita que Claude Code ejecute un ejecutable que un proyecto colocó allí. Si tu Git está en una ubicación así, apunta `CLAUDE_CODE_GIT_BASH_PATH` a él.

765 927 

766**Para apuntar Claude Code a una instalación específica de Git**, encuéntrela ejecutando `where.exe git` en PowerShell, luego establezca la ruta `bin\bash.exe` de esa instalación como `CLAUDE_CODE_GIT_BASH_PATH` en su [archivo settings.json](/docs/es/settings):928**Para apuntar Claude Code a una instalación específica de Git**, encuéntrala ejecutando `where.exe git` en PowerShell y luego establece la ruta `bin\bash.exe` de esa instalación como `CLAUDE_CODE_GIT_BASH_PATH` en tu [archivo settings.json](/docs/es/settings):

767 929 

768```json theme={null}930```json theme={null}

769{931{


773}935}

774```936```

775 937 

776**Si `CLAUDE_CODE_GIT_BASH_PATH` está establecido en la ruta correcta y el archivo existe** pero Claude Code aún no lo usa, verifique primero el nombre del archivo. Claude Code acepta solo un archivo nombrado `bash.exe`, `sh.exe`, `bash`, o `sh`; con cualquier otro nombre, como el lanzador `git-bash.exe` de Git para Windows, ignora la variable y auto-detecta Git Bash como si no estuviera establecida, registrando una advertencia visible con `--debug`. Una ruta que no existe obtiene el mismo fallback y advertencia. Antes de v2.1.219, Claude Code usaba cualquier archivo existente como shell sin verificar su nombre, y salía al inicio con `Claude Code was unable to find CLAUDE_CODE_GIT_BASH_PATH path` cuando la ruta no existía.938**Si `CLAUDE_CODE_GIT_BASH_PATH` está establecido en la ruta correcta y el archivo existe** pero Claude Code aún no lo usa, verifica primero el nombre del archivo. Claude Code acepta solo un archivo llamado `bash.exe`, `sh.exe`, `bash` o `sh`; con cualquier otro nombre, como el lanzador `git-bash.exe` de Git para Windows, ignora la variable y detecta automáticamente Git Bash como si no estuviera establecida, registrando una advertencia visible con `--debug`. Una ruta que no existe recibe el mismo comportamiento de respaldo y la misma advertencia. Antes de v2.1.219, Claude Code usaba cualquier archivo existente como shell sin verificar su nombre, y terminaba al iniciar con `Claude Code was unable to find CLAUDE_CODE_GIT_BASH_PATH path` cuando la ruta no existía.

777 939 

778Si el nombre del archivo es correcto, el software de seguridad de punto final como AppLocker, políticas de restricción de software de Directiva de grupo, o agentes EDR pueden estar interfiriendo. Pida a su equipo de TI que agregue a la lista blanca `claude.exe` y los procesos que genera, incluidos `cmd.exe` y `bash.exe`, en su política de protección de punto final.940Si el nombre del archivo es correcto, puede que esté interfiriendo software de seguridad de endpoints como AppLocker, las directivas de restricción de software de Directiva de grupo o agentes EDR. Pide a tu equipo de TI que agregue `claude.exe` y los procesos que genera, incluidos `cmd.exe` y `bash.exe`, a la lista de permitidos de tu política de protección de endpoints.

779 941 

780<h3 id="claude-code-does-not-support-32-bit-windows">942<h3 id="claude-code-does-not-support-32-bit-windows">

781 Claude Code no admite Windows de 32 bits943 Claude Code does not support 32-bit Windows

782</h3>944</h3>

783 945 

784Windows incluye dos entradas de PowerShell en el menú Inicio: `Windows PowerShell` y `Windows PowerShell (x86)`. La entrada x86 se ejecuta como un proceso de 32 bits y desencadena este error incluso en una máquina de 64 bits. Para verificar en qué caso está, ejecute esto en la misma ventana que produjo el error:946Windows incluye dos entradas de PowerShell en el menú Inicio: `Windows PowerShell` y `Windows PowerShell (x86)`. La entrada x86 se ejecuta como un proceso de 32 bits y provoca este error incluso en una máquina de 64 bits. Para verificar en qué caso estás, ejecuta esto en la misma ventana que produjo el error:

785 947 

786```powershell theme={null}948```powershell theme={null}

787[Environment]::Is64BitOperatingSystem949[Environment]::Is64BitOperatingSystem

788```950```

789 951 

790Si esto imprime `True`, su sistema operativo está bien. Cierre la ventana, abra `Windows PowerShell` sin el sufijo x86, y ejecute el comando de instalación nuevamente.952Si esto imprime `True`, tu sistema operativo está bien. Cierra la ventana, abre `Windows PowerShell` sin el sufijo x86 y ejecuta el comando de instalación nuevamente.

791 953 

792Si esto imprime `False`, está en una edición de Windows de 32 bits. Claude Code requiere un sistema operativo de 64 bits. Consulte los [requisitos del sistema](/docs/es/setup#system-requirements).954Si esto imprime `False`, estás en una edición de Windows de 32 bits. Claude Code requiere un sistema operativo de 64 bits. Consulta los [requisitos del sistema](/docs/es/setup#system-requirements).

793 955 

794<h3 id="linux-musl-or-glibc-binary-mismatch">956<h3 id="linux-musl-or-glibc-binary-mismatch">

795 Desajuste binario musl o glibc de Linux957 Discrepancia de binario musl o glibc en Linux

796</h3>958</h3>

797 959 

798Si ve errores sobre bibliotecas compartidas faltantes como `libstdc++.so.6` o `libgcc_s.so.1` después de la instalación, el instalador puede haber descargado la variante binaria incorrecta para su sistema.960Si ves errores sobre bibliotecas compartidas faltantes como `libstdc++.so.6` o `libgcc_s.so.1` después de la instalación, es posible que el instalador haya descargado la variante de binario incorrecta para tu sistema.

799 961 

800```text theme={null}962```text theme={null}

801Error loading shared library libstdc++.so.6: No such file or directory963Error loading shared library libstdc++.so.6: No such file or directory

802```964```

803 965 

804Esto puede ocurrir en sistemas basados en glibc que tienen paquetes de compilación cruzada musl instalados, causando que el instalador detecte incorrectamente el sistema como musl.966Esto puede ocurrir en sistemas basados en glibc que tienen instalados paquetes de compilación cruzada de musl, lo que hace que el instalador detecte incorrectamente el sistema como musl.

805 967 

806**Soluciones:**968**Soluciones:**

807 969 

8081. **Verifique qué libc usa su sistema**:9701. **Verifica qué libc usa tu sistema**:

809 ```bash theme={null}971 ```bash theme={null}

810 ldd --version 2>&1 | head -1972 ldd --version 2>&1 | head -1

811 ```973 ```

812 La salida que menciona `GNU libc` o `GLIBC` significa glibc. La salida que menciona `musl` significa musl.974 Una salida que menciona `GNU libc` o `GLIBC` significa glibc. Una salida que menciona `musl` significa musl.

813 975 

8142. **Si está en glibc pero obtuvo el binario musl**, elimine la instalación y reinstale. También puede descargar manualmente el binario correcto usando el manifiesto en `https://downloads.claude.ai/claude-code-releases/{VERSION}/manifest.json`. Presente un [problema de GitHub](https://github.com/anthropics/claude-code/issues) con la salida de `ldd --version` y `ls /lib/libc.musl*`.9762. **Si estás en glibc pero obtuviste el binario musl**, elimina la instalación y reinstala. También puedes descargar manualmente el binario correcto usando el manifiesto en `https://downloads.claude.ai/claude-code-releases/{VERSION}/manifest.json`. Abre un [issue en GitHub](https://github.com/anthropics/claude-code/issues) con la salida de `ldd --version` y `ls /lib/libc.musl*`.

815 977 

8163. **Si realmente está en musl**, como Alpine Linux, instale los paquetes requeridos:9783. **Si realmente estás en musl**, como Alpine Linux, instala los paquetes requeridos:

817 ```bash theme={null}979 ```bash theme={null}

818 apk add libgcc libstdc++ ripgrep980 apk add libgcc libstdc++ ripgrep

819 ```981 ```

820 En Alpine, `ripgrep` está en el repositorio de comunidad. Si `apk` reporta que el paquete falta, consulte [Configuración de Alpine Linux](/docs/es/setup#alpine-linux-and-musl-based-distributions).982 En Alpine, `ripgrep` está en el repositorio community. Si `apk` reporta que falta el paquete, consulta [Configuración de Alpine Linux](/docs/es/setup#alpine-linux-and-musl-based-distributions).

821 983 

822<h3 id="illegal-instruction">984<h3 id="illegal-instruction">

823 `Illegal instruction`985 `Illegal instruction`

824</h3>986</h3>

825 987 

826Si ejecutar `claude` o el instalador imprime `Illegal instruction`, el binario nativo usa instrucciones de CPU que su procesador no admite. Hay dos causas distintas.988Si al ejecutar `claude` o el instalador se imprime `Illegal instruction`, el binario nativo usa instrucciones de CPU que tu procesador no admite. Hay dos causas distintas.

827 989 

828**Desajuste de arquitectura.** El instalador descargó el binario incorrecto, por ejemplo x86 en un servidor ARM. Verifique con `uname -m` en macOS o Linux, o `$env:PROCESSOR_ARCHITECTURE` en PowerShell. Si el resultado no coincide con el binario que recibió, [presente un problema de GitHub](https://github.com/anthropics/claude-code/issues) con la salida.990**Discrepancia de arquitectura.** El instalador descargó el binario incorrecto, por ejemplo x86 en un servidor ARM. Verifica con `uname -m` en macOS o Linux, o `$env:PROCESSOR_ARCHITECTURE` en PowerShell. Si el resultado no coincide con el binario que recibiste, [abre un issue en GitHub](https://github.com/anthropics/claude-code/issues) con la salida.

829 991 

830**Conjunto de instrucciones AVX faltante.** Si su arquitectura es correcta pero aún ve `Illegal instruction`, su CPU probablemente carece de AVX u otra instrucción que requiere el binario. Esto afecta aproximadamente a procesadores Intel y AMD anteriores a 2013, y máquinas virtuales donde el hipervisor no pasa AVX al invitado.992**Falta el conjunto de instrucciones AVX.** Si tu arquitectura es correcta pero aún ves `Illegal instruction`, probablemente tu CPU carece de AVX u otra instrucción que el binario requiere. Esto afecta aproximadamente a procesadores Intel y AMD anteriores a 2013, y a máquinas virtuales donde el hipervisor no expone AVX al invitado.

831 993 

832En un VPS o VM, ejecute `grep -m1 -ow avx /proc/cpuinfo`; un resultado vacío significa que AVX no está disponible para el invitado.994En un VPS o VM, ejecuta `grep -m1 -ow avx /proc/cpuinfo`; un resultado vacío significa que AVX no está disponible para el invitado.

833 995 

834No hay solución de binario nativo; siga el [problema #50384](https://github.com/anthropics/claude-code/issues/50384) para el estado, e incluya su modelo de CPU de `grep -m1 "model name" /proc/cpuinfo` en Linux o `sysctl -n machdep.cpu.brand_string` en macOS al reportar.996No hay una solución alternativa con el binario nativo; sigue el [issue #50384](https://github.com/anthropics/claude-code/issues/50384) para conocer el estado, e incluye tu modelo de CPU de `grep -m1 "model name" /proc/cpuinfo` en Linux o `sysctl -n machdep.cpu.brand_string` en macOS al reportarlo.

835 997 

836Los métodos de instalación alternativos descargan el mismo binario nativo y no resolverán ninguna de las causas.998Los métodos de instalación alternativos descargan el mismo binario nativo y no resolverán ninguna de las dos causas.

837 999 

838<h3 id="dyld-cannot-load-on-macos">1000<h3 id="dyld-cannot-load-on-macos">

839 `dyld: cannot load` en macOS1001 `dyld: cannot load` en macOS

840</h3>1002</h3>

841 1003 

842Si ve `dyld: Symbol not found`, `dyld: cannot load`, o `Abort trap: 6` durante la instalación, el binario es incompatible con su versión de macOS o hardware.1004Si ves `dyld: Symbol not found`, `dyld: cannot load` o `Abort trap: 6` durante la instalación, el binario es incompatible con tu versión de macOS o tu hardware.

843 1005 

844Un error `Symbol not found` que hace referencia a `libicucore` significa que su versión de macOS es más antigua que la que admite el binario:1006Un error `Symbol not found` que hace referencia a `libicucore` significa que tu versión de macOS es más antigua que la que admite el binario:

845 1007 

846```text theme={null}1008```text theme={null}

847dyld: Symbol not found: _ubrk_clone1009dyld: Symbol not found: _ubrk_clone


849 Expected in: /usr/lib/libicucore.A.dylib1011 Expected in: /usr/lib/libicucore.A.dylib

850```1012```

851 1013 

852El cargador puede en su lugar rechazar los comandos de carga del binario, lo que también significa que su versión de macOS es demasiado antigua:1014El cargador puede, en cambio, rechazar los comandos de carga del binario, lo que también significa que tu versión de macOS es demasiado antigua:

853 1015 

854```text theme={null}1016```text theme={null}

855dyld: cannot load 'claude-2.1.42-darwin-x64' (load command 0x80000034 is unknown)1017dyld: cannot load 'claude-2.1.42-darwin-x64' (load command 0x80000034 is unknown)


858 1020 

859**Soluciones:**1021**Soluciones:**

860 1022 

8611. **Verifique su versión de macOS**: Claude Code requiere macOS 13.0 o posterior. Abra el menú Apple y seleccione Acerca de esta Mac para verificar su versión.10231. **Verifica tu versión de macOS**: Claude Code requiere macOS 13.0 o posterior. Abre el menú Apple y selecciona Acerca de esta Mac para verificar tu versión.

862 1024 

8632. **Actualice macOS** si está en una versión anterior. El binario usa comandos de carga y bibliotecas del sistema que las versiones anteriores de macOS no admiten. Los métodos de instalación alternativos como Homebrew descargan el mismo binario y no resolverán este error.10252. **Actualiza macOS** si estás en una versión anterior. El binario usa comandos de carga y bibliotecas del sistema que las versiones anteriores de macOS no admiten. Los métodos de instalación alternativos como Homebrew descargan el mismo binario y no resolverán este error.

864 1026 

865<h3 id="bus-error-while-a-session-is-running">1027<h3 id="bus-error-while-a-session-is-running">

866 `Bus error` mientras se ejecuta una sesión1028 `Bus error` mientras se ejecuta una sesión


876 `Exec format error` en WSL11038 `Exec format error` en WSL1

877</h3>1039</h3>

878 1040 

879Si ejecutar `claude` en WSL imprime `cannot execute binary file: Exec format error`, está en WSL1 y está experimentando una regresión binaria nativa conocida rastreada en el [problema #38788](https://github.com/anthropics/claude-code/issues/38788). Los encabezados del programa del binario cambiaron de una manera que el cargador de WSL1 no puede manejar.1041Si al ejecutar `claude` en WSL se imprime `cannot execute binary file: Exec format error`, estás en WSL1 y te afecta una regresión conocida del binario nativo, registrada en el [issue #38788](https://github.com/anthropics/claude-code/issues/38788). Los encabezados de programa del binario cambiaron de una manera que el cargador de WSL1 no puede manejar.

880 1042 

881La corrección más limpia es convertir su distribución a WSL2 desde PowerShell:1043La solución más limpia es convertir tu distribución a WSL2 desde PowerShell:

882 1044 

883```powershell theme={null}1045```powershell theme={null}

884wsl --set-version <DistroName> 21046wsl --set-version <DistroName> 2

885```1047```

886 1048 

887Si necesita permanecer en WSL1, invoque el binario a través del enlazador dinámico. Agregue esta función a `~/.bashrc` dentro de WSL, reemplazando la ruta si su directorio de inicio es diferente:1049Si necesitas permanecer en WSL1, invoca el binario a través del enlazador dinámico. Agrega esta función a `~/.bashrc` dentro de WSL, reemplazando la ruta si tu directorio home es diferente:

888 1050 

889```bash theme={null}1051```bash theme={null}

890claude() {1052claude() {


892}1054}

893```1055```

894 1056 

895Luego ejecute `source ~/.bashrc` e intente `claude` nuevamente.1057Luego ejecuta `source ~/.bashrc` y vuelve a intentar `claude`.

896 1058 

897<h3 id="npm-install-errors-in-wsl">1059<h3 id="npm-install-errors-in-wsl">

898 Errores de instalación de npm en WSL1060 Errores de instalación de npm en WSL

899</h3>1061</h3>

900 1062 

901Estos problemas se aplican si instaló Claude Code con `npm install -g` dentro de WSL. Si usó el [instalador nativo](/docs/es/setup), omita esta sección.1063Estos problemas aplican si instalaste Claude Code con `npm install -g` dentro de WSL. Si usaste el [instalador nativo](/docs/es/setup), omite esta sección.

902 1064 

903**Problemas de detección de SO o plataforma.** Si npm reporta un desajuste de plataforma durante la instalación, WSL probablemente está recogiendo el `npm` de Windows. Ejecute `npm config set os linux` primero, luego instale con `npm install -g @anthropic-ai/claude-code --force`. No use `sudo`.1065**Problemas de detección de SO o plataforma.** Si npm reporta una discrepancia de plataforma durante la instalación, probablemente WSL está tomando el `npm` de Windows. Ejecuta primero `npm config set os linux` y luego instala con `npm install -g @anthropic-ai/claude-code --force`. No uses `sudo`.

904 1066 

905**`exec: node: not found` al ejecutar `claude`.** Su entorno WSL probablemente está usando la instalación de Node.js de Windows. Confirme con `which npm` y `which node`: las rutas que comienzan con `/mnt/c/` son binarios de Windows, mientras que las rutas de Linux comienzan con `/usr/`. Para corregir esto, instale Node a través del administrador de paquetes de su distribución de Linux o a través de [`nvm`](https://github.com/nvm-sh/nvm).1067**`exec: node: not found` al ejecutar `claude`.** Probablemente tu entorno WSL está usando la instalación de Node.js de Windows. Confírmalo con `which npm` y `which node`: las rutas que comienzan con `/mnt/c/` son binarios de Windows, mientras que las rutas de Linux comienzan con `/usr/`. Para corregirlo, instala Node a través del administrador de paquetes de tu distribución de Linux o a través de [`nvm`](https://github.com/nvm-sh/nvm).

906 1068 

907**Conflictos de versión de nvm.** Si tiene nvm instalado tanto en WSL como en Windows, cambiar versiones de Node en WSL puede romper porque WSL importa el PATH de Windows de forma predeterminada y el nvm de Windows toma prioridad. La causa más común es que nvm no está cargado en su shell. Agregue el cargador de nvm a `~/.bashrc` o `~/.zshrc`:1069**Conflictos de versión de nvm.** Si tienes nvm instalado tanto en WSL como en Windows, cambiar de versión de Node en WSL puede fallar porque WSL importa el PATH de Windows de forma predeterminada y el nvm de Windows tiene prioridad. La causa más común es que nvm no está cargado en tu shell. Agrega el cargador de nvm a `~/.bashrc` o `~/.zshrc`:

908 1070 

909```bash theme={null}1071```bash theme={null}

910export NVM_DIR="$HOME/.nvm"1072export NVM_DIR="$HOME/.nvm"


912[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"1074[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

913```1075```

914 1076 

915O cárguelo en su sesión actual:1077O cárgalo en tu sesión actual:

916 1078 

917```bash theme={null}1079```bash theme={null}

918source ~/.nvm/nvm.sh1080source ~/.nvm/nvm.sh

919```1081```

920 1082 

921Si nvm está cargado pero las rutas de Windows aún toman prioridad, anteponga explícitamente su ruta de Node de Linux:1083Si nvm está cargado pero las rutas de Windows aún tienen prioridad, antepón explícitamente la ruta de Node de Linux:

922 1084 

923```bash theme={null}1085```bash theme={null}

924export PATH="$HOME/.nvm/versions/node/$(node -v)/bin:$PATH"1086export PATH="$HOME/.nvm/versions/node/$(node -v)/bin:$PATH"

925```1087```

926 1088 

927<Warning>1089<Warning>

928 Evite deshabilitar la importación de PATH de Windows a través de `appendWindowsPath = false` ya que esto rompe la capacidad de llamar ejecutables de Windows desde WSL. De manera similar, evite desinstalar Node.js de Windows si lo usa para desarrollo de Windows.1090 Evita deshabilitar la importación del PATH de Windows mediante `appendWindowsPath = false`, ya que esto impide llamar ejecutables de Windows desde WSL. De manera similar, evita desinstalar Node.js de Windows si lo usas para desarrollo en Windows.

929</Warning>1091</Warning>

930 1092 

931<h3 id="permission-errors-during-installation">1093<h3 id="permission-errors-during-installation">

932 Errores de permisos durante la instalación1094 Errores de permisos durante la instalación

933</h3>1095</h3>

934 1096 

935Si el instalador nativo falla con errores de permisos, el directorio de destino puede no ser escribible. Consulte [Verifique permisos de directorio](#check-directory-permissions).1097Si el instalador nativo falla con errores de permisos, es posible que el directorio de destino no sea escribible. Consulta [Verifica los permisos de directorio](#check-directory-permissions).

936 1098 

937Si instaló previamente con npm y está experimentando errores de permisos específicos de npm, cambie al instalador nativo:1099Si instalaste previamente con npm y te encuentras con errores de permisos específicos de npm, cambia al instalador nativo:

938 1100 

939```bash theme={null}1101```bash theme={null}

940curl -fsSL https://claude.ai/install.sh | bash1102curl -fsSL https://claude.ai/install.sh | bash

941```1103```

942 1104 

943<h3 id="native-binary-not-found-after-npm-install">1105<h3 id="native-binary-not-found-after-npm-install">

944 Binario nativo no encontrado después de la instalación de npm1106 Binario nativo no encontrado después de la instalación con npm

945</h3>1107</h3>

946 1108 

947El paquete npm `@anthropic-ai/claude-code` descarga el binario nativo como una dependencia opcional por plataforma, como `@anthropic-ai/claude-code-darwin-arm64`. npm luego ejecuta el script de postinstalación del paquete, que copia ese binario en su lugar como el comando `claude`; hasta que se ejecute, `claude` es un script de marcador de posición. Si se omite el paso de descarga o postinstalación, el marcador de posición permanece en su lugar, y ejecutar `claude` en macOS y Linux imprime:1109El paquete npm `@anthropic-ai/claude-code` descarga el binario nativo como una dependencia opcional por plataforma, como `@anthropic-ai/claude-code-darwin-arm64`. Luego npm ejecuta el script postinstall del paquete, que copia ese binario a su lugar como el comando `claude`; hasta que se ejecuta, `claude` es un script de marcador de posición. Si se omite la descarga o el paso postinstall, el marcador de posición permanece, y ejecutar `claude` en macOS y Linux imprime:

948 1110 

949```text theme={null}1111```text theme={null}

950Error: claude native binary not installed.1112Error: claude native binary not installed.


961 1123 

962En Windows, `bin/claude.exe` es ese mismo marcador de posición de script de shell en lugar de un ejecutable real, por lo que PowerShell y CMD reportan que no pueden ejecutar el archivo en lugar de imprimir este mensaje.1124En Windows, `bin/claude.exe` es ese mismo marcador de posición de script de shell en lugar de un ejecutable real, por lo que PowerShell y CMD reportan que no pueden ejecutar el archivo en lugar de imprimir este mensaje.

963 1125 

964Verifique las siguientes causas:1126Verifica las siguientes causas:

965 1127 

966* **Las dependencias opcionales están deshabilitadas.** Elimine `--omit=optional` de su comando de instalación de npm, `--no-optional` de pnpm, o `--ignore-optional` de yarn, y verifique que `.npmrc` no establezca `optional=false`. Luego reinstale. El binario nativo se entrega solo como una dependencia opcional, por lo que no hay alternativa de JavaScript si se omite, y ejecutar `install.cjs` nuevamente no puede colocar un binario que nunca fue descargado.1128* **Las dependencias opcionales están deshabilitadas.** Elimina `--omit=optional` de tu comando de instalación de npm, `--no-optional` de pnpm o `--ignore-optional` de yarn, y verifica que `.npmrc` no establezca `optional=false`. Luego reinstala. El binario nativo se entrega solo como dependencia opcional, por lo que no hay alternativa en JavaScript si se omite, y volver a ejecutar `install.cjs` no puede colocar un binario que nunca se descargó.

967* **Los scripts de instalación están deshabilitados.** `--ignore-scripts` y algunas configuraciones de pnpm omiten el paso de postinstalación pero aún descargan el paquete de plataforma. Ejecute `node node_modules/@anthropic-ai/claude-code/install.cjs` como sugiere el mensaje, o reinstale sin la bandera. Si postinstalación no puede ejecutarse en su entorno en absoluto, `node node_modules/@anthropic-ai/claude-code/cli-wrapper.cjs` encuentra el paquete descargado e lo lanza, al costo de un proceso Node adicional en cada inicio. Si el contenedor imprime `Could not find native binary package` en su lugar, el paquete de plataforma nunca fue descargado, así que primero corrija la causa de dependencias opcionales anterior.1129* **Los scripts de instalación están deshabilitados.** `--ignore-scripts` y algunas configuraciones de pnpm omiten el paso postinstall pero aún descargan el paquete de plataforma. Ejecuta `node node_modules/@anthropic-ai/claude-code/install.cjs` como sugiere el mensaje, o reinstala sin el flag. Si postinstall no puede ejecutarse en absoluto en tu entorno, `node node_modules/@anthropic-ai/claude-code/cli-wrapper.cjs` encuentra el paquete descargado y lo inicia, a costa de un proceso de Node adicional en cada inicio. Si el wrapper imprime `Could not find native binary package` en su lugar, el paquete de plataforma nunca se descargó, así que primero corrige la causa de dependencias opcionales descrita arriba.

968* **Plataforma no admitida.** Los binarios precompilados se publican para `darwin-arm64`, `darwin-x64`, `linux-x64`, `linux-arm64`, `linux-x64-musl`, `linux-arm64-musl`, `win32-x64`, y `win32-arm64`. Claude Code no envía un binario para otras plataformas; consulte los [requisitos del sistema](/docs/es/setup#system-requirements). En FreeBSD, el instalador reporta la plataforma como no admitida. Antes de v2.1.205, trataba FreeBSD como Linux y descargaba un binario que no podía ejecutarse.1130* **Plataforma no admitida.** Se publican binarios precompilados para `darwin-arm64`, `darwin-x64`, `linux-x64`, `linux-arm64`, `linux-x64-musl`, `linux-arm64-musl`, `win32-x64` y `win32-arm64`. Claude Code no distribuye un binario para otras plataformas; consulta los [requisitos del sistema](/docs/es/setup#system-requirements). En FreeBSD, el instalador reporta la plataforma como no admitida. Antes de v2.1.205, trataba FreeBSD como Linux y descargaba un binario que no podía ejecutarse.

969* **El espejo npm corporativo carece de los paquetes de plataforma.** Asegúrese de que su registro refleje los ocho paquetes `@anthropic-ai/claude-code-*` de plataforma además del paquete meta.1131* **Al mirror corporativo de npm le faltan los paquetes de plataforma.** Asegúrate de que tu registro replique los ocho paquetes de plataforma `@anthropic-ai/claude-code-*` además del metapaquete.

970 1132 

971<h3 id="npm-enotempty-during-update-or-reinstall">1133<h3 id="npm-enotempty-during-update-or-reinstall">

972 Error `ENOTEMPTY` de npm durante actualización o reinstalación1134 Error `ENOTEMPTY` de npm durante una actualización o reinstalación

973</h3>1135</h3>

974 1136 

975Cuando ejecuta `npm install -g @anthropic-ai/claude-code` sobre una instalación existente, npm puede fallar mientras mueve el directorio del paquete antiguo a un lado:1137Cuando ejecutas `npm install -g @anthropic-ai/claude-code` sobre una instalación existente, npm puede fallar al mover a un lado el directorio del paquete antiguo:

976 1138 

977```text theme={null}1139```text theme={null}

978npm error code ENOTEMPTY1140npm error code ENOTEMPTY


983npm error ENOTEMPTY: directory not empty, rename '...'1145npm error ENOTEMPTY: directory not empty, rename '...'

984```1146```

985 1147 

986La línea `npm error path` nombra el directorio que npm no pudo mover. Elimine ese directorio y cualquier directorio `.claude-code-*` sobrante junto a él, que ejecuciones interrumpidas anteriores pueden dejar atrás. Los comandos a continuación encuentran su directorio de paquete global con `npm root -g`; si el directorio que la línea `npm error path` nombra no está bajo el directorio que `npm root -g` imprime, por ejemplo porque cambió versiones de Node con nvm, elimine los directorios que el error nombra en su lugar:1148La línea `npm error path` nombra el directorio que npm no pudo mover. Elimina ese directorio y cualquier directorio `.claude-code-*` sobrante junto a él, que ejecuciones interrumpidas anteriores pueden dejar. Los comandos a continuación encuentran tu directorio global de paquetes con `npm root -g`; si el directorio que nombra la línea `npm error path` no está dentro del directorio que imprime `npm root -g`, por ejemplo porque cambiaste de versión de Node con nvm, elimina en su lugar los directorios que nombra el error:

987 1149 

988<Tabs>1150<Tabs>

989 <Tab title="macOS/Linux">1151 <Tab title="macOS/Linux">


991 rm -rf "$(npm root -g)/@anthropic-ai/claude-code"1153 rm -rf "$(npm root -g)/@anthropic-ai/claude-code"

992 ```1154 ```

993 1155 

994 Luego elimine cualquier directorio temporal sobrante. Si zsh imprime `no matches found`, no había ninguno para eliminar:1156 Luego elimina cualquier directorio temporal sobrante. Si Zsh imprime `no matches found`, no había ninguno que eliminar:

995 1157 

996 ```bash theme={null}1158 ```bash theme={null}

997 rm -rf "$(npm root -g)/@anthropic-ai/.claude-code-"*1159 rm -rf "$(npm root -g)/@anthropic-ai/.claude-code-"*


1005 </Tab>1167 </Tab>

1006</Tabs>1168</Tabs>

1007 1169 

1008Luego reinstale:1170Luego reinstala:

1009 1171 

1010```bash theme={null}1172```bash theme={null}

1011npm install -g @anthropic-ai/claude-code1173npm install -g @anthropic-ai/claude-code

1012```1174```

1013 1175 

1014Confirme con `claude --version`, que imprime un número de versión como `2.1.211 (Claude Code)`.1176Confirma con `claude --version`, que imprime un número de versión como `2.1.211 (Claude Code)`.

1015 1177 

1016<h2 id="login-and-authentication">1178<h2 id="login-and-authentication">

1017 Inicio de sesión y autenticación1179 Inicio de sesión y autenticación

Details

11| Síntoma | Ir a |11| Síntoma | Ir a |

12| :- | :- |12| :- | :- |

13| `command not found`, falla de instalación, problemas de PATH, `EACCES`, errores de TLS | [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install) |13| `command not found`, falla de instalación, problemas de PATH, `EACCES`, errores de TLS | [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install) |

14| Actualización o falla de descarga de instalación con `The connection dropped while downloading the update` o `aborted` | [Referencia de errores](/docs/es/errors#the-connection-dropped-while-downloading-the-update) |14| Actualización o falla de descarga de instalación con `The connection dropped while downloading the update` o `aborted` | [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |

15| 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) |

ultrareview.md +6 −6

Details

56 Revisa una solicitud de extracción56 Revisa una solicitud de extracción

57</h3>57</h3>

58 58 

59Para revisar una solicitud de extracción de GitHub en su lugar de una rama local, pase el número de PR:59Para revisar un pull request en `github.com` en lugar de una rama local, pasa el número de PR:

60 60 

61```text theme={null}61```text theme={null}

62/code-review ultra 123462/code-review ultra 1234


64 64 

65El comando también acepta `#1234`, `PR 1234` y URLs de PR pegadas; una URL pegada debe apuntar al repositorio en su directorio actual.65El comando también acepta `#1234`, `PR 1234` y URLs de PR pegadas; una URL pegada debe apuntar al repositorio en su directorio actual.

66 66 

67En modo PR, el sandbox remoto clona la solicitud de extracción directamente desde el host en lugar de agrupar su árbol de trabajo local. El modo PR funciona con repositorios en `github.com` y en instancias de [GitHub Enterprise Server](/docs/es/github-enterprise-server) que un administrador ha conectado a Claude Code.67El modo PR necesita un repositorio en `github.com`. Para un repositorio en una instancia de [GitHub Enterprise Server](/docs/es/github-enterprise-server), ejecuta `/code-review ultra` sin un número de PR para revisar tu rama local en su lugar.

68 68 

69Para repositorios en `github.com`, el sandbox clona con la cuenta de GitHub conectada a su cuenta de Claude, por lo que la cuenta debe poder leer el repositorio del PR.69En modo PR, el sandbox en la nube clona el pull request desde `github.com` en lugar de cargar tu árbol de trabajo. Usa la cuenta de GitHub conectada a tu cuenta de Claude, por lo que esa cuenta necesita acceso de lectura al repositorio.

70 70 

71Ejecute [`/web-setup`](/docs/es/web-quickstart#connect-from-your-terminal) para conectar su inicio de sesión de GitHub CLI a su cuenta de Claude.71Ejecute [`/web-setup`](/docs/es/web-quickstart#connect-from-your-terminal) para conectar su inicio de sesión de GitHub CLI a su cuenta de Claude.

72 72 


74 Publica hallazgos en la solicitud de extracción74 Publica hallazgos en la solicitud de extracción

75</h3>75</h3>

76 76 

77En Claude Code v2.1.227 o posterior, cuando revisa una solicitud de extracción en `github.com`, puede hacer que Claude publique los hallazgos terminados en el PR como un único comentario simple desde su propia cuenta de GitHub. El comentario no es una revisión ni una aprobación, y termina con una nota "Generado por Claude Code". Cuando revisa una rama o una solicitud de extracción de GitHub Enterprise Server, Claude Code muestra los hallazgos solo en su sesión.77En Claude Code v2.1.227 o posterior, cuando revisas un pull request en `github.com`, puedes hacer que Claude publique los hallazgos terminados en el PR como un único comentario simple desde tu propia cuenta de GitHub. El comentario no es una revisión ni una aprobación, y termina con una nota "Generated by Claude Code". Cuando revisas una rama, Claude Code muestra los hallazgos solo en tu sesión.

78 78 

79Claude Code nunca publica a menos que elija hacerlo en esa ejecución, y `--no-post` es el predeterminado. Publicar es una opción que realiza para cada ejecución:79Claude Code nunca publica a menos que elija hacerlo en esa ejecución, y `--no-post` es el predeterminado. Publicar es una opción que realiza para cada ejecución:

80 80 


106Claude Code trata su texto como una nota solo cuando tiene más de una palabra y no es un nombre de rama o referencia de PR. Lee una sola palabra como un nombre de rama o referencia de PR, por lo que un nombre de rama mal escrito obtiene el error de rama más cercana de [Revisa contra una base diferente](#review-against-a-different-base) en su lugar de lanzar con una nota. Si su texto combina una referencia de PR con otras palabras, como `check PR 123 again`, Claude Code tampoco se lanza; le pide que vuelva a ejecutar con solo el número de PR para revisar ese PR, o sin la referencia para revisar su rama actual.106Claude Code trata su texto como una nota solo cuando tiene más de una palabra y no es un nombre de rama o referencia de PR. Lee una sola palabra como un nombre de rama o referencia de PR, por lo que un nombre de rama mal escrito obtiene el error de rama más cercana de [Revisa contra una base diferente](#review-against-a-different-base) en su lugar de lanzar con una nota. Si su texto combina una referencia de PR con otras palabras, como `check PR 123 again`, Claude Code tampoco se lanza; le pide que vuelva a ejecutar con solo el número de PR para revisar ese PR, o sin la referencia para revisar su rama actual.

107 107 

108<Tip>108<Tip>

109 Si su repositorio es demasiado grande para agrupar, Claude Code le solicita que use el modo PR en su lugar. Envíe su rama y abra un PR borrador, luego ejecute `/code-review ultra <PR-number>`.109 Si tu repositorio es demasiado grande para empaquetarlo, Claude Code te pide que uses el modo PR en su lugar. Para un repositorio en `github.com`, haz push de tu rama y abre un PR en borrador, luego ejecuta `/code-review ultra <PR-number>`.

110</Tip>110</Tip>

111 111 

112<h3 id="diff-limits-and-fallbacks">112<h3 id="diff-limits-and-fallbacks">


173claude ultrareview origin/main173claude ultrareview origin/main

174```174```

175 175 

176Sin argumentos, el subcomando revisa el diff entre su rama actual y la rama predeterminada, con el mismo [respaldo de repositorio completo](#diff-limits-and-fallbacks) que `/code-review ultra` cuando no existe una base de fusión. Pase un número de PR para revisar una solicitud de extracción, o una rama base para revisar contra ella; el [manejo de rama base](#review-against-a-different-base) coincide con el comando interactivo.176Sin argumentos, el subcomando revisa el diff entre tu rama actual y la rama predeterminada, con el mismo [respaldo de repositorio completo](#diff-limits-and-fallbacks) que `/code-review ultra` cuando no existe una base de fusión. Pasa un número de PR para [revisar un pull request en `github.com`](#review-a-pull-request), o una rama base para revisar contra ella; el [manejo de rama base](#review-against-a-different-base) coincide con el comando interactivo.

177 177 

178Usted da su consentimiento al respaldo de repositorio completo y al aviso de facturación y términos cuando ejecuta el subcomando, por lo que la ejecución comienza sin esperar entrada. Ejecutarlo usted mismo es lo que cuenta como consentimiento. Cuando Claude ejecuta el subcomando por usted, por ejemplo a través de la herramienta Bash, Claude Code rechaza la revisión de repositorio completo.178Usted da su consentimiento al respaldo de repositorio completo y al aviso de facturación y términos cuando ejecuta el subcomando, por lo que la ejecución comienza sin esperar entrada. Ejecutarlo usted mismo es lo que cuenta como consentimiento. Cuando Claude ejecuta el subcomando por usted, por ejemplo a través de la herramienta Bash, Claude Code rechaza la revisión de repositorio completo.

179 179 

vs-code.md +3 −1

Details

166* **Bookmarks**: pasa el cursor sobre una respuesta y haz clic en **Bookmark response** para guardarla, o haz clic en **Remove bookmark** en una respuesta guardada para quitarla.166* **Bookmarks**: pasa el cursor sobre una respuesta y haz clic en **Bookmark response** para guardarla, o haz clic en **Remove bookmark** en una respuesta guardada para quitarla.

167 167 

168 Para revisar las respuestas guardadas, abre el panel Bookmarks: haz clic en el icono de marcador en la parte superior del panel de Claude Code, selecciona **Bookmarks** en la sección Context del menú de comandos o escribe `/bookmarks`. Requiere Claude Code v2.1.286 o posterior.168 Para revisar las respuestas guardadas, abre el panel Bookmarks: haz clic en el icono de marcador en la parte superior del panel de Claude Code, selecciona **Bookmarks** en la sección Context del menú de comandos o escribe `/bookmarks`. Requiere Claude Code v2.1.286 o posterior.

169* **Archivos que Claude te envía**: cuando la sesión está conectada a [Remote Control](/docs/es/remote-control#start-a-remote-control-session) y Claude te envía archivos con la [herramienta `SendUserFile`](/docs/es/tools-reference), la conversación muestra una fila como **Sent report.md, chart.png**. Haz clic en el nombre de un archivo para abrirlo en el editor.

169* **Context indicator**: el cuadro de solicitud muestra cuánta ventana de contexto de Claude está utilizando. Claude se compacta automáticamente cuando es necesario, o puede ejecutar `/compact` manualmente.170* **Context indicator**: el cuadro de solicitud muestra cuánta ventana de contexto de Claude está utilizando. Claude se compacta automáticamente cuando es necesario, o puede ejecutar `/compact` manualmente.

170* **Prompt cache clock**: un icono de reloj junto al indicador de contexto estima cuánto tiempo le queda a la [caché de solicitud](/docs/es/prompt-caching) de la conversación antes de que expire. Cuenta regresiva desde la [vida útil](/docs/es/prompt-caching#cache-lifetime) de cinco minutos o una hora de la caché, y cada respuesta que usa la caché reinicia la cuenta regresiva. Aparte de la compactación, las [acciones que invalidan la caché](/docs/es/prompt-caching#actions-that-invalidate-the-cache) no restablecen el reloj, por lo que aún puede mostrar minutos restantes después de cambiar modelos.171* **Prompt cache clock**: un icono de reloj junto al indicador de contexto estima cuánto tiempo le queda a la [caché de solicitud](/docs/es/prompt-caching) de la conversación antes de que expire. Cuenta regresiva desde la [vida útil](/docs/es/prompt-caching#cache-lifetime) de cinco minutos o una hora de la caché, y cada respuesta que usa la caché reinicia la cuenta regresiva. Aparte de la compactación, las [acciones que invalidan la caché](/docs/es/prompt-caching#actions-that-invalidate-the-cache) no restablecen el reloj, por lo que aún puede mostrar minutos restantes después de cambiar modelos.

171 * Hasta que se agote la cuenta regresiva, el icono muestra los minutos restantes, como **12m**.172 * Hasta que se agote la cuenta regresiva, el icono muestra los minutos restantes, como **12m**.


596| `attachOpenFile` | `true` | Agregue el archivo que está abierto en el editor a sus mensajes y muéstrelo en el cuadro de mensaje. Cuando está desactivado, solo se agrega el texto seleccionado. Requiere Claude Code v2.1.271 o posterior |597| `attachOpenFile` | `true` | Agregue el archivo que está abierto en el editor a sus mensajes y muéstrelo en el cuadro de mensaje. Cuando está desactivado, solo se agrega el texto seleccionado. Requiere Claude Code v2.1.271 o posterior |

597| `useCtrlEnterToSend` | `false` | Usar Ctrl/Cmd+Enter en lugar de Enter para enviar mensajes |598| `useCtrlEnterToSend` | `false` | Usar Ctrl/Cmd+Enter en lugar de Enter para enviar mensajes |

598| `scrollToBottomOnSend` | `true` | Desplazarse a la conversación hacia el final cuando envía un mensaje. Cuando está desactivado, la conversación permanece donde la dejó. Requiere Claude Code v2.1.275 o posterior |599| `scrollToBottomOnSend` | `true` | Desplazarse a la conversación hacia el final cuando envía un mensaje. Cuando está desactivado, la conversación permanece donde la dejó. Requiere Claude Code v2.1.275 o posterior |

599| `showMessageTimestamps` | `false` | Mostrar cuándo se envió cada mensaje. Una línea con la fecha marca dónde cambia el día. Requiere Claude Code v2.1.284 o posterior |600| `showMessageTimestamps` | `true` | Mostrar cuándo se envió cada mensaje. Una línea con la fecha marca dónde cambia el día. Requiere Claude Code v2.1.284 o posterior. Antes de v2.1.290, el valor predeterminado era `false` |

601| `spinnerVerbs` | `{"mode": "append", "verbs": []}` | Establecer los verbos que el indicador de actividad de la conversación va alternando mientras se ejecuta un turno, con los mismos campos `mode` y `verbs` que [`spinnerVerbs`](/docs/es/settings-reference#spinnerverbs) de la CLI. |

600| `enableNewConversationShortcut` | `false` | Habilitar Cmd/Ctrl+N para iniciar una nueva conversación |602| `enableNewConversationShortcut` | `false` | Habilitar Cmd/Ctrl+N para iniciar una nueva conversación |

601| `enableReopenClosedSessionShortcut` | `true` | Usar Cmd/Ctrl+Shift+T para reabrir la pestaña de sesión de Claude cerrada más recientemente. Cuando la última pestaña cerrada no era una sesión de Claude, el atajo ejecuta el comando normal de reapertura de editor cerrado de VS Code en su lugar. |603| `enableReopenClosedSessionShortcut` | `true` | Usar Cmd/Ctrl+Shift+T para reabrir la pestaña de sesión de Claude cerrada más recientemente. Cuando la última pestaña cerrada no era una sesión de Claude, el atajo ejecuta el comando normal de reapertura de editor cerrado de VS Code en su lugar. |

602| `archiveInactiveSessions` | `14` | [Archivar una sesión automáticamente](#resume-past-conversations) después de estos muchos días sin actividad: `1`, `2`, `7` o `14`. Establezca `0` para desactivarlo. Requiere Claude Code v2.1.265 o posterior |604| `archiveInactiveSessions` | `14` | [Archivar una sesión automáticamente](#resume-past-conversations) después de estos muchos días sin actividad: `1`, `2`, `7` o `14`. Establezca `0` para desactivarlo. Requiere Claude Code v2.1.265 o posterior |

workflows.md +27 −1

Details

354 354 

355El cuerpo es JavaScript simple con `await` de nivel superior. `agent()` genera un subagente, `pipeline()` ejecuta uno por elemento en una lista, y `parallel()` ejecuta un conjunto de tareas de agente al mismo tiempo y espera a que todas se completen.355El cuerpo es JavaScript simple con `await` de nivel superior. `agent()` genera un subagente, `pipeline()` ejecuta uno por elemento en una lista, y `parallel()` ejecuta un conjunto de tareas de agente al mismo tiempo y espera a que todas se completen.

356 356 

357Una llamada a `agent()` se resuelve a `null` si la detiene a mitad de la ejecución o si alcanza un error de API irrecuperable. `pipeline()` mantiene cada `null` en la matriz de resultados, por lo que el ejemplo termina con `.filter(Boolean)` para descartar esas entradas.357Una llamada a `agent()` se resuelve a `null` si la detienes a mitad de la ejecución o si alcanza un error de API irrecuperable. `pipeline()` mantiene cada `null` en la matriz de resultados, por lo que el ejemplo termina con `.filter(Boolean)` para descartar esas entradas, incluida la posición de [un agente que se bloqueó en cada intento](#when-an-agent-stalls-and-restarts).

358 358 

359En [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), el prompt que su script pasa a `agent()` no cuenta como una solicitud suya cuando el clasificador revisa las acciones de ese subagente, porque Claude Code lo marca como texto que el script calculó.359En [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), el prompt que su script pasa a `agent()` no cuenta como una solicitud suya cuando el clasificador revisa las acciones de ese subagente, porque Claude Code lo marca como texto que el script calculó.

360 360 


463* El límite se reinicia dentro de 24 horas. Un límite semanal puede reiniciarse más adelante.463* El límite se reinicia dentro de 24 horas. Un límite semanal puede reiniciarse más adelante.

464* La ejecución aún no ha esperado dos veces. Cuando alcanza el límite por tercera vez, el agente falla.464* La ejecución aún no ha esperado dos veces. Cuando alcanza el límite por tercera vez, el agente falla.

465 465 

466<h3 id="when-an-agent-stalls-and-restarts">

467 Cuando un agente se estanca y se reinicia

468</h3>

469 

470Un agente cuya salida deja de llegar durante suficiente tiempo comienza de nuevo desde el mismo prompt. En [`/workflows`](#watch-the-run), su nombre recibe un sufijo `(retry 1)` y su detalle muestra `attempt 2 (stalled)`. El reinicio es automático, así que no necesitas hacer nada.

471 

472El nuevo intento comienza sin la transcripción del intento estancado. Los archivos que el intento estancado ya cambió permanecen cambiados, y los tokens que gastó permanecen en el total de la ejecución. La ventana de estancamiento es cuánto tiempo espera Claude Code la salida de un agente antes de terminar el intento. El tiempo que el agente pasa esperando sus propias llamadas a herramientas o un [reinicio del límite de uso](#when-a-run-hits-your-usage-limit) no cuenta para la ventana de estancamiento.

473 

474Un agente se reinicia como máximo cinco veces, contando cualquier reinicio que solicites con `r`. Si el sexto intento también se estanca, la llamada a `agent()` falla, y el inicio del error indica por qué:

475 

476* `agent stalled on all 6 attempts`: cada intento pasó toda la ventana sin salida. Si el trabajo del agente lo mantiene en silencio tanto tiempo, amplía la ventana

477* `agent lost its reply on all 6 attempts`: el stream de respuesta de cada intento quedó en silencio y Claude Code dejó de esperarlo. Ampliar la ventana de estancamiento no ayuda, ya que un [watchdog de inactividad de streaming](/docs/es/network-config#streaming-idle-watchdogs) terminó primero la respuesta y `CLAUDE_STREAM_IDLE_TIMEOUT_MS` establece el tiempo de espera de ese watchdog

478* `agent abandoned after 6 attempts`: los intentos terminaron de diferentes maneras, que el error enumera en orden

479 

480Para darle a un agente más tiempo para producir salida antes de que termine la ventana:

481 

482* **Un agente**: pasa `stallMs` en milisegundos en su llamada a `agent()`, como `agent(prompt, { stallMs: 1800000 })` para 30 minutos

483* **Todos los agentes**: establece [`CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`](/docs/es/env-vars#variables), que también se aplica a los subagentes fuera de los workflows

484 

485Si la ejecución continúa después de la falla depende de cómo tu script llamó al agente:

486 

487* **Dentro de [`parallel()` o `pipeline()`](#what-the-saved-script-looks-like)**: la ejecución continúa con `null` en lugar del resultado del agente

488* **Esperado directamente**: la ejecución termina con el error

489 

490Para intentarlo de nuevo, pide a Claude que relance el workflow. [Reanudar después de una pausa](#resume-after-a-pause) cubre lo que se ejecuta de nuevo.

491 

466<h3 id="cost">492<h3 id="cost">

467 Costo493 Costo

468</h3>494</h3>

worktrees.md +1 −1

Details

104* **Redirecciones de git**: Claude Code bloquea un comando Bash o Monitor que redirige git al checkout principal. La redirección puede venir a través de `git -C`, `--git-dir`, una variable `GIT_DIR` o `GIT_WORK_TREE`, o un `cd` al checkout principal antes de ejecutar git.104* **Redirecciones de git**: Claude Code bloquea un comando Bash o Monitor que redirige git al checkout principal. La redirección puede venir a través de `git -C`, `--git-dir`, una variable `GIT_DIR` o `GIT_WORK_TREE`, o un `cd` al checkout principal antes de ejecutar git.

105* **Forma del comando**: Claude Code bloquea un comando Bash o Monitor cuando no puede verificar desde el texto del comando que cualquier git que ejecute el comando permanece dentro del worktree. Eso sucede, por ejemplo, cuando el nombre del comando se calcula en tiempo de ejecución, cuando la sintaxis no se puede analizar, o cuando una expansión como `${!name}` o `${ command; }` podría ejecutar un comando que el texto no especifica. Claude Code le dice a Claude cómo reescribir el comando rechazado, como dividirlo en comandos simples y separados. No puede desactivar esta verificación.105* **Forma del comando**: Claude Code bloquea un comando Bash o Monitor cuando no puede verificar desde el texto del comando que cualquier git que ejecute el comando permanece dentro del worktree. Eso sucede, por ejemplo, cuando el nombre del comando se calcula en tiempo de ejecución, cuando la sintaxis no se puede analizar, o cuando una expansión como `${!name}` o `${ command; }` podría ejecutar un comando que el texto no especifica. Claude Code le dice a Claude cómo reescribir el comando rechazado, como dividirlo en comandos simples y separados. No puede desactivar esta verificación.

106 106 

107Estas verificaciones leen la ruta a la que apunta una edición, el directorio en el que se ejecuta un comando y el texto del comando. Ninguna de ellas rastrea qué archivos escribe un comando de shell, por lo que un comando que escribe en el checkout principal sin ejecutar git allí, como `cp` o una redirección del shell, no es rechazado por ellas. Claude Code trata ese comando como cualquier otro comando de shell, así que si se ejecuta o te solicita permiso depende de tu [modo de permisos](/docs/es/permission-modes) y de tus reglas.107Estas verificaciones leen la ruta a la que apunta una edición, el directorio en el que se ejecuta un comando y el texto del comando. Ninguna de ellas rastrea qué archivos escribe un comando de shell, por lo que un comando que escribe en el checkout principal sin ejecutar git allí, como `cp` o una redirección del shell, no es rechazado por ellas. Claude Code trata ese comando como cualquier otro comando de shell según tu configuración de [permisos](/docs/es/permissions) y de [sandboxing](/docs/es/sandboxing).

108 108 

109Las verificaciones se aplican al repositorio desde el que lanzó Claude Code. También cubren el checkout principal desde el que está vinculado un worktree vinculado. Para comandos PowerShell, Claude Code aplica solo la verificación del directorio de trabajo.109Las verificaciones se aplican al repositorio desde el que lanzó Claude Code. También cubren el checkout principal desde el que está vinculado un worktree vinculado. Para comandos PowerShell, Claude Code aplica solo la verificación del directorio de trabajo.

110 110