SpyBara
Go Premium

Documentation 2026-11-08 22:58 UTC to 2026-11-09 23:02 UTC

35 files changed +458 −126. View all changes and history on the product overview
2026
Thu 12 21:00 Wed 11 22:59 Tue 10 21:57 Mon 9 23:02 Sun 8 22:58 Sat 7 23:58 Fri 6 23:01 Thu 5 23:03 Wed 4 23:59 Tue 3 23:58 Mon 2 23:57 Sun 1 23:57

advisor.md +4 −3

Details

98| Opus 4.7 u Opus 4.8 | Fable, Opus 4.7 o posterior, Sonnet 5.5 |98| Opus 4.7 u Opus 4.8 | Fable, Opus 4.7 o posterior, Sonnet 5.5 |

99| Sonnet 5.5 | Fable, Opus 5 o posterior, Sonnet 5.5 |99| Sonnet 5.5 | Fable, Opus 5 o posterior, Sonnet 5.5 |

100| Opus 5 u Opus 5.5 | Fable, Opus 5 o posterior |100| Opus 5 u Opus 5.5 | Fable, Opus 5 o posterior |

101| Fable 5 | Fable 5.1 o Fable 5 |101| Fable 5 | Fable 5.2, Fable 5.1 o Fable 5 |

102| Fable 5.1 | Fable 5.1 |102| Fable 5.1 | Fable 5.2 o Fable 5.1 |

103| Fable 5.2 | Fable 5.2 |

103 104 

104Fable 5.1 requiere Claude Code v2.1.257 o posterior. Los modelos Fable requieren [acceso a Fable](https://code.claude.com/docs/es/model-config.md#work-with-fable). Sonnet 5.5 como advisor de un modelo principal Opus 4.7 u Opus 4.8 requiere Claude Code v2.1.287 o posterior. Haiku 5.5 como modelo principal o como advisor requiere Claude Code v2.1.293 o posterior.105Fable 5.2 requiere Claude Code v2.1.321 o posterior, y Fable 5.1 requiere v2.1.257 o posterior. Los modelos Fable requieren [acceso a Fable](https://code.claude.com/docs/es/model-config.md#work-with-fable). Sonnet 5.5 como advisor de un modelo principal Opus 4.7 u Opus 4.8 requiere Claude Code v2.1.287 o posterior. Haiku 5.5 como modelo principal o como advisor requiere Claude Code v2.1.293 o posterior.

105 106 

106Establece el advisor como `fable`, `opus` o `sonnet`. Estos alias se resuelven a la [versión predeterminada integrada](https://code.claude.com/docs/es/model-config.md#model-aliases) de Claude Code para cada familia de modelos, que avanza con nuevas versiones de Claude Code. También puedes pasar un ID de modelo completo como `claude-opus-5-5` o `claude-haiku-5-5`. Haiku 4.5 puede llamar al advisor pero no puede actuar como uno.107Establece el advisor como `fable`, `opus` o `sonnet`. Estos alias se resuelven a la [versión predeterminada integrada](https://code.claude.com/docs/es/model-config.md#model-aliases) de Claude Code para cada familia de modelos, que avanza con nuevas versiones de Claude Code. También puedes pasar un ID de modelo completo como `claude-opus-5-5` o `claude-haiku-5-5`. Haiku 4.5 puede llamar al advisor pero no puede actuar como uno.

107 108 

Details

56 56 

57### Ejemplo de herramienta meteorológica57### Ejemplo de herramienta meteorológica

58 58 

59Este ejemplo define una herramienta `get_temperature` y la envuelve en un servidor MCP, sin pasar el servidor a `query`. Para ejecutar la herramienta, consulta [Llamar a una herramienta personalizada](#call-a-custom-tool) a continuación.59Este ejemplo define una herramienta `get_temperature` y la envuelve en un servidor MCP, sin pasar el servidor a `query`. Para ejecutar la herramienta, consulta [Llamar a una herramienta personalizada](#call-a-custom-tool).

60 60 

61```python Python theme={null}61```python Python theme={null}

62from typing import Annotated, Any62from typing import Annotated, Any


148* **TypeScript**: agrega `.optional()` al campo Zod.148* **TypeScript**: agrega `.optional()` al campo Zod.

149* **Python**: el esquema de diccionario requiere cada clave. Usa la forma de JSON Schema, deja el parámetro fuera de `required` y léelo con `args.get()`. Para un esquema tipado con claves opcionales, consulta [clase TypedDict](https://code.claude.com/docs/es/agent-sdk/python.md#input-schema-options).149* **Python**: el esquema de diccionario requiere cada clave. Usa la forma de JSON Schema, deja el parámetro fuera de `required` y léelo con `args.get()`. Para un esquema tipado con claves opcionales, consulta [clase TypedDict](https://code.claude.com/docs/es/agent-sdk/python.md#input-schema-options).

150 150 

151La herramienta [`get_precipitation_chance` a continuación](#add-more-tools) muestra ambos patrones.151La [herramienta `get_precipitation_chance`](#add-more-tools) muestra ambos patrones.

152 152 

153### Llamar a una herramienta personalizada153### Llamar a una herramienta personalizada

154 154 

155Pasa el servidor MCP que creaste a `query` a través de la opción `mcpServers`, y lista el [nombre completamente calificado](https://code.claude.com/docs/es/agent-sdk/mcp.md#tool-naming-convention) de cada herramienta en `allowedTools` para que la herramienta se ejecute sin una solicitud de permiso. Ese nombre es `mcp__{server_name}__{tool_name}`, donde `{server_name}` es la clave que le asignas al servidor en `mcpServers`. Si la clave contiene caracteres como `.` o espacios, reemplázalos por `_` cuando escribas `{server_name}`.155Para llamar a una herramienta personalizada, sigue estos pasos:

156 

1571. Pasa el servidor MCP que creaste a `query` mediante la opción `mcpServers`.

1582. Lista el [nombre completamente calificado](https://code.claude.com/docs/es/agent-sdk/mcp.md#tool-naming-convention) de la herramienta en `allowedTools` para [aprobar previamente](https://code.claude.com/docs/es/agent-sdk/permissions.md#allow-and-deny-rules) sus llamadas. Ese nombre sigue la convención `mcp__{server_name}__{tool_name}`, donde `{server_name}` es la clave que le asignas al servidor en `mcpServers`. Si la clave contiene caracteres como `.` o espacios, reemplázalos por `_` cuando escribas `{server_name}`.

156 159 

157Estos fragmentos reutilizan el `weatherServer` del [ejemplo de herramienta meteorológica](#weather-tool-example) para preguntarle a Claude cuál es el clima en una ubicación específica.160Estos fragmentos reutilizan el `weatherServer` del [ejemplo de herramienta meteorológica](#weather-tool-example) para preguntarle a Claude cuál es el clima en una ubicación específica.

158 161 


329| :- | :- | :- |332| :- | :- | :- |

330| `readOnlyHint` | `false` | La herramienta no modifica su entorno. Controla si la herramienta puede llamarse en paralelo con otras herramientas de solo lectura. |333| `readOnlyHint` | `false` | La herramienta no modifica su entorno. Controla si la herramienta puede llamarse en paralelo con otras herramientas de solo lectura. |

331| `destructiveHint` | `true` | La herramienta puede realizar actualizaciones destructivas. Establécelo en `true` explícitamente en cualquier herramienta que [marques como `always_ask`](#require-approval-for-specific-tools). |334| `destructiveHint` | `true` | La herramienta puede realizar actualizaciones destructivas. Establécelo en `true` explícitamente en cualquier herramienta que [marques como `always_ask`](#require-approval-for-specific-tools). |

332| `idempotentHint` | `false` | Las llamadas repetidas con los mismos argumentos no tienen efecto adicional. Solo informativo. |335| `idempotentHint` | `false` | Las llamadas repetidas con los mismos argumentos no tienen efecto adicional. |

333| `openWorldHint` | `true` | La herramienta alcanza sistemas fuera de su proceso. Solo informativo. |336| `openWorldHint` | `true` | La herramienta alcanza sistemas fuera de tu proceso. |

334 337 

335Las anotaciones son metadatos, no cumplimiento. Una herramienta marcada como `readOnlyHint: true` aún puede escribir en el disco si eso es lo que hace el manejador. Mantenga la anotación precisa con respecto al manejador.338Las anotaciones son metadatos, no cumplimiento. Una herramienta marcada como `readOnlyHint: true` aún puede escribir en el disco si eso es lo que hace el manejador. Mantenga la anotación precisa con respecto al manejador.

336 339 


373 376 

374### Configurar herramientas permitidas377### Configurar herramientas permitidas

375 378 

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

380 

381* **Disponibilidad**: si una herramienta aparece en el contexto de Claude. Para cambiarla, usa la opción `tools` o enumera un nombre simple de herramienta integrada como `"Bash"` en `disallowedTools`.

382* **Permiso**: si Claude Code aprueba una llamada cuando Claude la realiza. Para cambiarlo, usa `allowedTools` o una regla de `disallowedTools` con alcance como `"Bash(rm *)"`.

377 383 

378| Opción | Capa | Efecto |384| Opción | Capa | Efecto |

379| :- | :- | :- |385| :- | :- | :- |

380| `tools: ["Read", "Grep"]` | Disponibilidad | Solo las herramientas integradas enumeradas están en el contexto de Claude. Las herramientas integradas no enumeradas se eliminan. Las herramientas MCP no se ven afectadas. |386| `tools: ["Read", "Grep"]` | Disponibilidad | Solo las herramientas integradas enumeradas están en el contexto de Claude. Las herramientas integradas no enumeradas se eliminan. Las herramientas MCP no se ven afectadas. |

381| `tools: []` | Disponibilidad | Todas las herramientas integradas se eliminan. Claude solo puede usar sus herramientas MCP. |387| `tools: []` | Disponibilidad | Todas las herramientas integradas se eliminan. Claude solo puede usar sus herramientas MCP. |

382| herramientas permitidas | Permiso | Las herramientas enumeradas se ejecutan sin un aviso de permiso. Otras herramientas no enumeradas permanecen disponibles; las llamadas pasan por el [flujo de permiso](https://code.claude.com/docs/es/agent-sdk/permissions.md). |388| herramientas permitidas | Permiso | Las herramientas enumeradas se aprueban previamente, salvo las [llamadas que ninguna regla de autorización aprueba](https://code.claude.com/docs/es/agent-sdk/permissions.md#calls-an-allow-rule-never-approves). Las llamadas a herramientas que dejas fuera de la lista pasan por el [flujo de permisos](https://code.claude.com/docs/es/agent-sdk/permissions.md). |

383| herramientas no permitidas | Ambas | Un nombre de herramienta simple como `"Bash"` elimina la herramienta del contexto de Claude, lo mismo que omitirla de `tools`. Una regla con alcance como `"Bash(rm *)"` deja la herramienta en contexto y deniega solo las llamadas coincidentes [como se escriben](https://code.claude.com/docs/es/permissions.md#bash-rule-limits). |389| herramientas no permitidas | Ambas | Un nombre simple de herramienta integrada como `"Bash"` elimina la herramienta del contexto de Claude. Una regla con alcance como `"Bash(rm *)"` deja la herramienta en contexto y deniega las llamadas que coinciden con ella [tal como está escrita](https://code.claude.com/docs/es/permissions.md#bash-rule-limits). |

384 390 

385Para eliminar una herramienta integrada por completo, omítala de `tools` o enumere su nombre simple en `disallowedTools` (Python: `disallowed_tools`); ambas mantienen la herramienta fuera del contexto para que Claude nunca intente usarla. Una regla de `disallowedTools` con alcance bloquea las llamadas coincidentes pero deja la herramienta visible, por lo que Claude puede desperdiciar un turno intentándolo. Consulte [Configurar permisos](https://code.claude.com/docs/es/agent-sdk/permissions.md) para el orden de evaluación completo.391Para eliminar una herramienta integrada del contexto de Claude, omítela de `tools` o enumera su nombre simple en `disallowedTools` (TypeScript) o `disallowed_tools` (Python). Para conocer el orden de evaluación completo, consulta [Configurar permisos](https://code.claude.com/docs/es/agent-sdk/permissions.md#how-permissions-are-evaluated).

386 392 

387### Requerir aprobación para herramientas específicas393### Requerir aprobación para herramientas específicas

388 394 


637 643 

638## Devolver datos estructurados644## Devolver datos estructurados

639 645 

640`structuredContent` es un objeto JSON opcional en el resultado, separado del array `content`. Úselo para devolver valores sin procesar que Claude pueda leer como campos exactos en lugar de analizarlos de una cadena de texto o imagen.646`structuredContent` es un objeto JSON opcional en el resultado, separado del array `content`. Úsalo para devolver valores sin procesar que Claude pueda leer como campos exactos en lugar de analizarlos de una cadena de texto o imagen. Para controladores de Python, consulta [Contenido estructurado en Python](#structured-content-in-python).

641 647 

642Cuando `structuredContent` está configurado, Claude recibe el JSON más cualquier bloque de imagen o recurso de `content`. Los bloques de texto en `content` no se reenvían, ya que se asume que duplican los datos estructurados. El ejemplo a continuación representa un gráfico como un bloque de imagen y devuelve los puntos de datos detrás de él en `structuredContent` desde el mismo controlador. En el fragmento, `chartPngBuffer` es un `Buffer` que contiene los bytes PNG renderizados.648Cuando un controlador `tool()` de TypeScript configura `structuredContent`, Claude recibe el JSON más los bloques de imagen y recurso de `content`, y los bloques de texto en `content` no llegan a Claude. El ejemplo a continuación representa un gráfico como un bloque de imagen y devuelve los puntos de datos detrás de él en `structuredContent` desde el mismo controlador. En el fragmento, `chartPngBuffer` es un `Buffer` que contiene los bytes PNG renderizados.

643 649 

644```typescript TypeScript theme={null}650```typescript TypeScript theme={null}

645return {651return {

Details

205 205 

206### Aprobación automática con allowedTools206### Aprobación automática con allowedTools

207 207 

208Use `allowedTools` para aprobar automáticamente herramientas MCP específicas para que Claude pueda usarlas sin un aviso de permiso:208Usa `allowedTools` para aprobar automáticamente herramientas MCP específicas:

209 209 

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

211const _ = {211const _ = {

Details

18 18 

19**1. Hooks**19**1. Hooks**

20 20 

21Ejecutar [hooks](https://code.claude.com/docs/es/agent-sdk/hooks.md). Un hook puede denegar la llamada directamente o dejarla pasar. Un hook que devuelve `allow` no omite las reglas de denegación y pregunta a continuación; esas se evalúan independientemente del resultado del hook.21Ejecutar [hooks](https://code.claude.com/docs/es/agent-sdk/hooks.md). Un hook puede denegar la llamada directamente o dejarla pasar. Un hook que devuelve `allow` no omite los pasos de reglas de denegación y de reglas de pregunta, que se evalúan independientemente del resultado del hook.

22 22 

23Un hook `PreToolUse` que devuelve `allow` tampoco puede aprobar un comando `rm` o `rmdir` cuyo destino Claude Code reconoce como una [ruta crítica](https://code.claude.com/docs/es/permission-modes.md#critical-paths), como `rm -rf ~`. Para saber qué hace ese `allow` en modo plan, consulta [Aprobaciones de hooks en modo plan](https://code.claude.com/docs/es/permissions.md#hook-approvals-in-plan-mode).23Un hook `PreToolUse` que devuelve `allow` tampoco puede aprobar un comando `rm` o `rmdir` cuyo destino Claude Code reconoce como una [ruta crítica](https://code.claude.com/docs/es/permission-modes.md#critical-paths), como `rm -rf ~`. Para saber qué hace ese `allow` en modo plan, consulta [Aprobaciones de hooks en modo plan](https://code.claude.com/docs/es/permissions.md#hook-approvals-in-plan-mode).

24 24 


58 58 

59**6. Devolución de llamada canUseTool**59**6. Devolución de llamada canUseTool**

60 60 

61Si no se resuelve por ninguno de los anteriores, llama a tu devolución de llamada [`canUseTool`](https://code.claude.com/docs/es/agent-sdk/user-input) para una decisión. En modo `dontAsk`, este paso se omite y la herramienta se deniega, aunque un [mod](https://code.claude.com/docs/es/plugins/mods/overview.md) que instalaste aún puede aprobar [algunas de esas llamadas](https://code.claude.com/docs/es/permissions.md#precedence-among-rules-hooks-and-mods).61Si ningún paso anterior resuelve la solicitud, llama a tu [devolución de llamada `canUseTool`](https://code.claude.com/docs/es/agent-sdk/user-input) para una decisión. En modo `dontAsk`, este paso se omite y la herramienta se deniega, aunque un [mod](https://code.claude.com/docs/es/plugins/mods/overview.md) que instalaste aún puede aprobar [algunas de esas llamadas](https://code.claude.com/docs/es/permissions.md#precedence-among-rules-hooks-and-mods).

62 62 

63En el SDK de TypeScript, si establece [`permissionPrompts: 'none'`](https://code.claude.com/docs/es/agent-sdk/typescript#options), su devolución de llamada no se llama en este paso. Un hook [`PermissionRequest`](https://code.claude.com/docs/es/hooks#permissionrequest) aún tiene la oportunidad de decidir, y si no lo hace, Claude Code deniega la llamada. La opción requiere Claude Code v2.1.259 o posterior.63En el SDK de TypeScript, si establece [`permissionPrompts: 'none'`](https://code.claude.com/docs/es/agent-sdk/typescript#options), su devolución de llamada no se llama en este paso. Un hook [`PermissionRequest`](https://code.claude.com/docs/es/hooks#permissionrequest) aún tiene la oportunidad de decidir, y si no lo hace, Claude Code deniega la llamada. La opción requiere Claude Code v2.1.259 o posterior.

64 64 


80 80 

81## Reglas de permitir y denegar81## Reglas de permitir y denegar

82 82 

83`allowed_tools` y `disallowed_tools` (TypeScript: `allowedTools` / `disallowedTools`) añaden entradas a las listas de reglas de permitir y denegar en el flujo de evaluación anterior. Si nombra una de las [herramientas de seguimiento de tareas](https://code.claude.com/docs/es/agent-sdk/todo-tracking.md#model-availability) en `allowed_tools`, Claude Code también habilita esas herramientas en la sesión. Cualquier otra herramienta no listada en `allowed_tools` sigue estando disponible para Claude, y una llamada a ella que necesite aprobación cae en el modo de permisos. Las reglas de denegación se comportan de manera diferente dependiendo de si nombran una herramienta o delimitan un patrón dentro de una.83Cuando configuras `allowedTools` y `disallowedTools` (TypeScript) o `allowed_tools` y `disallowed_tools` (Python), Claude Code añade sus entradas a las listas de reglas de permitir y denegar en el [flujo de evaluación de permisos](#how-permissions-are-evaluated). Cualquier otra herramienta no listada en `allowed_tools` sigue estando disponible para Claude, y una llamada a ella que necesite aprobación cae en el modo de permisos.

84 84 

85| Opción | Efecto |85| Opción | Efecto |

86| :- | :- |86| :- | :- |

87| `allowed_tools=["Read", "Grep"]` | `Read` y `Grep` se aprueban automáticamente, aparte de las [lecturas desde rutas de red](https://code.claude.com/docs/es/permissions.md#network-paths). Otras herramientas no listadas aquí siguen existiendo, y las llamadas a ellas que necesiten aprobación caen en el modo de permisos y `canUseTool`. |87| `allowed_tools=["Read", "Grep"]` | `Read` y `Grep` se aprueban automáticamente, aparte de las [lecturas desde rutas de red](https://code.claude.com/docs/es/permissions.md#network-paths). Otras herramientas no listadas aquí siguen existiendo, y las llamadas a ellas que necesiten aprobación caen en el modo de permisos y `canUseTool`. |

88| `disallowed_tools=["Bash"]` | La definición de la herramienta `Bash` se elimina de la solicitud. Claude no ve la herramienta y no puede intentarla. |88| `disallowed_tools=["Bash"]` | La definición de la herramienta `Bash` se elimina de la solicitud. |

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

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

91 91 

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

93 93 

Details

2787 2787 

2788Ejecuta una fuente en segundo plano y entrega cada evento a Claude para que pueda reaccionar sin sondeo: `command` ejecuta un script y emite un evento por línea stdout, y `ws` abre un WebSocket y emite un evento por marco de texto. Proporciona exactamente uno de `command` o `ws`.2788Ejecuta una fuente en segundo plano y entrega cada evento a Claude para que pueda reaccionar sin sondeo: `command` ejecuta un script y emite un evento por línea stdout, y `ws` abre un WebSocket y emite un evento por marco de texto. Proporciona exactamente uno de `command` o `ws`.

2789 2789 

2790Cuando Monitor ejecuta un comando, sigue las mismas reglas de permisos que Bash; una vigilancia de WebSocket solicita aprobación por separado. La fuente `ws` requiere Claude Code v2.1.195 o posterior. Consulta la [referencia de la herramienta Monitor](https://code.claude.com/docs/es/tools-reference.md#monitor-tool) para comportamiento y disponibilidad de proveedor.2790La fuente `ws` requiere Claude Code v2.1.195 o posterior. Cuando Monitor ejecuta un comando, sigue las mismas reglas de permisos que Bash. Consulta la [referencia de la herramienta Monitor](https://code.claude.com/docs/es/tools-reference.md#monitor-tool) para los permisos de WebSocket, el comportamiento y la disponibilidad de proveedor.

2791 2791 

2792**Entrada:**2792**Entrada:**

2793 2793 

Details

3386 3386 

3387Ejecuta una fuente en segundo plano y entrega cada evento a Claude para que pueda reaccionar sin sondeo: `command` ejecuta un script y emite un evento por línea de stdout, y `ws` abre un WebSocket y emite un evento por marco de texto. Proporciona exactamente uno de `command` o `ws`. La fuente `ws` requiere Claude Code v2.1.195 o posterior.3387Ejecuta una fuente en segundo plano y entrega cada evento a Claude para que pueda reaccionar sin sondeo: `command` ejecuta un script y emite un evento por línea de stdout, y `ws` abre un WebSocket y emite un evento por marco de texto. Proporciona exactamente uno de `command` o `ws`. La fuente `ws` requiere Claude Code v2.1.195 o posterior.

3388 3388 

3389`timeout_ms` es el plazo de la vigilancia en milisegundos. El valor predeterminado es 300000 y acepta valores hasta 3600000. El plazo efectivo es como máximo 1800000, que son 30 minutos, por lo que un valor aceptado más grande se acorta a eso. En el plazo, la vigilancia termina y Claude recibe un aviso para que pueda iniciar una nueva vigilancia si aún la necesita.3389`timeout_ms` es el plazo de la vigilancia en milisegundos:

3390 3390 

3391El tipo exportado marca `timeout_ms` como requerido porque el esquema completa el valor predeterminado; una llamada que lo omite valida.3391* **Valor predeterminado y límites**: el valor predeterminado es 300000 y acepta valores hasta 3600000. El plazo efectivo es como máximo 1800000, que son 30 minutos, por lo que un valor aceptado más grande se acorta a eso

3392* **Al llegar al plazo**: la vigilancia termina y Claude recibe un aviso para que pueda iniciar una nueva vigilancia si aún la necesita

3393* **Requerido en el tipo**: el tipo exportado marca `timeout_ms` como requerido porque el esquema completa el valor predeterminado; una llamada que lo omite valida

3392 3394 

3393Cuando Monitor ejecuta un comando, sigue las mismas reglas de permisos que Bash; una vigilancia de WebSocket solicita aprobación por separado. Consulta la [referencia de herramienta Monitor](https://code.claude.com/docs/es/tools-reference.md#monitor-tool) para comportamiento y disponibilidad de proveedor.3395Cuando Monitor ejecuta un comando, sigue las mismas reglas de permisos que Bash. Consulta la [referencia de herramienta Monitor](https://code.claude.com/docs/es/tools-reference.md#monitor-tool) para los permisos de WebSocket, el comportamiento y la disponibilidad de proveedor.

3394 3396 

3395### TaskOutput3397### TaskOutput

3396 3398 

Details

433 433 

434### Cambia el modelo y el esfuerzo434### Cambia el modelo y el esfuerzo

435 435 

436El [esfuerzo](https://code.claude.com/docs/es/model-config.md#adjust-effort-level) es el control principal de cuánto tiempo piensa Claude, y reemplaza la mayor parte de lo que la gente solía hacer con la redacción del prompt. Claude Opus 5.5, Sonnet 5.5 y Haiku 5.5 usan `medium` de forma predeterminada, lo cual es suficiente para el trabajo cotidiano en funcionalidades con un alcance claro. Los momentos en que lo cambiarías, con `/effort` en la sesión:436El [esfuerzo](https://code.claude.com/docs/es/model-config.md#adjust-effort-level) es el control principal de cuánto tiempo piensa Claude, y reemplaza la mayor parte de lo que la gente solía hacer con la redacción del prompt. Claude Fable 5.2, Opus 5.5, Sonnet 5.5 y Haiku 5.5 usan `medium` de forma predeterminada, lo cual es suficiente para el trabajo cotidiano en funcionalidades con un alcance claro. Los momentos en que lo cambiarías, con `/effort` en la sesión:

437 437 

438* Súbelo con `/effort high` o `/effort xhigh` cuando hacerlo bien dependa de casos fáciles de pasar por alto. Piensa en un error en código que no escribiste, una prueba inestable o un cambio de esquema en el que Claude tiene que encontrar cada lector de la forma antigua. Claude entonces revisa más casos extremos y verifica más de su trabajo antes de responder, y ahí es donde se van el tiempo y los tokens adicionales.438* Súbelo con `/effort high` o `/effort xhigh` cuando hacerlo bien dependa de casos fáciles de pasar por alto. Piensa en un error en código que no escribiste, una prueba inestable o un cambio de esquema en el que Claude tiene que encontrar cada lector de la forma antigua. Claude entonces revisa más casos extremos y verifica más de su trabajo antes de responder, y ahí es donde se van el tiempo y los tokens adicionales.

439* Bájalo con `/effort low` cuando estás yendo y viniendo rápidamente y revisando cada resultado de todos modos: lluvia de ideas, un primer boceto, un cambio de nombre en unos pocos archivos. Claude te da un punto de partida antes, y como estás dirigiendo cada paso, la deliberación adicional no habría cambiado mucho aparte de la espera.439* Bájalo con `/effort low` cuando estás yendo y viniendo rápidamente y revisando cada resultado de todos modos: lluvia de ideas, un primer boceto, un cambio de nombre en unos pocos archivos. Claude te da un punto de partida antes, y como estás dirigiendo cada paso, la deliberación adicional no habría cambiado mucho aparte de la espera.

440* Reserva `max` para un problema difícil que quieres que Claude resuelva sin ti, como buscar una vulnerabilidad de seguridad. En tareas ordinarias tiende a pensar de más, así que pagas más por una respuesta que puede no ser mejor que la que te habría dado `high`.440* Reserva `max` para un problema difícil que quieres que Claude resuelva sin ti, como buscar una vulnerabilidad de seguridad. En tareas ordinarias tiende a pensar de más, así que pagas más por una respuesta que puede no ser mejor que la que te habría dado `high`.

441* Cuando solo el siguiente mensaje lo necesita, como una pregunta complicada en medio de un trabajo por lo demás rutinario, pon [`ultrathink`](https://code.claude.com/docs/es/model-config#use-ultrathink-for-one-off-deep-reasoning) en ese prompt en lugar de cambiar el ajuste.441* Cuando solo el siguiente mensaje lo necesita, como una pregunta complicada en medio de un trabajo por lo demás rutinario, pon [`ultrathink`](https://code.claude.com/docs/es/model-config#use-ultrathink-for-one-off-deep-reasoning) en ese prompt en lugar de cambiar el ajuste.

442 442 

443En cuanto al modelo en sí, Opus 5.5, el predeterminado, maneja bien la mayor parte de la programación, y Sonnet cuesta menos en el trabajo rutinario. [Claude Fable 5.1](https://code.claude.com/docs/es/model-config.md#work-with-fable) está disponible cuando lo seleccionas explícitamente con `/model fable`, y Haiku encaja bien para subagentes que hacen trabajos sencillos. [Configuración del modelo](https://code.claude.com/docs/es/model-config.md) tiene la lista completa por plan y proveedor.443En cuanto al modelo en sí, Opus 5.5, el predeterminado, maneja bien la mayor parte de la programación, y Sonnet cuesta menos en el trabajo rutinario. Para usar [Claude Fable 5.2](https://code.claude.com/docs/es/model-config.md#work-with-fable), ejecuta `/model fable`. Haiku encaja bien para subagentes que hacen trabajos sencillos. [Configuración del modelo](https://code.claude.com/docs/es/model-config.md) tiene la lista completa por plan y proveedor.

444 444 

445### Conoce lo que cuestan los subagentes445### Conoce lo que cuestan los subagentes

446 446 

Details

172 172 

173Un arranque exitoso no valida la ruta de inferencia, porque las credenciales de instancia de Amazon Bedrock y Google Cloud's Agent Platform se resuelven en la primera solicitud, no al arrancar.173Un arranque exitoso no valida la ruta de inferencia, porque las credenciales de instancia de Amazon Bedrock y Google Cloud's Agent Platform se resuelven en la primera solicitud, no al arrancar.

174 174 

175Observa stderr para ver la secuencia de arranque. Las líneas de registro usan el formato `[gateway] <timestamp> <level> <message>`, los eventos de auditoría son JSON de una sola línea con un campo `evt`, y un banner de inicio, omitido abajo, se imprime entre las líneas de migración y de escucha. Una base de datos nueva imprime una línea `migration N applied` por cada migración de esquema; una base de datos ya migrada no imprime ninguna. Deberías ver, en orden:175Observa stderr para ver la secuencia de arranque. De forma predeterminada, las líneas de registro usan el formato `[gateway] <timestamp> <level> <message>`, y un banner de inicio, omitido abajo, se imprime entre las líneas de migración y de escucha. Los eventos de auditoría son JSON de una sola línea con un campo `evt`. Una base de datos nueva imprime una línea `migration N applied` por cada migración de esquema; una base de datos ya migrada no imprime ninguna. Deberías ver, en orden:

176 176 

177```text theme={null}177```text theme={null}

178{"ts":"2026-06-10T17:03:21.114Z","evt":"config.load","path":"/etc/claude/gateway.yaml","sha256":"…"}178{"ts":"2026-06-10T17:03:21.114Z","evt":"config.load","path":"/etc/claude/gateway.yaml","sha256":"…"}

Details

28 28 

29**Secciones opcionales:**29**Secciones opcionales:**

30 30 

31* [`login_notice`](#login_notice): un aviso que los desarrolladores ven cuando inician sesión

31* [`admin`](#admin): autenticación de API de administración y retención de límites de gasto32* [`admin`](#admin): autenticación de API de administración y retención de límites de gasto

32* [`enforcement`](#enforcement): comportamiento de límite de gasto de fallo abierto o fallo cerrado33* [`enforcement`](#enforcement): comportamiento de límite de gasto de fallo abierto o fallo cerrado

33* [`pricing`](#pricing): tasas contratadas y un multiplicador para el medidor de gasto y para las cifras de costo que ven los desarrolladores34* [`pricing`](#pricing): tasas contratadas y un multiplicador para el medidor de gasto y para las cifras de costo que ven los desarrolladores


847 848 

848## Secciones opcionales849## Secciones opcionales

849 850 

851### `login_notice`

852 

853Para mostrar un aviso a los desarrolladores cuando inicien sesión, establece la clave de nivel superior `login_notice` con el texto del aviso, de hasta 500 caracteres. Este ejemplo indica para quién es el gateway y dónde solicitar acceso:

854 

855```yaml theme={null}

856login_notice: This gateway is for Example Corp staff. For access questions, email it-help@example.com.

857```

858 

859Los desarrolladores ven el texto bajo `Notice from <gateway hostname>` en la página de verificación del gateway en el navegador y en la pantalla interactiva de inicio de sesión en la terminal. Los saltos de línea del texto se convierten en espacios. El aviso aparece antes del inicio de sesión, así que cualquiera que pueda llegar al gateway puede leerlo.

860 

861Requiere Claude Code v2.1.319 o posterior en el servidor del gateway, y también en la máquina del desarrollador para la pantalla de la terminal. Un gateway anterior se niega a iniciar cuando encuentra la clave. Actualiza todas las réplicas antes de agregar la clave, y elimínala antes de revertir a una versión anterior.

862 

850### `admin`863### `admin`

851 864 

852Opcional. Habilita `/v1/organizations/spend_limits`, que replica la Admin API pública de Anthropic, y la aplicación de límites de gasto por desarrollador en `/v1/messages`. Consulta [Límites de gasto](https://code.claude.com/docs/es/claude-apps-gateway-spend-limits.md) para saber cómo se establecen y aplican los límites; esta sección cubre las claves de `gateway.yaml` que activan la función y la ajustan.865Opcional. Habilita `/v1/organizations/spend_limits`, que replica la Admin API pública de Anthropic, y la aplicación de límites de gasto por desarrollador en `/v1/messages`. Consulta [Límites de gasto](https://code.claude.com/docs/es/claude-apps-gateway-spend-limits.md) para saber cómo se establecen y aplican los límites; esta sección cubre las claves de `gateway.yaml` que activan la función y la ajustan.

853 866 

854```yaml theme={null}867```yaml theme={null}

855admin:868admin:

856 # Claves de API estáticas con nombre para los endpoints de administración, enviadas como x-api-key.869 # Named static API keys for the admin endpoints, sent as x-api-key.

857 # El id aparece en el registro de auditoría como admin-key:<id> para que cada clave sea870 # The id appears in the audit log as admin-key:<id> so each key is

858 # atribuible. Array para rotación: agrega la clave nueva, actualiza los clientes,871 # attributable. Array for rotation: add the new key, roll clients,

859 # elimina la antigua.872 # remove the old.

860 write_keys:873 write_keys:

861 - { id: terraform, key: "${GATEWAY_ADMIN_WRITE_KEY_TF}" }874 - { id: terraform, key: "${GATEWAY_ADMIN_WRITE_KEY_TF}" }

862 - { id: ci, key: "${GATEWAY_ADMIN_WRITE_KEY_CI}" }875 - { id: ci, key: "${GATEWAY_ADMIN_WRITE_KEY_CI}" }

863 read_keys:876 read_keys:

864 - { id: reporting, key: "${GATEWAY_ADMIN_READ_KEY}" }877 - { id: reporting, key: "${GATEWAY_ADMIN_READ_KEY}" }

865 # Grupos de IdP con acceso completo de administrador mediante el JWT normal del gateway (sin clave de API).878 # IdP groups granted full admin via the normal gateway JWT (no API key).

866 admin_groups: [platform-finops]879 admin_groups: [platform-finops]

867 blocked_message: request an increase at https://go.example.com/claude-limits880 blocked_message: request an increase at https://go.example.com/claude-limits

881 # Try eng-platform's pooled budget first, then eng-all's, then any other group's.

882 pooled_conflict_rule: priority_list

883 pooled_priority_order: [eng-platform, eng-all]

868```884```

869 885 

870| Campo | Requerido | Descripción |886| Campo | Requerido | Descripción |


877| `spend_retention_months` | No | Predeterminado `13`. Las filas del contador `spend` más antiguas que esto se eliminan. El valor predeterminado conserva un año completo más el mes parcial actual para informes interanuales. |893| `spend_retention_months` | No | Predeterminado `13`. Las filas del contador `spend` más antiguas que esto se eliminan. El valor predeterminado conserva un año completo más el mes parcial actual para informes interanuales. |

878| `identity_retention_days` | No | Predeterminado `90`. TTL desde la última vez que se vio para las filas `principal_emails`, que contienen el correo electrónico, el nombre para mostrar y los grupos de cada desarrollador (PII). Es deliberadamente más corto que la retención de gastos para que una identidad desaprovisionada caduque mientras sus contadores de gasto anónimos permanecen. |894| `identity_retention_days` | No | Predeterminado `90`. TTL desde la última vez que se vio para las filas `principal_emails`, que contienen el correo electrónico, el nombre para mostrar y los grupos de cada desarrollador (PII). Es deliberadamente más corto que la retención de gastos para que una identidad desaprovisionada caduque mientras sus contadores de gasto anónimos permanecen. |

879| `group_limit_mode` | No | `min` (predeterminado) o `max`. Cuando un desarrollador está en varios grupos con límites, `min` aplica el más restrictivo y `max` el menos restrictivo. Lo usan tanto la aplicación como `/effective`. |895| `group_limit_mode` | No | `min` (predeterminado) o `max`. Cuando un desarrollador está en varios grupos con límites, `min` aplica el más restrictivo y `max` el menos restrictivo. Lo usan tanto la aplicación como `/effective`. |

896| `pooled_conflict_rule` | No | `default_order` (predeterminado) o `priority_list`. El orden en que el gateway prueba los presupuestos compartidos de un desarrollador. Consulta [Orden de los presupuestos compartidos](#pooled-budget-order). Requiere v2.1.319 o posterior. |

897| `pooled_priority_order` | Con `priority_list` | Hasta 50 nombres de grupo, cada uno listado una vez y escrito tal como lo envía tu IdP. Los grupos cuyos presupuestos compartidos el gateway prueba primero. Consulta [Orden de los presupuestos compartidos](#pooled-budget-order). Requiere v2.1.319 o posterior. |

898 

899#### Orden de los presupuestos compartidos

900 

901Un presupuesto compartido es un límite mensual contra el que gasta todo un grupo. Para establecer uno, agrega `pooled_budget` a la [solicitud que establece el tope mensual del grupo](https://code.claude.com/docs/es/claude-apps-gateway-spend-limits.md#set-a-cap), como en `"pooled_budget": {"amount": "500000"}` para \$5,000. La solicitud también recibe el `scope` del grupo, `"period": "monthly"` y `amount`, que sigue siendo el tope propio de cada miembro.

902 

903Para un desarrollador que está en varios de esos grupos, cada solicitud se descuenta del primer presupuesto cuyo gasto esté por debajo de su límite, y se rechaza cuando todos los presupuestos se han agotado. `pooled_conflict_rule` establece el orden en que el gateway prueba los presupuestos:

904 

905* **`default_order`**: primero el límite más grande, y los límites iguales en orden ascendente por nombre de grupo

906* **`priority_list`**: los presupuestos de los grupos en `pooled_priority_order`, en el orden de la lista, y luego los presupuestos de los demás grupos por nombre de grupo

907 

908Si listas grupos sin `pooled_conflict_rule: priority_list`, el gateway ignora la lista y registra una advertencia al arrancar.

909 

910Un servidor de gateway anterior a v2.1.319 se niega a iniciar cuando encuentra `pooled_conflict_rule` o `pooled_priority_order`. Actualiza todas las réplicas antes de agregar cualquiera de las dos claves, y elimina ambas antes de revertir a una versión anterior.

880 911 

881### `enforcement`912### `enforcement`

882 913 


1675# CLAUDE_GATEWAY_LOG_LEVEL (debug | info | warn | error; predeterminado info). debug1706# CLAUDE_GATEWAY_LOG_LEVEL (debug | info | warn | error; predeterminado info). debug

1676# también registra los nombres de reclamaciones en cada id_token, para diagnóstico de groups_claim.1707# también registra los nombres de reclamaciones en cada id_token, para diagnóstico de groups_claim.

1677# No afecta los eventos de auditoría, que siempre se emiten.1708# No afecta los eventos de auditoría, que siempre se emiten.

1709# Establece CLAUDE_GATEWAY_LOG_FORMAT=json para escribir las líneas del registro operativo como objetos

1710# JSON con severity, time y message.

1678 1711 

1679listen:1712listen:

1680 host: 0.0.0.01713 host: 0.0.0.0


1715 # connect_timeout_seconds: 51748 # connect_timeout_seconds: 5

1716 # readiness_grace_seconds: 300 # mantener pasando la verificación de disponibilidad durante una conmutación por error de base de datos1749 # readiness_grace_seconds: 300 # mantener pasando la verificación de disponibilidad durante una conmutación por error de base de datos

1717 1750 

1751# Aviso que se muestra al iniciar sesión. Cualquiera que pueda acceder al gateway puede leerlo.

1752# login_notice: This gateway is for Example Corp staff. For access questions, email it-help@example.com.

1753 

1718# Habilita /v1/organizations/spend_limits (refleja la API de administración de Anthropic)1754# Habilita /v1/organizations/spend_limits (refleja la API de administración de Anthropic)

1719# y cumplimiento de gasto por desarrollador en /v1/messages. Omite para deshabilitar.1755# y cumplimiento de gasto por desarrollador en /v1/messages. Omite para deshabilitar.

1720# Los límites en sí se establecen a través de la API de administración, no aquí.1756# Los límites en sí se establecen a través de la API de administración, no aquí.


1729# # spend_retention_months: 131765# # spend_retention_months: 13

1730# # identity_retention_days: 901766# # identity_retention_days: 90

1731# # group_limit_mode: min1767# # group_limit_mode: min

1768# # pooled_conflict_rule: priority_list

1769# # pooled_priority_order: [eng-platform, eng-all]

1732 1770 

1733# enforcement:1771# enforcement:

1734# fail_closed_on_error: false1772# fail_closed_on_error: false

Details

173 * `admin.denied` registra un intento de autenticación rechazado en la API de administración con la IP del cliente, el método, la ruta y un motivo, sin el material de clave presentado: `invalid_key` cuando se presentó una `x-api-key` que no coincidió con ninguna clave configurada, `bearer_rejected` cuando solo se presentó un encabezado `Authorization` y no se verificó como una sesión del gateway en `admin.admin_groups`, o `no_credentials` cuando no se presentó ninguno de los dos encabezados173 * `admin.denied` registra un intento de autenticación rechazado en la API de administración con la IP del cliente, el método, la ruta y un motivo, sin el material de clave presentado: `invalid_key` cuando se presentó una `x-api-key` que no coincidió con ninguna clave configurada, `bearer_rejected` cuando solo se presentó un encabezado `Authorization` y no se verificó como una sesión del gateway en `admin.admin_groups`, o `no_credentials` cuando no se presentó ninguno de los dos encabezados

174* **Registros operacionales**: líneas legibles por humanos con prefijo `[gateway]` para arranque, advertencias y errores ascendentes. La variable de entorno `CLAUDE_GATEWAY_LOG_LEVEL` controla la verbosidad y acepta `debug`, `info`, `warn` o `error`, con `info` como predeterminado. En `debug`, cada inicio de sesión y actualización también registra los nombres, no los valores, de los reclamos en el id\_token, más los nombres de los reclamos de userinfo cuando `userinfo_fallback` proporcionó alguno, para que pueda diagnosticar la configuración de `email_claim` y `groups_claim` sin registrar PII. No afecta los eventos de auditoría, que siempre se emiten.174* **Registros operacionales**: líneas legibles por humanos con prefijo `[gateway]` para arranque, advertencias y errores ascendentes. La variable de entorno `CLAUDE_GATEWAY_LOG_LEVEL` controla la verbosidad y acepta `debug`, `info`, `warn` o `error`, con `info` como predeterminado. En `debug`, cada inicio de sesión y actualización también registra los nombres, no los valores, de los reclamos en el id\_token, más los nombres de los reclamos de userinfo cuando `userinfo_fallback` proporcionó alguno, para que pueda diagnosticar la configuración de `email_claim` y `groups_claim` sin registrar PII. No afecta los eventos de auditoría, que siempre se emiten.

175 175 

176#### Escribe los registros operativos como JSON

177 

178Si tu recolector de registros lee el nivel de cada línea desde un campo JSON, establece `CLAUDE_GATEWAY_LOG_FORMAT=json` en el entorno del gateway. Requiere Claude Code v2.1.319 o posterior en el servidor del gateway.

179 

180Cada línea del registro operativo pasa a ser un objeto con `severity`, `time` y `message`:

181 

182```json theme={null}

183{"severity":"INFO","time":"2026-11-04T17:03:21.512Z","message":"claude gateway listening on http://0.0.0.0:8080"}

184```

185 

186`severity` es el nivel de registro en mayúsculas, con `warn` escrito como `WARNING`. Un arranque fallido es una línea `ERROR`.

187 

188Los eventos de auditoría, que también van a stderr, no cambian. Incluyen `ts` y `evt`, y no `severity`.

189 

176### Salud190### Salud

177 191 

178La puerta de enlace sirve `GET /healthz` como una sonda de vivacidad y `GET /readyz` como una sonda de preparación. `/readyz` verifica que el almacén sea alcanzable. Si establece [`store.readiness_grace_seconds`](https://code.claude.com/docs/es/claude-apps-gateway-config#store), `/readyz` sigue reportando listo durante hasta esa cantidad de segundos después de que el almacén deja de responder.192La puerta de enlace sirve `GET /healthz` como una sonda de vivacidad y `GET /readyz` como una sonda de preparación. `/readyz` verifica que el almacén sea alcanzable. Si establece [`store.readiness_grace_seconds`](https://code.claude.com/docs/es/claude-apps-gateway-config#store), `/readyz` sigue reportando listo durante hasta esa cantidad de segundos después de que el almacén deja de responder.

Details

6 6 

7> Limite el gasto de cada desarrollador a través de la puerta de enlace de aplicaciones Claude por día, semana o mes. Establezca límites con una API de administrador y la puerta de enlace los aplica en vivo en cada solicitud.7> Limite el gasto de cada desarrollador a través de la puerta de enlace de aplicaciones Claude por día, semana o mes. Establezca límites con una API de administrador y la puerta de enlace los aplica en vivo en cada solicitud.

8 8 

9Los límites de gasto limitan cuánto puede gastar cada desarrollador a través de su [puerta de enlace de aplicaciones Claude](https://code.claude.com/docs/es/claude-apps-gateway) en un día, semana o mes determinado. Cuando un desarrollador supera su límite, la puerta de enlace devuelve `429` en su siguiente solicitud y lo bloquea hasta que el período se reinicie o un administrador aumente el límite. Utilice límites de gasto para dar a cada desarrollador, grupo u organización completa un techo en una credencial que todos comparten.9Los límites de gasto limitan cuánto puede gastar cada desarrollador a través de tu [gateway de aplicaciones Claude](https://code.claude.com/docs/es/claude-apps-gateway) en un día, semana o mes determinado. Cuando un desarrollador supera su límite, el gateway devuelve `429` en sus solicitudes siguientes hasta que un administrador aumente el límite, o hasta que el límite se reinicie si es superior a \$0. Usa los límites de gasto para dar a cada desarrollador, grupo o a toda la organización un techo en una credencial que todos comparten.

10 10 

11De forma predeterminada, una puerta de enlace de aplicaciones Claude reenvía toda la inferencia a través de una credencial ascendente compartida, por lo que la factura de su proveedor atribuye todo a esa credencial, no a desarrolladores individuales. En Amazon Bedrock, [la atribución de costos de AWS por desarrollador](https://code.claude.com/docs/es/claude-apps-gateway-config.md#per-developer-aws-cost-attribution) cambia esto. Sin límites por desarrollador, una flota de agentes descontrolada puede gastar todo el compromiso de la organización. Los límites de gasto son la vista por desarrollador de la puerta de enlace y el disyuntor en la parte superior de esa factura compartida.11De forma predeterminada, una puerta de enlace de aplicaciones Claude reenvía toda la inferencia a través de una credencial ascendente compartida, por lo que la factura de su proveedor atribuye todo a esa credencial, no a desarrolladores individuales. En Amazon Bedrock, [la atribución de costos de AWS por desarrollador](https://code.claude.com/docs/es/claude-apps-gateway-config.md#per-developer-aws-cost-attribution) cambia esto. Sin límites por desarrollador, una flota de agentes descontrolada puede gastar todo el compromiso de la organización. Los límites de gasto son la vista por desarrollador de la puerta de enlace y el disyuntor en la parte superior de esa factura compartida.

12 12 


51 51 

52En cada solicitud `/v1/messages`, la puerta de enlace resuelve los límites del desarrollador y el gasto hasta la fecha del período en una consulta de Postgres. Un desarrollador que supera cualquier límite recibe un `429` con `error.type: billing_error` y el encabezado `x-should-retry: false`.52En cada solicitud `/v1/messages`, la puerta de enlace resuelve los límites del desarrollador y el gasto hasta la fecha del período en una consulta de Postgres. Un desarrollador que supera cualquier límite recibe un `429` con `error.type: billing_error` y el encabezado `x-should-retry: false`.

53 53 

54El mensaje nombra el período y la hora de reinicio, como `spend limit reached (daily; resets 2026-08-08 00:00 UTC)`, seguido de su [`admin.blocked_message`](https://code.claude.com/docs/es/claude-apps-gateway-config#admin) si se establece. Cuando un desarrollador supera varios límites a la vez, el mensaje nombra el límite que se reinicia último. La respuesta también lleva un encabezado `retry-after` con los segundos restantes hasta ese reinicio. Antes de v2.1.225 en el servidor de la puerta de enlace, el mensaje era `spend limit reached` sin período, hora de reinicio o encabezado `retry-after`.54Para un límite superior a `"0"`, el mensaje indica la fecha UTC en que ese límite se reinicia. Si estableces [`admin.blocked_message`](https://code.claude.com/docs/es/claude-apps-gateway-config#admin), el gateway lo agrega al final, como en este ejemplo:

55 

56```text theme={null}

57spend limit reached · resets Dec 1 · request an increase at https://go.example.com/claude-limits

58```

59 

60Para un límite de `"0"`, que un reinicio no levanta, el mensaje no incluye fecha. Cuando un desarrollador supera varios límites a la vez, el mensaje describe el límite que se reinicia último. La respuesta también lleva un encabezado `retry-after` con los segundos restantes hasta que termina el período de ese límite.

61 

62Antes de v2.1.319 en el servidor del gateway, el mensaje nombraba el período y la hora de reinicio, como `spend limit reached (daily; resets 2026-08-08 00:00 UTC)`. Antes de v2.1.225, el mensaje era `spend limit reached` sin período, hora de reinicio ni encabezado `retry-after`.

55 63 

56En v2.1.227 o posterior, la referencia de protocolo en `<public_url>/protocol` también enumera los encabezados de respuesta de límite de uso exactos y el cuerpo `429`.64En v2.1.227 o posterior, la referencia de protocolo en `<public_url>/protocol` también enumera los encabezados de respuesta de límite de uso exactos y el cuerpo `429`.

57 65 


95| Advertencias de uso al 75% y al 95% | v2.1.225 o posterior | v2.1.225 o posterior |103| Advertencias de uso al 75% y al 95% | v2.1.225 o posterior | v2.1.225 o posterior |

96| Una barra de **Spend limit** en `/usage` con el porcentaje de su límite utilizado y cuándo se reinicia, y un objeto `rate_limits.spend_limit` en la entrada de la línea de estado | v2.1.251 o posterior | v2.1.225 o posterior |104| Una barra de **Spend limit** en `/usage` con el porcentaje de su límite utilizado y cuándo se reinicia, y un objeto `rate_limits.spend_limit` en la entrada de la línea de estado | v2.1.251 o posterior | v2.1.225 o posterior |

97| Su gasto estimado y el límite en dólares estadounidenses en la barra de **Spend limit**, como "\$271.40 / \$500.00 spent this month", y los mismos montos más el período del límite en la entrada de la línea de estado | v2.1.284 o posterior | v2.1.284 o posterior |105| Su gasto estimado y el límite en dólares estadounidenses en la barra de **Spend limit**, como "\$271.40 / \$500.00 spent this month", y los mismos montos más el período del límite en la entrada de la línea de estado | v2.1.284 o posterior | v2.1.284 o posterior |

106| En un gateway con un bloque [`admin:`](https://code.claude.com/docs/es/claude-apps-gateway-config#admin), cuando no se le aplica ningún límite, su gasto estimado en **Spend (UTC)** en `/usage`, como "\$13.06 today · \$80.76 this week · \$272.06 this month" | v2.1.319 o posterior | v2.1.319 o posterior |

98 107 

99Las advertencias y el porcentaje provienen de los encabezados `anthropic-ratelimit-unified-*`, que el gateway agrega a cada respuesta exitosa de `/v1/messages` para un desarrollador que tiene un límite. Los encabezados siempre describen el límite propio del desarrollador: el gateway elimina los encabezados de rate limit del proveedor upstream, que describen tu cuota compartida, y nunca los reenvía.108Las advertencias y el porcentaje provienen de los encabezados `anthropic-ratelimit-unified-*`, que el gateway agrega a cada respuesta exitosa de `/v1/messages` para un desarrollador que tiene un límite. Los encabezados siempre describen el límite propio del desarrollador: el gateway elimina los encabezados de rate limit del proveedor upstream, que describen tu cuota compartida, y nunca los reenvía.

100 109 

Details

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

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

43| `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](https://code.claude.com/docs/es/claude-directory.md#clear-local-data) | `claude purge ~/work/repo --dry-run` |43| `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](https://code.claude.com/docs/es/claude-directory.md#clear-local-data) | `claude purge ~/work/repo --dry-run` |

44| `claude remote-control` | Iniciar un servidor de [Remote Control](https://code.claude.com/docs/es/remote-control.md) para controlar Claude Code desde Claude.ai o la aplicación Claude. Se ejecuta en modo servidor (sin sesión interactiva local). Consulta [Flags del modo servidor](https://code.claude.com/docs/es/remote-control.md#start-a-remote-control-session). Después de detener el servidor, puedes recuperar las sesiones que estaba sirviendo. Consulta [Reanudar sesiones después de detener el servidor](https://code.claude.com/docs/es/remote-control.md#resume-sessions-after-stopping-the-server) | `claude remote-control --name "My Project"` |44| `claude remote-control` | Iniciar un servidor de [Remote Control](https://code.claude.com/docs/es/remote-control.md) para controlar Claude Code desde claude.ai o la aplicación Claude. Alias: `claude rc`. Se ejecuta en modo servidor (sin sesión interactiva local). Consulta [Flags del modo servidor](https://code.claude.com/docs/es/remote-control.md#start-a-remote-control-session). Después de detener el servidor, puedes recuperar las sesiones que estaba sirviendo. Consulta [Reanudar sesiones después de detener el servidor](https://code.claude.com/docs/es/remote-control.md#resume-sessions-after-stopping-the-server) | `claude remote-control --name "My Project"` |

45| `claude respawn <id>` | Reiniciar una [sesión en segundo plano](https://code.claude.com/docs/es/agent-view.md#manage-sessions-from-the-shell), en ejecución o detenida, con su conversación intacta. Usa `--all` para reiniciar todas las sesiones en ejecución, por ejemplo, para usar un binario de Claude Code actualizado | `claude respawn 7c5dcf5d` |45| `claude respawn <id>` | Reiniciar una [sesión en segundo plano](https://code.claude.com/docs/es/agent-view.md#manage-sessions-from-the-shell), en ejecución o detenida, con su conversación intacta. Usa `--all` para reiniciar todas las sesiones en ejecución, por ejemplo, para usar un binario de Claude Code actualizado | `claude respawn 7c5dcf5d` |

46| `claude rm <id>` | Eliminar una [sesión en segundo plano](https://code.claude.com/docs/es/agent-view.md#manage-sessions-from-the-shell) de la lista. Cuando la eliminación se [rechaza por el worktree de la sesión](https://code.claude.com/docs/es/agent-view.md#what-deleting-a-session-removes) y un segundo `claude rm` puede resolverlo, el rechazo imprime el flag exacto y el valor que debes pasar: `--discard-unpushed <commit>@<worktree-id>` descarta un worktree que tiene commits sin enviar junto con esos commits, y `--force-remove-worktree <worktree-id>` elimina un directorio de worktree que git o el hook `WorktreeRemove` no pudieron eliminar. `--discard-unpushed` requiere Claude Code v2.1.260 o posterior, y `--force-remove-worktree` requiere v2.1.268 o posterior. La transcripción de la conversación permanece en tu máquina local, disponible a través de `claude --resume` | `claude rm 7c5dcf5d` |46| `claude rm <id>` | Eliminar una [sesión en segundo plano](https://code.claude.com/docs/es/agent-view.md#manage-sessions-from-the-shell) de la lista. Cuando la eliminación se [rechaza por el worktree de la sesión](https://code.claude.com/docs/es/agent-view.md#what-deleting-a-session-removes) y un segundo `claude rm` puede resolverlo, el rechazo imprime el flag exacto y el valor que debes pasar: `--discard-unpushed <commit>@<worktree-id>` descarta un worktree que tiene commits sin enviar junto con esos commits, y `--force-remove-worktree <worktree-id>` elimina un directorio de worktree que git o el hook `WorktreeRemove` no pudieron eliminar. `--discard-unpushed` requiere Claude Code v2.1.260 o posterior, y `--force-remove-worktree` requiere v2.1.268 o posterior. La transcripción de la conversación permanece en tu máquina local, disponible a través de `claude --resume` | `claude rm 7c5dcf5d` |

47| `claude self-hosted-runner` | Iniciar un proceso de ejecutor que registra esta máquina o contenedor en un [entorno autohospedado](https://code.claude.com/docs/es/self-hosted-environments) y aloja sesiones en la nube de Claude Code en tu infraestructura. Ejecuta `claude self-hosted-runner setup` para un recorrido guiado del operador, `claude self-hosted-runner doctor` para [diagnosticar un ejecutor implementado](https://code.claude.com/docs/es/self-hosted-environments-deploy.md#troubleshooting) y `claude self-hosted-runner orchestrator` para generar [ejecutores bajo demanda](https://code.claude.com/docs/es/self-hosted-environments-configuration.md#on-demand-runners). Requiere Claude Code v2.1.224 o posterior | `claude self-hosted-runner setup` |47| `claude self-hosted-runner` | Iniciar un proceso de ejecutor que registra esta máquina o contenedor en un [entorno autohospedado](https://code.claude.com/docs/es/self-hosted-environments) y aloja sesiones en la nube de Claude Code en tu infraestructura. Ejecuta `claude self-hosted-runner setup` para un recorrido guiado del operador, `claude self-hosted-runner doctor` para [diagnosticar un ejecutor implementado](https://code.claude.com/docs/es/self-hosted-environments-deploy.md#troubleshooting) y `claude self-hosted-runner orchestrator` para generar [ejecutores bajo demanda](https://code.claude.com/docs/es/self-hosted-environments-configuration.md#on-demand-runners). Requiere Claude Code v2.1.224 o posterior | `claude self-hosted-runner setup` |


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

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

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

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

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

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

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

commands.md +1 −1

Details

162| `/ultrareview [PR or branch]` | Ejecuta una revisión de código profunda y multiagente en un sandbox en la nube con [ultrareview](https://code.claude.com/docs/es/ultrareview.md). Pasa una referencia de PR para revisar ese pull request, o una rama base o un commit para cambiar la base de comparación. La invocación preferida es `/code-review ultra`, y `/ultrareview` es un alias. Incluye 3 ejecuciones gratuitas en Pro, Max y Ultra; después requiere [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |162| `/ultrareview [PR or branch]` | Ejecuta una revisión de código profunda y multiagente en un sandbox en la nube con [ultrareview](https://code.claude.com/docs/es/ultrareview.md). Pasa una referencia de PR para revisar ese pull request, o una rama base o un commit para cambiar la base de comparación. La invocación preferida es `/code-review ultra`, y `/ultrareview` es un alias. Incluye 3 ejecuciones gratuitas en Pro, Max y Ultra; después requiere [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |

163| `/update-config [request]` | **[Skill](https://code.claude.com/docs/es/skills.md#bundled-skills).** Describe un cambio de configuración, como permitir un comando, establecer una variable de entorno o agregar un [hook](https://code.claude.com/docs/es/hooks.md), y Claude edita el archivo [`settings.json`](https://code.claude.com/docs/es/settings) correspondiente. Para opciones como el tema y el modelo, usa `/config` en su lugar |163| `/update-config [request]` | **[Skill](https://code.claude.com/docs/es/skills.md#bundled-skills).** Describe un cambio de configuración, como permitir un comando, establecer una variable de entorno o agregar un [hook](https://code.claude.com/docs/es/hooks.md), y Claude edita el archivo [`settings.json`](https://code.claude.com/docs/es/settings) correspondiente. Para opciones como el tema y el modelo, usa `/config` en su lugar |

164| `/upgrade` | Abre la página de mejora de plan en tu navegador para cambiar a un nivel de plan superior. Cuando el navegador no se abre, el comando muestra una solicitud de inicio de sesión sin imprimir la URL |164| `/upgrade` | Abre la página de mejora de plan en tu navegador para cambiar a un nivel de plan superior. Cuando el navegador no se abre, el comando muestra una solicitud de inicio de sesión sin imprimir la URL |

165| `/usage` | Muestra el costo de la sesión, los límites de uso del plan y las estadísticas de actividad. En un plan Pro, Max, Ultra, Team o Enterprise, incluye un [desglose de lo que cuenta para los límites de tu plan](https://code.claude.com/docs/es/costs.md#plan-usage-breakdown). `/cost` y `/stats` son alias |165| `/usage` | Muestra el costo de la sesión, los límites de uso del plan y las estadísticas de actividad. En un plan Pro, Max, Ultra, Team o Enterprise, incluye un [desglose de lo que cuenta para los límites de tu plan](https://code.claude.com/docs/es/costs.md#plan-usage-breakdown). Detrás de un gateway de Claude apps que registra el gasto, muestra [tu gasto a través del gateway](https://code.claude.com/docs/es/claude-apps-gateway-spend-limits.md#usage-warnings-in-claude-code). `/cost` y `/stats` son alias |

166| `/usage-credits` | Configura créditos de uso, o solicítalos a tu administrador, cuando alcanzas un límite. Abre tu [configuración de facturación de créditos de uso](https://code.claude.com/docs/es/costs.md#add-usage-credits-to-your-subscription) en el navegador, excepto que los miembros de Team y Enterprise sin acceso a facturación envían en su lugar una solicitud de créditos de uso a su administrador desde la CLI, después de confirmar en un diálogo que la solicitud notifica a sus administradores. Cuando ningún navegador puede abrir la página de facturación, por ejemplo a través de SSH, el comando imprime en su lugar la URL que debes visitar; esto requiere Claude Code v2.1.205 o posterior, y las versiones anteriores no mostraban nada en ese caso. Anteriormente `/extra-usage` |166| `/usage-credits` | Configura créditos de uso, o solicítalos a tu administrador, cuando alcanzas un límite. Abre tu [configuración de facturación de créditos de uso](https://code.claude.com/docs/es/costs.md#add-usage-credits-to-your-subscription) en el navegador, excepto que los miembros de Team y Enterprise sin acceso a facturación envían en su lugar una solicitud de créditos de uso a su administrador desde la CLI, después de confirmar en un diálogo que la solicitud notifica a sus administradores. Cuando ningún navegador puede abrir la página de facturación, por ejemplo a través de SSH, el comando imprime en su lugar la URL que debes visitar; esto requiere Claude Code v2.1.205 o posterior, y las versiones anteriores no mostraban nada en ese caso. Anteriormente `/extra-usage` |

167| `/verify` | **[Skill](https://code.claude.com/docs/es/skills.md#bundled-skills).** Confirma que un cambio de código hace lo que debe compilando la app de tu proyecto, ejecutándola y observando el resultado, en lugar de depender de pruebas o comprobaciones de tipos. Consulta [Ejecutar y verificar tu app](https://code.claude.com/docs/es/skills.md#run-and-verify-your-app) |167| `/verify` | **[Skill](https://code.claude.com/docs/es/skills.md#bundled-skills).** Confirma que un cambio de código hace lo que debe compilando la app de tu proyecto, ejecutándola y observando el resultado, en lugar de depender de pruebas o comprobaciones de tipos. Consulta [Ejecutar y verificar tu app](https://code.claude.com/docs/es/skills.md#run-and-verify-your-app) |

168| `/vim` | Se eliminó en v2.1.92. Para alternar entre los modos de edición Vim y Normal, usa `/config` → Editor mode |168| `/vim` | Se eliminó en v2.1.92. Para alternar entre los modos de edición Vim y Normal, usa `/config` → Editor mode |

costs.md +1 −1

Details

236 * Ejecutar `/usage-credits` para solicitar uso más allá de la asignación, si tienes los [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) activados.236 * Ejecutar `/usage-credits` para solicitar uso más allá de la asignación, si tienes los [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) activados.

237 * En Claude Code v2.1.234 o posterior, [esperar y continuar la tarea interrumpida automáticamente tras el restablecimiento](https://code.claude.com/docs/es/interactive-mode.md#wait-for-a-usage-limit-to-reset); esa sección indica cuándo Claude Code inicia la espera por su cuenta y cuándo el desarrollador la elige desde `/rate-limit-options`. Para controlar en toda tu flota si Claude Code inicia esa espera por su cuenta, establece [`autoContinueAtUsageLimit`](https://code.claude.com/docs/es/settings-reference#autocontinueatusagelimit) en la [configuración administrada](https://code.claude.com/docs/es/settings.md#settings-precedence).237 * En Claude Code v2.1.234 o posterior, [esperar y continuar la tarea interrumpida automáticamente tras el restablecimiento](https://code.claude.com/docs/es/interactive-mode.md#wait-for-a-usage-limit-to-reset); esa sección indica cuándo Claude Code inicia la espera por su cuenta y cuándo el desarrollador la elige desde `/rate-limit-options`. Para controlar en toda tu flota si Claude Code inicia esa espera por su cuenta, establece [`autoContinueAtUsageLimit`](https://code.claude.com/docs/es/settings-reference#autocontinueatusagelimit) en la [configuración administrada](https://code.claude.com/docs/es/settings.md#settings-precedence).

238* **"You've hit your individual spend limit", "org's monthly spend limit" o "team's shared budget"**: la solicitud del desarrollador se facturaría a créditos de uso, y esos créditos alcanzaron un límite de gasto que estableciste. Para permitir que el desarrollador continúe, ve a [**Organization settings > Usage**](https://claude.ai/admin-settings/usage) y aumenta el límite que nombra el mensaje. Cuando el mensaje también nombra una hora de restablecimiento del plan, el desarrollador puede en cambio esperar hasta entonces. Consulta [la referencia de errores](https://code.claude.com/docs/es/errors.md#youve-hit-your-monthly-spend-limit) para cada variante.238* **"You've hit your individual spend limit", "org's monthly spend limit" o "team's shared budget"**: la solicitud del desarrollador se facturaría a créditos de uso, y esos créditos alcanzaron un límite de gasto que estableciste. Para permitir que el desarrollador continúe, ve a [**Organization settings > Usage**](https://claude.ai/admin-settings/usage) y aumenta el límite que nombra el mensaje. Cuando el mensaje también nombra una hora de restablecimiento del plan, el desarrollador puede en cambio esperar hasta entonces. Consulta [la referencia de errores](https://code.claude.com/docs/es/errors.md#youve-hit-your-monthly-spend-limit) para cada variante.

239* **Un mensaje de límite de gasto de un [Claude apps gateway](https://code.claude.com/docs/es/claude-apps-gateway)**: el desarrollador superó un tope de gasto que tú estableciste en tu gateway autoalojado, y el gateway bloquea sus solicitudes hasta que se restablezca el período o hasta que tú aumentes el tope. Consulta [límites de gasto del gateway](https://code.claude.com/docs/es/claude-apps-gateway-spend-limits.md) para conocer los topes, los calendarios de restablecimiento y el mensaje que ve el desarrollador.239* **Un mensaje de límite de gasto de un [Claude apps gateway](https://code.claude.com/docs/es/claude-apps-gateway)**: el desarrollador superó un tope de gasto que tú estableciste en tu gateway autoalojado. El gateway bloquea sus solicitudes hasta que aumentes el tope, o hasta que el tope se restablezca si es mayor que \$0. Consulta [límites de gasto del gateway](https://code.claude.com/docs/es/claude-apps-gateway-spend-limits.md) para conocer los topes, los calendarios de restablecimiento y el mensaje que ve el desarrollador.

240* **Una advertencia de contexto o de compactación automática**: no es un límite de uso. La conversación se acercó a la [ventana de compactación automática](https://code.claude.com/docs/es/model-config.md#set-the-auto-compact-window) de la sesión, el umbral en el que Claude Code resume el historial más antiguo para liberar espacio. Dirige al desarrollador a [reduce el uso de tokens](#reduce-token-usage).240* **Una advertencia de contexto o de compactación automática**: no es un límite de uso. La conversación se acercó a la [ventana de compactación automática](https://code.claude.com/docs/es/model-config.md#set-the-auto-compact-window) de la sesión, el umbral en el que Claude Code resume el historial más antiguo para liberar espacio. Dirige al desarrollador a [reduce el uso de tokens](#reduce-token-usage).

241* **Gasto inesperadamente alto en un plan de API o de proveedor de nube**: suele deberse a sesiones largas que nunca se limpiaron o a Opus dejado como modelo predeterminado. Los hábitos de mayor impacto para compartir son limpiar entre tareas no relacionadas y ajustar el modelo a la tarea, ambos descritos en [reduce el uso de tokens](#reduce-token-usage).241* **Gasto inesperadamente alto en un plan de API o de proveedor de nube**: suele deberse a sesiones largas que nunca se limpiaron o a Opus dejado como modelo predeterminado. Los hábitos de mayor impacto para compartir son limpiar entre tareas no relacionadas y ajustar el modelo a la tarea, ambos descritos en [reduce el uso de tokens](#reduce-token-usage).

242 242 

env-vars.md +2 −1

Details

365| `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](https://code.claude.com/docs/es/prompt-caching.md#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 |365| `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](https://code.claude.com/docs/es/prompt-caching.md#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 |

366| `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)](https://code.claude.com/docs/es/monitoring-usage.md#traces-beta) |366| `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)](https://code.claude.com/docs/es/monitoring-usage.md#traces-beta) |

367| `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](https://code.claude.com/docs/es/managed-settings.md), 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`](https://code.claude.com/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](https://code.claude.com/docs/es/data-usage.md#default-behaviors-by-api-provider) |367| `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](https://code.claude.com/docs/es/managed-settings.md), 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`](https://code.claude.com/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](https://code.claude.com/docs/es/data-usage.md#default-behaviors-by-api-provider) |

368| `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 |368| `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. Cuando `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` está establecida, establece esta variable en el entorno del proceso que inicia Claude Code |

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

370| `CLAUDE_CODE_REMOTE_SESSION_ID` | Se establece automáticamente en las [sesiones en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md) 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](https://code.claude.com/docs/es/cloud-environments.md#link-output-back-to-the-session) |370| `CLAUDE_CODE_REMOTE_SESSION_ID` | Se establece automáticamente en las [sesiones en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md) 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](https://code.claude.com/docs/es/cloud-environments.md#link-output-back-to-the-session) |

371| `CLAUDE_CODE_RESTRICTED` | Establécela en `1` para iniciar la sesión en modo restringido, lo mismo que pasar [`--restricted`](https://code.claude.com/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 |371| `CLAUDE_CODE_RESTRICTED` | Establécela en `1` para iniciar la sesión en modo restringido, lo mismo que pasar [`--restricted`](https://code.claude.com/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 |


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

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

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

532| `VERTEX_REGION_CLAUDE_FABLE_5_2` | Sobrescribe la región para Claude Fable 5.2 al usar Google Cloud's Agent Platform. Se agregó en v2.1.321 |

532| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Sobrescribe la región de Claude Haiku 4.5 cuando se usa Google Cloud's Agent Platform |533| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Sobrescribe la región de Claude Haiku 4.5 cuando se usa Google Cloud's Agent Platform |

533| `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 |534| `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 |

534 535 

errors.md +92 −15

Details

52| `Credit balance is too low` | [Límites de uso](#credit-balance-is-too-low) |52| `Credit balance is too low` | [Límites de uso](#credit-balance-is-too-low) |

53| `You've hit your monthly spend limit` / `You've hit your individual spend limit` / `You've hit your org's monthly spend limit` / `You've hit your channel's monthly spend limit` / `You've hit your team's shared budget` / `You've hit your individual usage limit` | [Límites de uso](#youve-hit-your-monthly-spend-limit) |53| `You've hit your monthly spend limit` / `You've hit your individual spend limit` / `You've hit your org's monthly spend limit` / `You've hit your channel's monthly spend limit` / `You've hit your team's shared budget` / `You've hit your individual usage limit` | [Límites de uso](#youve-hit-your-monthly-spend-limit) |

54| `Could not update your spend limit` | [Límites de uso](#could-not-update-your-spend-limit) |54| `Could not update your spend limit` | [Límites de uso](#could-not-update-your-spend-limit) |

55| `spend limit reached` / `spend limit unavailable` | [Límites de uso](#spend-limit-reached) |55| `spend limit reached` / `spend limit unavailable` / `This request exceeds your group's budget` | [Límites de uso](#spend-limit-reached) |

56| `Not logged in · Please run /login` | [Autenticación](#not-logged-in) |56| `Not logged in · Please run /login` | [Autenticación](#not-logged-in) |

57| `Couldn't save your login` | [Autenticación](#couldnt-save-your-login) |57| `Couldn't save your login` | [Autenticación](#couldnt-save-your-login) |

58| `Sign in again to take your previous account or API key off the config file.` | [Autenticación](#sign-in-again-to-take-your-previous-account-or-api-key-off-the-config-file) |58| `Sign in again to take your previous account or API key off the config file.` | [Autenticación](#sign-in-again-to-take-your-previous-account-or-api-key-off-the-config-file) |


262| `Error: MCP tool <name> (passed via --permission-prompt-tool) not found` | [Errores de línea de comandos](#mcp-permission-prompt-tool-not-found) |262| `Error: MCP tool <name> (passed via --permission-prompt-tool) not found` | [Errores de línea de comandos](#mcp-permission-prompt-tool-not-found) |

263| `OAuth callback port <port> is already in use — another process may be holding it` | [Errores de línea de comandos](#oauth-callback-port-is-already-in-use) |263| `OAuth callback port <port> is already in use — another process may be holding it` | [Errores de línea de comandos](#oauth-callback-port-is-already-in-use) |

264| `No available ports for OAuth redirect` | [Errores de línea de comandos](#no-available-ports-for-oauth-redirect) |264| `No available ports for OAuth redirect` | [Errores de línea de comandos](#no-available-ports-for-oauth-redirect) |

265| `Shell command failed for pattern "..."`, desde `/security-review` o cualquier skill que inyecte contexto dinámico | [Errores de línea de comandos](#security-review-fails-without-origin-head) |265| `Shell command failed for pattern "..."`, de `/security-review` o de cualquier skill que inyecte contexto dinámico | [Errores de línea de comandos](#security-review-fails-without-origin-head) |

266| `Shell command permission check failed for pattern "..."`, de un skill que inyecta contexto dinámico | [Errores de línea de comandos](#security-review-fails-without-origin-head) |266| `Shell command permission check failed for pattern "..."`, de un skill que inyecta contexto dinámico | [Errores de línea de comandos](#security-review-fails-without-origin-head) |

267| ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found`` | [Errores de línea de comandos](#security-review-fails-without-origin-head) |267| ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found`` | [Errores de línea de comandos](#security-review-fails-without-origin-head) |

268| `No shell command in <name> was run, because the <tool> tool does not accept one of them` | [Errores de línea de comandos](#no-shell-command-was-run) |268| `No shell command in <name> was run, because the <tool> tool does not accept one of them` | [Errores de línea de comandos](#no-shell-command-was-run) |


336| `MCP server "<name>" connection closed before the tool call was answered` | [Errores de herramientas](#connection-closed-before-the-tool-call-was-answered) |336| `MCP server "<name>" connection closed before the tool call was answered` | [Errores de herramientas](#connection-closed-before-the-tool-call-was-answered) |

337| `MCP server "<name>" is disabled — re-enable it via /mcp to use its tools` | [Errores de herramientas](#mcp-server-is-disabled) |337| `MCP server "<name>" is disabled — re-enable it via /mcp to use its tools` | [Errores de herramientas](#mcp-server-is-disabled) |

338| `MCP server "<name>" tool "<tool>" timed out after <N>s. The server asked the user a question, and no answer came before the time limit.` | [Errores de herramientas](#mcp-tool-call-timed-out-with-the-servers-question-unanswered) |338| `MCP server "<name>" tool "<tool>" timed out after <N>s. The server asked the user a question, and no answer came before the time limit.` | [Errores de herramientas](#mcp-tool-call-timed-out-with-the-servers-question-unanswered) |

339| `Permission prompt tool returned an invalid result` | [Errores de herramientas](#permission-prompt-tool-returned-an-invalid-result) |

339| `would be spawned with zero tools — refusing` | [Errores de herramientas](#agent-would-be-spawned-with-zero-tools) |340| `would be spawned with zero tools — refusing` | [Errores de herramientas](#agent-would-be-spawned-with-zero-tools) |

340| `File is covered by a Read deny rule in your permission settings` | [Errores de herramientas](#file-is-covered-by-a-read-deny-rule) |341| `File is covered by a Read deny rule in your permission settings` | [Errores de herramientas](#file-is-covered-by-a-read-deny-rule) |

341| `<path> is outside <dirs>; the permissions.blockWritesOutsideWorkingDirectories setting blocks writes outside the working directories` | [Errores de herramientas](#setting-blocks-writes-outside-the-working-directories) |342| `<path> is outside <dirs>; the permissions.blockWritesOutsideWorkingDirectories setting blocks writes outside the working directories` | [Errores de herramientas](#setting-blocks-writes-outside-the-working-directories) |


420| `The Claude Code program for this computer, the <build> build, could not be found` | [Errores del wrapper y del IDE](#the-claude-code-program-for-this-computer-could-not-be-found) |421| `The Claude Code program for this computer, the <build> build, could not be found` | [Errores del wrapper y del IDE](#the-claude-code-program-for-this-computer-could-not-be-found) |

421| `Restored the code, but skipped N files` | [Advertencias y errores de Rewind](#restored-the-code-but-skipped-files) |422| `Restored the code, but skipped N files` | [Advertencias y errores de Rewind](#restored-the-code-but-skipped-files) |

422| `No files were restored: N files failed (backup missing, or the file could not be updated)` | [Advertencias y errores de Rewind](#no-files-were-restored) |423| `No files were restored: N files failed (backup missing, or the file could not be updated)` | [Advertencias y errores de Rewind](#no-files-were-restored) |

424| `The file backups are still being copied. Nothing was changed. Try again in a moment.` | Vuelve a seleccionar el mismo punto en [`/rewind`](https://code.claude.com/docs/es/checkpointing). Cuando restauras código poco después de [`/branch`](https://code.claude.com/docs/es/sessions#branch-a-session), Claude Code puede seguir copiando las copias de seguridad de los archivos a la nueva sesión. |

423| `Transcript writes are failing (...)` | [Advertencias de guardado de sesión](#transcript-writes-are-failing) |425| `Transcript writes are failing (...)` | [Advertencias de guardado de sesión](#transcript-writes-are-failing) |

424| `Transcript saving is off — CLAUDE_CODE_SKIP_PROMPT_HISTORY is set` | [Advertencias de guardado de sesión](#transcript-saving-is-off-skip-prompt-history) |426| `Transcript saving is off — CLAUDE_CODE_SKIP_PROMPT_HISTORY is set` | [Advertencias de guardado de sesión](#transcript-saving-is-off-skip-prompt-history) |

425| `Transcript saving is off — inherited CLAUDE_CODE_CHILD_SESSION marker` | [Advertencias de guardado de sesión](#transcript-saving-is-off-child-session-marker) |427| `Transcript saving is off — inherited CLAUDE_CODE_CHILD_SESSION marker` | [Advertencias de guardado de sesión](#transcript-saving-is-off-child-session-marker) |


431| `Not loaded: rename <path>, then restart — its name uses "<name>", a name reserved for the skills synced from your claude.ai account` | [Advertencias de configuración](#a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved) |433| `Not loaded: rename <path>, then restart — its name uses "<name>", a name reserved for the skills synced from your claude.ai account` | [Advertencias de configuración](#a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved) |

432| `N skill or command names refused: run with --debug to see which ([names]), rename, then restart` | [Advertencias de configuración](#skill-or-command-name-refused) |434| `N skill or command names refused: run with --debug to see which ([names]), rename, then restart` | [Advertencias de configuración](#skill-or-command-name-refused) |

433| `Ignoring N permissions.allow entries from ... this workspace has not been trusted` | [Advertencias de configuración](#workspace-has-not-been-trusted) |435| `Ignoring N permissions.allow entries from ... this workspace has not been trusted` | [Advertencias de configuración](#workspace-has-not-been-trusted) |

436| `Two Claude Code config files exist: this run uses <path>, not <path>` | [Advertencias de configuración](#two-claude-code-config-files-exist) |

434| `Make this change again later: <path> could not be updated, so it applies to this session only` | [Advertencias de configuración](#make-this-change-again-later) |437| `Make this change again later: <path> could not be updated, so it applies to this session only` | [Advertencias de configuración](#make-this-change-again-later) |

435| `is a network path, which cannot be added as a working directory` | [Advertencias de configuración](#working-directory-is-a-network-path) |438| `is a network path, which cannot be added as a working directory` | [Advertencias de configuración](#working-directory-is-a-network-path) |

436| `Remote managed settings failed to load (<cause>)` | [Advertencias de configuración](#remote-managed-settings-failed-to-load) |439| `Remote managed settings failed to load (<cause>)` | [Advertencias de configuración](#remote-managed-settings-failed-to-load) |


468| `CLAUDE_CODE_AUTO_COMPACT_WINDOW="<value>" isn't a usable size, so Claude Code ignores it` | [Valores y advertencias de `CLAUDE_CODE_AUTO_COMPACT_WINDOW`](https://code.claude.com/docs/es/model-config#claude_code_auto_compact_window-values) |471| `CLAUDE_CODE_AUTO_COMPACT_WINDOW="<value>" isn't a usable size, so Claude Code ignores it` | [Valores y advertencias de `CLAUDE_CODE_AUTO_COMPACT_WINDOW`](https://code.claude.com/docs/es/model-config#claude_code_auto_compact_window-values) |

469| `Model "<model>" isn't recognized · context assumed to be 200k tokens` | [Corregir la ventana para un gateway o un ID de modelo personalizado](https://code.claude.com/docs/es/model-config.md#correct-the-window-for-a-gateway-or-custom-model-id) |472| `Model "<model>" isn't recognized · context assumed to be 200k tokens` | [Corregir la ventana para un gateway o un ID de modelo personalizado](https://code.claude.com/docs/es/model-config.md#correct-the-window-for-a-gateway-or-custom-model-id) |

470| `Claude Code doesn't recognize the model "<model>", so it assumes a context window of 200k tokens` | [Corregir la ventana para un gateway o un ID de modelo personalizado](https://code.claude.com/docs/es/model-config.md#correct-the-window-for-a-gateway-or-custom-model-id) |473| `Claude Code doesn't recognize the model "<model>", so it assumes a context window of 200k tokens` | [Corregir la ventana para un gateway o un ID de modelo personalizado](https://code.claude.com/docs/es/model-config.md#correct-the-window-for-a-gateway-or-custom-model-id) |

474| `Model "<model>" isn't recognized · did you mean "<suggestion>"?` / `Claude Code doesn't recognize the model "<model>". Did you mean "<suggestion>"?` | [Corregir un nombre de modelo mal escrito](https://code.claude.com/docs/es/model-config.md#fix-a-mistyped-model-name) |

471| `[claude-code:unrecognized_model]` | [Advertencias de configuración](#unrecognized-model-id-on-a-request) |475| `[claude-code:unrecognized_model]` | [Advertencias de configuración](#unrecognized-model-id-on-a-request) |

472| `is ignored — managed settings set allowManagedReadPathsOnly` / `is ignored — managed settings set allowManagedDomainsOnly` | [Advertencias de configuración](#sandbox-allow-entries-are-ignored-under-a-managed-lock) |476| `is ignored — managed settings set allowManagedReadPathsOnly` / `is ignored — managed settings set allowManagedDomainsOnly` | [Advertencias de configuración](#sandbox-allow-entries-are-ignored-under-a-managed-lock) |

473| `Sandbox mask files left behind at write-deny paths` | [Advertencias de configuración](#stale-sandbox-mask-files-left-by-a-killed-session) |477| `Sandbox mask files left behind at write-deny paths` | [Advertencias de configuración](#stale-sandbox-mask-files-left-by-a-killed-session) |


909Fable 5.1 now uses usage credits · the prompt to confirm went unanswered — nothing was sent · answer it where this session is running, or /model to change913Fable 5.1 now uses usage credits · the prompt to confirm went unanswered — nothing was sent · answer it where this session is running, or /model to change

910```914```

911 915 

912Los mensajes nombran el modelo Fable de la sesión, por lo que en Fable 5 dicen `continuing on Fable 5` y `Fable 5 now uses usage credits`. Antes de v2.1.257, el primer mensaje comenzaba con `Fable 5 limit reached`.916Los mensajes nombran el modelo Fable de la sesión, por lo que en Fable 5.2 dicen `continuing on Fable 5.2` y `Fable 5.2 now uses usage credits`. Antes de v2.1.257, el primer mensaje comenzaba con `Fable 5 limit reached`.

913 917 

914Esto sucede en sesiones de [Remote Control](https://code.claude.com/docs/es/remote-control.md), [sesiones en segundo plano](https://code.claude.com/docs/es/agent-view.md), sesiones de compañeros de un [equipo de agentes](https://code.claude.com/docs/es/agent-teams.md) y sesiones que otra aplicación aloja a través del Agent SDK. Para saber cuándo Claude Code cierra la solicitud, consulta [Fable y créditos de uso](https://code.claude.com/docs/es/model-config.md#fable-and-usage-credits).918Esto sucede en sesiones de [Remote Control](https://code.claude.com/docs/es/remote-control.md), [sesiones en segundo plano](https://code.claude.com/docs/es/agent-view.md), sesiones de compañeros de un [equipo de agentes](https://code.claude.com/docs/es/agent-teams.md) y sesiones que otra aplicación aloja a través del Agent SDK. Para saber cuándo Claude Code cierra la solicitud, consulta [Fable y créditos de uso](https://code.claude.com/docs/es/model-config.md#fable-and-usage-credits).

915 919 


983 987 

984### Spend limit reached988### Spend limit reached

985 989 

986Te conectas a través de un [gateway de aplicaciones Claude](https://code.claude.com/docs/es/claude-apps-gateway) y superaste un [límite de gasto](https://code.claude.com/docs/es/claude-apps-gateway-spend-limits.md) que estableció el operador de tu gateway. El gateway bloquea tus solicitudes hasta que se reinicie el período indicado o el operador aumente el límite. Marca cada respuesta `429` bloqueada con `x-should-retry: false`, por lo que Claude Code muestra este mensaje sin reintentar.990Te conectas a través de un [gateway de aplicaciones Claude](https://code.claude.com/docs/es/claude-apps-gateway) y alcanzaste un [límite de gasto](https://code.claude.com/docs/es/claude-apps-gateway-spend-limits.md) que estableció el operador de tu gateway. El gateway bloquea tus solicitudes hasta que el operador aumente el límite, o hasta que el límite se reinicie si es superior a \$0. Marca cada respuesta `429` bloqueada con `x-should-retry: false`, por lo que en la terminal Claude Code muestra este mensaje sin reintentar.

987 991 

988```text theme={null}992```text theme={null}

989spend limit reached (daily; resets 2026-08-09 00:00 UTC)993spend limit reached · resets Dec 1

990```994```

991 995 

992El mensaje indica el período del límite y la hora de reinicio, y cuando el operador configuró un `blocked_message`, sus instrucciones aparecen a continuación. Antes de v2.1.225, el mensaje decía solo `spend limit reached`; un gateway con una versión anterior todavía envía esa forma más corta.996Revisa si el mensaje incluye una fecha:

997 

998* **Con una fecha**: el límite se reinicia a las 00:00 UTC de esa fecha

999* **Sin fecha**: tu límite es de \$0, o tu gateway ejecuta una versión anterior a v2.1.225

1000 

1001Cualquier texto adicional en el mensaje es una nota del operador de tu gateway.

1002 

1003Desde v2.1.225 hasta v2.1.319 en el servidor del gateway, el mensaje indicaba el período del límite y la hora de reinicio, como en `spend limit reached (daily; resets 2026-08-09 00:00 UTC)`.

993 1004 

994**Qué hacer:**1005**Qué hacer:**

995 1006 

996* Espera la hora de reinicio que indica el mensaje, o sigue las instrucciones del operador si el mensaje las incluye1007* Si el mensaje tiene una fecha, espera el reinicio, o sigue la nota del operador si el mensaje la incluye

997* Pide al operador de tu gateway que aumente el límite si lo alcanzas con frecuencia1008* Pide al operador de tu gateway que aumente el límite si el mensaje no tiene fecha, si sigues bloqueado después de la fecha o si alcanzas el límite con frecuencia

1009 

1010Un segundo mensaje del gateway, `This request exceeds your group's budget`, significa que el [presupuesto compartido](https://code.claude.com/docs/es/claude-apps-gateway-config.md#pooled-budget-order) de tu grupo se agotó. Sigue los pasos que indica:

1011 

1012```text theme={null}

1013This request exceeds your group's budget. Ask your organization's admins to raise it, or try again after it resets on November 1 at 00:00 UTC.

1014```

998 1015 

999Un mensaje relacionado, `spend limit unavailable`, significa que el gateway no pudo leer sus registros de gasto y bloqueó la solicitud como precaución, no porque superaras tu límite. Por lo general se resuelve solo; si persiste, avisa al operador de tu gateway.1016Un mensaje relacionado, `spend limit unavailable`, significa que el gateway no pudo leer sus registros de gasto y bloqueó la solicitud como precaución, no porque superaras tu límite. Por lo general se resuelve solo; si persiste, avisa al operador de tu gateway.

1000 1017 


2287 2304 

2288### Couldn't send feedback2305### Couldn't send feedback

2289 2306 

2290Un mensaje que empieza con `Couldn't send feedback` significa que el servicio de comentarios no confirmó el informe que enviaste desde el [diálogo de `/feedback`, `/bug` o `/share`](https://code.claude.com/docs/es/commands#all-commands), o un [borrador de comentarios](https://code.claude.com/docs/es/tools-reference.md#sendfeedback-tool-behavior) en cola. Considéralo como no recibido. Cuando después de los dos puntos sigue una oración sobre tu organización, tu organización rechaza los comentarios y el mismo informe recibe la misma respuesta.2307Un mensaje que empieza con `Couldn't send feedback` significa que el servicio de comentarios no confirmó el informe que enviaste desde el [diálogo de `/feedback`, `/bug` o `/share`](https://code.claude.com/docs/es/commands#all-commands), o un [borrador de comentarios](https://code.claude.com/docs/es/tools-reference.md#sendfeedback-tool-behavior) en cola. Considéralo como no recibido. Cuando después de los dos puntos sigue una oración sobre tu organización, tu organización rechaza los comentarios.

2291 2308 

2292El segundo de estos dos ejemplos es el rechazo de una organización:2309El segundo ejemplo es el rechazo de una organización:

2293 2310 

2294```text wrap theme={null}2311```text wrap theme={null}

2295Couldn't send feedback (couldn't reach the service). If it keeps failing, you can file at https://github.com/anthropics/claude-code/issues instead.2312Couldn't send feedback (couldn't reach the service). If it keeps failing, you can file at https://github.com/anthropics/claude-code/issues instead.


2300**Qué hacer:**2317**Qué hacer:**

2301 2318 

2302* **Sin sesión iniciada**: el mensaje continúa con `: not signed in. Run /login, then retry.` Ejecuta `/login` y vuelve a enviar2319* **Sin sesión iniciada**: el mensaje continúa con `: not signed in. Run /login, then retry.` Ejecuta `/login` y vuelve a enviar

2303* **Rechazo de tu organización**: por ejemplo, `: Feedback has not been enabled for your organization.` o `: Feedback collection is not available for organizations with custom data retention policies.` Si el mensaje agrega `To report a bug, open an issue`, hazlo en [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues). Un borrador en cola permanece en la cola, y puedes [descartarlo](https://code.claude.com/docs/es/tools-reference.md#discard-or-keep-a-draft)2320* **Rechazo de tu organización**: por ejemplo, `: Feedback has not been enabled for your organization.` o `: Feedback collection is not available for organizations with custom data retention policies.` Si el mensaje agrega `To report a bug, open an issue`, hazlo en [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues). A partir de entonces, `/feedback` puede responder durante siete días que está [desactivado por la política de tu organización](#feedback-is-disabled-by-your-organizations-policy). Un borrador en cola permanece en la cola y aun así [caduca según lo programado](https://code.claude.com/docs/es/tools-reference.md#discard-or-keep-a-draft)

2304* **Credenciales rechazadas**: el mensaje continúa con `: the sign-in this session uses is not allowed to send feedback` o `: the server did not accept the credentials this session uses`. Ejecuta `/status` en el prompt de Claude Code para ver qué inicio de sesión, token o clave de API envía esta sesión2321* **Credenciales rechazadas**: el mensaje continúa con `: the sign-in this session uses is not allowed to send feedback` o `: the server did not accept the credentials this session uses`. Ejecuta `/status` en el prompt de Claude Code para ver qué inicio de sesión, token o clave de API envía esta sesión

2305* **`(request timed out)` o `(couldn't reach the service)` justo después de `Couldn't send feedback`**: vuelve a enviar el informe o el borrador en cola. El diálogo conserva tu texto, y el mensaje de un borrador en cola dice `The draft is still queued.` Si otras solicitudes también están fallando, revisa tu conexión de red y consulta [Unable to connect to API](#unable-to-connect-to-api). Si sigue fallando, presenta el informe en [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues)2322* **`(request timed out)` o `(couldn't reach the service)` justo después de `Couldn't send feedback`**: vuelve a enviar el informe o el borrador en cola. El diálogo conserva tu texto, y el mensaje de un borrador en cola dice `The draft is still queued.` Si otras solicitudes también están fallando, revisa tu conexión de red y consulta [Unable to connect to API](#unable-to-connect-to-api). Si sigue fallando, presenta el informe en [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues)

2306* **`(server returned <status>)`, o ningún motivo, justo después de `Couldn't send feedback`**: el estado es el código de respuesta del servicio. El mensaje propio del servicio lo sigue cuando se envió uno, como en `(server returned 403: Access Forbidden)`. Si sigue fallando, presenta el informe en [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues)2323* **`(server returned <status>)`, o ningún motivo, justo después de `Couldn't send feedback`**: el estado es el código de respuesta del servicio. El mensaje propio del servicio lo sigue cuando se envió uno, como en `(server returned 403: Access Forbidden)`. Si sigue fallando, presenta el informe en [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues)


3724 3741 

3725Hay cadenas similares que se activan antes de que el comando llegue a ejecutarse:3742Hay cadenas similares que se activan antes de que el comando llegue a ejecutarse:

3726 3743 

3727* `Shell command permission check failed for pattern "..."`: la verificación de permisos del comando no lo permitió. [Permission checks on injected commands](https://code.claude.com/docs/es/skills.md#permission-checks-on-injected-commands) explica qué resultados cancelan la invocación en cada modo de permisos y cómo aprobar previamente un comando con `allowed-tools`3744* `Shell command permission check failed for pattern "..."`: la verificación de permisos del comando no lo permitió. [Permission checks on injected commands](https://code.claude.com/docs/es/skills.md#permission-checks-on-injected-commands) explica qué resultados provocan la cancelación en cada modo de permisos y cómo aprobar previamente un comando con `allowed-tools`

3728* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: el frontmatter del skill exige bash en una máquina que no lo tiene. Instala Git for Windows o cambia el frontmatter a `shell: powershell`. Consulta [Cómo se ejecutan los comandos inyectados](https://code.claude.com/docs/es/skills.md#how-injected-commands-run)3745* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: el frontmatter del skill exige bash en una máquina que no lo tiene. Instala Git for Windows o cambia el frontmatter a `shell: powershell`. Consulta [Cómo se ejecutan los comandos inyectados](https://code.claude.com/docs/es/skills.md#how-injected-commands-run)

3729 3746 

3730**Qué hacer:**3747**Qué hacer:**


3878 3895 

3879* **No pasaste una rama base**: Claude Code comparó contra la rama predeterminada del repositorio y sugiere pasar tu base explícitamente, como en el ejemplo anterior3896* **No pasaste una rama base**: Claude Code comparó contra la rama predeterminada del repositorio y sugiere pasar tu base explícitamente, como en el ejemplo anterior

3880* **Pasaste una rama base que ya estaba en tu clon**: la sugerencia dice ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``3897* **Pasaste una rama base que ya estaba en tu clon**: la sugerencia dice ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``

3881* **Pasaste una rama base que no estaba en tu clon**: Claude Code la obtuvo de origin antes de comparar. La sugerencia dice ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``; cuando Claude Code no puede saber si tu clon es superficial, sugiere `git fetch --unshallow origin` en su lugar. Antes de la v2.1.221, la sugerencia proponía `git fetch --unshallow origin` para toda rama base obtenida, y en un clon completo ese comando falla con `fatal: --unshallow on a complete repository does not make sense`.3898* **Pasaste una rama base que no estaba en tu clon**: Claude Code la obtuvo de origin antes de comparar. La sugerencia dice ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``; cuando Claude Code no puede determinar si tu clon es superficial (shallow), sugiere `git fetch --unshallow origin` en su lugar. Antes de la v2.1.221, la sugerencia proponía `git fetch --unshallow origin` para toda rama base obtenida, y en un clon completo ese comando falla con `fatal: --unshallow on a complete repository does not make sense`.

3882 3899 

3883**Qué hacer:**3900**Qué hacer:**

3884 3901 


4227 4244 

4228### /feedback is disabled by your organization's policy4245### /feedback is disabled by your organization's policy

4229 4246 

4230Este mensaje significa que la política de tu organización no permite enviar comentarios sobre el producto desde Claude Code, así que `/feedback`, `/bug` y `/share` no abren el diálogo de comentarios. El mensaje menciona el comando que escribiste en el prompt de Claude Code:4247Este mensaje significa que los comentarios sobre el producto están desactivados, así que el comando que escribiste no abre el cuadro de diálogo de comentarios. Tanto una política de la organización como un rechazo anterior producen el mensaje:

4248 

4249* **Política de la organización**: la política de tu organización no permite enviar comentarios sobre el producto desde Claude Code. `/feedback`, `/bug` y `/share` responden todos con el mensaje.

4250* **Rechazo anterior**: el servicio de comentarios rechazó un informe que enviaste, por ejemplo con [`Couldn't send feedback: Feedback has not been enabled for your organization.`](#couldnt-send-feedback) A partir de entonces, `/feedback` y `/bug` pueden responder con el mensaje. Dura siete días desde ese rechazo en esta máquina. Esto se aplica en todos los planes, incluidos Pro y Max.

4251 

4252El mensaje indica el comando que escribiste en el prompt de Claude Code:

4231 4253 

4232```text wrap theme={null}4254```text wrap theme={null}

4233/feedback is disabled by your organization's policy. To report a bug, open an issue at https://github.com/anthropics/claude-code/issues. Issues are public, so leave out anything confidential.4255/feedback is disabled by your organization's policy. To report a bug, open an issue at https://github.com/anthropics/claude-code/issues. Issues are public, so leave out anything confidential.


4238**Qué hacer:**4260**Qué hacer:**

4239 4261 

4240* Para informar un error, abre un issue en [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues). Cualquier persona puede leer los issues allí, así que omite el código, las transcripciones y cualquier otra cosa confidencial.4262* Para informar un error, abre un issue en [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues). Cualquier persona puede leer los issues allí, así que omite el código, las transcripciones y cualquier otra cosa confidencial.

4263* Después de un rechazo anterior, espera a que pasen los siete días y luego vuelve a enviar un informe para ver si el servicio todavía lo rechaza

4264 

4265Antes de la v2.1.319, un rechazo anterior no producía este mensaje.

4241 4266 

4242Antes de v2.1.302, el mensaje completo decía `/feedback is disabled by your organization's policy. Contact your organization admin to enable it.`4267Antes de v2.1.302, el mensaje completo decía `/feedback is disabled by your organization's policy. Contact your organization admin to enable it.`

4243 4268 


4654* Para darle más tiempo a una respuesta, establece un [`timeout`](https://code.claude.com/docs/es/mcp#time-limits-on-mcp-tool-calls) más largo en milisegundos en la entrada de configuración del servidor, como `"timeout": 600000` para 10 minutos4679* Para darle más tiempo a una respuesta, establece un [`timeout`](https://code.claude.com/docs/es/mcp#time-limits-on-mcp-tool-calls) más largo en milisegundos en la entrada de configuración del servidor, como `"timeout": 600000` para 10 minutos

4655* Ejecuta la tarea en una sesión interactiva en su lugar y responde tú mismo el [diálogo](https://code.claude.com/docs/es/mcp.md#respond-to-mcp-elicitation-requests) del servidor4680* Ejecuta la tarea en una sesión interactiva en su lugar y responde tú mismo el [diálogo](https://code.claude.com/docs/es/mcp.md#respond-to-mcp-elicitation-requests) del servidor

4656 4681 

4682### Permission prompt tool returned an invalid result

4683 

4684La herramienta que pasaste a [`--permission-prompt-tool`](https://code.claude.com/docs/es/cli-reference#cli-flags) devolvió una respuesta que Claude Code no pudo leer, así que la llamada a herramienta que esperaba esa respuesta no se ejecutó, aunque la respuesta permitiera la llamada:

4685 

4686```text wrap theme={null}

4687Permission prompt tool returned an invalid result. Expected a single text block param with type="text" and a string text value.

4688```

4689 

4690**Qué hacer:**

4691 

4692* Devuelve un solo bloque de texto cuyo texto sea `{"behavior": "allow"}` o `{"behavior": "deny", "message": "<reason>"}`. Para cambiar la entrada, agrega `updatedInput` al objeto `allow`. Desde la v2.1.86 hasta la v2.1.206, un `allow` necesitaba `"updatedInput": {}` para conservar la entrada.

4693* No devuelvas [`structuredContent`](https://code.claude.com/docs/es/agent-sdk/custom-tools#return-structured-data), que tu SDK de MCP puede agregar por sí solo. Por ejemplo, registra la herramienta:

4694 * **`FastMCP` o `MCPServer` de `mcp.server`**: con `structured_output=False`

4695 * **`FastMCP` de `fastmcp`**: con `output_schema=None`, y devuelve una cadena

4696 * **SDK de TypeScript de MCP**: sin `outputSchema`

4697* Si el error aparece solo con entradas de unos 40 KB o más, no copies la entrada en `updatedInput` ni en el `message` de una denegación. Para cambiar una entrada tan grande, [aumenta el límite de salida de tu herramienta de prompt](https://code.claude.com/docs/es/mcp.md#raise-the-limit-for-a-specific-tool).

4698 

4657### Agent would be spawned with zero tools4699### Agent would be spawned with zero tools

4658 4700 

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


6432 6474 

6433Antes de v2.1.257, `claude doctor` no señalaba estos archivos; las versiones anteriores dejan los mismos marcadores de posición cuando se termina una sesión a la fuerza.6475Antes de v2.1.257, `claude doctor` no señalaba estos archivos; las versiones anteriores dejan los mismos marcadores de posición cuando se termina una sesión a la fuerza.

6434 6476 

6477### Two Claude Code config files exist

6478 

6479Claude Code está usando el primer archivo que nombra este mensaje, por lo que el contenido del segundo archivo no está en vigor. El primero es `.config.json`, un nombre anterior de [`.claude.json`](https://code.claude.com/docs/es/claude-directory#ce-claude-json). El mensaje incluye una comprobación para saber qué archivo contiene tu configuración:

6480 

6481```text wrap theme={null}

6482Two Claude Code config files exist: this run uses /home/you/.claude/.config.json, not /home/you/.claude.json. The file with the higher count here is usually yours, and this prints nothing else from them: grep -c -E '"(hasCompletedOnboarding|mcpServers)"' "/home/you/.claude/.config.json" "/home/you/.claude.json". To end this: if several hosts share this home, first get every host to version 2.1.319 or later, since an older one can write a moved .config.json back. Then stop your Claude processes on every host, move aside the one you do not want, and start none until no host lists it.

6483```

6484 

6485En Windows, `The one with hasCompletedOnboarding or mcpServers in it is usually yours.` reemplaza la oración que contiene el comando `grep`.

6486 

6487**Qué hacer:**

6488 

6489**1. Encuentra el archivo que contiene tu configuración**

6490 

6491* **En Windows**: abre ambos archivos y comprueba cuál contiene `hasCompletedOnboarding` o `mcpServers`

6492* **En otras plataformas**: en tu shell, ejecuta el comando `grep` del mensaje y comprueba qué archivo tiene el conteo más alto

6493 

6494**2. Actualiza todos los hosts que comparten el directorio home**

6495 

6496Si varios hosts comparten este directorio home, primero actualiza Claude Code en todos los hosts a la versión que indica el mensaje o a una posterior. Una versión anterior puede volver a escribir un `.config.json` que hayas movido.

6497 

6498**3. Detén Claude Code**

6499 

6500Detén tus procesos de Claude Code en todos los hosts.

6501 

6502**4. Mueve el archivo que no quieres**

6503 

6504Mueve fuera de su carpeta el archivo que no quieres. Muévelo en lugar de eliminarlo, para poder restaurarlo.

6505 

6506**5. Espera antes de volver a iniciar Claude Code**

6507 

6508No inicies Claude Code en ningún host hasta que ningún host siga mostrando el archivo movido en su ruta anterior.

6509 

6510El mensaje deja de aparecer en cuanto desaparece uno de los dos archivos.

6511 

6435### Make this change again later: \~/.claude.json could not be updated6512### Make this change again later: \~/.claude.json could not be updated

6436 6513 

6437Este aviso en stderr significa que un cambio en [`~/.claude.json`](https://code.claude.com/docs/es/claude-directory#ce-claude-json), como un inicio de sesión o una respuesta a una solicitud de confianza, no se guardó en el archivo:6514Este aviso en stderr significa que un cambio en [`~/.claude.json`](https://code.claude.com/docs/es/claude-directory#ce-claude-json), como un inicio de sesión o una respuesta a una solicitud de confianza, no se guardó en el archivo:


6450 6527 

6451* Un [`--fallback-model`](https://code.claude.com/docs/es/cli-reference#cli-flags) configurado toma el control después de un error de disponibilidad, solo para ese turno, con un aviso en la transcripción6528* Un [`--fallback-model`](https://code.claude.com/docs/es/cli-reference#cli-flags) configurado toma el control después de un error de disponibilidad, solo para ese turno, con un aviso en la transcripción

6452* Una verificación de inicio de Amazon Bedrock o de la plataforma de agentes de Google Cloud encuentra su modelo predeterminado no disponible, o su cuenta [pierde acceso a él durante la sesión](https://code.claude.com/docs/es/amazon-bedrock.md#when-a-model-is-disabled-mid-session)6529* Una verificación de inicio de Amazon Bedrock o de la plataforma de agentes de Google Cloud encuentra su modelo predeterminado no disponible, o su cuenta [pierde acceso a él durante la sesión](https://code.claude.com/docs/es/amazon-bedrock.md#when-a-model-is-disabled-mid-session)

6453* El [respaldo automático de modelo](https://code.claude.com/docs/es/model-config.md#automatic-model-fallback) en Fable 5.1, Fable 5, Opus 5.5, Sonnet 5.5 y Opus 5 mueve la sesión al modelo de respaldo de la categoría marcada, cuando esa categoría tiene uno, y muestra un aviso en la transcripción6530* El [respaldo automático de modelo](https://code.claude.com/docs/es/model-config.md#automatic-model-fallback) en los modelos Fable, Opus 5.5, Sonnet 5.5 y Opus 5 mueve la sesión al modelo de respaldo de la categoría marcada, cuando esa categoría tiene uno. Aparece un aviso en la transcripción

6454 6531 

6455La verificación de selección de modelo a continuación detecta el segundo y tercer caso; el primero aparece como un aviso de transcripción en lugar de un cambio de `/model`. La [configuración del modelo](https://code.claude.com/docs/es/model-config.md) explica cuándo se aplica cada respaldo.6532La verificación de selección de modelo a continuación detecta el segundo y tercer caso; el primero aparece como un aviso de transcripción en lugar de un cambio de `/model`. La [configuración del modelo](https://code.claude.com/docs/es/model-config.md) explica cuándo se aplica cada respaldo.

6456 6533 

fast-mode.md +21 −16

Details

4 4 

5# Acelera las respuestas con el modo rápido5# Acelera las respuestas con el modo rápido

6 6 

7> Obtén respuestas más rápidas de Opus en Claude Code al activar el modo rápido.7> Obtén respuestas más rápidas de Opus y Fable en Claude Code al activar o desactivar el modo rápido con `/fast`.

8 8 

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

10>10>

11> El modo rápido para Claude Opus 5.5 está disponible, y el modo rápido para Claude Opus 5 y Claude Opus 4.8 está en [vista previa de investigación](#research-preview).11> El modo rápido para Claude Fable 5.2 y Claude Opus 5.5 está disponible. El modo rápido para Claude Opus 5 y Claude Opus 4.8 está en [vista previa de investigación](#research-preview).

12 12 

13El modo rápido es una configuración de alta velocidad para Claude Opus, haciendo que el modelo sea hasta 2.5x más rápido a un costo más alto por token. Actívalo con `/fast` cuando necesites velocidad para trabajo interactivo como iteración rápida o depuración en vivo, y desactívalo cuando el costo sea más importante que la latencia.13El modo rápido es una configuración de alta velocidad para los modelos compatibles, haciendo que el modelo sea hasta 2.5x más rápido a un costo más alto por token. Actívalo con `/fast` cuando necesites velocidad para trabajo interactivo como iteración rápida o depuración en vivo, y desactívalo cuando el costo sea más importante que la latencia.

14 14 

15El modo rápido no es un modelo diferente. Utiliza Claude Opus con una configuración de API diferente que prioriza la velocidad sobre la eficiencia de costos. Obtienes la misma calidad y capacidades con respuestas más rápidas. El modo rápido es compatible con Opus 5.5, Opus 5 y Opus 4.8. No está disponible en Sonnet, Haiku u otros modelos.15El modo rápido utiliza el mismo modelo con una configuración de API diferente que prioriza la velocidad sobre la eficiencia de costos, por lo que la calidad y las capacidades siguen siendo las mismas. El modo rápido es compatible con Fable 5.2, Opus 5.5, Opus 5 y Opus 4.8. No está disponible en Sonnet, Haiku u otros modelos.

16 16 

17> [!WARNING]17> [!WARNING]

18>18>


26Lo que debes saber:26Lo que debes saber:

27 27 

28* Usa `/fast` para activar o desactivar el modo rápido en Claude Code CLI. La [extensión VS Code](https://code.claude.com/docs/es/vs-code.md) ofrece un comando **Toggle fast mode** cuando el modelo seleccionado admite el modo rápido. Claude Code guarda ese cambio en tu configuración [`fastMode`](#toggle-fast-mode).28* Usa `/fast` para activar o desactivar el modo rápido en Claude Code CLI. La [extensión VS Code](https://code.claude.com/docs/es/vs-code.md) ofrece un comando **Toggle fast mode** cuando el modelo seleccionado admite el modo rápido. Claude Code guarda ese cambio en tu configuración [`fastMode`](#toggle-fast-mode).

29* Los precios del modo rápido por MTok de entrada/salida son \$8/\$40 en Opus 5.5 y \$10/\$50 en Opus 5 y Opus 4.8.29* Los precios del modo rápido por MTok de entrada/salida son \$16/\$80 en Fable 5.2, \$8/\$40 en Opus 5.5 y \$10/\$50 en Opus 5 y Opus 4.8.

30* Disponible para usuarios de Claude Code en planes de suscripción (Pro/Max/Ultra/Team/Enterprise) y en Claude Console. Las organizaciones Team y Enterprise necesitan que un Propietario lo habilite primero, y las organizaciones Console necesitan que se aprovisione el acceso primero para usarlo con Opus 5 u Opus 4.8. En [Requisitos](#requirements) se describen ambos casos.30* Disponible para usuarios de Claude Code en planes de suscripción (Pro/Max/Ultra/Team/Enterprise) y en Claude Console. Las organizaciones Team y Enterprise necesitan que un Propietario lo habilite primero, y las organizaciones Console necesitan que se aprovisione el acceso primero para usarlo con Opus 5 u Opus 4.8. En [Requisitos](#requirements) se describen ambos casos.

31* Para los usuarios de Claude Code en planes de suscripción (Pro/Max/Ultra/Team/Enterprise), el modo rápido está disponible solo a través de créditos de uso y no está incluido en los rate limits de la suscripción.31* Para los usuarios de Claude Code en planes de suscripción (Pro/Max/Ultra/Team/Enterprise), el modo rápido está disponible solo a través de créditos de uso y no está incluido en los rate limits de la suscripción.

32 32 


35En la CLI, activa el modo rápido de cualquiera de estas formas:35En la CLI, activa el modo rápido de cualquiera de estas formas:

36 36 

37* Ejecuta `/fast`, presiona Space para activar o desactivar, luego presiona Enter para confirmar37* Ejecuta `/fast`, presiona Space para activar o desactivar, luego presiona Enter para confirmar

38* En un modelo que admita el modo rápido, establece `"fastMode": true` en tu [archivo de configuración de usuario](https://code.claude.com/docs/es/settings.md). Si lo estableces en cualquier otro modelo, permaneces en ese modelo con el modo rápido desactivado.38* En un modelo que admita el modo rápido, establece `"fastMode": true` en tu [archivo de configuración de usuario](https://code.claude.com/docs/es/settings.md). Si lo estableces en cualquier otro modelo, permaneces en ese modelo con el modo rápido desactivado. En Fable 5.2, ese ajuste por sí solo no tiene efecto hasta que ejecutes `/fast` mientras usas Fable 5.2.

39 39 

40De forma predeterminada, el modo rápido que activas en una sesión interactiva persiste entre sesiones en un modelo compatible. Puedes configurar el modo rápido para que se reinicie cada sesión. Consulta [opción de participación por sesión](#require-per-session-opt-in) para obtener más detalles.40De forma predeterminada, el modo rápido que activas en una sesión interactiva persiste entre sesiones en un modelo compatible. En Fable 5.2, persiste solo si lo [activaste mientras usabas Fable 5.2](#switch-models-while-fast-mode-is-on). Puedes configurar el modo rápido para que se reinicie cada sesión. Consulta [opción de participación por sesión](#require-per-session-opt-in) para obtener más detalles.

41 41 

42Fuera de una [sesión en la nube](#use-fast-mode-in-cloud-sessions), en [modo no interactivo](https://code.claude.com/docs/es/headless.md) con la bandera `-p`, `/fast` funciona solo en una sesión iniciada con el modo rápido en su valor [`--settings`](https://code.claude.com/docs/es/cli-reference#cli-flags), por ejemplo `claude -p --settings '{"fastMode": true}'`; el cambio se aplica solo a esa sesión y no se guarda como tu valor predeterminado. El formulario `-p` requiere Claude Code v2.1.205 o posterior. En cualquier otro lugar en modo no interactivo, el comando reporta que el modo rápido no está disponible.42Fuera de una [sesión en la nube](#use-fast-mode-in-cloud-sessions), en [modo no interactivo](https://code.claude.com/docs/es/headless.md) con la bandera `-p`, `/fast` funciona solo en una sesión iniciada con el modo rápido en su valor [`--settings`](https://code.claude.com/docs/es/cli-reference#cli-flags), por ejemplo `claude -p --settings '{"fastMode": true}'`; el cambio se aplica solo a esa sesión y no se guarda como tu valor predeterminado. El formulario `-p` requiere Claude Code v2.1.205 o posterior. En cualquier otro lugar en modo no interactivo, el comando reporta que el modo rápido no está disponible.

43 43 


48Cuando habilitas el modo rápido con `/fast`:48Cuando habilitas el modo rápido con `/fast`:

49 49 

50* Si tu modelo actual no admite el modo rápido, Claude Code cambia a Opus50* Si tu modelo actual no admite el modo rápido, Claude Code cambia a Opus

51* El modo rápido en Fable 5.2 requiere Claude Code v2.1.321 o posterior

51* Verás un mensaje de confirmación: "Fast mode ON"52* Verás un mensaje de confirmación: "Fast mode ON"

52* Un pequeño icono `↯` aparece junto al prompt mientras el modo rápido está activo53* Un pequeño icono `↯` aparece junto al prompt mientras el modo rápido está activo

53* Ejecuta `/fast` nuevamente en cualquier momento para verificar si el modo rápido está activado o desactivado54* Ejecuta `/fast` nuevamente en cualquier momento para verificar si el modo rápido está activado o desactivado

54 55 

55Opus 5.5 es el valor predeterminado del modo rápido en Claude Code v2.1.280 y posterior. Antes de v2.1.280, el modo rápido utilizaba Opus 5 de forma predeterminada a partir de v2.1.219.56Opus 5.5 es el valor predeterminado del modo rápido en Claude Code v2.1.280 y posterior. Antes de v2.1.280, el modo rápido utilizaba Opus 5 de forma predeterminada a partir de v2.1.219.

56 57 

57Cuando desactivas el modo rápido con `/fast` nuevamente, permaneces en Opus. Para cambiar a un modelo diferente, usa `/model`.58Cuando desactivas el modo rápido con `/fast` nuevamente, permaneces en tu modelo actual. Para cambiar a un modelo diferente, usa `/model`.

58 59 

59### Cambiar modelos mientras el modo rápido está activado60### Cambiar modelos mientras el modo rápido está activado

60 61 

61El modo rápido sigue tus cambios de modelo en ambas direcciones:62El modo rápido sigue tus cambios de modelo:

62 63 

63* **Cambiar a otro**: cuando cambias a un modelo que no admite el modo rápido, Claude Code desactiva el modo rápido. Esto incluye Opus 4.7; antes de v2.1.221, el modo rápido permanecía activado después de un cambio a Opus 4.7 y la API rechazaba las solicitudes.64* **Cambiar a otro**: cuando cambias a un modelo que no admite el modo rápido, Claude Code desactiva el modo rápido. Esto incluye Opus 4.7; antes de v2.1.221, el modo rápido permanecía activado después de un cambio a Opus 4.7 y la API rechazaba las solicitudes.

64* **Cambiar de vuelta**: cambiar de vuelta a un modelo Opus compatible activa el modo rápido nuevamente cuando tu preferencia de modo rápido guardada está activada, la misma preferencia con la que una nueva sesión comienza de forma predeterminada. Un cambio de modelo nunca activa el modo rápido para una sesión cuya preferencia guardada está desactivada, y con [opción de participación por sesión](#require-per-session-opt-in) configurada, cambiar de vuelta tampoco lo activa; ejecuta `/fast` para reactivarlo.65* **Cambiar de vuelta**: el modo rápido se activa nuevamente en un modelo Opus compatible cuando tu preferencia guardada está activada. Con [opción de participación por sesión](#require-per-session-opt-in), ejecuta `/fast` en su lugar.

66* **Cambiar a Fable 5.2**: el modo rápido se desactiva a menos que lo hayas activado mientras usabas Fable 5.2. Para activarlo, ejecuta `/fast` en Fable 5.2. A menos que hayas configurado la [opción de participación por sesión](#require-per-session-opt-in), esto se mantiene entre sesiones hasta que lo desactives o lo actives con otro modelo.

65 67 

66Siempre que un cambio de modelo activa o desactiva el modo rápido, Claude Code muestra una confirmación `Fast mode ON` o `Fast mode OFF`, y el icono `↯` aparece mientras el modo rápido está activado. Esto se aplica tanto si cambias con `/model`, con [`/config model=<model>`](https://code.claude.com/docs/es/settings), como desde un dispositivo conectado a través de [Control Remoto](https://code.claude.com/docs/es/remote-control.md).68Siempre que un cambio de modelo activa o desactiva el modo rápido, Claude Code muestra una confirmación `Fast mode ON` o `Fast mode OFF`, y el icono `↯` aparece mientras el modo rápido está activado. Esto se aplica tanto si cambias con `/model`, con [`/config model=<model>`](https://code.claude.com/docs/es/settings), como desde un dispositivo conectado a través de [Control Remoto](https://code.claude.com/docs/es/remote-control.md).

67 69 


77 79 

78## Comprender la compensación de costos80## Comprender la compensación de costos

79 81 

80El modo rápido tiene precios por token más altos que el Opus estándar:82El modo rápido tiene precios por token más altos que la velocidad estándar:

81 83 

82| Modelo | Entrada (MTok) | Salida (MTok) |84| Modelo | Entrada (MTok) | Salida (MTok) |

83| - | - | - |85| - | - | - |

86| Fable 5.2 | \$16 | \$80 |

84| Opus 5.5 | \$8 | \$40 |87| Opus 5.5 | \$8 | \$40 |

85| Opus 5 | \$10 | \$50 |88| Opus 5 | \$10 | \$50 |

86| Opus 4.8 | \$10 | \$50 |89| Opus 4.8 | \$10 | \$50 |

87 90 

88Los precios del modo rápido son fijos en toda la ventana de contexto de 1M tokens. Para la tarifa estándar de Opus con la que comparar, consulte la [referencia de precios de Claude](https://platform.claude.com/docs/es/about-claude/pricing).91Los precios del modo rápido son fijos en toda la ventana de contexto de 1M tokens. Para la tarifa estándar con la que comparar, consulta la [referencia de precios de Claude](https://platform.claude.com/docs/es/about-claude/pricing).

89 92 

90La primera vez que habilitas el modo rápido en una conversación, pagas el precio completo del token de entrada sin caché del modo rápido para todo el contexto de la conversación. Cuanto más avanzada esté la conversación, más cuesta esto, por lo que el cargo es menor cuando habilitas el modo rápido desde el inicio. El modo rápido y la velocidad estándar mantienen [cachés separadas](https://code.claude.com/docs/es/prompt-caching.md#turning-on-fast-mode), por lo que cada cambio posterior vuelve a leer sin caché parte o toda la conversación.93La primera vez que habilitas el modo rápido en una conversación, pagas el precio completo del token de entrada sin caché del modo rápido para todo el contexto de la conversación. Cuanto más avanzada esté la conversación, más cuesta esto, por lo que el cargo es menor cuando habilitas el modo rápido desde el inicio. El modo rápido y la velocidad estándar mantienen [cachés separadas](https://code.claude.com/docs/es/prompt-caching.md#turning-on-fast-mode), por lo que cada cambio posterior vuelve a leer sin caché parte o toda la conversación.

91 94 


137 140 

138* **Organización de Console pagada**: las cuentas de Claude Console no utilizan créditos de uso, y su organización paga por el modo rápido por token junto con el resto de su uso de API. En el plan de Evaluación gratuito de Console, `/fast` muestra "Fast mode unavailable during evaluation. Please purchase credits." Para borrarlo, compre créditos en su [configuración de facturación de Console](https://platform.claude.com/settings/billing).141* **Organización de Console pagada**: las cuentas de Claude Console no utilizan créditos de uso, y su organización paga por el modo rápido por token junto con el resto de su uso de API. En el plan de Evaluación gratuito de Console, `/fast` muestra "Fast mode unavailable during evaluation. Please purchase credits." Para borrarlo, compre créditos en su [configuración de facturación de Console](https://platform.claude.com/settings/billing).

139 142 

140 El modo rápido con Opus 5.5 también depende del [nivel de uso](https://platform.claude.com/docs/en/api/rate-limits) de tu organización.143 El modo rápido con Fable 5.2 u Opus 5.5 también depende del [nivel de uso](https://platform.claude.com/docs/en/api/rate-limits) de tu organización.

141* **Habilitación del propietario para Team y Enterprise**: el modo rápido está deshabilitado de forma predeterminada para organizaciones Team y Enterprise. Un propietario debe [habilitar explícitamente el modo rápido](#enable-fast-mode-for-your-organization) antes de que los usuarios puedan acceder a él.144* **Habilitación del propietario para Team y Enterprise**: el modo rápido está deshabilitado de forma predeterminada para organizaciones Team y Enterprise. Un propietario debe [habilitar explícitamente el modo rápido](#enable-fast-mode-for-your-organization) antes de que los usuarios puedan acceder a él.

142 145 

143> [!NOTE]146> [!NOTE]


147> * **Modo rápido no habilitado**: si el modo rápido no ha sido habilitado para su organización, activar el modo rápido con `/fast` muestra "Fast mode has been disabled by your organization."150> * **Modo rápido no habilitado**: si el modo rápido no ha sido habilitado para su organización, activar el modo rápido con `/fast` muestra "Fast mode has been disabled by your organization."

148> * **Modo rápido desactivado por configuración administrada**: si su organización implementa [configuración administrada](https://code.claude.com/docs/es/managed-settings.md) que establece [`fastMode: false`](https://code.claude.com/docs/es/settings-reference#fastmode), activar el modo rápido con `/fast` muestra el mismo mensaje "Fast mode has been disabled by your organization".151> * **Modo rápido desactivado por configuración administrada**: si su organización implementa [configuración administrada](https://code.claude.com/docs/es/managed-settings.md) que establece [`fastMode: false`](https://code.claude.com/docs/es/settings-reference#fastmode), activar el modo rápido con `/fast` muestra el mismo mensaje "Fast mode has been disabled by your organization".

149> * **Opción de participación requerida por sesión**: la configuración administrada que establece [`fastModePerSessionOptIn: true`](#require-per-session-opt-in) rechaza `/fast on` con el mismo mensaje en todas partes excepto en una sesión de terminal interactiva.152> * **Opción de participación requerida por sesión**: la configuración administrada que establece [`fastModePerSessionOptIn: true`](#require-per-session-opt-in) rechaza `/fast on` con el mismo mensaje en todas partes excepto en una sesión de terminal interactiva.

150> * **Modelo de modo rápido no permitido**: si la lista de permitidos [`availableModels`](https://code.claude.com/docs/es/model-config#restrict-model-selection) de su organización excluye el modelo Opus del modo rápido, activarlo se rechaza con "is not in your organization's allowed models". En una sesión ya en ejecución en un modelo Opus permitido que admita modo rápido, `/fast` en su lugar habilita el modo rápido en su modelo actual sin cambiar de modelos.153> * **Modelo de modo rápido no permitido**: si la lista de permitidos [`availableModels`](https://code.claude.com/docs/es/model-config#restrict-model-selection) de tu organización excluye el modelo Opus del modo rápido, activarlo se rechaza con "is not in your organization's allowed models". En una sesión que ya se ejecuta en un modelo permitido que admite el modo rápido, `/fast` en su lugar habilita el modo rápido en tu modelo actual sin cambiar de modelo.

151 154 

152### Habilitar el modo rápido para su organización155### Habilitar el modo rápido para su organización

153 156 


196 199 

197### Requerir opción de participación por sesión200### Requerir opción de participación por sesión

198 201 

199De forma predeterminada, el modo rápido que un usuario activa en una sesión interactiva persiste entre sesiones en un modelo compatible. Para cambiar esto, establece `fastModePerSessionOptIn` en `true` en cualquier [archivo de configuración](https://code.claude.com/docs/es/settings.md#where-settings-live), lo que hace que cada sesión comience con el modo rápido desactivado y requiere que los usuarios lo habiliten explícitamente con `/fast`. Los propietarios en planes [Team](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_teams#team-&-enterprise) o [Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_enterprise) pueden implementarlo en toda la organización a través de [configuración administrada por servidor](https://code.claude.com/docs/es/server-managed-settings.md).202De forma predeterminada, el modo rápido que un usuario activa en una sesión interactiva persiste entre sesiones en un modelo compatible. En Fable 5.2, persiste solo si el usuario [lo activó mientras usaba Fable 5.2](#switch-models-while-fast-mode-is-on).

203 

204Para que cada sesión comience con el modo rápido desactivado, establece `fastModePerSessionOptIn` en `true` en cualquier [archivo de configuración](https://code.claude.com/docs/es/settings.md#where-settings-live). Los usuarios entonces lo habilitan con `/fast` en cada sesión. Los propietarios en planes [Team](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_teams#team-&-enterprise) o [Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_enterprise) pueden implementarlo en toda la organización a través de [configuración administrada por servidor](https://code.claude.com/docs/es/server-managed-settings.md).

200 205 

201```json theme={null}206```json theme={null}

202{207{


210 215 

211## Manejar límites de velocidad216## Manejar límites de velocidad

212 217 

213El modo rápido tiene rate limits separados de los del Opus estándar; para las organizaciones de Console, la página de [rate limits](https://platform.claude.com/docs/en/api/rate-limits) de Claude Platform los describe. Cuando alcanzas el rate limit del modo rápido:218El modo rápido tiene rate limits separados de los de la velocidad estándar; para las organizaciones de Console, la página de [rate limits](https://platform.claude.com/docs/en/api/rate-limits) de Claude Platform los describe. Cuando alcanzas el rate limit del modo rápido:

214 219 

2151. El modo rápido automáticamente vuelve a velocidad estándar2201. El modo rápido automáticamente vuelve a velocidad estándar

2162. El icono `↯` se vuelve gris para indicar enfriamiento2212. El icono `↯` se vuelve gris para indicar enfriamiento

hooks.md +12 −4

Details

1089 1089 

1090#### Emitir notificaciones de terminal1090#### Emitir notificaciones de terminal

1091 1091 

1092Los hooks se ejecutan sin una terminal de control, por lo que escribir secuencias de escape directamente en `/dev/tty` falla. En su lugar, devuelve la secuencia de escape en el campo `terminalSequence` y Claude Code la emite por ti a través de su propia ruta de escritura en la terminal. Esto está libre de condiciones de carrera, funciona dentro de tmux y GNU screen, y funciona en Windows, donde no hay `/dev/tty`.1092Los hooks se ejecutan sin una terminal de control, por lo que escribir secuencias de escape directamente en `/dev/tty` falla. En su lugar, devuelve la secuencia de escape en el campo `terminalSequence` y Claude Code la emite por ti a través de su propia ruta de escritura en la terminal. Esto está libre de condiciones de carrera y funciona en Windows, donde no hay `/dev/tty`.

1093 1093 

1094El campo acepta una cadena de una o más secuencias de escape permitidas:1094El campo acepta una cadena de una o más secuencias de escape permitidas:

1095 1095 


1101 1101 

1102Las secuencias pueden terminar con BEL o con ST. Cualquier cosa fuera de la lista de permitidos, incluidas las secuencias CSI de cursor y color, las secuencias OSC de paleta, los hipervínculos OSC 8, las escrituras al portapapeles OSC 52 y OSC 1337, se rechaza y el campo se ignora.1102Las secuencias pueden terminar con BEL o con ST. Cualquier cosa fuera de la lista de permitidos, incluidas las secuencias CSI de cursor y color, las secuencias OSC de paleta, los hipervínculos OSC 8, las escrituras al portapapeles OSC 52 y OSC 1337, se rechaza y el campo se ignora.

1103 1103 

1104Claude Code escribe la secuencia por sí mismo cuando procesa la salida de tu hook, por lo que el campo funciona en eventos que descartan `systemMessage` y `continue`, como `Notification` y `StopFailure`. Tiene dos limitaciones:1104Claude Code escribe la secuencia por sí mismo cuando procesa la salida de tu hook, por lo que el campo funciona en eventos que descartan `systemMessage` y `continue`, como `Notification` y `StopFailure`. Tiene algunas limitaciones:

1105 1105 

1106* Claude Code escribe la secuencia solo en una sesión interactiva, y solo mientras su interfaz está en pantalla. En modo no interactivo con el flag `-p` y en el Agent SDK, ignora el campo.1106* Claude Code escribe la secuencia solo en una sesión interactiva, y solo mientras su interfaz está abierta. En modo no interactivo con el flag `-p` y en el Agent SDK, ignora el campo.

1107* El campo solo funciona desde un hook que no se ejecuta en [segundo plano](#run-hooks-in-the-background), así que deja desactivados `async` y `asyncRewake`.

1107* Un hook de comando `WorktreeCreate` no puede devolver JSON, porque Claude Code lee su stdout como la ruta del worktree. Un hook HTTP `WorktreeCreate` devuelve JSON y puede incluir el campo.1108* Un hook de comando `WorktreeCreate` no puede devolver JSON, porque Claude Code lee su stdout como la ruta del worktree. Un hook HTTP `WorktreeCreate` devuelve JSON y puede incluir el campo.

1108 1109 

1109El ejemplo a continuación dispara una notificación de escritorio desde un hook `Notification`. La secuencia de escape se construye con escapes octales de `printf` para que los bytes de control nunca aparezcan en la línea de comandos del shell, y `jq -n --arg` construye la salida JSON para que las comillas, barras invertidas y saltos de línea del mensaje de notificación se escapen correctamente:1110Si usas tmux o GNU screen, completa primero [la configuración para ellos](#get-terminal-notifications-inside-tmux-or-gnu-screen). El ejemplo a continuación dispara una notificación de escritorio desde un hook `Notification` en una terminal que lee OSC `777`, como Ghostty o Warp. La llamada `jq -nc --arg` del script construye la salida JSON y escapa las comillas, barras invertidas y saltos de línea del mensaje de notificación:

1110 1111 

1111```bash theme={null}1112```bash theme={null}

1112#!/bin/bash1113#!/bin/bash


1120 1121 

1121La forma `{ "terminalSequence": "..." }` es la misma desde cualquier shell o lenguaje.1122La forma `{ "terminalSequence": "..." }` es la misma desde cualquier shell o lenguaje.

1122 1123 

1124#### Recibir notificaciones de terminal dentro de tmux o GNU screen

1125 

1126Cuando Claude Code se ejecuta dentro de tmux o GNU screen, las secuencias OSC necesitan lo siguiente para llegar a tu aplicación de terminal:

1127 

1128* **tmux 3.3 o posterior**: agrega `set -g allow-passthrough on` a `~/.tmux.conf` y luego ejecuta `tmux source-file ~/.tmux.conf` desde un shell. La opción se aplica a todos los programas de esos paneles, no solo a Claude Code. Con `on`, solo los paneles que tmux está mostrando pueden enviarlas. Para permitir que también las envíen otros paneles de una sesión a la que estás conectado, usa `all` en lugar de `on`, en tmux 3.4 o posterior.

1129* **GNU screen**: mantén visible la ventana de Claude Code en screen, porque las secuencias de una ventana en segundo plano no llegan a tu aplicación de terminal

1130 

1123#### Agregar contexto para Claude1131#### Agregar contexto para Claude

1124 1132 

1125El campo `additionalContext` pasa una cadena desde tu hook a la ventana de contexto de Claude. Claude Code envuelve la cadena en un [recordatorio del sistema](https://code.claude.com/docs/es/glossary.md#system-reminder) y la inserta en la conversación en el punto donde se activó el hook. Claude lee el recordatorio en la siguiente solicitud al modelo, pero no aparece como un mensaje de chat en la interfaz.1133El campo `additionalContext` pasa una cadena desde tu hook a la ventana de contexto de Claude. Claude Code envuelve la cadena en un [recordatorio del sistema](https://code.claude.com/docs/es/glossary.md#system-reminder) y la inserta en la conversación en el punto donde se activó el hook. Claude lee el recordatorio en la siguiente solicitud al modelo, pero no aparece como un mensaje de chat en la interfaz.

Details

223| Campos de [herramienta](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) beta | Los encabezados beta relacionados con herramientas se emparejan con campos de esquema de herramienta como `strict` y `defer_loading` | `400` que nombra el campo de esquema de herramienta no reconocido cuando el cuerpo pasa sin su encabezado. Para `defer_loading`, consulta [Reintento sin búsqueda de herramientas](#retry-without-tool-search) | Reenvía ambos, o [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |223| Campos de [herramienta](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) beta | Los encabezados beta relacionados con herramientas se emparejan con campos de esquema de herramienta como `strict` y `defer_loading` | `400` que nombra el campo de esquema de herramienta no reconocido cuando el cuerpo pasa sin su encabezado. Para `defer_loading`, consulta [Reintento sin búsqueda de herramientas](#retry-without-tool-search) | Reenvía ambos, o [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |

224| [Esfuerzo](https://platform.claude.com/docs/en/build-with-claude/effort) y [salidas estructuradas](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | El campo de cuerpo `output_config` lleva el esfuerzo, el formato de salida estructurada y la configuración de presupuesto de tarea; cada uno se empareja con su propio encabezado beta | `400` que nombra `output_config`, a menudo `Extra inputs are not permitted`, en proveedores ascendentes Amazon Bedrock y Agent Platform de Google Cloud | Reenvía el campo y sus encabezados juntos, o haz que los desarrolladores establezcan [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities), que elimina la configuración de formato y de presupuesto de tarea, pero no el esfuerzo. Para eliminar solo el formato, pueden establecer [`CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS=1`](https://code.claude.com/docs/es/env-vars) en su lugar, lo que requiere v2.1.288 o posterior |224| [Esfuerzo](https://platform.claude.com/docs/en/build-with-claude/effort) y [salidas estructuradas](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | El campo de cuerpo `output_config` lleva el esfuerzo, el formato de salida estructurada y la configuración de presupuesto de tarea; cada uno se empareja con su propio encabezado beta | `400` que nombra `output_config`, a menudo `Extra inputs are not permitted`, en proveedores ascendentes Amazon Bedrock y Agent Platform de Google Cloud | Reenvía el campo y sus encabezados juntos, o haz que los desarrolladores establezcan [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities), que elimina la configuración de formato y de presupuesto de tarea, pero no el esfuerzo. Para eliminar solo el formato, pueden establecer [`CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS=1`](https://code.claude.com/docs/es/env-vars) en su lugar, lo que requiere v2.1.288 o posterior |

225| Mensajes del sistema a mitad de conversación | Sin encabezado beta. Claude Code envía parte del texto de recordatorios y adjuntos como entradas `role: "system"` en `messages` para Claude Opus 4.8, modelos lanzados después de él e IDs de modelo no reconocidos | `400` como `Unexpected role "system"` | Claude Code [reintenta sin mensajes del sistema](#automatic-retry-and-error-forwarding). Para detener los mensajes del sistema en un alias de un modelo lanzado antes de Claude Opus 4.8, agrega una [entrada `modelOverrides`](#settings-for-unrecognized-model-ids) a la configuración que distribuyes |225| Mensajes del sistema a mitad de conversación | Sin encabezado beta. Claude Code envía parte del texto de recordatorios y adjuntos como entradas `role: "system"` en `messages` para Claude Opus 4.8, modelos lanzados después de él e IDs de modelo no reconocidos | `400` como `Unexpected role "system"` | Claude Code [reintenta sin mensajes del sistema](#automatic-retry-and-error-forwarding). Para detener los mensajes del sistema en un alias de un modelo lanzado antes de Claude Opus 4.8, agrega una [entrada `modelOverrides`](#settings-for-unrecognized-model-ids) a la configuración que distribuyes |

226| [Esfuerzo establecido por turno](https://code.claude.com/docs/es/prompt-caching.md#changing-effort-level) | En Opus 5.5, Sonnet 5.5, Haiku 5.5 y Fable 5.1, un encabezado beta se empareja con `output_config.effort` en entradas `role: "system"`, ya sea un mensaje del sistema o una entrada con contenido vacío | `400` con `messages.N: system content must contain at least one block` cuando tu gateway elimina el campo de una entrada vacía | Reenvía ambos, o haz que los desarrolladores establezcan [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) para detener el campo y las entradas vacías |226| [Esfuerzo establecido por turno](https://code.claude.com/docs/es/prompt-caching.md#changing-effort-level) | En Opus 5.5, Sonnet 5.5, Haiku 5.5, Fable 5.2 y Fable 5.1, un encabezado beta se empareja con `output_config.effort` en entradas `role: "system"`. Una entrada es un mensaje del sistema o una con contenido vacío | `400` con `messages.N: system content must contain at least one block` cuando tu gateway elimina el campo de una entrada vacía | Reenvía ambos, o haz que los desarrolladores establezcan [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) para detener el campo y las entradas vacías |

227| [Almacenamiento en caché de solicitudes](https://code.claude.com/docs/es/prompt-caching.md) | Sin emparejamiento beta. Claude Code adjunta marcadores `cache_control` a bloques `system` y a entradas `messages`, incluidas entradas `role: "system"` añadidas a mitad de conversación | Sin error: la conversación se factura como entrada sin caché en cada turno, visible como `input_tokens` alto con poca o ninguna actividad de caché en `usage` | Reenvíe `cache_control` sin cambios dondequiera que aparezca, y no convierta bloques de forma `system` o contenido de mensaje a cadenas simples |227| [Almacenamiento en caché de solicitudes](https://code.claude.com/docs/es/prompt-caching.md) | Sin emparejamiento beta. Claude Code adjunta marcadores `cache_control` a bloques `system` y a entradas `messages`, incluidas entradas `role: "system"` añadidas a mitad de conversación | Sin error: la conversación se factura como entrada sin caché en cada turno, visible como `input_tokens` alto con poca o ninguna actividad de caché en `usage` | Reenvíe `cache_control` sin cambios dondequiera que aparezca, y no convierta bloques de forma `system` o contenido de mensaje a cadenas simples |

228| [Conteo de tokens](https://platform.claude.com/docs/en/build-with-claude/token-counting) | Sin emparejamiento beta; utiliza el punto final `count_tokens` | Sin error: Claude Code vuelve a un estimado basado en caracteres, así que `/context` muestra conteos aproximados | Exponga el punto final para conteos de tokens exactos |228| [Conteo de tokens](https://platform.claude.com/docs/en/build-with-claude/token-counting) | Sin emparejamiento beta; utiliza el punto final `count_tokens` | Sin error: Claude Code vuelve a un estimado basado en caracteres, así que `/context` muestra conteos aproximados | Exponga el punto final para conteos de tokens exactos |

229 229 

model-config.md +53 −24

Details

30| Alias de modelo | Comportamiento |30| Alias de modelo | Comportamiento |

31| - | - |31| - | - |

32| **`default`** | Valor especial que borra cualquier sobrescritura de modelo y revierte al [valor predeterminado en tiempo de ejecución para tu cuenta](#default-model-setting). No es en sí mismo un alias de modelo |32| **`default`** | Valor especial que borra cualquier sobrescritura de modelo y revierte al [valor predeterminado en tiempo de ejecución para tu cuenta](#default-model-setting). No es en sí mismo un alias de modelo |

33| **`best`** | Utiliza el modelo al que se resuelve el [alias `fable`](#fable-alias-resolution) donde Fable está disponible para ti; de lo contrario, el mismo modelo que `opus` |33| **`best`** | Utiliza el mismo modelo que `opus` |

34| **`fable`** | Utiliza el [modelo Fable para tu proveedor](#fable-alias-resolution) para tus tareas más difíciles y de mayor duración |34| **`fable`** | Utiliza el [modelo Fable para tu proveedor](#fable-alias-resolution) para tus tareas más difíciles y de mayor duración |

35| **`sonnet`** | Utiliza el último modelo Sonnet para tareas de codificación diaria |35| **`sonnet`** | Utiliza el último modelo Sonnet para tareas de codificación diaria |

36| **`opus`** | Utiliza el último modelo Opus para tareas de razonamiento complejo |36| **`opus`** | Utiliza el último modelo Opus para tareas de razonamiento complejo |


48| Amazon Bedrock, Agent Platform de Google Cloud | Opus 5.5 | Sonnet 4.5 | Haiku 4.5 |48| Amazon Bedrock, Agent Platform de Google Cloud | Opus 5.5 | Sonnet 4.5 | Haiku 4.5 |

49| Microsoft Foundry | Opus 4.6 | Sonnet 4.5 | Haiku 4.5 |49| Microsoft Foundry | Opus 4.6 | Sonnet 4.5 | Haiku 4.5 |

50 50 

51A menos que establezcas `ANTHROPIC_DEFAULT_FABLE_MODEL`, el alias `fable` se resuelve a Fable 5.1, excepto en sesiones del [gateway de aplicaciones de Claude](https://code.claude.com/docs/es/claude-apps-gateway), donde `fable` y `best` se resuelven a Fable 5.51A menos que establezcas `ANTHROPIC_DEFAULT_FABLE_MODEL`, el alias `fable` se resuelve a Fable 5 en sesiones del [gateway de aplicaciones de Claude](https://code.claude.com/docs/es/claude-apps-gateway) y a Fable 5.2 en todos los demás casos.

52 52 

53Un gateway que no esté configurado para servir `claude-fable-5-1` rechaza las solicitudes para ese modelo. Para usar Fable 5.1 a través de un gateway que lo sirva, selecciónalo con `/model claude-fable-5-1`.53Un gateway que no esté configurado para servir `claude-fable-5-2` rechaza las solicitudes para ese modelo. Para usar Fable 5.2 a través de un gateway que lo sirva, selecciónalo con `/model claude-fable-5-2`.

54 54 

55Donde `opus` o `sonnet` se resuelve a un modelo más antiguo, los modelos más nuevos están disponibles seleccionando explícitamente el nombre de modelo completo o configurando `ANTHROPIC_DEFAULT_OPUS_MODEL` o `ANTHROPIC_DEFAULT_SONNET_MODEL`.55Donde `opus` o `sonnet` se resuelve a un modelo más antiguo, los modelos más nuevos están disponibles seleccionando explícitamente el nombre de modelo completo o configurando `ANTHROPIC_DEFAULT_OPUS_MODEL` o `ANTHROPIC_DEFAULT_SONNET_MODEL`.

56 56 


64 64 

65### Trabajar con Fable65### Trabajar con Fable

66 66 

67[Claude Fable 5.1](https://platform.claude.com/docs/en/about-claude/models/overview) y Claude Fable 5 son los modelos más capaces en Claude Code, adecuados para tareas más grandes que una sola sesión de trabajo. Sostienen sesiones autónomas largas, investigan antes de actuar y verifican su trabajo más a menudo que los modelos más pequeños. Fable 5.1 es la versión más reciente.67Los [modelos Claude Fable](https://platform.claude.com/docs/en/about-claude/models/overview) son los modelos más capaces en Claude Code, adecuados para tareas más grandes que una sola sesión de trabajo. Sostienen sesiones autónomas largas, investigan antes de actuar y verifican su trabajo más a menudo que los modelos más pequeños.

68 68 

69Ninguno de los modelos Fable es el valor predeterminado del tipo de cuenta en ningún plan o proveedor. Selecciona uno explícitamente:69Ningún modelo Fable es el valor predeterminado del tipo de cuenta en ningún plan o proveedor. Selecciona uno explícitamente:

70 70 

71* **Fable 5.1**: ejecuta `/model fable`, o inicia con `claude --model fable`. En sesiones del [gateway de aplicaciones de Claude](https://code.claude.com/docs/es/claude-apps-gateway), donde el alias se resuelve a Fable 5, ejecuta `/model claude-fable-5-1` en su lugar.71* **Fable 5.2**: ejecuta `/model fable`, o inicia con `claude --model fable`. En sesiones del [gateway de aplicaciones de Claude](https://code.claude.com/docs/es/claude-apps-gateway), ejecuta `/model claude-fable-5-2` en su lugar.

72* **Fable 5**: selecciónalo por ID de modelo. En la API de Anthropic, ejecuta `/model claude-fable-5` o inicia con `claude --model claude-fable-5`. En otros proveedores, usa el ID de modelo de Fable 5 de tu proveedor o [fíjalo](#pin-models-for-third-party-deployments) con `ANTHROPIC_DEFAULT_FABLE_MODEL`.72* **Fable 5.1 o Fable 5**: selecciónalo por ID de modelo. En la API de Anthropic, ejecuta `/model claude-fable-5-1` o `/model claude-fable-5`, o inicia con `claude --model claude-fable-5-1`. En otros proveedores, usa el ID de modelo de tu proveedor o [fíjalo](#pin-models-for-third-party-deployments) con `ANTHROPIC_DEFAULT_FABLE_MODEL`.

73 73 

74Si te conectas a la API de Anthropic directamente y tu configuración de usuario contiene `claude-fable-5` o `claude-fable-5[1m]` como modelo, por ejemplo porque seleccionaste Fable en el selector `/model` antes de v2.1.257, Claude Code cambia ese valor guardado al alias `fable` o `fable[1m]` la primera vez que ejecutas v2.1.257 o posterior. La línea de modelo de inicio muestra `(auto-updated)` una vez. Un valor `claude-fable-5` en la configuración de proyecto, local o administrada permanece como está.74En los planes Pro, Max, Team y Enterprise, un modelo `claude-fable-5-1` guardado en tu configuración de usuario pasa al alias `fable`:

75 

76* **Plan Pro o Max**: el cambio ocurre la primera vez que ejecutas v2.1.321 o posterior. En la terminal, la línea de modelo de inicio puede mostrar `(auto-updated)` una vez.

77* **Plan Team o Enterprise**: el cambio espera la configuración de tu organización, por lo que puede ocurrir en un inicio posterior, o no ocurrir en absoluto. Se aplica a partir de la siguiente sesión, sin la línea `(auto-updated)`. Para verificar tu modelo, ejecuta `/model`.

78 

79Después del cambio, las sesiones comienzan con el esfuerzo predeterminado de Fable 5.2 a menos que hayas [establecido un nivel](#adjust-effort-level) para él. Las cuentas de Console, los proveedores de terceros y la configuración de proyecto, local o administrada mantienen `claude-fable-5-1`.

75 80 

76Las solicitudes que los clasificadores de seguridad de un modelo Fable marcan, más a menudo en los dominios de ciberseguridad y biología, activan el [respaldo automático de modelo](#automatic-model-fallback).81Las solicitudes que los clasificadores de seguridad de un modelo Fable marcan, más a menudo en los dominios de ciberseguridad y biología, activan el [respaldo automático de modelo](#automatic-model-fallback).

77 82 


84 89 

85> [!NOTE]90> [!NOTE]

86>91>

87> Fable 5.1 requiere Claude Code v2.1.257 o posterior. Si una solicitud para él desde una versión anterior falla, consulta [Claude Code no admite este modelo](https://code.claude.com/docs/es/errors.md#claude-code-does-not-support-this-model). Ejecuta `claude update` para actualizar. Para la disponibilidad bajo retención cero de datos, consulta [Disponibilidad de modelos bajo ZDR](https://code.claude.com/docs/es/zero-data-retention.md#model-availability-under-zdr).92> Fable 5.2 requiere Claude Code v2.1.321 o posterior, y Fable 5.1 requiere v2.1.257 o posterior. Si una solicitud para uno de ellos desde una versión anterior falla, consulta [Claude Code no admite este modelo](https://code.claude.com/docs/es/errors.md#claude-code-does-not-support-this-model). Ejecuta `claude update` para actualizar. Para la disponibilidad bajo retención cero de datos, consulta [Disponibilidad de modelos bajo ZDR](https://code.claude.com/docs/es/zero-data-retention.md#model-availability-under-zdr).

88 93 

89En la API de Anthropic, un modelo Fable aparece en el selector `/model` a menos que [`availableModels`](#restrict-model-selection) o las [restricciones de modelo de la organización](#organization-model-restrictions) lo excluyan. Cuando tu organización no puede usar Fable en absoluto, por ejemplo bajo [retención cero de datos](https://code.claude.com/docs/es/zero-data-retention.md#model-availability-under-zdr), la fila permanece en el selector atenuada, con una nota que explica por qué.94En la API de Anthropic, un modelo Fable aparece en el selector `/model` a menos que [`availableModels`](#restrict-model-selection) o las [restricciones de modelo de la organización](#organization-model-restrictions) lo excluyan. Cuando tu organización no puede usar Fable en absoluto, por ejemplo bajo [retención cero de datos](https://code.claude.com/docs/es/zero-data-retention.md#model-availability-under-zdr), la fila permanece en el selector atenuada, con una nota que explica por qué.

90 95 


163 168 

164Consulta [Model is not a recognized model id](https://code.claude.com/docs/es/errors.md#model-is-not-a-recognized-model-id) y [Model not found](https://code.claude.com/docs/es/errors.md#model-not-found) para ver los mensajes.169Consulta [Model is not a recognized model id](https://code.claude.com/docs/es/errors.md#model-is-not-a-recognized-model-id) y [Model not found](https://code.claude.com/docs/es/errors.md#model-not-found) para ver los mensajes.

165 170 

166Si estableces el modelo con el flag `--model`, la variable de entorno `ANTHROPIC_MODEL` o el ajuste `model`, Claude Code no lo verifica de antemano, y un valor mal escrito produce [There's an issue with the selected model](https://code.claude.com/docs/es/errors.md#theres-an-issue-with-the-selected-model) en la primera solicitud.171Si estableces el modelo con el flag `--model`, la variable de entorno `ANTHROPIC_MODEL` o el ajuste `model`, Claude Code no rechaza de antemano un valor mal escrito. La sesión se inicia y la primera solicitud produce [There's an issue with the selected model](https://code.claude.com/docs/es/errors.md#theres-an-issue-with-the-selected-model). En la API de Anthropic, un valor que no comienza con `claude-` y casi coincide con el nombre de un modelo o un alias también puede producir una [advertencia de inicio que lo sugiere](#fix-a-mistyped-model-name).

167 172 

168Cuando el modelo solicitado tiene una fecha de retiro programada o se reasigna automáticamente a una versión más nueva, Claude Code muestra una advertencia que nombra el modelo solicitado. Las sesiones interactivas la muestran como un aviso de inicio. A partir de v2.1.182, la misma advertencia se escribe en stderr en [modo no interactivo](https://code.claude.com/docs/es/headless.md) cuando se usa el formato de salida de texto predeterminado. La verificación también cubre un `model` establecido en el [frontmatter de un subagente](https://code.claude.com/docs/es/sub-agents.md). La advertencia en stderr se suprime para `--output-format json` y `stream-json`; en su lugar, lee el modelo real del campo `modelUsage` del [mensaje de resultado](https://code.claude.com/docs/es/headless.md#get-structured-output).173Cuando el modelo solicitado tiene una fecha de retiro programada o se reasigna automáticamente a una versión más nueva, Claude Code muestra una advertencia que nombra el modelo solicitado. Las sesiones interactivas la muestran como un aviso de inicio. A partir de v2.1.182, la misma advertencia se escribe en stderr en [modo no interactivo](https://code.claude.com/docs/es/headless.md) cuando se usa el formato de salida de texto predeterminado. La verificación también cubre un `model` establecido en el [frontmatter de un subagente](https://code.claude.com/docs/es/sub-agents.md). La advertencia en stderr se suprime para `--output-format json` y `stream-json`; en su lugar, lee el modelo real del campo `modelUsage` del [mensaje de resultado](https://code.claude.com/docs/es/headless.md#get-structured-output).

169 174 


225 230 

226## Restringir la selección de modelos231## Restringir la selección de modelos

227 232 

228Los administradores pueden usar `availableModels` en [configuración administrada o de políticas](https://code.claude.com/docs/es/managed-settings.md) para restringir qué modelos pueden seleccionar los usuarios. Las entradas coinciden con una familia de modelos como `sonnet`, un prefijo de versión como `claude-sonnet-4-5`, o un ID de modelo completo como `claude-sonnet-4-5-20250929`. Un prefijo de versión también coincide con IDs de modelo posteriores que lo extienden con otro segmento, por lo que `claude-fable-5` permite tanto Fable 5 como Fable 5.1, mientras que `claude-fable-5-1` permite solo Fable 5.1. Para bloquear un modelo que la lista permite, o para hacer que cada entrada de ID de modelo permita solo la versión que nombra, consulte [Bloquear modelos o versiones específicas](#block-specific-models-or-versions).233Los administradores pueden usar `availableModels` en [configuración administrada o de políticas](https://code.claude.com/docs/es/managed-settings.md) para restringir qué modelos pueden seleccionar los usuarios. Cada entrada coincide con uno de estos:

234 

235* Una familia de modelos como `sonnet`

236* Un prefijo de versión como `claude-sonnet-4-5`. También coincide con IDs de modelo posteriores que lo extienden con otro segmento. Por ejemplo, `claude-fable-5` permite Fable 5, Fable 5.1 y Fable 5.2, mientras que `claude-fable-5-1` permite solo Fable 5.1

237* Un ID de modelo completo como `claude-sonnet-4-5-20250929`

238 

239Para bloquear un modelo que la lista permite, o para hacer que cada entrada de ID de modelo permita solo la versión que nombra, consulta [Bloquear modelos o versiones específicas](#block-specific-models-or-versions).

229 240 

230En plataformas que integran Claude Code y establecen [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/es/env-vars), la configuración de modelo del host tiene precedencia sobre la configuración de modelos administrada, mientras que una lista de permitidos `availableModels` administrada permanece en vigor a menos que el host proporcione la suya propia; [Excepciones a la precedencia de configuración administrada](https://code.claude.com/docs/es/settings.md#exceptions-to-managed-settings-precedence) indica qué claves y variables anula el host.241En plataformas que integran Claude Code y establecen [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/es/env-vars), la configuración de modelo del host tiene precedencia sobre la configuración de modelos administrada, mientras que una lista de permitidos `availableModels` administrada permanece en vigor a menos que el host proporcione la suya propia; [Excepciones a la precedencia de configuración administrada](https://code.claude.com/docs/es/settings.md#exceptions-to-managed-settings-precedence) indica qué claves y variables anula el host.

231 242 


465 476 

466Cuando no hay nada registrado en tu cuenta, la configuración administrada [impone la lista de permitidos para el modelo Default](#enforce-the-allowlist-for-the-default-model) y el predeterminado según el tipo de cuenta no está en `availableModels`, `default` se resuelve como el modelo Default impuesto en lugar del predeterminado según el tipo de cuenta indicado arriba. Cuando se aplican tanto un modelo predeterminado de la organización como esa imposición, el modelo predeterminado de la organización reemplaza primero al predeterminado según el tipo de cuenta y luego se le impone la lista: un modelo predeterminado de la organización que está en la lista de permitidos se mantiene, mientras que uno fuera de la lista se resuelve como el modelo Default impuesto.477Cuando no hay nada registrado en tu cuenta, la configuración administrada [impone la lista de permitidos para el modelo Default](#enforce-the-allowlist-for-the-default-model) y el predeterminado según el tipo de cuenta no está en `availableModels`, `default` se resuelve como el modelo Default impuesto en lugar del predeterminado según el tipo de cuenta indicado arriba. Cuando se aplican tanto un modelo predeterminado de la organización como esa imposición, el modelo predeterminado de la organización reemplaza primero al predeterminado según el tipo de cuenta y luego se le impone la lista: un modelo predeterminado de la organización que está en la lista de permitidos se mantiene, mientras que uno fuera de la lista se resuelve como el modelo Default impuesto.

467 478 

468Los modelos Fable no son el predeterminado según el tipo de cuenta en ningún plan ni proveedor. Si eliges uno con `/model`, se guarda como el modelo seleccionado en tu configuración de usuario, de modo que las sesiones posteriores empiezan con él. Para conocer el cambio único que Claude Code hace en una selección guardada de Fable 5 en la v2.1.257, consulta [Trabajar con Fable](#work-with-fable).479> [!NOTE]

480>

481> Los modelos Fable no son el predeterminado según el tipo de cuenta en ningún plan ni proveedor. Si eliges uno con `/model`, se guarda como el modelo seleccionado en tu configuración de usuario, de modo que las sesiones posteriores empiezan con él, salvo por el [cambio único en una selección guardada de Fable 5.1](#work-with-fable).

469 482 

470### Ajuste de modelo `opusplan`483### Ajuste de modelo `opusplan`

471 484 


521 534 

522Los modelos Fable, Opus 5.5, Sonnet 5.5 y Opus 5 se ejecutan con clasificadores de seguridad, que con mayor frecuencia marcan contenido de ciberseguridad y biología. Para esas dos categorías, el modelo de respaldo depende de qué modelo rechazó la solicitud:535Los modelos Fable, Opus 5.5, Sonnet 5.5 y Opus 5 se ejecutan con clasificadores de seguridad, que con mayor frecuencia marcan contenido de ciberseguridad y biología. Para esas dos categorías, el modelo de respaldo depende de qué modelo rechazó la solicitud:

523 536 

524* **Fable 5.1, Fable 5 y Opus 5.5**: las solicitudes marcadas por biología se vuelven a ejecutar en Opus 5, y las marcadas por ciberseguridad se vuelven a ejecutar en Opus 4.8.537* **Modelos Fable y Opus 5.5**: las solicitudes marcadas por biología se vuelven a ejecutar en Opus 5, y las marcadas por ciberseguridad se vuelven a ejecutar en Opus 4.8.

525* **Sonnet 5.5**: las solicitudes marcadas por ciberseguridad se vuelven a ejecutar en Sonnet 5. Las marcadas por biología terminan con un rechazo, porque Sonnet 5.5 no tiene modelo de respaldo para biología.538* **Sonnet 5.5**: las solicitudes marcadas por ciberseguridad se vuelven a ejecutar en Sonnet 5. Las marcadas por biología terminan con un rechazo, porque Sonnet 5.5 no tiene modelo de respaldo para biología.

526* **Opus 5**: las solicitudes marcadas por ciberseguridad se vuelven a ejecutar en Opus 4.8. Las marcadas por biología terminan con un rechazo, porque Opus 5 ejecuta sus propios clasificadores de biología sin modelo de respaldo.539* **Opus 5**: las solicitudes marcadas por ciberseguridad se vuelven a ejecutar en Opus 4.8. Las marcadas por biología terminan con un rechazo, porque Opus 5 ejecuta sus propios clasificadores de biología sin modelo de respaldo.

527 540 


582 595 

583En [Amazon Bedrock](https://code.claude.com/docs/es/amazon-bedrock.md), [Google Cloud's Agent Platform](https://code.claude.com/docs/es/google-vertex-ai.md) y [Microsoft Foundry](https://code.claude.com/docs/es/microsoft-foundry.md), los ID de modelo son específicos del proveedor, por lo que el respaldo automático solo funciona cuando Claude Code puede identificar cada modelo involucrado:596En [Amazon Bedrock](https://code.claude.com/docs/es/amazon-bedrock.md), [Google Cloud's Agent Platform](https://code.claude.com/docs/es/google-vertex-ai.md) y [Microsoft Foundry](https://code.claude.com/docs/es/microsoft-foundry.md), los ID de modelo son específicos del proveedor, por lo que el respaldo automático solo funciona cuando Claude Code puede identificar cada modelo involucrado:

584 597 

585* Claude Code debe reconocer el modelo actual como fuente de respaldo. Fable 5.1 y Fable 5 se reconocen cuando el ID de modelo contiene `claude-fable-5`, coincide con el valor de `ANTHROPIC_DEFAULT_FABLE_MODEL` o está asignado con [`modelOverrides`](#override-model-ids-per-version). Opus 5.5, Sonnet 5.5 y Opus 5 se reconocen por su ID de modelo del proveedor o por una asignación de [`modelOverrides`](#override-model-ids-per-version).598* Claude Code debe reconocer el modelo actual como fuente de respaldo. Los modelos Fable se reconocen cuando el ID de modelo contiene `claude-fable-5`, coincide con el valor de `ANTHROPIC_DEFAULT_FABLE_MODEL` o está asignado con [`modelOverrides`](#override-model-ids-per-version). Opus 5.5, Sonnet 5.5 y Opus 5 se reconocen por su ID de modelo del proveedor o por una asignación de [`modelOverrides`](#override-model-ids-per-version).

586* Un destino Opus debe resolverse en tu despliegue, sea cual sea el modelo que rechazó: establece `ANTHROPIC_DEFAULT_OPUS_MODEL`, o mantén una entrada de Opus 4.8 en la lista de modelos del proveedor. Sin ninguna de las dos, el respaldo queda desactivado para todos los modelos de origen, incluido Sonnet 5.5, y las solicitudes marcadas terminan con un rechazo.599* Un destino Opus debe resolverse en tu despliegue, sea cual sea el modelo que rechazó: establece `ANTHROPIC_DEFAULT_OPUS_MODEL`, o mantén una entrada de Opus 4.8 en la lista de modelos del proveedor. Sin ninguna de las dos, el respaldo queda desactivado para todos los modelos de origen, incluido Sonnet 5.5, y las solicitudes marcadas terminan con un rechazo.

587* El modelo de respaldo de la categoría marcada debe resolverse en tu despliegue. Desde un modelo Fable, Opus 5.5 u Opus 5, si estableces `ANTHROPIC_DEFAULT_OPUS_MODEL`, las solicitudes marcadas se vuelven a ejecutar en ese modelo para todas las categorías que tienen respaldo; una marca de biología en Opus 5 sigue terminando con un rechazo. Si no lo estableces, las solicitudes marcadas por ciberseguridad se vuelven a ejecutar en la entrada de Opus 4.8, y las marcadas por biología desde un modelo Fable u Opus 5.5, en una entrada de Opus 5. Desde Sonnet 5.5, las solicitudes marcadas por ciberseguridad se vuelven a ejecutar en el modelo que establezcas en `ANTHROPIC_DEFAULT_SONNET_MODEL`, o en una entrada de Sonnet 5 de la lista de modelos del proveedor si no lo estableces.600* El modelo de respaldo de la categoría marcada debe resolverse en tu despliegue. Desde un modelo Fable, Opus 5.5 u Opus 5, si estableces `ANTHROPIC_DEFAULT_OPUS_MODEL`, las solicitudes marcadas se vuelven a ejecutar en ese modelo para todas las categorías que tienen respaldo; una marca de biología en Opus 5 sigue terminando con un rechazo. Si no lo estableces, las solicitudes marcadas por ciberseguridad se vuelven a ejecutar en la entrada de Opus 4.8, y las marcadas por biología desde un modelo Fable u Opus 5.5, en una entrada de Opus 5. Desde Sonnet 5.5, las solicitudes marcadas por ciberseguridad se vuelven a ejecutar en el modelo que establezcas en `ANTHROPIC_DEFAULT_SONNET_MODEL`, o en una entrada de Sonnet 5 de la lista de modelos del proveedor si no lo estableces.

588 601 


596 609 

597#### Cargas de trabajo de investigación en seguridad y biología610#### Cargas de trabajo de investigación en seguridad y biología

598 611 

599Las cargas de trabajo de seguridad ofensiva o biología, incluidas las pruebas de penetración, los ejercicios de Capture the Flag (CTF) y las bases de código relacionadas con la biología, activan el respaldo con frecuencia, a menudo en la primera solicitud. Para trabajo sustancial de biología en Fable 5.1, Fable 5 u Opus 5.5, la primera solicitud marcada que cambia de modelo mueve la sesión a Opus 5, y las solicitudes posteriores marcadas por biología terminan en rechazos allí, porque Opus 5 no tiene respaldo para biología. En Opus 5 y Sonnet 5.5, obtienes esos rechazos desde la primera solicitud marcada.612Las cargas de trabajo de seguridad ofensiva o biología, incluidas las pruebas de penetración, los ejercicios de Capture the Flag (CTF) y las bases de código relacionadas con la biología, activan el respaldo con frecuencia, a menudo en la primera solicitud. Este es el enrutamiento esperado para estos dominios, no una marca en tu cuenta. Si tu organización necesita capacidad de clase Fable para este trabajo, pregunta a tu equipo de cuenta de Anthropic por los programas de acceso de confianza.

600 613 

601Este es el enrutamiento esperado para estos dominios, no una marca en tu cuenta. Si tu organización necesita capacidad de clase Fable para este trabajo, pregunta a tu equipo de cuenta de Anthropic por los programas de acceso de confianza.614Para trabajo sustancial de biología en un modelo Fable u Opus 5.5, la primera solicitud marcada que cambia de modelo mueve la sesión a Opus 5. Las solicitudes posteriores marcadas por biología terminan en rechazos allí, porque Opus 5 no tiene respaldo para biología. En Opus 5 y Sonnet 5.5, esos rechazos empiezan con la primera solicitud marcada.

602 615 

603### Ajustar el nivel de esfuerzo616### Ajustar el nivel de esfuerzo

604 617 


608 621 

609| Modelo | Niveles |622| Modelo | Niveles |

610| :- | :- |623| :- | :- |

611| Fable 5.1 y Fable 5 | `low`, `medium`, `high`, `xhigh`, `max` |624| Modelos Fable | `low`, `medium`, `high`, `xhigh`, `max` |

612| Opus 5.5, Sonnet 5.5, Haiku 5.5, Opus 5, Sonnet 5, Opus 4.8 y Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |625| Opus 5.5, Sonnet 5.5, Haiku 5.5, Opus 5, Sonnet 5, Opus 4.8 y Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |

613| Opus 4.6 y Sonnet 4.6 | `low`, `medium`, `high`, `max` |626| Opus 4.6 y Sonnet 4.6 | `low`, `medium`, `high`, `max` |

614 627 


6202. Un nivel que eliges en la sesión, por ejemplo con `/effort`, el selector de `/model` o [`applyFlagSettings()`](https://code.claude.com/docs/es/agent-sdk/typescript#applyflagsettings)6332. Un nivel que eliges en la sesión, por ejemplo con `/effort`, el selector de `/model` o [`applyFlagSettings()`](https://code.claude.com/docs/es/agent-sdk/typescript#applyflagsettings)

6213. Iniciar con `--effort`6343. Iniciar con `--effort`

6224. Tu configuración: el nivel que guardaste para el modelo o una clave [`effortLevel`](https://code.claude.com/docs/es/settings-reference#effortlevel), con la precedencia entre ellos y entre archivos de configuración indicada en [`modelSettings`](https://code.claude.com/docs/es/settings-reference#modelsettings)6354. Tu configuración: el nivel que guardaste para el modelo o una clave [`effortLevel`](https://code.claude.com/docs/es/settings-reference#effortlevel), con la precedencia entre ellos y entre archivos de configuración indicada en [`modelSettings`](https://code.claude.com/docs/es/settings-reference#modelsettings)

6235. El esfuerzo predeterminado del modelo: `high` en cada modelo que admite esfuerzo, excepto que Opus 5.5, Sonnet 5.5 y Haiku 5.5 por defecto son `medium` y Opus 4.7 por defecto es `xhigh`. Si tu organización establece un nivel de esfuerzo predeterminado para su [modelo predeterminado de la organización](#organization-default-model), ese nivel es el predeterminado cuando ejecutas ese modelo.6365. El esfuerzo predeterminado del modelo: Fable 5.2, Opus 5.5, Sonnet 5.5 y Haiku 5.5 usan `medium` de forma predeterminada, y Opus 4.7 usa `xhigh` de forma predeterminada. Los demás modelos de la [tabla de niveles de esfuerzo](#adjust-effort-level) usan `high` de forma predeterminada. Si tu organización establece un nivel de esfuerzo predeterminado para su [modelo predeterminado de la organización](#organization-default-model), ese nivel es el predeterminado cuando ejecutas ese modelo.

624 637 

625Después de un respaldo automático de modelo, consulta [Nivel de esfuerzo después de un respaldo](#effort-level-after-a-fallback) para ver el nivel que se aplica. Para subagentes y compañeros de equipo, consulta [Nivel de esfuerzo de subagentes y compañeros de equipo](#effort-level-of-subagents-and-teammates).638Después de un respaldo automático de modelo, consulta [Nivel de esfuerzo después de un respaldo](#effort-level-after-a-fallback) para ver el nivel que se aplica. Para subagentes y compañeros de equipo, consulta [Nivel de esfuerzo de subagentes y compañeros de equipo](#effort-level-of-subagents-and-teammates).

626 639 


671| Nivel | Cuándo usarlo |684| Nivel | Cuándo usarlo |

672| :- | :- |685| :- | :- |

673| `low` | Intercambios rápidos en los que revisas cada resultado, como lluvias de ideas, un primer boceto o un cambio pequeño como un renombrado |686| `low` | Intercambios rápidos en los que revisas cada resultado, como lluvias de ideas, un primer boceto o un cambio pequeño como un renombrado |

674| `medium` | El predeterminado en Opus 5.5, Sonnet 5.5 y Haiku 5.5. En Opus 5.5 y Sonnet 5.5, encaja con el trabajo de ingeniería diario con un alcance claro, como implementar una nueva funcionalidad. En los modelos con un predeterminado más alto, reduce el uso de tokens en trabajo sensible al costo que puede sacrificar algo de inteligencia |687| `medium` | El predeterminado en los modelos Fable 5.2, Opus 5.5, Sonnet 5.5 y Haiku 5.5. En Opus 5.5 y Sonnet 5.5, encaja con el trabajo de ingeniería diario con un alcance claro, como implementar una nueva funcionalidad. En los modelos con un predeterminado más alto, reduce el uso de tokens en trabajo sensible al costo que puede sacrificar algo de inteligencia |

675| `high` | Trabajo en el que la verificación importa o es probable que haya casos límite, como corregir un error en una base de código existente. El predeterminado en todos los modelos excepto Opus 5.5, Sonnet 5.5, Haiku 5.5 y Opus 4.7 |688| `high` | Trabajo en el que la verificación importa o es probable que haya casos límite, como corregir un error en una base de código existente. El predeterminado en los demás modelos de la tabla de esfuerzo |

676| `xhigh` | Razonamiento más profundo con mayor gasto de tokens. El predeterminado en Opus 4.7 |689| `xhigh` | Razonamiento más profundo con mayor gasto de tokens. El predeterminado en Opus 4.7 |

677| `max` | Problemas difíciles que quieres que Claude resuelva sin ti, como encontrar vulnerabilidades de seguridad. `max` puede mostrar rendimientos decrecientes y es propenso a pensar de más, así que pruébalo antes de adoptarlo ampliamente |690| `max` | Problemas difíciles que quieres que Claude resuelva sin ti, como encontrar vulnerabilidades de seguridad. `max` puede mostrar rendimientos decrecientes y es propenso a pensar de más, así que pruébalo antes de adoptarlo ampliamente |

678| `ultracode` | Un ajuste de Claude Code y no un nivel: planifica un [flujo de trabajo dinámico](https://code.claude.com/docs/es/workflows.md) para cada tarea sustancial con cualquier nivel de esfuerzo |691| `ultracode` | Un ajuste de Claude Code y no un nivel: planifica un [flujo de trabajo dinámico](https://code.claude.com/docs/es/workflows.md) para cada tarea sustancial con cualquier nivel de esfuerzo |


691 704 

692* Vuelve a escribirla fuera de cualquier elemento como comillas, corchetes, una ruta o un comando, en un prompt que no empiece con `/`705* Vuelve a escribirla fuera de cualquier elemento como comillas, corchetes, una ruta o un comando, en un prompt que no empiece con `/`

693* Quita `CLAUDE_CODE_EFFORT_LEVEL` si está establecida por debajo de `xhigh`, sube tu propio [`maxEffortLevel`](https://code.claude.com/docs/es/settings-reference#maxeffortlevel) a `xhigh` o superior, o pide a un administrador de la organización que suba el [límite de tu organización](#organization-effort-limits)706* Quita `CLAUDE_CODE_EFFORT_LEVEL` si está establecida por debajo de `xhigh`, sube tu propio [`maxEffortLevel`](https://code.claude.com/docs/es/settings-reference#maxeffortlevel) a `xhigh` o superior, o pide a un administrador de la organización que suba el [límite de tu organización](#organization-effort-limits)

694* Ejecuta `/model` en tu sesión para cambiar a un modelo Opus 5.5, Sonnet 5.5, Haiku 5.5 o Fable 5.1. Donde la palabra no puede elevar un turno, como en Amazon Bedrock, [establece el nivel de esfuerzo](#set-the-effort-level) en su lugar707* Ejecuta `/model` en tu sesión para cambiar a un modelo Opus 5.5, Sonnet 5.5, Haiku 5.5, Fable 5.2 o Fable 5.1. Donde la palabra no puede elevar un turno, como en Amazon Bedrock, [establece el nivel de esfuerzo](#set-the-effort-level) en su lugar

695 708 

696#### Establecer el nivel de esfuerzo709#### Establecer el nivel de esfuerzo

697 710 


767 780 

768### Contexto extendido781### Contexto extendido

769 782 

770Fable 5.1, Fable 5, Sonnet 5 y posteriores, Haiku 5.5, Opus 4.6 y posteriores, y Sonnet 4.6 admiten una [ventana de contexto de 1 millón de tokens](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) para sesiones largas con bases de código grandes.783Las sesiones largas con bases de código grandes pueden usar una [ventana de contexto de 1 millón de tokens](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model). Los modelos Fable, Sonnet 5 y posteriores, Haiku 5.5, Opus 4.6 y posteriores, y Sonnet 4.6 la admiten.

771 784 

772Fable 5.1, Fable 5, Sonnet 5 y posteriores, Haiku 5.5, y Opus 4.7 y posteriores se ejecutan con la ventana de 1M de forma predeterminada, sin necesidad del sufijo `[1m]`. Eso incluye las sesiones en Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, y las sesiones de [Claude apps gateway](https://code.claude.com/docs/es/claude-apps-gateway). Para ejecutarlos con una ventana de 200K, consulta [Desactivar el contexto de 1M](#turn-off-1m-context).785Los modelos Fable, Sonnet 5 y posteriores, Haiku 5.5, y Opus 4.7 y posteriores se ejecutan con la ventana de 1M de forma predeterminada, sin necesidad del sufijo `[1m]`. Eso incluye las sesiones en Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, y las sesiones de [Claude apps gateway](https://code.claude.com/docs/es/claude-apps-gateway). Para ejecutarlos con una ventana de 200K, consulta [Desactivar el contexto de 1M](#turn-off-1m-context).

773 786 

774Opus 4.6 y Sonnet 4.6 alcanzan 1M solo mediante su variante `[1m]`, y el acceso a esa variante depende de tu plan. En los planes Max, Ultra, Team y Enterprise, incluidos los puestos Team Standard y Team Premium, Opus 4.6 con contexto de 1M está incluido en tu suscripción. Sonnet 4.6 con contexto de 1M requiere [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) en todos los planes de suscripción, incluidos Max y Ultra.787Opus 4.6 y Sonnet 4.6 alcanzan 1M solo mediante su variante `[1m]`, y el acceso a esa variante depende de tu plan. En los planes Max, Ultra, Team y Enterprise, incluidos los puestos Team Standard y Team Premium, Opus 4.6 con contexto de 1M está incluido en tu suscripción. Sonnet 4.6 con contexto de 1M requiere [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) en todos los planes de suscripción, incluidos Max y Ultra.

775 788 


798 811 

799#### Ventana de contexto detrás de un gateway de LLM812#### Ventana de contexto detrás de un gateway de LLM

800 813 

801Si estableces `ANTHROPIC_BASE_URL` en un [gateway de LLM](https://code.claude.com/docs/es/llm-gateway) u otro proxy, Claude Code da a cada modelo que reconoce la misma ventana de contexto que tiene el modelo en la Anthropic API. Fable 5.1, Fable 5, Sonnet 5 y posteriores, Haiku 5.5, y Opus 4.7 y posteriores obtienen la ventana de 1M sin variante `[1m]` que seleccionar, y un modelo que alcanza 1M solo mediante su variante `[1m]`, como Opus 4.6, se ejecuta a 200K sin ella. Claude Code no puede detectar un límite inferior que imponga el gateway o el servidor detrás de él. Si tu gateway rechaza solicitudes de más de 200K tokens, establece [`CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000`](https://code.claude.com/docs/es/env-vars) en el entorno que inicia Claude Code, para que las sesiones en todos los modelos [se compacten en ese límite](#set-the-auto-compact-window).814Si estableces `ANTHROPIC_BASE_URL` en un [gateway de LLM](https://code.claude.com/docs/es/llm-gateway) u otro proxy, Claude Code da a cada modelo que reconoce la misma ventana de contexto que tiene el modelo en la Anthropic API. Los modelos Fable, Sonnet 5 y posteriores, Haiku 5.5, y Opus 4.7 y posteriores obtienen la ventana de 1M sin variante `[1m]`. Un modelo que alcanza 1M solo mediante su variante `[1m]`, como Opus 4.6, se ejecuta a 200K sin ella.

815 

816Claude Code no puede detectar un límite inferior que imponga el gateway o el servidor detrás de él. Si tu gateway rechaza solicitudes de más de 200K tokens, establece [`CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000`](https://code.claude.com/docs/es/env-vars) en el entorno que inicia Claude Code, para que las sesiones en todos los modelos [se compacten en ese límite](#set-the-auto-compact-window).

802 817 

803#### Desactivar el contexto de 1M818#### Desactivar el contexto de 1M

804 819 


885 900 

886Una vez que Claude Code reconoce el ID o usa la ventana que le indicaste, la advertencia ya no aparece cuando inicias una sesión con ese ID.901Una vez que Claude Code reconoce el ID o usa la ventana que le indicaste, la advertencia ya no aparece cuando inicias una sesión con ese ID.

887 902 

903#### Corregir un nombre de modelo mal escrito

904 

905Cualquiera de estas advertencias significa que Claude Code no reconoce el ID de modelo que estableciste, y que el ID se parece mucho a un nombre o alias de modelo que sí reconoce:

906 

907```text theme={null}

908⚠ Model "<model>" isn't recognized · did you mean "<suggestion>"?

909Claude Code doesn't recognize the model "<model>". Did you mean "<suggestion>"?

910```

911 

912* **Escribiste mal el ID**: cámbialo por la sugerencia [dondequiera que establezcas el modelo](#setting-your-model)

913* **El ID es intencional**: déjalo como está. La sesión lo envía tal como lo escribiste. Si la ventana de contexto que Claude Code asume para él es incorrecta, [corrige la ventana](#correct-the-window-for-a-gateway-or-custom-model-id)

914 

888#### A qué ID se aplica `CLAUDE_CODE_MAX_CONTEXT_TOKENS`915#### A qué ID se aplica `CLAUDE_CODE_MAX_CONTEXT_TOKENS`

889 916 

890En un [gateway LLM](https://code.claude.com/docs/es/llm-gateway) u otro despliegue personalizado, Claude Code puede asumir una ventana de contexto para el ID del modelo que difiere de la ventana real del modelo, independientemente de si resuelve el ID a un modelo Claude. Establece [`CLAUDE_CODE_MAX_CONTEXT_TOKENS`](https://code.claude.com/docs/es/env-vars) a la ventana que Claude Code debe asumir en su lugar.917En un [gateway LLM](https://code.claude.com/docs/es/llm-gateway) u otro despliegue personalizado, Claude Code puede asumir una ventana de contexto para el ID del modelo que difiere de la ventana real del modelo, independientemente de si resuelve el ID a un modelo Claude. Establece [`CLAUDE_CODE_MAX_CONTEXT_TOKENS`](https://code.claude.com/docs/es/env-vars) a la ventana que Claude Code debe asumir en su lugar.


1099 1126 

1100| Versión | Cambio |1127| Versión | Cambio |

1101| :- | :- |1128| :- | :- |

1129| v2.1.321 | `fable` se resuelve a Fable 5.2, excepto en sesiones de gateway de aplicaciones Claude |

1130| v2.1.321 | `best` se resuelve al mismo modelo que `opus`. Las versiones anteriores usan el modelo al que se resuelve `fable`, donde Fable está disponible |

1102| v2.1.293 | `haiku` se resuelve a Haiku 5.5 en la API de Anthropic |1131| v2.1.293 | `haiku` se resuelve a Haiku 5.5 en la API de Anthropic |

1103| v2.1.284 | `sonnet` se resuelve a Sonnet 5.5 en la API de Anthropic |1132| v2.1.284 | `sonnet` se resuelve a Sonnet 5.5 en la API de Anthropic |

1104| v2.1.280 | `opus` se resuelve a Opus 5.5 en la API de Anthropic, Claude Platform en AWS, Amazon Bedrock y Agent Platform de Google Cloud |1133| v2.1.280 | `opus` se resuelve a Opus 5.5 en la API de Anthropic, Claude Platform en AWS, Amazon Bedrock y Agent Platform de Google Cloud |

permissions.md +2 −1

Details

253| :- | :- | :- |253| :- | :- | :- |

254| `Bash(curl *)` | `curl https://example.com` | `/usr/bin/curl https://example.com`, `sh -c 'curl https://example.com'` |254| `Bash(curl *)` | `curl https://example.com` | `/usr/bin/curl https://example.com`, `sh -c 'curl https://example.com'` |

255| `Bash(rm *)` | `rm -rf build/` | `/bin/rm -rf build/`, `bash -c 'rm -rf build/'` |255| `Bash(rm *)` | `rm -rf build/` | `/bin/rm -rf build/`, `bash -c 'rm -rf build/'` |

256| `Bash(git push *)` | `git push origin main` | `git -C . push origin main`, `git -c push.default=current push origin main`, `git 'push' origin main` |256| `Bash(git push *)` | `git push origin main` | `git -C . push origin main`, `git -c push.default=current push origin main` |

257 257 

258Tus otras reglas y el modo de permisos deciden los comandos de la última columna.258Tus otras reglas y el modo de permisos deciden los comandos de la última columna.

259 259 


273* **`docker` apuntando a otro daemon**: las formas de solo lectura de `docker` piden confirmación cuando el comando lleva un flag que selecciona un daemon diferente, como `-H`, `--context` o `--url` y `--connection` de Podman.273* **`docker` apuntando a otro daemon**: las formas de solo lectura de `docker` piden confirmación cuando el comando lleva un flag que selecciona un daemon diferente, como `-H`, `--context` o `--url` y `--connection` de Podman.

274* **`file` con flags que abren rutas**: `file` pide confirmación cuando pasa `-m`/`--magic-file` o `-f`/`--files-from`, porque esos flags hacen que `file` abra las rutas indicadas en el valor del flag.274* **`file` con flags que abren rutas**: `file` pide confirmación cuando pasa `-m`/`--magic-file` o `-f`/`--files-from`, porque esos flags hacen que `file` abra las rutas indicadas en el valor del flag.

275* **`ps` que podría imprimir variables de entorno**: `ps` pide confirmación cuando uno de sus argumentos podría actuar como la opción `e`, como en `ps auxe` o `ps aux -e`, porque esa opción imprime las variables de entorno de los procesos. `ps aux` y `ps -ef` se ejecutan sin pedir confirmación. La verificación de las formas con guion como `ps aux -e` requiere Claude Code v2.1.290 o posterior.275* **`ps` que podría imprimir variables de entorno**: `ps` pide confirmación cuando uno de sus argumentos podría actuar como la opción `e`, como en `ps auxe` o `ps aux -e`, porque esa opción imprime las variables de entorno de los procesos. `ps aux` y `ps -ef` se ejecutan sin pedir confirmación. La verificación de las formas con guion como `ps aux -e` requiere Claude Code v2.1.290 o posterior.

276* **`which` con flags más allá de la búsqueda y la visualización**: `which` pide confirmación cuando pasa un flag como `-i`/`--read-alias` o `--read-functions`. `which node` y `which -a node` se ejecutan sin pedir confirmación.

276* **Rutas de red en Windows**: un comando cuyos argumentos incluyen una ruta de red (UNC), como `\\server\share\file`, pide confirmación porque acceder a una ruta de red puede enviar tus credenciales de Windows al host que nombra. La misma verificación se aplica a los comandos de la [herramienta PowerShell](https://code.claude.com/docs/es/tools-reference.md#powershell-tool).277* **Rutas de red en Windows**: un comando cuyos argumentos incluyen una ruta de red (UNC), como `\\server\share\file`, pide confirmación porque acceder a una ruta de red puede enviar tus credenciales de Windows al host que nombra. La misma verificación se aplica a los comandos de la [herramienta PowerShell](https://code.claude.com/docs/es/tools-reference.md#powershell-tool).

277* **Escrituras en variables especiales del shell**: un comando que establece, elimina o itera sobre ciertas variables especiales del shell, como `PATH` o `IFS`, pide confirmación incluso cuando el resto del comando es de solo lectura.278* **Escrituras en variables especiales del shell**: un comando que establece, elimina o itera sobre ciertas variables especiales del shell, como `PATH` o `IFS`, pide confirmación incluso cuando el resto del comando es de solo lectura.

278* **Comandos que el análisis no puede procesar**: cuando Claude Code no puede analizar completamente un comando, pide aprobación en lugar de tratarlo como de solo lectura. Los comandos de más de 10,000 caracteres siempre piden confirmación porque exceden lo que el análisis procesa.279* **Comandos que el análisis no puede procesar**: cuando Claude Code no puede analizar completamente un comando, pide aprobación en lugar de tratarlo como de solo lectura. Los comandos de más de 10,000 caracteres siempre piden confirmación porque exceden lo que el análisis procesa.

Details

279* **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`279* **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`

280* **Tu hook lanza una excepción o agota el tiempo**: Claude Code lo omite y envía el prompt. [Agrega un manejador `.catch`](#handle-a-hook-that-fails) para que un fallo no envíe un prompt que el hook habría detenido.280* **Tu hook lanza una excepción o agota el tiempo**: Claude Code lo omite y envía el prompt. [Agrega un manejador `.catch`](#handle-a-hook-that-fails) para que un fallo no envíe un prompt que el hook habría detenido.

281 281 

282[Otros eventos](https://code.claude.com/docs/es/plugins/mods/reference.md#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](https://code.claude.com/docs/es/prompt-caching.md). En un hook `skill.prompt`, también puedes leer [de qué plugin o archivo proviene el skill](https://code.claude.com/docs/es/plugins/mods/reference.md#skill-prompt-fields).282[Otros eventos](https://code.claude.com/docs/es/plugins/mods/reference.md#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. Para cambiar una sección después de que una conversación ha comenzado, consulta [Enviar una sección del prompt del sistema o una descripción de herramienta modificadas](https://code.claude.com/docs/es/plugins/mods/reference.md#break-prompt-cache). En un hook `skill.prompt`, también puedes leer [de qué plugin o archivo proviene el skill](https://code.claude.com/docs/es/plugins/mods/reference.md#skill-prompt-fields).

283 283 

284### Seguir un turno284### Seguir un turno

285 285 

Details

197>197>

198> Para dibujar en la franja, filtra por `{ component: 'AbovePrompt' }`.198> Para dibujar en la franja, filtra por `{ component: 'AbovePrompt' }`.

199 199 

200Un mod también puede [colocar una fila propia en la transcripción](#place-a-row-in-the-transcript).

201 

200### Cambia lo que Claude Code ya dibuja202### Cambia lo que Claude Code ya dibuja

201 203 

202Claude Code dibuja por sí mismo la mayor parte de su interfaz: mensajes, filas de llamadas a herramientas, el spinner y más. Cada una de esas partes también es un punto de renderizado, así que un mod puede cambiar su estilo o reemplazarla. Para cambiar una, filtra tu hook `ui.render` por su nombre de esta tabla:204Claude Code dibuja por sí mismo la mayor parte de su interfaz: mensajes, filas de llamadas a herramientas, el spinner y más. Cada una de esas partes también es un punto de renderizado, así que un mod puede cambiar su estilo o reemplazarla. Para cambiar una, filtra tu hook `ui.render` por su nombre de esta tabla:


349* **Sugerencias de prompt**: `$.prompt.suggest` se resuelve con `isShown: false` y no muestra nada, porque el panel reserva el texto de sugerencia atenuado del cuadro del prompt para las sugerencias propias de Claude.351* **Sugerencias de prompt**: `$.prompt.suggest` se resuelve con `isShown: false` y no muestra nada, porque el panel reserva el texto de sugerencia atenuado del cuadro del prompt para las sugerencias propias de Claude.

350* **Límites de texto**: el panel corta una línea de estado a los 200 caracteres o dos filas, y un toast a los 500 caracteres.352* **Límites de texto**: el panel corta una línea de estado a los 200 caracteres o dos filas, y un toast a los 500 caracteres.

351 353 

354### Coloca una fila en la transcripción

355 

356Una fila es una línea que tu mod agrega a la transcripción en la terminal, después del mensaje más reciente. Permanece en ese lugar a medida que avanza la conversación, y Claude no la ve. `$.ui.place` requiere Claude Code v2.1.314 o posterior.

357 

358**1. Coloca la fila**

359 

360Llama a [`$.ui.place`](https://code.claude.com/docs/es/plugins/mods/reference#mods-api-methods) con un `id`. El `id` es un nombre que inventas para la fila, como `build-status`. Puede tener de 1 a 64 letras, dígitos, `_` o `-`, y cada fila que tu mod tenga en la transcripción necesita el suyo.

361 

362**2. Dibuja la fila**

363 

364Dibuja la fila en el punto de renderizado [`Placed`](https://code.claude.com/docs/es/plugins/mods/reference#render-sites).

365 

366Este ejemplo agrega un comando `/build-status`. Cuando el usuario ejecuta el comando, el mod agrega una fila que muestra `Build: passing`. El texto es fijo para que el ejemplo sea breve, así que un mod real dibujaría su propio resultado:

367 

368```javascript theme={null}

369export function register(on) {

370 on('session.start', async ($, e, next) => {

371 await $.command.register({ name: 'build-status', description: 'Show the build status' })

372 return next(e)

373 })

374 

375 on('command.run', { command: 'build-status' }, async ($) => {

376 const placed = await $.ui.place({ id: 'build-status' })

377 // Where nothing draws the row, reply with text instead

378 return placed.isPlaced ? {} : { text: 'Build: passing' }

379 })

380 

381 on('ui.render', { component: 'Placed' }, async ($, e, next) => {

382 // This hook runs for every mod's rows, and another mod can use the same id

383 if (e.props.plugin !== $.plugin.name || e.props.id !== 'build-status') return next(e)

384 const { Text } = $.ui.resolve(e)

385 return Text({ children: ['Build: passing'] })

386 })

387}

388```

389 

390Para probar el ejemplo, coloca este código en un [mod](https://code.claude.com/docs/es/plugins/mods/create.md). En una sesión de terminal, ejecuta `/build-status` en el prompt de Claude Code. `Build: passing` aparece como una fila al final de la transcripción.

391 

392La llamada no siempre muestra una fila, y una fila puede desaparecer más tarde, así que contempla estos casos en tu mod:

393 

394* **El resultado**: `{ isPlaced: true, requestId }` cuando la terminal dibuja la fila. De lo contrario, `isPlaced` es `false` y `reason` explica el motivo, como en `no attached surface draws placed rows yet`. Uno de los motivos es el [límite de filas](https://code.claude.com/docs/es/plugins/mods/reference.md#limits) que un mod puede tener a la vez.

395* **Una segunda llamada con el mismo `id`**: mientras la primera fila siga en la transcripción, la llamada no agrega ninguna fila y se resuelve con el `requestId` de esa fila. Para cambiar lo que muestra la fila, [vuelve a dibujar la fila](#redraw-when-something-changes).

396* **Cuándo desaparece la fila**: cuando termina la conversación, cuando el usuario retrocede a un punto anterior a la fila o, fuera del [renderizado en pantalla completa](https://code.claude.com/docs/es/fullscreen.md), cuando se compacta la conversación. `--resume` no restaura la fila. Para volver a mostrar la fila, llama a `$.ui.place` de nuevo.

397 

398### Pon un fondo detrás de la conversación

399 

400> [!NOTE]

401>

402> `$.theme.set` y `$.theme.clear` reemplazan a `$.ui.backdrop`, que Claude Code v2.1.319 eliminó. Cambia `$.ui.backdrop({ id: 'your-backdrop' })` por `$.theme.set({ backdrop: { id: 'your-backdrop' } })`, y `$.ui.backdrop(undefined)` por `$.theme.clear()`, que quita el fondo de cualquier mod.

403 

404Para poner un fondo detrás de la conversación en la aplicación Desktop o en la aplicación móvil, llama a [`$.theme.set`](https://code.claude.com/docs/es/plugins/mods/reference#mods-api-methods) con un `backdrop` y luego dibuja el fondo en el punto de renderizado [`Backdrop`](https://code.claude.com/docs/es/plugins/mods/reference#render-sites). Para quitar el fondo, llama a `$.theme.clear()`. La terminal no dibuja ningún fondo. `$.theme.set` y `$.theme.clear` requieren Claude Code v2.1.319 o posterior.

405 

406Este mod establece un fondo cuando se inicia la sesión, dibuja el fondo y agrega un comando `/plain` que quita el fondo:

407 

408```javascript theme={null}

409export function register(on) {

410 // Neither a reload of this mod nor --resume keeps the backdrop, so set it here

411 on('session.start', async ($, e, next) => {

412 await $.theme.set({ backdrop: { id: 'night-sky', colorScheme: 'dark' } })

413 await $.command.register({ name: 'plain', description: 'Take the backdrop off' })

414 return next(e)

415 })

416 

417 on('ui.render', { component: 'Backdrop' }, async ($, e, next) => {

418 // This hook runs for every mod's backdrop, and another mod can use the same id

419 if (e.props.plugin !== $.plugin.name || e.props.id !== 'night-sky') return next(e)

420 const { Box, Text } = $.ui.resolve(e)

421 return Box({ backgroundColor: 'blue', children: [Text({ children: ['Night sky'] })] })

422 })

423 

424 on('command.run', { command: 'plain' }, async ($) => {

425 const cleared = await $.theme.clear()

426 return { text: cleared.reason }

427 })

428}

429```

430 

431Para probar el ejemplo, coloca este código en un [mod](https://code.claude.com/docs/es/plugins/mods/create.md) e inicia una sesión en la aplicación Desktop o en la aplicación móvil. Para quitar el fondo, ejecuta `/plain` en el prompt de Claude Code. La transcripción muestra `the theme is cleared` después del nombre del mod, como en `night-sky: the theme is cleared` para un mod llamado `night-sky`.

432 

433Comprueba qué acepta `backdrop`, qué te indica el resultado de la llamada y qué pueden cambiar otros mods:

434 

435* **Los campos de `backdrop`**: `id`, un [nombre](https://code.claude.com/docs/es/plugins/mods/reference.md#limits) que eliges, es obligatorio, y los demás campos son opcionales. `colorScheme` es `'light'` o `'dark'` e indica si tu dibujo es claro u oscuro. Para `glass`, consulta [los tipos para tu compilación](https://code.claude.com/docs/es/plugins/mods/create.md#get-the-types-for-your-build).

436* **Si se dibuja el fondo**: `$.theme.set` se resuelve con `isDrawn: true` cuando una aplicación Desktop o móvil conectada a la sesión indica que dibuja fondos. De lo contrario, `isDrawn` es `false` y `reason` explica el motivo.

437* **Un fondo por sesión**: una llamada a `$.theme.set` reemplaza el fondo de la sesión y `$.theme.clear()` quita ese fondo, sin importar qué mod lo haya establecido. Llama a `$.theme.clear()` solo cuando el usuario lo pida.

438 

352## Construye un árbol a partir de elementos439## Construye un árbol a partir de elementos

353 440 

354Lo que devuelve un hook `ui.render` es un árbol de elementos: una descripción de lo que se debe dibujar, hecha de cajas, texto y controles anidados unos dentro de otros. Tú describes el dibujo, y Claude Code lo renderiza en la aplicación que el usuario tenga abierta: la terminal, la aplicación Desktop o la extensión de VS Code.441Lo que devuelve un hook `ui.render` es un árbol de elementos: una descripción de lo que se debe dibujar, hecha de cajas, texto y controles anidados unos dentro de otros. Tú describes el dibujo, y Claude Code lo renderiza en la aplicación que el usuario tenga abierta: la terminal, la aplicación Desktop o la extensión de VS Code.

Details

57| :- | :- | :- |57| :- | :- | :- |

58| [`tool.call`](https://code.claude.com/docs/es/plugins/mods/events#guard-or-change-a-tool-call) | Una herramienta está a punto de ejecutarse | `next(e)`, `{ deny: reason }` o `{ result }` |58| [`tool.call`](https://code.claude.com/docs/es/plugins/mods/events#guard-or-change-a-tool-call) | Una herramienta está a punto de ejecutarse | `next(e)`, `{ deny: reason }` o `{ result }` |

59| [`tool.check`](https://code.claude.com/docs/es/plugins/mods/events#where-settings-hooks-run-in-the-order) | Claude Code decide si una llamada a herramienta puede ejecutarse, después de los hooks `tool.call` y `PreToolUse`. `next(e)` se resuelve en la decisión a la que llegaron las reglas, el modo de permisos y esos hooks. | `next(e)` o `{ decision }`, con `decision` establecido en `allow`, `ask` o `deny` y un `reason` opcional |59| [`tool.check`](https://code.claude.com/docs/es/plugins/mods/events#where-settings-hooks-run-in-the-order) | Claude Code decide si una llamada a herramienta puede ejecutarse, después de los hooks `tool.call` y `PreToolUse`. `next(e)` se resuelve en la decisión a la que llegaron las reglas, el modo de permisos y esos hooks. | `next(e)` o `{ decision }`, con `decision` establecido en `allow`, `ask` o `deny` y un `reason` opcional |

60| `tool.describe` | Una vez por cada herramienta, cuando su descripción se envía por primera vez a Claude. Una segunda vez para una herramienta MCP cuando Claude la carga mediante la [búsqueda de herramientas](https://code.claude.com/docs/es/mcp.md#scale-with-mcp-tool-search), con `e.description` establecido en el texto que lee Claude para la herramienta cargada. | `{ description }`, opcionalmente con `isDeferred` establecido en `true` para poner la herramienta detrás de la búsqueda de herramientas o en `false` para cargarla desde el inicio |60| `tool.describe` | Una vez por cada herramienta, cuando su descripción se envía por primera vez a Claude. Una segunda vez para una herramienta MCP cuando Claude la carga mediante la [búsqueda de herramientas](https://code.claude.com/docs/es/mcp.md#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. Agrega [`breakPromptCache: true`](#break-prompt-cache) para enviar una descripción cambiada en el siguiente turno. |

61 61 

62#### Campos de agente y organización en `tool.check`62#### Campos de agente y organización en `tool.check`

63 63 


85| `prompt.edit` | El usuario edita el cuadro del prompt | `next(e)` |85| `prompt.edit` | El usuario edita el cuadro del prompt | `next(e)` |

86| `prompt.autocomplete` | El usuario escribe en el cuadro del prompt y una palabra termina en el cursor. `e.token` es esa palabra. Claude Code no espera al hook: sus propias filas de autocompletado se muestran primero. | `{ suggestions }`, una lista de filas `{ text, label, description }` que se muestran debajo de las propias de Claude Code. Elegir una fila escribe su `text` sobre la palabra. |86| `prompt.autocomplete` | El usuario escribe en el cuadro del prompt y una palabra termina en el cursor. `e.token` es esa palabra. Claude Code no espera al hook: sus propias filas de autocompletado se muestran primero. | `{ suggestions }`, una lista de filas `{ text, label, description }` que se muestran debajo de las propias de Claude Code. Elegir una fila escribe su `text` sobre la palabra. |

87| `prompt.compose` | Claude Code genera un prompt del sistema | `{ sections }`, una lista de `{ id, text, scope }` en el orden en que se envían |87| `prompt.compose` | Claude Code genera un prompt del sistema | `{ sections }`, una lista de `{ id, text, scope }` en el orden en que se envían |

88| [`prompt.section`](https://code.claude.com/docs/es/plugins/mods/events#rewrite-or-add-to-a-prompt) | Una vez por cada sección con nombre del prompt del sistema. `e.name` es el `id` de la sección en `prompt.compose`. | `{ text }`, o `{ text: null }` para omitir la sección |88| [`prompt.section`](https://code.claude.com/docs/es/plugins/mods/events#rewrite-or-add-to-a-prompt) | Una vez por cada sección con nombre del prompt del sistema. `e.name` es el `id` de la sección en `prompt.compose`. | `{ text }`, o `{ text: null }` para omitir la sección. Agrega [`breakPromptCache: true`](#break-prompt-cache) para enviar una sección cambiada en el siguiente turno. |

89| [`prompt.context`](https://code.claude.com/docs/es/plugins/mods/events#rewrite-or-add-to-a-prompt) | Una vez por cada conversación, para el contexto enviado con el primer mensaje | `{ blocks }` |89| [`prompt.context`](https://code.claude.com/docs/es/plugins/mods/events#rewrite-or-add-to-a-prompt) | Una vez por cada conversación, para el contexto enviado con el primer mensaje | `{ blocks }` |

90| `prompt.attachment` | Claude Code agrega un mensaje propio para Claude, como un recordatorio. `e.type` indica el tipo y, para los tipos que declaran las definiciones de tipos, `e.detail` contiene los datos a partir de los cuales se escribió el texto. | `{ text }`, o `{ text: null }` para omitirlo |90| `prompt.attachment` | Claude Code agrega un mensaje propio para Claude, como un recordatorio. `e.type` indica el tipo y, para los tipos que declaran las definiciones de tipos, `e.detail` contiene los datos a partir de los cuales se escribió el texto. | `{ text }`, o `{ text: null }` para omitirlo |

91| `prompt.mention` | Claude Code está a punto de leer un archivo que un prompt menciona con @. Requiere Claude Code v2.1.290 o posterior. | `next({ ...e, path })` para leer un archivo diferente, o `{ deny: reason }` |91| `prompt.mention` | Claude Code está a punto de leer un archivo que un prompt menciona con @. Requiere Claude Code v2.1.290 o posterior. | `next({ ...e, path })` para leer un archivo diferente, o `{ deny: reason }` |


108 108 

109En `skill.prompt`, `e.source`, `e.pluginName`, `e.path`, `e.frontmatter` y `e.frontmatterProblem` requieren Claude Code v2.1.299 o posterior.109En `skill.prompt`, `e.source`, `e.pluginName`, `e.path`, `e.frontmatter` y `e.frontmatterProblem` requieren Claude Code v2.1.299 o posterior.

110 110 

111#### Enviar una sección del prompt del sistema o una descripción de herramienta cambiada con `breakPromptCache`

112 

113Para cambiar una sección o una descripción de herramienta en una conversación en curso, llama a `$.ui.invalidate('prompt.section')` o `$.ui.invalidate('tool.describe')` para que tu hook se ejecute de nuevo. Devuelve `{ text, breakPromptCache: true }` o `{ description, breakPromptCache: true }` desde él. Sin el campo, Claude sigue leyendo el texto [guardado con la conversación](https://code.claude.com/docs/es/cli-reference.md#system-prompt-flags-in-resumed-conversations) para una sección o una herramienta cargada desde el inicio hasta una nueva conversación o una [compactación](https://code.claude.com/docs/es/prompt-caching.md#compacting-the-conversation).

114 

115El texto cambiado llega a Claude en el siguiente turno, y la [caché de prompts](https://code.claude.com/docs/es/prompt-caching.md) empieza de nuevo, por lo que ese turno es más lento y más costoso. El campo requiere Claude Code v2.1.321 o posterior. Desde v2.1.299 hasta v2.1.321, una conversación en curso recibía el texto cambiado en el siguiente turno.

116 

111### Comandos y configuración117### Comandos y configuración

112 118 

113| Evento | Se dispara cuando | Un hook puede devolver |119| Evento | Se dispara cuando | Un hook puede devolver |


212| Espacio de nombres | Métodos |218| Espacio de nombres | Métodos |

213| :- | :- |219| :- | :- |

214| `$.plugin` | `name`, `root`: el nombre y el directorio de este plugin |220| `$.plugin` | `name`, `root`: el nombre y el directorio de este plugin |

215| [`$.ui`](https://code.claude.com/docs/es/plugins/mods/interface#pick-where-to-draw) | `resolve`, `invalidate`, `open`, `close`, `panes`, `focus`, `scroll`, `toast`, `notify`, `status`, `log`, `notice`, `ask`, `copy`, `selection`, `blit` |221| [`$.ui`](https://code.claude.com/docs/es/plugins/mods/interface#pick-where-to-draw) | `resolve`, `invalidate`, `open`, `close`, `panes`, [`place`](https://code.claude.com/docs/es/plugins/mods/interface#place-a-row-in-the-transcript), `focus`, `scroll`, `toast`, `notify`, `status`, `log`, `notice`, `ask`, `copy`, `selection`, `blit`, `view`. `view` requiere Claude Code v2.1.300 o posterior y `place`, v2.1.314 o posterior. |

222| [`$.theme`](https://code.claude.com/docs/es/plugins/mods/interface#put-a-backdrop-behind-the-conversation) | `set`, `clear`: establece un fondo para que lo dibuje la app de escritorio o móvil, y quita el fondo. Requiere Claude Code v2.1.319 o posterior. |

216| [`$.command`](https://code.claude.com/docs/es/plugins/mods/api#add-a-command) | `register`, `run`, `list` |223| [`$.command`](https://code.claude.com/docs/es/plugins/mods/api#add-a-command) | `register`, `run`, `list` |

217| [`$.tool`](https://code.claude.com/docs/es/plugins/mods/api#add-a-tool) | `register`, `call`, `check`, `list` |224| [`$.tool`](https://code.claude.com/docs/es/plugins/mods/api#add-a-tool) | `register`, `call`, `check`, `list` |

218| `$.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. |225| `$.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. |


243| :- | :- | :- | :- |250| :- | :- | :- | :- |

244| [`Pane`](https://code.claude.com/docs/es/plugins/mods/interface#pick-where-to-draw) | `title`, `isFocused`, `bodyColumns`, `placement`, `scroll`, `view` | El `id` del panel | Terminal, Desktop, VS Code |251| [`Pane`](https://code.claude.com/docs/es/plugins/mods/interface#pick-where-to-draw) | `title`, `isFocused`, `bodyColumns`, `placement`, `scroll`, `view` | El `id` del panel | Terminal, Desktop, VS Code |

245| [`AbovePrompt`](https://code.claude.com/docs/es/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`, `isWorking`, `maxRows`, `bodyColumns`, `scroll`, `view` | Una instancia | Terminal, Desktop |252| [`AbovePrompt`](https://code.claude.com/docs/es/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`, `isWorking`, `maxRows`, `bodyColumns`, `scroll`, `view` | Una instancia | Terminal, Desktop |

253| [`Placed`](https://code.claude.com/docs/es/plugins/mods/interface#place-a-row-in-the-transcript) | `id`, `plugin`, `onScreen` | El `requestId` que devolvió `$.ui.place` | Terminal |

254| [`Backdrop`](https://code.claude.com/docs/es/plugins/mods/interface#put-a-backdrop-behind-the-conversation) | `id`, `plugin`, `glass`, `colorScheme` | `backdrop` | Superficies `desktop` y `mobile`. Tu hook se ejecuta cuando la app Desktop o la app móvil solicita dibujar un fondo. |

246| `UserMessage` | `text`, `origin`, `isExpanded`, y `task` o `from` según el origen | El id del mensaje | Terminal, Desktop, VS Code |255| `UserMessage` | `text`, `origin`, `isExpanded`, y `task` o `from` según el origen | El id del mensaje | Terminal, Desktop, VS Code |

247| `AssistantMessage` | El texto de la respuesta | El id del mensaje | Terminal, Desktop, VS Code |256| `AssistantMessage` | El texto de la respuesta | El id del mensaje | Terminal, Desktop, VS Code |

248| `ToolUse`, `ToolResult`, `ToolGroup` | El nombre, la entrada y el resultado de la herramienta | El id de la llamada a herramienta | Terminal, Desktop, VS Code |257| `ToolUse`, `ToolResult`, `ToolGroup` | El nombre, la entrada y el resultado de la herramienta | El id de la llamada a herramienta | Terminal, Desktop, VS Code |


399| 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. |408| 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. |

400| `$.ui.toast` | Se muestra durante 4 segundos a menos que pases `{ timeoutMs }`. En el [renderizador clásico](https://code.claude.com/docs/es/fullscreen.md#enable-fullscreen-rendering), un toast más reciente de un mod puede [ocupar el lugar de uno anterior del mismo mod](https://code.claude.com/docs/es/plugins/mods/troubleshoot.md#a-toast-doesn’t-appear) que se está mostrando o esperando para mostrarse. |409| `$.ui.toast` | Se muestra durante 4 segundos a menos que pases `{ timeoutMs }`. En el [renderizador clásico](https://code.claude.com/docs/es/fullscreen.md#enable-fullscreen-rendering), un toast más reciente de un mod puede [ocupar el lugar de uno anterior del mismo mod](https://code.claude.com/docs/es/plugins/mods/troubleshoot.md#a-toast-doesn’t-appear) que se está mostrando o esperando para mostrarse. |

401| 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 |410| 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 |

411| Filas de `$.ui.place` que un mod tiene en una conversación al mismo tiempo | 500. En el límite, una llamada con un `id` nuevo se resuelve como `{ isPlaced: false, reason: 'a plugin holds at most 500 placed rows' }`. |

402| Profundidad de anidamiento de los argumentos de una llamada a la API de mods | 28,000 niveles. A partir de ahí, la llamada se rechaza con un mensaje que termina en `nesting deeper than 28000 levels is not supported`. Requiere Claude Code v2.1.299 o posterior. |412| Profundidad de anidamiento de los argumentos de una llamada a la API de mods | 28,000 niveles. A partir de ahí, la llamada se rechaza con un mensaje que termina en `nesting deeper than 28000 levels is not supported`. Requiere Claude Code v2.1.299 o posterior. |

403| Profundidad de anidamiento de un evento modificado que se pasa a `next`, fuera de los [hooks de generador asíncrono](#events) como uno en `turn.step` | 28,000 niveles. A partir de ahí, `next` se rechaza con un mensaje que termina en `nesting deeper than 28000 levels is not supported`. Requiere Claude Code v2.1.299 o posterior. |413| Profundidad de anidamiento de un evento modificado que se pasa a `next`, fuera de los [hooks de generador asíncrono](#events) como uno en `turn.step` | 28,000 niveles. A partir de ahí, `next` se rechaza con un mensaje que termina en `nesting deeper than 28000 levels is not supported`. Requiere Claude Code v2.1.299 o posterior. |

404| Profundidad de anidamiento del valor de retorno de un hook, fuera de `ui.render`, `ui.resolve` y los hooks de generador asíncrono | 28,000 niveles. A partir de ahí, se rechaza el resultado del hook, y [la notificación que lo informa](https://code.claude.com/docs/es/plugins/mods/troubleshoot.md#find-out-why-a-mod-does-nothing) incluye `nesting deeper than 28000 levels is not supported`. Requiere Claude Code v2.1.299 o posterior. |414| Profundidad de anidamiento del valor de retorno de un hook, fuera de `ui.render`, `ui.resolve` y los hooks de generador asíncrono | 28,000 niveles. A partir de ahí, se rechaza el resultado del hook, y [la notificación que lo informa](https://code.claude.com/docs/es/plugins/mods/troubleshoot.md#find-out-why-a-mod-does-nothing) incluye `nesting deeper than 28000 levels is not supported`. Requiere Claude Code v2.1.299 o posterior. |

405| Alcances, como funciones, bloques y bucles, anidados unos dentro de otros en un archivo de un módulo de hooks | 2,000 |415| Alcances, como funciones, bloques y bucles, anidados unos dentro de otros en un archivo de un módulo de hooks | 2,000 |

406| Nombres de comandos, herramientas, tipos de subagente y paneles | Letras, dígitos, `_` y `-`, hasta 64 caracteres |416| Nombres de comandos, herramientas, tipos de subagente y paneles, y el `id` de una fila colocada o de un fondo | Letras, dígitos, `_` y `-`, hasta 64 caracteres |

407| Una prueba de `claude plugin test` | 5 segundos a menos que la prueba establezca `timeoutMs` |417| Una prueba de `claude plugin test` | 5 segundos a menos que la prueba establezca `timeoutMs` |

408 418 

409## Configuración y variables de entorno419## Configuración y variables de entorno

Details

33Dos ajustes no aparecen en la tabla de capas, pero aun así afectan lo que permanece en caché:33Dos ajustes no aparecen en la tabla de capas, pero aun así afectan lo que permanece en caché:

34 34 

35* **Modelo**: cada modelo tiene su propia caché. Cambiar de modelo recalcula toda la solicitud incluso cuando el contenido es idéntico. Consulta [Cambiar de modelo](#switching-models) a continuación.35* **Modelo**: cada modelo tiene su propia caché. Cambiar de modelo recalcula toda la solicitud incluso cuando el contenido es idéntico. Consulta [Cambiar de modelo](#switching-models) a continuación.

36* **Nivel de esfuerzo**: en la mayoría de los modelos, cada nivel de esfuerzo tiene su propia caché, por lo que cambiar el esfuerzo a mitad de sesión recalcula toda la solicitud. En Opus 5.5, Sonnet 5.5, Haiku 5.5 y Fable 5.1 con una clave de API o una suscripción de Claude, la caché permanece intacta de forma predeterminada. Consulta [Cambiar el nivel de esfuerzo](#changing-effort-level) a continuación.36* **Nivel de esfuerzo**: en la mayoría de los modelos, cada nivel de esfuerzo tiene su propia caché, por lo que cambiar el esfuerzo a mitad de sesión recalcula toda la solicitud. Con una clave de API o una suscripción de Claude, la caché permanece intacta de forma predeterminada en Fable 5.1 y posteriores, Opus 5.5, Sonnet 5.5 y Haiku 5.5. Consulta [Cambiar el nivel de esfuerzo](#changing-effort-level) a continuación.

37 37 

38> [!TIP]38> [!TIP]

39>39>


94 94 

95En la mayoría de los modelos, cambiar el [nivel de esfuerzo](https://code.claude.com/docs/es/model-config.md#adjust-effort-level) a mitad de sesión significa que la siguiente solicitud lee todo el historial de conversación sin aciertos de caché. Mientras la caché aún está activa, Claude Code te pide que confirmes el cambio primero.95En la mayoría de los modelos, cambiar el [nivel de esfuerzo](https://code.claude.com/docs/es/model-config.md#adjust-effort-level) a mitad de sesión significa que la siguiente solicitud lee todo el historial de conversación sin aciertos de caché. Mientras la caché aún está activa, Claude Code te pide que confirmes el cambio primero.

96 96 

97En Opus 5.5, Sonnet 5.5, Haiku 5.5 y Fable 5.1 con una clave de API o una suscripción a Claude, mantienes la caché cuando cambias el esfuerzo. Claude Code [aplica el nuevo nivel](https://code.claude.com/docs/es/model-config.md#when-a-new-effort-level-starts) sin preguntar. En Amazon Bedrock, en Agent Platform de Google Cloud o en un [gateway de aplicaciones de Claude](https://code.claude.com/docs/es/claude-apps-gateway), o cuando estableces [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](https://code.claude.com/docs/es/llm-gateway-protocol#disable-pre-release-capabilities) o tu organización tiene una configuración HIPAA, funciona como en la mayoría de los modelos.97Con una clave de API o una suscripción a Claude, cambiar el esfuerzo mantiene la caché en Fable 5.1 y posteriores, Opus 5.5, Sonnet 5.5 y Haiku 5.5. Claude Code [aplica el nuevo nivel](https://code.claude.com/docs/es/model-config.md#when-a-new-effort-level-starts) sin preguntar. En Amazon Bedrock, en Agent Platform de Google Cloud o en un [gateway de aplicaciones de Claude](https://code.claude.com/docs/es/claude-apps-gateway), o cuando estableces [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](https://code.claude.com/docs/es/llm-gateway-protocol#disable-pre-release-capabilities) o tu organización tiene una configuración HIPAA, funciona como en la mayoría de los modelos.

98 98 

99Antes de v2.1.260, cambiar el esfuerzo en Fable 5.1 con una clave de API o una suscripción a Claude también invalidaba la caché.99Antes de v2.1.260, cambiar el esfuerzo en Fable 5.1 con una clave de API o una suscripción a Claude también invalidaba la caché.

100 100 

Details

49> claude remote-control49> claude remote-control

50> ```50> ```

51>51>

52> `claude rc` es un alias de este comando.

53>

52> Hasta que acepte la confirmación única de Remote Control, `claude remote-control` explica qué hace y pregunta `Enable Remote Control? (y/n)` antes de iniciar el servidor. Responda `y` para aceptar e iniciar el servidor. Si rechaza, Claude Code sale sin iniciar el servidor y pregunta nuevamente la próxima vez que ejecute el comando.54> Hasta que acepte la confirmación única de Remote Control, `claude remote-control` explica qué hace y pregunta `Enable Remote Control? (y/n)` antes de iniciar el servidor. Responda `y` para aceptar e iniciar el servidor. Si rechaza, Claude Code sale sin iniciar el servidor y pregunta nuevamente la próxima vez que ejecute el comando.

53>55>

54> El proceso sigue ejecutándose en tu terminal en modo servidor, esperando conexiones remotas. Muestra una URL que puedes usar para [conectarte desde otro dispositivo](#connect-from-another-device), y puedes presionar la barra espaciadora para mostrar un código QR para acceso rápido desde tu teléfono. Mientras una sesión remota está activa, la terminal muestra el estado de la conexión y la actividad de las herramientas.56> El proceso sigue ejecutándose en tu terminal en modo servidor, esperando conexiones remotas. Muestra una URL que puedes usar para [conectarte desde otro dispositivo](#connect-from-another-device), y puedes presionar la barra espaciadora para mostrar un código QR para acceso rápido desde tu teléfono. Mientras una sesión remota está activa, la terminal muestra el estado de la conexión y la actividad de las herramientas.


462* **Tu plan de claude.ai es Pro, Max o Ultra**: Claude Code aún tiene la sesión iniciada bajo una organización de Team o Enterprise de un inicio de sesión anterior, por lo que verifica la política de Remote Control de esa organización. Ejecuta `/status` para ver qué plan y organización utiliza tu inicio de sesión. Ejecuta `claude auth logout` y luego `claude auth login` para iniciar sesión nuevamente bajo tu plan actual.464* **Tu plan de claude.ai es Pro, Max o Ultra**: Claude Code aún tiene la sesión iniciada bajo una organización de Team o Enterprise de un inicio de sesión anterior, por lo que verifica la política de Remote Control de esa organización. Ejecuta `/status` para ver qué plan y organización utiliza tu inicio de sesión. Ejecuta `claude auth logout` y luego `claude auth login` para iniciar sesión nuevamente bajo tu plan actual.

463* **El mensaje no dice que contactes al administrador de tu organización**: tu organización tiene aplicada la [configuración HIPAA](https://code.claude.com/docs/es/hipaa-setup.md), que desactiva Remote Control. Para confirmarlo, ejecuta `/status` y busca `HIPAA` en la línea `Organization configuration`. Un propietario ve el conmutador **Remote Control** atenuado en la [configuración de administración](https://claude.ai/admin-settings/claude-code) y no puede activarlo. Si tienes preguntas sobre la configuración, consulta a un propietario, quien puede ponerse en contacto con el equipo de cuenta de Anthropic de tu organización. Antes de v2.1.267, este caso mostraba "Remote Control isn't available for your organization due to its compliance policy" en su lugar.465* **El mensaje no dice que contactes al administrador de tu organización**: tu organización tiene aplicada la [configuración HIPAA](https://code.claude.com/docs/es/hipaa-setup.md), que desactiva Remote Control. Para confirmarlo, ejecuta `/status` y busca `HIPAA` en la línea `Organization configuration`. Un propietario ve el conmutador **Remote Control** atenuado en la [configuración de administración](https://claude.ai/admin-settings/claude-code) y no puede activarlo. Si tienes preguntas sobre la configuración, consulta a un propietario, quien puede ponerse en contacto con el equipo de cuenta de Anthropic de tu organización. Antes de v2.1.267, este caso mostraba "Remote Control isn't available for your organization due to its compliance policy" en su lugar.

464* **Remote Control funciona para otros miembros de tu organización pero no para ti**: si tu organización Enterprise administra tu acceso con [roles personalizados](https://support.claude.com/en/articles/13930452), tus roles pueden ser la causa. Remote Control necesita tanto el permiso de sesiones en la nube como el permiso **Claude Code remote control**. Pide a un propietario que verifique si tus roles incluyen ambos y que agregue lo que falte en [**Organization settings > Roles**](https://claude.ai/admin-settings/roles).466* **Remote Control funciona para otros miembros de tu organización pero no para ti**: si tu organización Enterprise administra tu acceso con [roles personalizados](https://support.claude.com/en/articles/13930452), tus roles pueden ser la causa. Remote Control necesita tanto el permiso de sesiones en la nube como el permiso **Claude Code remote control**. Pide a un propietario que verifique si tus roles incluyen ambos y que agregue lo que falte en [**Organization settings > Roles**](https://claude.ai/admin-settings/roles).

467* **Un propietario ve un banner de [Zero Data Retention](https://code.claude.com/docs/es/zero-data-retention.md) en la [configuración de administración](https://claude.ai/admin-settings/claude-code)**: Remote Control no está disponible para tu organización, y un propietario no puede activarlo.

465* **De lo contrario, un propietario no lo ha habilitado para tu organización**: Remote Control está desactivado de forma predeterminada en planes de Team y Enterprise. Un propietario puede habilitarlo en [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) activando el conmutador **Remote Control**. Este conmutador es un ajuste de organización del lado del servidor.468* **De lo contrario, un propietario no lo ha habilitado para tu organización**: Remote Control está desactivado de forma predeterminada en planes de Team y Enterprise. Un propietario puede habilitarlo en [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) activando el conmutador **Remote Control**. Este conmutador es un ajuste de organización del lado del servidor.

466 469 

467Antes de v2.1.281, este mensaje también aparecía cuando Claude Code no había cargado la política de tu organización en esta máquina, por ejemplo después de iniciar sin conexión. Las versiones posteriores informan ese estado como [`Couldn't verify your organization's policy for remote control`](#couldnt-verify-your-organizations-policy-for-remote-control) en su lugar.470Antes de v2.1.281, este mensaje también aparecía cuando Claude Code no había cargado la política de tu organización en esta máquina, por ejemplo después de iniciar sin conexión. Las versiones posteriores informan ese estado como [`Couldn't verify your organization's policy for remote control`](#couldnt-verify-your-organizations-policy-for-remote-control) en su lugar.

Details

154| :- | :- |154| :- | :- |

155| `CLAUDE_RUNNER_REPO_URL` | URL del repositorio a clonar, después de que se hayan aplicado `--git-host-rewrite` y `--git-ssh-rewrite` |155| `CLAUDE_RUNNER_REPO_URL` | URL del repositorio a clonar, después de que se hayan aplicado `--git-host-rewrite` y `--git-ssh-rewrite` |

156| `CLAUDE_RUNNER_REPO_REF` | Revisión a extraer, tal como la sesión la solicitó: una rama, una etiqueta, un SHA de commit o un nombre de referencia completo como `refs/heads/<branch>` o `refs/pull/<number>/head`. Vacío significa la rama predeterminada del repositorio. |156| `CLAUDE_RUNNER_REPO_REF` | Revisión a extraer, tal como la sesión la solicitó: una rama, una etiqueta, un SHA de commit o un nombre de referencia completo como `refs/heads/<branch>` o `refs/pull/<number>/head`. Vacío significa la rama predeterminada del repositorio. |

157| `CLAUDE_RUNNER_CHECKOUT_PATH` | Ruta absoluta donde el árbol de trabajo debe dejarse |157| `CLAUDE_RUNNER_CHECKOUT_PATH` | Ruta absoluta donde el árbol de trabajo debe dejarse. Consulta [Nombres de las carpetas de checkout](#checkout-folder-names). |

158| `CLAUDE_RUNNER_SESSION_ID` | ID de sesión en forma etiquetada `session_...`, para registro y correlación |158| `CLAUDE_RUNNER_SESSION_ID` | ID de sesión en forma etiquetada `session_...`, para registro y correlación |

159| `CLAUDE_RUNNER_SESSION_UUID` | El mismo ID de sesión en forma UUID canónica |159| `CLAUDE_RUNNER_SESSION_UUID` | El mismo ID de sesión en forma UUID canónica |

160| `CLAUDE_RUNNER_API_BASE_URL` | URL base de API de Anthropic para llamadas limitadas a sesión |160| `CLAUDE_RUNNER_API_BASE_URL` | URL base de API de Anthropic para llamadas limitadas a sesión |


166 166 

167Después de que tu hook regresa, el ejecutor verifica que `CLAUDE_RUNNER_CHECKOUT_PATH` contenga un `.git`. Si tu hook materializa una fuente no git como Perforce o un tarball desempaquetado, establece `CLAUDE_RUNNER_SKIP_GIT_VERIFY=1` en el entorno del ejecutor para omitir esa verificación. Los flujos basados en git como la creación de la rama de trabajo y el envío de resultados requieren un checkout de git, así que exporta los resultados de copias no git con un [hook `post-session`](#post-session).167Después de que tu hook regresa, el ejecutor verifica que `CLAUDE_RUNNER_CHECKOUT_PATH` contenga un `.git`. Si tu hook materializa una fuente no git como Perforce o un tarball desempaquetado, establece `CLAUDE_RUNNER_SKIP_GIT_VERIFY=1` en el entorno del ejecutor para omitir esa verificación. Los flujos basados en git como la creación de la rama de trabajo y el envío de resultados requieren un checkout de git, así que exporta los resultados de copias no git con un [hook `post-session`](#post-session).

168 168 

169#### Nombres de las carpetas de checkout

170 

171`CLAUDE_RUNNER_CHECKOUT_PATH` termina en una carpeta llamada `<repo-owner>-<repo>`, como `acme-api`. Dos repositorios de una sesión no pueden compartir una carpeta, incluso cuando sus nombres difieren solo en mayúsculas y minúsculas. Por ejemplo, si una sesión enumera `acme/api` y luego `Acme/API`, el primero obtiene `acme-api` y el segundo obtiene `Acme-API-2`.

172 

169#### Obtener credenciales de git en el hook173#### Obtener credenciales de git en el hook

170 174 

171El ejecutor no pasa una credencial git al hook. El subcomando `decode-token` tampoco está disponible aquí, porque `CLAUDE_RUNNER_CLAUDE_BIN` no se establece en el entorno del hook de checkout. En su lugar, genera una credencial de clon por sesión a partir de la identidad de la sesión, o recurre a la autenticación git propia del host:175El ejecutor no pasa una credencial git al hook. El subcomando `decode-token` tampoco está disponible aquí, porque `CLAUDE_RUNNER_CLAUDE_BIN` no se establece en el entorno del hook de checkout. En su lugar, genera una credencial de clon por sesión a partir de la identidad de la sesión, o recurre a la autenticación git propia del host:

Details

22* **Mantén las credenciales de GitHub del host lejos de las sesiones**: Claude puede usar cualquier credencial de GitHub que una sesión pueda leer, con el acceso que esa credencial otorgue. Mantén las credenciales de GitHub de alcance amplio del propio host del runner fuera de todo lo que una sesión pueda leer. Una credencial así puede ser un token de acceso personal, el token que `gh auth login` guarda para tu cuenta, o un `GH_TOKEN` en el entorno del runner.22* **Mantén las credenciales de GitHub del host lejos de las sesiones**: Claude puede usar cualquier credencial de GitHub que una sesión pueda leer, con el acceso que esa credencial otorgue. Mantén las credenciales de GitHub de alcance amplio del propio host del runner fuera de todo lo que una sesión pueda leer. Una credencial así puede ser un token de acceso personal, el token que `gh auth login` guarda para tu cuenta, o un `GH_TOKEN` en el entorno del runner.

23 * **Con [git administrado por Anthropic](#use-the-anthropic-git-proxy)**: con una credencial así, Claude llega a GitHub directamente en lugar de hacerlo a través del git administrado por Anthropic.23 * **Con [git administrado por Anthropic](#use-the-anthropic-git-proxy)**: con una credencial así, Claude llega a GitHub directamente en lugar de hacerlo a través del git administrado por Anthropic.

24 * **Sin git administrado por Anthropic**: una credencial de clonación puede permanecer en la imagen si limitas su alcance tan estrictamente como describe [Incluir la configuración de git en tu imagen](#ship-git-config-in-your-image).24 * **Sin git administrado por Anthropic**: una credencial de clonación puede permanecer en la imagen si limitas su alcance tan estrictamente como describe [Incluir la configuración de git en tu imagen](#ship-git-config-in-your-image).

25* **Mantenga el secreto del entorno fuera de los hosts que ejecutan sesiones**: el secreto del entorno puede registrar runners y recoger cualquier sesión en cola en el entorno. En una flota fija vive en cada host de runner, donde el código de cualquier sesión puede leer el archivo secreto. Prefiera [runners bajo demanda](https://code.claude.com/docs/es/self-hosted-environments-configuration.md#on-demand-runners), donde el secreto permanece en el host del orquestador, que nunca ejecuta código de usuario, y cada runner recibe una orden de trabajo de un solo uso que registra exactamente un runner. En una flota fija, trate el archivo de secreto del entorno como legible por cada sesión y rote el secreto después de cualquier compromiso de sesión sospechoso.25* **Mantén el secreto del entorno fuera de los hosts que ejecutan sesiones**: el secreto del entorno puede registrar runners y recoger cualquier sesión en cola en el entorno. En una flota fija vive en cada host de runner, donde el código de cualquier sesión puede leer el archivo secreto. Prefiere [runners bajo demanda](https://code.claude.com/docs/es/self-hosted-environments-configuration.md#on-demand-runners), donde el secreto permanece en el host del orquestador, que nunca ejecuta código de usuario, y cada runner recibe una orden de trabajo de un solo uso que registra exactamente un runner. En una flota fija, trata el archivo de secreto del entorno como legible por cada sesión y rota el secreto después de cualquier compromiso de sesión sospechoso.

26 * **Después de un compromiso sospechoso**: pide a un [Propietario](https://code.claude.com/docs/es/cloud-environments.md#organization-shared-environments) que cree un nuevo secreto y revoque el anterior desde la pestaña **Configuración** del entorno, y luego despliega el nuevo. Anthropic rechaza todos los orquestadores y runners que usen el secreto anterior, incluidos los runners bajo demanda creados a partir de sus órdenes de trabajo. Tus runners salen, lo que interrumpe sus sesiones.

26* **Salida de red de negación predeterminada**: restrinja el tráfico saliente del contenedor de runner y sesión en su propio límite de red en cada entorno; [Salida de negación predeterminada](#default-deny-egress) cubre qué permitir y por qué.27* **Salida de red de negación predeterminada**: restrinja el tráfico saliente del contenedor de runner y sesión en su propio límite de red en cada entorno; [Salida de negación predeterminada](#default-deny-egress) cubre qué permitir y por qué.

27* **IAM de host con privilegios mínimos**: la identidad de cálculo adjunta al host del runner, como un perfil de instancia o una cuenta de servicio de nodo, debe otorgar solo lo que el runner en sí necesita. Las sesiones deben obtener sus propias credenciales a través de su script de envoltura en lugar de heredar las del host.28* **IAM de host con privilegios mínimos**: la identidad de cálculo adjunta al host del runner, como un perfil de instancia o una cuenta de servicio de nodo, debe otorgar solo lo que el runner en sí necesita. Las sesiones deben obtener sus propias credenciales a través de su script de envoltura en lugar de heredar las del host.

28* **Bloquee el punto final de metadatos en la nube desde las sesiones**: mantener las sesiones fuera de la identidad del host requiere bloquear su acceso al punto final de metadatos en la nube, y las políticas de salida a nivel de subred no interceptan el tráfico de metadatos de enlace local, así que bloquéelo en el contenedor en sí:29* **Bloquee el punto final de metadatos en la nube desde las sesiones**: mantener las sesiones fuera de la identidad del host requiere bloquear su acceso al punto final de metadatos en la nube, y las políticas de salida a nivel de subred no interceptan el tráfico de metadatos de enlace local, así que bloquéelo en el contenedor en sí:


203> [!WARNING]204> [!WARNING]

204>205>

205> Con `--use-anthropic-git-proxy` establecido, el runner elimina y reemplaza la configuración global de git del usuario con el que se ejecuta, y no guarda ninguna copia de seguridad. Lo hace al inicio y antes de cada sesión. Cualquier inicio de sesión o ayudante de credenciales que tuvieras ahí se pierde. Los ajustes que escribe [`--configure-git`](#let-the-runner-configure-git) se conservan. Ejecuta el runner como un usuario dedicado o en un contenedor, nunca como tu propio usuario.206> Con `--use-anthropic-git-proxy` establecido, el runner elimina y reemplaza la configuración global de git del usuario con el que se ejecuta, y no guarda ninguna copia de seguridad. Lo hace al inicio y antes de cada sesión. Cualquier inicio de sesión o ayudante de credenciales que tuvieras ahí se pierde. Los ajustes que escribe [`--configure-git`](#let-the-runner-configure-git) se conservan. Ejecuta el runner como un usuario dedicado o en un contenedor, nunca como tu propio usuario.

207>

208> La configuración global de git comprende estos tres elementos: `~/.gitconfig`, el archivo que nombra `GIT_CONFIG_GLOBAL` si la estableces, y todo el directorio `$XDG_CONFIG_HOME/git`, que de forma predeterminada es `~/.config/git`.

206 209 

207Mantén los ajustes de git que no son secretos, como la identidad y `safe.directory`, en la configuración de git del sistema.210Mantén los ajustes de git que no son secretos, como la identidad y `safe.directory`, en la configuración de git del sistema.

208 211 


247* **Una línea que contiene `remote: access denied by the git proxy`**: una sesión que Anthropic atiende aún puede ser rechazada, por ejemplo cuando la política de la organización deniega el acceso a git para la sesión, o la sesión no está autorizada para el repositorio. El registro del runner muestra entonces una línea que contiene `remote: access denied by the git proxy`, y el resto de esa línea indica el motivo.250* **Una línea que contiene `remote: access denied by the git proxy`**: una sesión que Anthropic atiende aún puede ser rechazada, por ejemplo cuando la política de la organización deniega el acceso a git para la sesión, o la sesión no está autorizada para el repositorio. El registro del runner muestra entonces una línea que contiene `remote: access denied by the git proxy`, y el resto de esa línea indica el motivo.

248* **`GitHub authentication required`**: esto aparece cuando el creador de la sesión no tiene una conexión de GitHub funcional en claude.ai. El clon de la sesión falla, y el error de git dice `GitHub authentication required. Please reconnect your GitHub account.` Pídele a esa persona que conecte o vuelva a conectar GitHub en su configuración de claude.ai.251* **`GitHub authentication required`**: esto aparece cuando el creador de la sesión no tiene una conexión de GitHub funcional en claude.ai. El clon de la sesión falla, y el error de git dice `GitHub authentication required. Please reconnect your GitHub account.` Pídele a esa persona que conecte o vuelva a conectar GitHub en su configuración de claude.ai.

249 252 

250Después de corregir la causa, vuelve a iniciar las sesiones fallidas.253Después de corregir la causa, reinicia los runners en los que fallaron las sesiones y luego pide a cada creador que envíe un mensaje en su sesión, o que un Owner seleccione **Retry**.

251 254 

252#### Desactiva el proxy de git de Anthropic255#### Desactiva el proxy de git de Anthropic

253 256 


265 268 

266Proporciona credenciales que funcionen sin pedir nada para cada host de git que usan las sesiones de los runners, github.com incluido. Cualquier credencial que estuviera en la configuración global de git del usuario del runner ya no existe, porque el runner eliminó esa configuración mientras `--use-anthropic-git-proxy` estaba establecido. [Incluye las credenciales en tu imagen](#ship-git-config-in-your-image) o usa un [hook de ciclo de vida `checkout`](https://code.claude.com/docs/es/self-hosted-environments-configuration#checkout).269Proporciona credenciales que funcionen sin pedir nada para cada host de git que usan las sesiones de los runners, github.com incluido. Cualquier credencial que estuviera en la configuración global de git del usuario del runner ya no existe, porque el runner eliminó esa configuración mientras `--use-anthropic-git-proxy` estaba establecido. [Incluye las credenciales en tu imagen](#ship-git-config-in-your-image) o usa un [hook de ciclo de vida `checkout`](https://code.claude.com/docs/es/self-hosted-environments-configuration#checkout).

267 270 

271Para mantener las credenciales en la [configuración global de git](#git-proxy-replaces-global-git-config) en su lugar, primero [detén los runners](#shutdown-timing), porque un runner iniciado con el flag la reescribe antes de cada sesión. Luego elimina `$XDG_CONFIG_HOME/git`, que de forma predeterminada es `~/.config/git`, y reemplaza `~/.gitconfig`, o el archivo que nombra `GIT_CONFIG_GLOBAL`, por el tuyo.

272 

268**3. Abre la ruta de red**273**3. Abre la ruta de red**

269 274 

270Permite que el runner llegue a cada host de git que usan las sesiones de los runners en el puerto 443 o 22. Consulta la fila del host de git en [Requisitos de red](#network-requirements).275Permite que el runner llegue a cada host de git que usan las sesiones de los runners en el puerto 443 o 22. Consulta la fila del host de git en [Requisitos de red](#network-requirements).


507 512 

508## Kubernetes513## Kubernetes

509 514 

510El runner sirve `GET /healthz` en el puerto 8080 por defecto, configurable con `--health-port`, por lo que los sondeos de Kubernetes funcionan sin configuración adicional. El punto final devuelve `200` siempre que el proceso esté vivo, por lo que los sondeos a continuación detectan un proceso muerto, no uno atascado; para detectar un runner que dejó de sondear, alerte en la serie `last_poll_age_seconds` de [`/metrics`](https://code.claude.com/docs/es/self-hosted-environments-reference#prometheus-metrics). El Deployment a continuación monta el secreto del entorno desde un Secret de Kubernetes, apunta los sondeos de vivacidad y preparación a `/healthz`, y establece un período de gracia de terminación de 90 segundos. Consulte [Tiempo de apagado](#shutdown-timing) para saber por qué importa el período de gracia.515El runner sirve `GET /healthz` en el puerto 8080 por defecto, configurable con `--health-port`. Después del inicio, el endpoint devuelve `200` siempre que el proceso esté vivo, por lo que los sondeos a continuación detectan un proceso muerto, no uno atascado. Para detectar un runner que dejó de sondear, configura una alerta sobre la serie `last_poll_age_seconds` de [`/metrics`](https://code.claude.com/docs/es/self-hosted-environments-reference#prometheus-metrics).

516 

517El Deployment a continuación monta el secreto del entorno desde un Secret de Kubernetes, apunta los sondeos de vivacidad y preparación a `/healthz`, y establece un período de gracia de terminación de 90 segundos. Consulta [Tiempo de apagado](#shutdown-timing) para saber por qué importa el período de gracia.

511 518 

512El manifiesto no establece `resources` de CPU o memoria en el contenedor del runner. Agregue un bloque dimensionado para la capacidad que ejecuta, como [Dimensione CPU y memoria para sesiones](#size-cpu-and-memory-for-sessions) describe.519El manifiesto no establece `resources` de CPU o memoria en el contenedor del runner. Agregue un bloque dimensionado para la capacidad que ejecuta, como [Dimensione CPU y memoria para sesiones](#size-cpu-and-memory-for-sessions) describe.

513 520 


565 secretName: claude-runner-environment-secret572 secretName: claude-runner-environment-secret

566```573```

567 574 

575> [!NOTE]

576>

577> Si los eventos del pod muestran que el sondeo de vivacidad falla durante el inicio, aumenta su `initialDelaySeconds` o agrega un `startupProbe`. Nada responde en el puerto de salud hasta que el runner se haya registrado y haya terminado sus comprobaciones de inicio. Con la configuración anterior, Kubernetes reinicia un runner que no esté sirviendo en unos 90 segundos.

578 

568El Deployment anterior vive en un espacio de nombres `claude-runners`. Cree el espacio de nombres primero:579El Deployment anterior vive en un espacio de nombres `claude-runners`. Cree el espacio de nombres primero:

569 580 

570```bash theme={null}581```bash theme={null}


942 Si cada llamada comienza a fallar aproximadamente 30 minutos en una sesión, un script contenedor probablemente ha cortado stdin de la sesión, por lo que las rotaciones de token no pueden alcanzarlo; consulte [Mantener stdin y descriptor de archivo 3 adjuntos](https://code.claude.com/docs/es/self-hosted-environments-configuration.md#keep-stdin-and-file-descriptor-3-attached).953 Si cada llamada comienza a fallar aproximadamente 30 minutos en una sesión, un script contenedor probablemente ha cortado stdin de la sesión, por lo que las rotaciones de token no pueden alcanzarlo; consulte [Mantener stdin y descriptor de archivo 3 adjuntos](https://code.claude.com/docs/es/self-hosted-environments-configuration.md#keep-stdin-and-file-descriptor-3-attached).

943 954 

944 Antes de v2.1.274, el runner dejaba de reintentar una obtención fallida después de algunos intentos y esperaba la siguiente programada. Un turno fallido no desencadenaba una obtención, por lo que cada turno fallaba con un 401 hasta la siguiente obtención programada.955 Antes de v2.1.274, el runner dejaba de reintentar una obtención fallida después de algunos intentos y esperaba la siguiente programada. Un turno fallido no desencadenaba una obtención, por lo que cada turno fallaba con un 401 hasta la siguiente obtención programada.

956* **Una sesión muestra `The server has refused to renew this session's access to the model`**: el [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/es/self-hosted-environments-configuration#wrapper-scripts) de la sesión ha expirado, y el runner ha recibido HTTP 400 como respuesta a sus solicitudes de un token nuevo. El runner registra `the server has refused to renew the inference_token`. Los turnos de esa sesión fallan. El runner sigue solicitando un token nuevo mientras el proceso de la sesión se ejecute:

957 

958 * **Una solicitud tiene éxito**: una sesión que mostró la advertencia muestra entonces `The server renewed this session's access to the model`

959 * **Los turnos siguen fallando**: el proceso termina por cerrarse, y la sesión muestra una falla como `The session process exited with code 1`

960 

961 Para seguir trabajando sin esperar un token nuevo, inicia una nueva sesión. Si una nueva sesión también falla, comprueba si un proxy o gateway tuyo dio la respuesta HTTP 400. Si ninguno lo hizo, [contacta a tu equipo de cuenta de Anthropic](#report-an-issue) con el ID de la primera sesión.

945* **Un turno falla en claude.ai/code con `This model needs a newer version of Claude Code`**: la versión de Claude Code con la que tus runners inician sesiones es más antigua que la que requiere el modelo de la sesión, así que la API [rechaza la solicitud](https://code.claude.com/docs/es/errors.md#claude-code-does-not-support-this-model). Actualiza los runners a la versión que pide el mensaje, o a una posterior, como se describe en [Fijar la versión](#pin-the-version). Mientras tanto, las personas pueden elegir otro modelo en la sesión.962* **Un turno falla en claude.ai/code con `This model needs a newer version of Claude Code`**: la versión de Claude Code con la que tus runners inician sesiones es más antigua que la que requiere el modelo de la sesión, así que la API [rechaza la solicitud](https://code.claude.com/docs/es/errors.md#claude-code-does-not-support-this-model). Actualiza los runners a la versión que pide el mensaje, o a una posterior, como se describe en [Fijar la versión](#pin-the-version). Mientras tanto, las personas pueden elegir otro modelo en la sesión.

946* **El pod se mata a mitad del drenaje**: aumente `terminationGracePeriodSeconds` al menos al valor que el runner registra al inicio. Consulte [Shutdown timing](#shutdown-timing).963* **El pod se mata a mitad del drenaje**: aumente `terminationGracePeriodSeconds` al menos al valor que el runner registra al inicio. Consulte [Shutdown timing](#shutdown-timing).

947* **El runner registra una línea `[runner:log]` que termina en `was paused or too slow`**: el runner siguió ejecutándose y no necesita reiniciarse. Hasta que la secuencia stdout o stderr nombrada en la línea volvió a leerse, el runner descartó todas las líneas de esa secuencia excepto los 256 KiB más recientes. Si pasaste [`--log-file`](https://code.claude.com/docs/es/self-hosted-environments-reference#runner-cli-flags), busca allí las líneas descartadas.964* **El runner registra una línea `[runner:log]` que termina en `was paused or too slow`**: el runner siguió ejecutándose y no necesita reiniciarse. Hasta que la secuencia stdout o stderr nombrada en la línea volvió a leerse, el runner descartó todas las líneas de esa secuencia excepto los 256 KiB más recientes. Si pasaste [`--log-file`](https://code.claude.com/docs/es/self-hosted-environments-reference#runner-cli-flags), busca allí las líneas descartadas.

Details

73 73 

74Vaya a la [página **Cloud environments**](https://claude.ai/admin-settings/cloud-environments) en la configuración de administración. Bajo **Self-hosted environments**, seleccione **New**, nombre el entorno, y seleccione **Create**. En el segundo paso del asistente, seleccione **Copy environment key** para copiar el secreto del entorno, que la interfaz de administración etiqueta como una clave de entorno. claude.ai muestra el secreto una vez, y no puede recuperarlo más tarde; expira 365 días después de la creación. El ID `ccpool_...` del entorno permanece visible en su diálogo de detalle; lo necesitará para la verificación `aud` en [verificación de token](https://code.claude.com/docs/es/self-hosted-environments-identity.md) y para enviar [sesiones de prueba desde CI](https://code.claude.com/docs/es/self-hosted-environments-testing.md#run-the-test-loop).74Vaya a la [página **Cloud environments**](https://claude.ai/admin-settings/cloud-environments) en la configuración de administración. Bajo **Self-hosted environments**, seleccione **New**, nombre el entorno, y seleccione **Create**. En el segundo paso del asistente, seleccione **Copy environment key** para copiar el secreto del entorno, que la interfaz de administración etiqueta como una clave de entorno. claude.ai muestra el secreto una vez, y no puede recuperarlo más tarde; expira 365 días después de la creación. El ID `ccpool_...` del entorno permanece visible en su diálogo de detalle; lo necesitará para la verificación `aud` en [verificación de token](https://code.claude.com/docs/es/self-hosted-environments-identity.md) y para enviar [sesiones de prueba desde CI](https://code.claude.com/docs/es/self-hosted-environments-testing.md#run-the-test-loop).

75 75 

76Si pierdes el secreto o necesitas rotarlo, crea un nuevo secreto desde la pestaña **Configuration** del entorno, distribuye el nuevo secreto a tus runners y luego revoca el antiguo. Los runners que tengan un secreto revocado fallan en su siguiente sondeo autenticado y salen, registrando `poll auth failed`, y tu orquestador los reinicia con el nuevo secreto.76Si es posible que el secreto se haya filtrado, sigue [los pasos de la página de implementación para un posible compromiso](https://code.claude.com/docs/es/self-hosted-environments-deploy.md#after-a-suspected-compromise), no la rotación que se describe a continuación.

77 

78Si pierdes el secreto o planeas rotarlo, crea un nuevo secreto desde la pestaña **Configuration** del entorno. Distribuye el nuevo secreto a tus runners y luego revoca el antiguo. Los runners que tengan un secreto revocado fallan en su siguiente sondeo autenticado y salen, registrando `poll auth failed`, y tu orquestador los reinicia con el nuevo secreto.

77 79 

78**2. Iniciar un runner**80**2. Iniciar un runner**

79 81 

Details

141 141 

142## Punto final de salud142## Punto final de salud

143 143 

144El runner sirve `GET /healthz` en el puerto de salud configurado. La respuesta es `200 OK` siempre que el proceso esté vivo, sea cual sea el estado del bucle de sondeo, por lo que un sondeo HTTP en este punto final detecta solo un proceso muerto. El cuerpo JSON describe el estado actual:144El runner sirve `GET /healthz` en el puerto de salud configurado una vez que se ha registrado y ha terminado sus comprobaciones de inicio. A partir de ese momento, la respuesta es `200 OK` siempre que el proceso esté vivo, sea cual sea el estado del bucle de sondeo, por lo que un sondeo HTTP en este endpoint detecta solo un proceso muerto. El cuerpo JSON describe el estado actual:

145 145 

146```json theme={null}146```json theme={null}

147{147{

settings.md +1 −0

Details

310| [`isolatePeerMachines`](https://code.claude.com/docs/es/settings-reference#isolatepeermachines) | `true` desde cualquier alcance | Se respeta incluso cuando una fuente administrada define `false` |310| [`isolatePeerMachines`](https://code.claude.com/docs/es/settings-reference#isolatepeermachines) | `true` desde cualquier alcance | Se respeta incluso cuando una fuente administrada define `false` |

311| [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/es/settings-reference#permissions-blockreadsoutsideworkingdirectories) | `true` desde cualquier alcance | Se respeta incluso cuando una fuente administrada define `false`. Requiere Claude Code v2.1.257 o posterior |311| [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/es/settings-reference#permissions-blockreadsoutsideworkingdirectories) | `true` desde cualquier alcance | Se respeta incluso cuando una fuente administrada define `false`. Requiere Claude Code v2.1.257 o posterior |

312| [`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/es/settings-reference#permissions-blockwritesoutsideworkingdirectories) | `true` desde cualquier alcance | Se respeta incluso cuando una fuente administrada define `false`. Requiere Claude Code v2.1.314 o posterior |312| [`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/es/settings-reference#permissions-blockwritesoutsideworkingdirectories) | `true` desde cualquier alcance | Se respeta incluso cuando una fuente administrada define `false`. Requiere Claude Code v2.1.314 o posterior |

313| [`permissions.denyInsteadOfPrompting`](https://code.claude.com/docs/es/settings-reference#permissions-denyinsteadofprompting) | `true` desde `~/.claude/settings.json` o `--settings` | Se respeta incluso cuando una fuente administrada define `false`. Requiere Claude Code v2.1.319 o posterior |

313| [`autoMode.classifyAllShell`](https://code.claude.com/docs/es/settings-reference#automode-classifyallshell) | `true` desde `~/.claude/settings.json` o `--settings` | Se respeta incluso cuando una fuente administrada define `false` |314| [`autoMode.classifyAllShell`](https://code.claude.com/docs/es/settings-reference#automode-classifyallshell) | `true` desde `~/.claude/settings.json` o `--settings` | Se respeta incluso cuando una fuente administrada define `false` |

314| [`remoteControlAtStartup`](https://code.claude.com/docs/es/settings-reference#remotecontrolatstartup) | `false` desde `.claude/settings.json` o `.claude/settings.local.json` | Se respeta incluso cuando una fuente administrada define `true`; un `true` de proyecto o local se ignora |315| [`remoteControlAtStartup`](https://code.claude.com/docs/es/settings-reference#remotecontrolatstartup) | `false` desde `.claude/settings.json` o `.claude/settings.local.json` | Se respeta incluso cuando una fuente administrada define `true`; un `true` de proyecto o local se ignora |

315| [`crossSessionInbound`](https://code.claude.com/docs/es/settings-reference#crosssessioninbound) | Un valor más estricto desde `.claude/settings.json` o `.claude/settings.local.json`, en la escala `accept` \< `hold` \< `refuse` | Se respeta por encima de los valores administrados, de `--settings` y de usuario; un valor de proyecto o local que no sea más estricto se ignora |316| [`crossSessionInbound`](https://code.claude.com/docs/es/settings-reference#crosssessioninbound) | Un valor más estricto desde `.claude/settings.json` o `.claude/settings.local.json`, en la escala `accept` \< `hold` \< `refuse` | Se respeta por encima de los valores administrados, de `--settings` y de usuario; un valor de proyecto o local que no sea más estricto se ignora |

Details

448 448 

449Activa el [modo rápido](https://code.claude.com/docs/es/fast-mode.md) en las sesiones donde esté disponible, para trabajo interactivo como iteración rápida o depuración en vivo, donde quieres velocidad a un costo mayor por token. Normalmente no editas esta clave tú mismo. Ejecutar `/fast` escribe `fastMode: true` en `~/.claude/settings.json`, y volver a ejecutarlo para desactivar el modo rápido elimina la clave.449Activa el [modo rápido](https://code.claude.com/docs/es/fast-mode.md) en las sesiones donde esté disponible, para trabajo interactivo como iteración rápida o depuración en vivo, donde quieres velocidad a un costo mayor por token. Normalmente no editas esta clave tú mismo. Ejecutar `/fast` escribe `fastMode: true` en `~/.claude/settings.json`, y volver a ejecutarlo para desactivar el modo rápido elimina la clave.

450 450 

451Solo Opus 5.5, Opus 5 y Opus 4.8 admiten el modo rápido. Ejecutar `/fast` desde otro modelo te cambia a Opus, y cambiar a un modelo no compatible desactiva el modo rápido. Consulta [Cambiar de modelo mientras el modo rápido está activado](https://code.claude.com/docs/es/fast-mode.md#switch-models-while-fast-mode-is-on).451Solo Fable 5.2, Opus 5.5, Opus 5 y Opus 4.8 admiten el modo rápido. Ejecutar `/fast` desde otro modelo te cambia a Opus, y cambiar a un modelo no compatible desactiva el modo rápido. Consulta [Cambiar de modelo mientras el modo rápido está activado](https://code.claude.com/docs/es/fast-mode.md#switch-models-while-fast-mode-is-on).

452 452 

453* **Alcance**: [`Any file`](#scopes)453* **Alcance**: [`Any file`](#scopes)

454* **Tipo**: Boolean454* **Tipo**: Boolean

455 * `true`: Claude Code activa el modo rápido en las sesiones donde esté disponible455 * `true`: Claude Code activa el modo rápido en las sesiones donde esté disponible. En Fable 5.2, también debes [ejecutar `/fast` mientras usas Fable 5.2](https://code.claude.com/docs/es/fast-mode#switch-models-while-fast-mode-is-on)

456 * `false`: el modo rápido permanece desactivado456 * `false`: el modo rápido permanece desactivado

457* **Predeterminado**: sin definir, por lo que el modo rápido está desactivado457* **Predeterminado**: sin definir, por lo que el modo rápido está desactivado

458* **Sobrescrituras por sesión**: [`CLAUDE_CODE_DISABLE_FAST_MODE`](https://code.claude.com/docs/es/env-vars) desactiva el modo rápido durante una sesión, y esta clave no puede volver a activarlo458* **Sobrescrituras por sesión**: [`CLAUDE_CODE_DISABLE_FAST_MODE`](https://code.claude.com/docs/es/env-vars) desactiva el modo rápido durante una sesión, y esta clave no puede volver a activarlo


465 465 

466### `fastModePerSessionOptIn`466### `fastModePerSessionOptIn`

467 467 

468Normalmente, ejecutar `/fast` guarda [`fastMode`](#fastmode) en la configuración de usuario de una persona, así que las nuevas sesiones en un modelo compatible se inician con el modo rápido activado. Establece esta clave en `true` para evitarlo: un `fastMode: true` guardado ya no activa el modo rápido al iniciar la sesión, y cada persona tiene que ejecutar `/fast` en cada sesión en la que lo quiera. Claude Code deja la clave `fastMode` en su archivo, así que desactivar esta clave restaura el comportamiento anterior.468Normalmente, ejecutar `/fast` guarda [`fastMode`](#fastmode) en la configuración de usuario de una persona, así que las nuevas sesiones en un modelo compatible se inician con el modo rápido activado. En Fable 5.2, eso solo ocurre si la persona [lo activó mientras usaba Fable 5.2](https://code.claude.com/docs/es/fast-mode.md#switch-models-while-fast-mode-is-on). Para que cada persona tenga que ejecutar `/fast` en cada sesión en la que lo quiera, establece esta clave en `true`. Claude Code deja la clave `fastMode` en su archivo, así que desactivar esta clave restaura el comportamiento anterior.

469 469 

470Los propietarios de los planes Team o Enterprise pueden desplegarla en toda la organización mediante la [configuración administrada por el servidor](https://code.claude.com/docs/es/server-managed-settings.md). Cuando la configuración administrada establece la clave, `/fast on` se rechaza fuera de las sesiones interactivas de terminal e informa que tu organización ha desactivado el modo rápido. Eso abarca el [modo no interactivo](https://code.claude.com/docs/es/headless.md), la [extensión de VS Code](https://code.claude.com/docs/es/vs-code.md) y las [sesiones en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md).470Los propietarios de los planes Team o Enterprise pueden desplegarla en toda la organización mediante la [configuración administrada por el servidor](https://code.claude.com/docs/es/server-managed-settings.md). Cuando la configuración administrada establece la clave, `/fast on` se rechaza fuera de las sesiones interactivas de terminal e informa que tu organización ha desactivado el modo rápido. Eso abarca el [modo no interactivo](https://code.claude.com/docs/es/headless.md), la [extensión de VS Code](https://code.claude.com/docs/es/vs-code.md) y las [sesiones en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md).

471 471 

472* **Alcance**: [`Any file`](#scopes)472* **Alcance**: [`Any file`](#scopes)

473* **Tipo**: Boolean473* **Tipo**: Boolean

474 * `true`: un `fastMode: true` guardado ya no activa el modo rápido al iniciar la sesión, así que cada persona ejecuta `/fast` en cada sesión en la que lo quiera; un `fastMode: true` pasado con `--settings` sigue contando para esa sesión, a menos que la configuración administrada establezca esta clave474 * `true`: un `fastMode: true` guardado ya no activa el modo rápido al iniciar la sesión, así que cada persona ejecuta `/fast` en cada sesión en la que lo quiera; un `fastMode: true` pasado con `--settings` sigue contando para esa sesión, a menos que la configuración administrada establezca esta clave

475 * `false`: un `fastMode: true` guardado activa el modo rápido al inicio de cada nueva sesión en un modelo compatible475 * `false`: un `fastMode: true` guardado funciona como se describe en [`fastMode`](#fastmode)

476* **Predeterminado**: `false`476* **Predeterminado**: `false`

477 477 

478```json settings.json theme={null}478```json settings.json theme={null}

sub-agents.md +2 −0

Details

592El modo de permiso de la conversación principal decide si Claude Code usa el valor que establece:592El modo de permiso de la conversación principal decide si Claude Code usa el valor que establece:

593 593 

594* Cuando la conversación principal está en `bypassPermissions`, `acceptEdits`, o [modo auto](https://code.claude.com/docs/es/permission-modes.md#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](https://code.claude.com/docs/es/permission-modes.md#eliminate-prompts-with-auto-mode) describe.594* Cuando la conversación principal está en `bypassPermissions`, `acceptEdits`, o [modo auto](https://code.claude.com/docs/es/permission-modes.md#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](https://code.claude.com/docs/es/permission-modes.md#eliminate-prompts-with-auto-mode) describe.

595 

596 Si un subagente pide permiso mientras la conversación principal está en `bypassPermissions`, comprueba si su llamada a herramienta es una de las [acciones que ningún modo aprueba automáticamente](https://code.claude.com/docs/es/permission-modes.md#actions-no-mode-auto-approves).

595* Cuando la conversación principal está en modo `plan`, el subagente permanece en modo plan sea cual sea el `permissionMode` que establezcas, a menos que se ejecute como [compañero de un equipo de agentes](#subagent-names) bajo las [reglas de equipos de agentes](https://code.claude.com/docs/es/agent-teams.md#have-teammates-plan-before-implementing). Si estableces `dontAsk`, el subagente tampoco te pide nada: una acción que el modo plan te pediría aprobar se deniega en su lugar.597* Cuando la conversación principal está en modo `plan`, el subagente permanece en modo plan sea cual sea el `permissionMode` que establezcas, a menos que se ejecute como [compañero de un equipo de agentes](#subagent-names) bajo las [reglas de equipos de agentes](https://code.claude.com/docs/es/agent-teams.md#have-teammates-plan-before-implementing). Si estableces `dontAsk`, el subagente tampoco te pide nada: una acción que el modo plan te pediría aprobar se deniega en su lugar.

596* Cuando la conversación principal está en modo `default` o `dontAsk`, 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:598* Cuando la conversación principal está en modo `default` o `dontAsk`, 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:

597 * Estableces `bypassPermissions`. La excepción de `bypassPermissions` requiere Claude Code v2.1.267 o posterior.599 * Estableces `bypassPermissions`. La excepción de `bypassPermissions` requiere Claude Code v2.1.267 o posterior.

Details

26| `CronDelete` | Cancela una tarea programada con alcance de sesión por ID | No |26| `CronDelete` | Cancela una tarea programada con alcance de sesión por ID | No |

27| `CronList` | Lista todas las tareas programadas con alcance de sesión | No |27| `CronList` | Lista todas las tareas programadas con alcance de sesión | No |

28| `Edit` | Realiza ediciones dirigidas a archivos específicos. Consulta [Comportamiento de la herramienta Edit](#edit-tool-behavior) | Sí |28| `Edit` | Realiza ediciones dirigidas a archivos específicos. Consulta [Comportamiento de la herramienta Edit](#edit-tool-behavior) | Sí |

29| `EndConversation` | Finaliza la sesión, en casos raros de entrada abusiva sostenida o cuando solicitas a Claude que demuestre la herramienta. Consulta [Comportamiento de la herramienta EndConversation](#endconversation-tool-behavior) | No |29| `EndConversation` | Finaliza la sesión, en casos raros de entrada abusiva sostenida o cuando le pides a Claude que finalice la sesión y luego lo confirmas. Consulta [Comportamiento de la herramienta EndConversation](#endconversation-tool-behavior) | No |

30| `EnterPlanMode` | Cambia a modo plan para diseñar un enfoque antes de codificar | No |30| `EnterPlanMode` | Cambia a modo plan para diseñar un enfoque antes de codificar | No |

31| `EnterWorktree` | Crea un [git worktree](https://code.claude.com/docs/es/worktrees.md) aislado y cambia a él, o cambia a un worktree existente. Consulta [Comportamiento de la herramienta EnterWorktree](#enterworktree-tool-behavior) | Sí |31| `EnterWorktree` | Crea un [git worktree](https://code.claude.com/docs/es/worktrees.md) aislado y cambia a él, o cambia a un worktree existente. Consulta [Comportamiento de la herramienta EnterWorktree](#enterworktree-tool-behavior) | Sí |

32| `ExitPlanMode` | Presenta un plan para aprobación y sale del modo plan | Sí |32| `ExitPlanMode` | Presenta un plan para aprobación y sale del modo plan | Sí |


274 274 

275La herramienta EndConversation finaliza la sesión actual. Claude la utiliza solo en dos situaciones:275La herramienta EndConversation finaliza la sesión actual. Claude la utiliza solo en dos situaciones:

276 276 

277* como último recurso contra entrada abusiva sostenida, después de intentos fallidos de redirigir la conversación y después de una advertencia clara en un mensaje anterior277* Cuando sigues enviando mensajes abusivos después de que Claude te da una advertencia clara y no logra redirigir la conversación

278* cuando usted solicita explícitamente ver la herramienta demostrada y confirma que desea finalizar la sesión278* Cuando le pides explícitamente a Claude que finalice la sesión y luego lo confirmas cuando Claude te pregunta si aún quieres continuar

279 279 

280La frustración general, las palabras malsonantes o una tarea que va mal no califican, ni tampoco las solicitudes de contenido dañino, que Claude rechaza en lugar de finalizar la sesión. Claude Code sigue el mismo enfoque que claude.ai, que puede [finalizar un subconjunto raro de chats](https://www.anthropic.com/research/end-subset-conversations).280La frustración general, las palabras malsonantes o una tarea que va mal no califican, ni tampoco las solicitudes de contenido dañino, que Claude rechaza en lugar de finalizar la sesión. Claude Code sigue el mismo enfoque que claude.ai, que puede [finalizar un subconjunto raro de chats](https://www.anthropic.com/research/end-subset-conversations).

281 281 


390 390 

391Cuando Monitor ejecuta un comando, utiliza las mismas [reglas de permisos que Bash](https://code.claude.com/docs/es/permissions.md#tool-specific-permission-rules), por lo que los patrones `allow` y `deny` que has establecido para Bash también se aplican aquí. Mientras [el modo automático](https://code.claude.com/docs/es/permission-modes.md#eliminate-prompts-with-auto-mode) está activo, Claude Code deja de lado las reglas de permitir que nombran a `Monitor` en sí mismo, junto con las otras [reglas de permitir amplias que descarta](https://code.claude.com/docs/es/permission-modes.md#how-the-classifier-evaluates-actions), por lo que el clasificador revisa los comandos de Monitor de la misma manera que revisa los comandos de Bash.391Cuando Monitor ejecuta un comando, utiliza las mismas [reglas de permisos que Bash](https://code.claude.com/docs/es/permissions.md#tool-specific-permission-rules), por lo que los patrones `allow` y `deny` que has establecido para Bash también se aplican aquí. Mientras [el modo automático](https://code.claude.com/docs/es/permission-modes.md#eliminate-prompts-with-auto-mode) está activo, Claude Code deja de lado las reglas de permitir que nombran a `Monitor` en sí mismo, junto con las otras [reglas de permitir amplias que descarta](https://code.claude.com/docs/es/permission-modes.md#how-the-classifier-evaluates-actions), por lo que el clasificador revisa los comandos de Monitor de la misma manera que revisa los comandos de Bash.

392 392 

393La [fuente WebSocket](#websocket-source) tiene su propia solicitud de aprobación, que el clasificador también decide en modo automático.

394 

395Monitor requiere una versión mínima o Git Bash en estos casos:393Monitor requiere una versión mínima o Git Bash en estos casos:

396 394 

397* **Versión mínima**: en Amazon Bedrock, Claude Platform on AWS, Agent Platform de Google Cloud o Microsoft Foundry, o cuando se establece `DISABLE_TELEMETRY` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, Monitor requiere Claude Code v2.1.310 o posterior. El requisito se aplica cuando la [obtención de feature flags](https://code.claude.com/docs/es/env-vars.md#features-that-need-feature-flag-fetching) está desactivada395* **Versión mínima**: en Amazon Bedrock, Claude Platform on AWS, Agent Platform de Google Cloud o Microsoft Foundry, o cuando se establece `DISABLE_TELEMETRY` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, Monitor requiere Claude Code v2.1.310 o posterior. El requisito se aplica cuando la [obtención de feature flags](https://code.claude.com/docs/es/env-vars.md#features-that-need-feature-flag-fetching) está desactivada


417 415 

418El plazo `timeout_ms` también se aplica a un monitoreo de WebSocket: el monitoreo termina al llegar al plazo, y `TaskStop` lo cancela anticipadamente.416El plazo `timeout_ms` también se aplica a un monitoreo de WebSocket: el monitoreo termina al llegar al plazo, y `TaskStop` lo cancela anticipadamente.

419 417 

420Abrir un WebSocket solicita aprobación; en [modo automático](https://code.claude.com/docs/es/permission-modes.md#eliminate-prompts-with-auto-mode) el clasificador decide en su lugar. La solicitud no ofrece una opción para omitir futuras solicitudes para el mismo host.418Sin una regla de permitir para `Monitor`, se te solicita aprobación antes de que Claude abra un WebSocket; en [modo automático](https://code.claude.com/docs/es/permission-modes.md#eliminate-prompts-with-auto-mode) el clasificador decide en su lugar, a menos que se aplique una [regla de preguntar](#bash-rules-that-deny-or-prompt-for-websocket-watches). La solicitud no ofrece una opción para omitir futuras solicitudes para el mismo host.

419 

420#### Direcciones y hosts denegados a los monitoreos de WebSocket

421 

422Claude Code deniega las URL que apuntan a una dirección privada, de enlace local o de metadatos en la nube, incluidos los nombres de host que tu máquina resuelve en una. Detrás de un [proxy](https://code.claude.com/docs/es/network-config.md#proxy-configuration), un monitoreo puede llegar a una dirección privada, de enlace local o de metadatos en la nube a menos que el proxy la bloquee, porque Claude Code no verifica la dirección que encuentra el proxy. Claude Code también deniega los hosts en `sandbox.network.deniedDomains`, y cuando [`allowManagedDomainsOnly`](https://code.claude.com/docs/es/settings-reference#sandbox-network-allowmanageddomainsonly) se establece en la configuración administrada, cualquier host fuera de la lista de permitidos administrada.

423 

424Si un monitoreo detrás de un proxy falla con `could not resolve <host>`, reinicia Claude Code v2.1.319 o posterior con [`CLAUDE_CODE_PROXY_RESOLVES_HOSTS`](https://code.claude.com/docs/es/env-vars#variables) establecido en `1` para que el proxy resuelva el nombre de host.

425 

426#### Reglas de Bash que deniegan o solicitan aprobación para monitoreos de WebSocket

427 

428Si Claude Code rechaza una llamada a `Monitor` que abre un WebSocket, busca una [regla de denegar o de preguntar](https://code.claude.com/docs/es/permissions.md#manage-permissions) escrita como `Bash` o `Bash(*)`. Haz lo mismo si solicita aprobación para esa llamada a pesar de tu regla de permitir para `Monitor`. Una regla sobre todos los comandos de Bash también cubre estos monitoreos de WebSocket:

429 

430* **Regla de denegar**: si la regla está vigente cuando se inicia la sesión, Claude no tiene la herramienta Monitor, por lo que no puede iniciar el monitoreo. Si agregas la regla durante una sesión, la siguiente llamada de Claude a `Monitor` se rechaza. El rechazo dice `Permission to use Monitor has been denied: it runs code as Bash does, and a rule denies Bash.`

431* **Regla de preguntar**: se te pide que apruebes el monitoreo. No puedes hacer que una regla de permitir, un hook `PreToolUse`, el modo `bypassPermissions` o el clasificador del modo automático lo aprueben por ti. Puedes aprobarlo desde un [hook `PermissionRequest`](https://code.claude.com/docs/es/hooks#permissionrequest). Donde nadie puede responder, como en el modo `dontAsk`, Claude Code deniega el monitoreo.

432 

433Para permitir que estos monitoreos se ejecuten, restringe la regla a los comandos que realmente quieres cubrir, como `Bash(rm *)`.

421 434 

422Claude Code deniega las URL que apuntan a una dirección privada, de enlace local o de metadatos en la nube, incluidos los nombres de host que se resuelven en una. También deniega los hosts en `sandbox.network.deniedDomains`, y cuando [`allowManagedDomainsOnly`](https://code.claude.com/docs/es/settings-reference#sandbox-network-allowmanageddomainsonly) se establece en la configuración administrada, cualquier host fuera de la lista de permitidos administrada.435La regla de preguntar, y una regla de denegar que agregues durante una sesión, cubren estos monitoreos en Claude Code v2.1.319 o posterior.

423 436 

424## Comportamiento de la herramienta NotebookEdit437## Comportamiento de la herramienta NotebookEdit

425 438 


594* Ejecuciones no interactivas `-p` y sesiones de [Agent SDK](https://code.claude.com/docs/es/agent-sdk/overview.md), que no tienen pantalla para revisar la cola607* Ejecuciones no interactivas `-p` y sesiones de [Agent SDK](https://code.claude.com/docs/es/agent-sdk/overview.md), que no tienen pantalla para revisar la cola

595* [Sesiones en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md), que no pueden escribir en la cola en su máquina608* [Sesiones en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md), que no pueden escribir en la cola en su máquina

596* Sesiones en [Amazon Bedrock](https://code.claude.com/docs/es/amazon-bedrock.md), [Claude Platform en AWS](https://code.claude.com/docs/es/claude-platform-on-aws.md), [Google Cloud's Agent Platform](https://code.claude.com/docs/es/google-vertex-ai.md), o [Microsoft Foundry](https://code.claude.com/docs/es/microsoft-foundry.md)609* Sesiones en [Amazon Bedrock](https://code.claude.com/docs/es/amazon-bedrock.md), [Claude Platform en AWS](https://code.claude.com/docs/es/claude-platform-on-aws.md), [Google Cloud's Agent Platform](https://code.claude.com/docs/es/google-vertex-ai.md), o [Microsoft Foundry](https://code.claude.com/docs/es/microsoft-foundry.md)

610* Sesiones que llegan a Claude a través de un [gateway de LLM](https://code.claude.com/docs/es/llm-gateway) con la clave o el token propios del gateway

597* Sesiones donde establece [`CLAUDE_CODE_SEND_FEEDBACK=0`](https://code.claude.com/docs/es/env-vars) o [`DISABLE_FEEDBACK_COMMAND=1`](https://code.claude.com/docs/es/env-vars), establece `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` en cualquier valor no vacío, o desactivó la [obtención de indicadores de características](https://code.claude.com/docs/es/env-vars.md#features-that-need-feature-flag-fetching)611* Sesiones donde establece [`CLAUDE_CODE_SEND_FEEDBACK=0`](https://code.claude.com/docs/es/env-vars) o [`DISABLE_FEEDBACK_COMMAND=1`](https://code.claude.com/docs/es/env-vars), establece `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` en cualquier valor no vacío, o desactivó la [obtención de indicadores de características](https://code.claude.com/docs/es/env-vars.md#features-that-need-feature-flag-fetching)

598* Organizaciones que han desactivado los comentarios de productos, [organizaciones con retención de datos cero](https://code.claude.com/docs/es/zero-data-retention.md#features-disabled-under-zdr) y organizaciones con la [configuración HIPAA](https://code.claude.com/docs/es/hipaa-setup.md) aplicada612* Organizaciones que han desactivado los comentarios de productos, [organizaciones con retención de datos cero](https://code.claude.com/docs/es/zero-data-retention.md#features-disabled-under-zdr) y organizaciones con la [configuración HIPAA](https://code.claude.com/docs/es/hipaa-setup.md) aplicada

613* Sesiones en las que Claude Code [dejó de ofrecer comentarios después de un informe rechazado](https://code.claude.com/docs/es/errors.md#feedback-is-disabled-by-your-organizations-policy)

599 614 

600## Disponibilidad de la herramienta Task615## Disponibilidad de la herramienta Task

601 616 

Details

70 70 

71### Disponibilidad de modelos bajo ZDR71### Disponibilidad de modelos bajo ZDR

72 72 

73Claude Fable 5.1 y Fable 5 son [Modelos Cubiertos](https://support.claude.com/en/articles/15425695-covered-models) que [requieren retención de datos](https://platform.claude.com/docs/en/manage-claude/api-and-data-retention#model-specific-data-retention-requirements) por defecto, y si una organización o espacio de trabajo ZDR puede usarlos se rige por las políticas de Modelos Cubiertos en lugar de por Claude Code. Donde su organización no puede usarlos, los modelos están ausentes del selector `/model` o se muestran como deshabilitados, y el servidor rechaza las solicitudes para ellos independientemente de la configuración del cliente.73Claude Fable 5.2, Fable 5.1 y Fable 5 son [Modelos Cubiertos](https://support.claude.com/en/articles/15425695-covered-models) que [requieren retención de datos](https://platform.claude.com/docs/en/manage-claude/api-and-data-retention#model-specific-data-retention-requirements) por defecto, y si una organización o espacio de trabajo ZDR puede usarlos se rige por las políticas de Modelos Cubiertos en lugar de por Claude Code. Donde tu organización no puede usarlos, los modelos están ausentes del selector `/model` o se muestran como deshabilitados, y el servidor rechaza las solicitudes para ellos independientemente de la configuración del cliente.

74 74 

75Otros modelos permanecen disponibles bajo ZDR. Los modelos Fable no son el predeterminado, y el alias `best`, que se resuelve al modelo Fable más reciente donde está disponible, se resuelve a Opus para organizaciones donde no lo está.75Otros modelos permanecen disponibles bajo ZDR. Los modelos Fable no son el predeterminado, y el alias `best` se resuelve a Opus.

76 76 

77## Retención de datos para violaciones de políticas77## Retención de datos para violaciones de políticas

78 78