SpyBara
Go Premium

Documentation 2026-10-07 23:59 UTC to 2026-10-08 21:58 UTC

70 files changed +2,165 −1,499. View all changes and history on the product overview
2026
Thu 8 22:58 Wed 7 23:59 Tue 6 23:59 Mon 5 23:58 Sun 4 23:58 Sat 3 23:57 Fri 2 22:59 Thu 1 23:59
Details

126 126 

127Un estilo de salida es un archivo markdown con [frontmatter](/docs/es/output-styles#frontmatter) para metadatos, seguido del contenido del prompt. Guárdelo en `~/.claude/output-styles/` para un estilo a nivel de usuario disponible en cada proyecto, o `.claude/output-styles/` en su repositorio para un estilo a nivel de proyecto que pueda confirmar y compartir con su equipo.127Un estilo de salida es un archivo markdown con [frontmatter](/docs/es/output-styles#frontmatter) para metadatos, seguido del contenido del prompt. Guárdelo en `~/.claude/output-styles/` para un estilo a nivel de usuario disponible en cada proyecto, o `.claude/output-styles/` en su repositorio para un estilo a nivel de proyecto que pueda confirmar y compartir con su equipo.

128 128 

129Un estilo de salida personalizado deja fuera las instrucciones de ingeniería de software del preset `claude_code` y usa las suyas propias. Para mantenerlas y superponer sus instrucciones encima, establezca `keep-coding-instructions: true` en el frontmatter. Esas instrucciones solo están en el prompt del sistema completo de Claude Code, por lo que la configuración no tiene efecto en una sesión en el prompt del sistema más corto, que activa o desactiva con [`CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT`](/docs/es/env-vars#variables). Manténgalas cuando su agente aún esté realizando trabajo de ingeniería de software. Déjelas fuera cuando esté reemplazando el rol completamente.129Un estilo de salida personalizado deja fuera las instrucciones de ingeniería de software del preset `claude_code` y usa las tuyas propias. Para mantenerlas y superponer tus instrucciones encima, establece `keep-coding-instructions: true` en el frontmatter. Esas instrucciones solo están en el prompt del sistema completo de Claude Code, por lo que el ajuste no tiene efecto en una sesión con el prompt del sistema más corto; establece [`CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT`](/docs/es/env-vars#variables) en `0` para seleccionar el prompt completo en cualquier modelo. Mantenlas cuando tu agente aún esté realizando trabajo de ingeniería de software. Déjalas fuera cuando estés reemplazando el rol por completo.

130 130 

131El ejemplo a continuación define una persona de revisión de código que mantiene las instrucciones de codificación, ya que revisar código aún se beneficia de la orientación de seguridad y calidad de código de Claude Code. Guárdelo como `~/.claude/output-styles/code-reviewer.md` para que esté disponible en todos los proyectos:131El ejemplo a continuación define una persona de revisión de código que mantiene las instrucciones de codificación, ya que revisar código aún se beneficia de la orientación de seguridad y calidad de código de Claude Code. Guárdelo como `~/.claude/output-styles/code-reviewer.md` para que esté disponible en todos los proyectos:

132 132 


547| **Gestión** | En el sistema de archivos | CLI + archivos | En código | En código |547| **Gestión** | En el sistema de archivos | CLI + archivos | En código | En código |

548| **Herramientas predeterminadas** | Preservadas | Preservadas | Preservadas | Perdidas (a menos que se incluyan) |548| **Herramientas predeterminadas** | Preservadas | Preservadas | Preservadas | Perdidas (a menos que se incluyan) |

549| **Seguridad integrada** | Mantenida | Mantenida | Mantenida | Debe agregarse |549| **Seguridad integrada** | Mantenida | Mantenida | Mantenida | Debe agregarse |

550| **Nivel de personalización** | Solo adiciones | Reemplazar o extender predeterminado | Solo adiciones | Control completo |550| **Nivel de personalización** | Solo adiciones | Adiciones; puede omitir las instrucciones de programación | Solo adiciones | Control completo |

551| **Control de versiones** | Con proyecto | Sí | Con código | Con código |551| **Control de versiones** | Con proyecto | Sí | Con código | Con código |

552| **Alcance** | Específico del proyecto | Usuario o proyecto | Sesión de código | Sesión de código |552| **Alcance** | Específico del proyecto | Usuario o proyecto | Sesión de código | Sesión de código |

553 553 

Details

2786 "prompt": str, # The task for the agent to perform2786 "prompt": str, # The task for the agent to perform

2787 "subagent_type": str | None, # The type of specialized agent to use2787 "subagent_type": str | None, # The type of specialized agent to use

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

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

2789 "run_in_background": bool | None, # Agents run in the background by default; set to False to run synchronously2790 "run_in_background": bool | None, # Agents run in the background by default; set to False to run synchronously

2790 "name": str | None, # Name for the spawned agent2791 "name": str | None, # Name for the spawned agent

2791 "team_name": str | None, # Deprecated; ignored2792 "team_name": str | None, # Deprecated; ignored

Details

70 `query()`70 `query()`

71</h3>71</h3>

72 72 

73La función principal para interactuar con Claude Code. Crea un generador asincrónico que transmite mensajes a medida que llegan.73La función principal para interactuar con Claude Code. Crea un generador asincrónico que transmite mensajes en streaming a medida que llegan.

74 74 

75```typescript theme={null}75```typescript theme={null}

76function query({76function query({


88 88 

89| Parámetro | Tipo | Descripción |89| Parámetro | Tipo | Descripción |

90| :- | :- | :- |90| :- | :- | :- |

91| `prompt` | `string \| AsyncIterable<`[`SDKUserMessage`](#sdkusermessage)`>` | El mensaje de entrada como una cadena o iterable asincrónico para el modo de transmisión |91| `prompt` | `string \| AsyncIterable<`[`SDKUserMessage`](#sdkusermessage)`>` | El prompt de entrada como una cadena o iterable asincrónico para el modo streaming |

92| `options` | [`Options`](#options) | Objeto de configuración opcional (vea el tipo Options a continuación) |92| `options` | [`Options`](#options) | Objeto de configuración opcional (consulta el tipo Options a continuación) |

93 93 

94<h4 id="returns">94<h4 id="returns">

95 Devuelve95 Devuelve


101 `startup()`101 `startup()`

102</h3>102</h3>

103 103 

104Precalienta el subproceso CLI iniciándolo y completando el protocolo de inicialización antes de que un mensaje esté disponible. El identificador [`WarmQuery`](#warmquery) devuelto acepta un mensaje más tarde y lo escribe en un proceso ya listo, por lo que la primera llamada a `query()` se resuelve sin pagar el costo de generación e inicialización del subproceso en línea. Si aún no conoce el directorio de trabajo de la sesión, use [`prewarm()`](#prewarm) en su lugar.104Precalienta el subproceso de la CLI iniciándolo y completando el protocolo de inicialización antes de que haya un prompt disponible. El identificador [`WarmQuery`](#warmquery) devuelto acepta un prompt más tarde y lo escribe en un proceso ya listo, por lo que la primera llamada a `query()` se resuelve sin pagar en línea el costo de generación e inicialización del subproceso. Si aún no conoces el directorio de trabajo de la sesión, usa [`prewarm()`](#prewarm) en su lugar.

105 105 

106```typescript theme={null}106```typescript theme={null}

107function startup(params?: {107function startup(params?: {


129 Ejemplo129 Ejemplo

130</h4>130</h4>

131 131 

132Llame a `startup()` temprano, por ejemplo al inicio de la aplicación, luego llame a `.query()` en el identificador devuelto una vez que un mensaje esté listo. Esto mueve la generación del subproceso e inicialización fuera de la ruta crítica.132Llama a `startup()` temprano, por ejemplo al inicio de la aplicación, y luego llama a `.query()` en el identificador devuelto una vez que un prompt esté listo. Esto saca la generación e inicialización del subproceso de la ruta crítica.

133 133 

134```typescript theme={null}134```typescript theme={null}

135import { startup } from "@anthropic-ai/claude-agent-sdk";135import { startup } from "@anthropic-ai/claude-agent-sdk";

136 136 

137// Pague el costo de inicio por adelantado137// Paga el costo de inicio por adelantado

138const warm = await startup({ options: { maxTurns: 3 } });138const warm = await startup({ options: { maxTurns: 3 } });

139 139 

140// Más tarde, cuando un mensaje esté listo, esto es inmediato140// Más tarde, cuando un prompt esté listo, esto es inmediato

141for await (const message of warm.query("What files are here?")) {141for await (const message of warm.query("What files are here?")) {

142 console.log(message);142 console.log(message);

143}143}


147 `prewarm()`147 `prewarm()`

148</h3>148</h3>

149 149 

150*Alfa.* Inicia un proceso de Claude Code como repuesto antes de saber qué sesión servirá, para que pueda vincularlo a una sesión más tarde con [`claim()`](#spareprocess). Úselo en una aplicación que se inicia antes de que el usuario elija una carpeta. Requiere TypeScript Agent SDK v0.3.282 o posterior.150*Alfa.* Inicia un proceso de Claude Code como repuesto antes de saber qué sesión servirá, para que puedas vincularlo a una sesión más tarde con [`claim()`](#spareprocess). Úsalo en una aplicación que se inicia antes de que el usuario elija una carpeta. Requiere TypeScript Agent SDK v0.3.282 o posterior.

151 151 

152`prewarm()` completa el mismo protocolo de inicialización que [`startup()`](#startup), con el proceso esperando en `options.cwd` cuando lo establece y de lo contrario en un directorio temporal privado bajo su directorio de configuración de Claude Code. El directorio de trabajo de la sesión, sus hooks `SessionStart`, sus servidores MCP de stdio, y su contexto CLAUDE.md y git esperan la reclamación. Un repuesto ocupa aproximadamente 230 a 260 MB de memoria mientras espera. Si su [`spawnClaudeCodeProcess`](#options) ejecuta Claude Code en otra máquina o en un contenedor, establezca `options.cwd` en un directorio que exista allí para que el repuesto espere.152`prewarm()` completa el mismo protocolo de inicialización que [`startup()`](#startup), con el proceso esperando en `options.cwd` cuando lo estableces y, de lo contrario, en un directorio temporal privado dentro de tu directorio de configuración de Claude Code. El directorio de trabajo de la sesión, sus hooks `SessionStart`, sus servidores MCP de stdio, y su contexto de CLAUDE.md y git esperan a la reclamación. Un repuesto ocupa aproximadamente de 230 a 260 MB de memoria mientras espera. Si tu [`spawnClaudeCodeProcess`](#options) ejecuta Claude Code en otra máquina o en un contenedor, establece `options.cwd` en un directorio que exista allí para que el repuesto espere en él.

153 153 

154```typescript theme={null}154```typescript theme={null}

155function prewarm(params?: {155function prewarm(params?: {


158}): Promise<SpareProcess>;158}): Promise<SpareProcess>;

159```159```

160 160 

161`options` e `initializeTimeoutMs` significan lo mismo que para `startup()`, excepto que `options.cwd` establece solo el directorio en el que el repuesto espera. La promesa se resuelve con un [`SpareProcess`](#spareprocess) una vez que el proceso ha completado su protocolo de inicialización. `prewarm()` lanza una excepción si `options` establece `resume`, `continue`, o `forkSession`, porque un repuesto aún no tiene sesión. Todo lo que una reclamación no puede establecer, como `mcpServers`, `hooks`, `canUseTool`, `settingSources`, `systemPrompt`, y `plugins`, se fija para la vida útil del repuesto, por lo que mantenga un repuesto por conjunto distinto de esas opciones y precaliente nuevamente cuando cambien.161`options` e `initializeTimeoutMs` significan lo mismo que para `startup()`, excepto que `options.cwd` establece solo el directorio en el que el repuesto espera. La promesa se resuelve con un [`SpareProcess`](#spareprocess) una vez que el proceso ha completado su protocolo de inicialización. `prewarm()` lanza una excepción si `options` establece `resume`, `continue` o `forkSession`, porque un repuesto aún no tiene sesión. Todo lo que una reclamación no puede establecer, como `mcpServers`, `hooks`, `canUseTool`, `settingSources`, `systemPrompt` y `plugins`, queda fijo durante la vida útil del repuesto, así que mantén un repuesto por cada conjunto distinto de esas opciones y precalienta de nuevo cuando cambien.

162 162 

163<h4 id="example-2">163<h4 id="example-2">

164 Ejemplo164 Ejemplo

165</h4>165</h4>

166 166 

167Precaliente al inicio de la aplicación, luego reclame el repuesto cuando el usuario inicie una sesión:167Precalienta al inicio de la aplicación y luego reclama el repuesto cuando el usuario inicie una sesión:

168 168 

169```typescript theme={null}169```typescript theme={null}

170import { prewarm } from "@anthropic-ai/claude-agent-sdk";170import { prewarm } from "@anthropic-ai/claude-agent-sdk";


198 `tool()`198 `tool()`

199</h3>199</h3>

200 200 

201Crea una definición de herramienta MCP segura de tipos para usar con servidores MCP del SDK.201Crea una definición de herramienta MCP con seguridad de tipos para usar con servidores MCP del SDK.

202 202 

203```typescript theme={null}203```typescript theme={null}

204function tool<Schema extends AnyZodRawShape>(204function tool<Schema extends AnyZodRawShape>(


220| `description` | `string` | Una descripción de lo que hace la herramienta |220| `description` | `string` | Una descripción de lo que hace la herramienta |

221| `inputSchema` | `Schema extends AnyZodRawShape` | Esquema Zod que define los parámetros de entrada de la herramienta (soporta tanto Zod 3 como Zod 4) |221| `inputSchema` | `Schema extends AnyZodRawShape` | Esquema Zod que define los parámetros de entrada de la herramienta (soporta tanto Zod 3 como Zod 4) |

222| `handler` | `(args, extra) => Promise<`[`CallToolResult`](#calltoolresult)`>` | Función asincrónica que ejecuta la lógica de la herramienta |222| `handler` | `(args, extra) => Promise<`[`CallToolResult`](#calltoolresult)`>` | Función asincrónica que ejecuta la lógica de la herramienta |

223| `extras` | `{ annotations?: `[`ToolAnnotations`](#toolannotations)`; searchHint?: string; alwaysLoad?: boolean }` | Extras opcionales. `annotations` proporciona sugerencias de comportamiento MCP a los clientes. `searchHint` es una frase de capacidad de una línea que se muestra en la lista de herramientas diferidas cuando la [búsqueda de herramientas](/docs/es/agent-sdk/tool-search) está activa. `alwaysLoad: true` mantiene el esquema completo de esta herramienta en el mensaje inicial en lugar de diferirlo |223| `extras` | `{ annotations?: `[`ToolAnnotations`](#toolannotations)`; searchHint?: string; alwaysLoad?: boolean }` | Extras opcionales. `annotations` proporciona sugerencias de comportamiento MCP a los clientes. `searchHint` es una frase de capacidad de una línea que se muestra en la lista de herramientas diferidas cuando la [búsqueda de herramientas](/docs/es/agent-sdk/tool-search) está activa. `alwaysLoad: true` mantiene el esquema completo de esta herramienta en el prompt inicial en lugar de diferirlo |

224 224 

225<h4 id="toolannotations">225<h4 id="toolannotations">

226 `ToolAnnotations`226 `ToolAnnotations`


255 `createSdkMcpServer()`255 `createSdkMcpServer()`

256</h3>256</h3>

257 257 

258Crea una instancia de servidor MCP que se ejecuta en el mismo proceso que su aplicación.258Crea una instancia de servidor MCP que se ejecuta en el mismo proceso que tu aplicación.

259 259 

260```typescript theme={null}260```typescript theme={null}

261function createSdkMcpServer(options: {261function createSdkMcpServer(options: {


278| `options.version` | `string` | Cadena de versión opcional |278| `options.version` | `string` | Cadena de versión opcional |

279| `options.instructions` | `string` | Instrucciones del servidor opcionales, devueltas desde `initialize` y expuestas al modelo como un bloque de instrucciones MCP |279| `options.instructions` | `string` | Instrucciones del servidor opcionales, devueltas desde `initialize` y expuestas al modelo como un bloque de instrucciones MCP |

280| `options.tools` | `Array<SdkMcpToolDefinition>` | Matriz de definiciones de herramientas creadas con [`tool()`](#tool) |280| `options.tools` | `Array<SdkMcpToolDefinition>` | Matriz de definiciones de herramientas creadas con [`tool()`](#tool) |

281| `options.alwaysLoad` | `boolean` | Cuando es `true`, cada herramienta de este servidor permanece en el prompt inicial en lugar de diferirse detrás de la [búsqueda de herramientas](/docs/es/agent-sdk/tool-search). Se combina con `alwaysLoad` por herramienta en [`tool()`](#tool) |281| `options.alwaysLoad` | `boolean` | Cuando es `true`, las herramientas de este servidor permanecen en el prompt inicial en lugar de diferirse detrás de la [búsqueda de herramientas](/docs/es/agent-sdk/tool-search). Se combina con `alwaysLoad` por herramienta en [`tool()`](#tool) |

282| `options.timeout` | `number` | Tiempo de espera en milisegundos para las llamadas de herramientas de este servidor. Claude Code lo aplica a este servidor en lugar de [`MCP_TOOL_TIMEOUT`](/docs/es/env-vars). Pase un número entero de al menos 1000. Claude Code ignora otros valores. Requiere TypeScript Agent SDK v0.3.248 o posterior |282| `options.timeout` | `number` | Tiempo de espera en milisegundos para las llamadas a herramientas de este servidor. Claude Code lo aplica a este servidor en lugar de [`MCP_TOOL_TIMEOUT`](/docs/es/env-vars). Pasa un número entero de al menos 1000. Claude Code ignora otros valores. Requiere TypeScript Agent SDK v0.3.248 o posterior |

283 283 

284<h3 id="listsessions">284<h3 id="listsessions">

285 `listSessions()`285 `listSessions()`

286</h3>286</h3>

287 287 

288Descubre y enumera sesiones pasadas con metadatos ligeros. Filtre por directorio de proyecto o enumere sesiones en todos los proyectos.288Descubre y enumera sesiones pasadas con metadatos ligeros. Filtra por directorio de proyecto o enumera sesiones en todos los proyectos.

289 289 

290```typescript theme={null}290```typescript theme={null}

291function listSessions(options?: ListSessionsOptions): Promise<SDKSessionInfo[]>;291function listSessions(options?: ListSessionsOptions): Promise<SDKSessionInfo[]>;


297 297 

298| Parámetro | Tipo | Predeterminado | Descripción |298| Parámetro | Tipo | Predeterminado | Descripción |

299| :- | :- | :- | :- |299| :- | :- | :- | :- |

300| `options.dir` | `string` | `undefined` | Directorio para enumerar sesiones. Cuando se omite, devuelve sesiones en todos los proyectos |300| `options.dir` | `string` | `undefined` | Directorio para el que enumerar sesiones. Cuando se omite, devuelve sesiones de todos los proyectos |

301| `options.limit` | `number` | `undefined` | Número máximo de sesiones a devolver |301| `options.limit` | `number` | `undefined` | Número máximo de sesiones a devolver |

302| `options.includeWorktrees` | `boolean` | `true` | Cuando `dir` está dentro de un repositorio git, incluya sesiones de todas las rutas de worktree |302| `options.includeWorktrees` | `boolean` | `true` | Cuando `dir` está dentro de un repositorio git, incluye sesiones de todas las rutas de worktree |

303 303 

304<h4 id="return-type-sdksessioninfo">304<h4 id="return-type-sdksessioninfo">

305 Tipo de retorno: `SDKSessionInfo`305 Tipo de retorno: `SDKSessionInfo`


308| Propiedad | Tipo | Descripción |308| Propiedad | Tipo | Descripción |

309| :- | :- | :- |309| :- | :- | :- |

310| `sessionId` | `string` | Identificador de sesión único (UUID) |310| `sessionId` | `string` | Identificador de sesión único (UUID) |

311| `summary` | `string` | Título de visualización: título personalizado, resumen generado automáticamente o primer mensaje |311| `summary` | `string` | Título de visualización: título personalizado, prompt más reciente, resumen generado automáticamente o primer prompt |

312| `lastModified` | `number` | Última hora de modificación en milisegundos desde la época |312| `lastModified` | `number` | Última hora de modificación en milisegundos desde la época |

313| `fileSize` | `number \| undefined` | Tamaño del archivo de sesión en bytes. Solo se completa para almacenamiento JSONL local |313| `fileSize` | `number \| undefined` | Tamaño del archivo de sesión en bytes. Solo se completa para almacenamiento JSONL local |

314| `customTitle` | `string \| undefined` | Título de sesión establecido por el usuario cuando se establece uno, por ejemplo con `--name`, `/rename`, la salida `sessionTitle` de un hook, o [`renameSession()`](#renamesession). De lo contrario, el título de sesión generado por IA, si la sesión tiene uno |314| `customTitle` | `string \| undefined` | El título personalizado de la sesión cuando hay uno establecido, por ejemplo con `--name`, `/rename`, la salida `sessionTitle` de un hook o [`renameSession()`](#renamesession). De lo contrario, el título de sesión generado por IA, si la sesión tiene uno |

315| `firstPrompt` | `string \| undefined` | Primer mensaje de usuario significativo en la sesión |315| `firstPrompt` | `string \| undefined` | Primer prompt de usuario significativo en la sesión |

316| `gitBranch` | `string \| undefined` | Rama Git al final de la sesión |316| `gitBranch` | `string \| undefined` | Rama Git al final de la sesión |

317| `cwd` | `string \| undefined` | Directorio de trabajo para la sesión |317| `cwd` | `string \| undefined` | Directorio de trabajo de la sesión |

318| `tag` | `string \| undefined` | Etiqueta de sesión establecida por el usuario (vea [`tagSession()`](#tagsession)) |318| `tag` | `string \| undefined` | Etiqueta de sesión establecida por el usuario (consulta [`tagSession()`](#tagsession)) |

319| `createdAt` | `number \| undefined` | Hora de creación en milisegundos desde la época, de la marca de tiempo de la primera entrada |319| `createdAt` | `number \| undefined` | Hora de creación en milisegundos desde la época, de la marca de tiempo de la primera entrada |

320 320 

321<h4 id="example-3">321<h4 id="example-3">

322 Ejemplo322 Ejemplo

323</h4>323</h4>

324 324 

325Imprima las 10 sesiones más recientes para un proyecto. Los resultados se ordenan por `lastModified` descendente, por lo que el primer elemento es el más nuevo. Omita `dir` para buscar en todos los proyectos.325Imprime las 10 sesiones más recientes de un proyecto. Los resultados se ordenan por `lastModified` en orden descendente, por lo que el primer elemento es el más nuevo. Omite `dir` para buscar en todos los proyectos.

326 326 

327```typescript theme={null}327```typescript theme={null}

328import { listSessions } from "@anthropic-ai/claude-agent-sdk";328import { listSessions } from "@anthropic-ai/claude-agent-sdk";


338 `getSessionMessages()`338 `getSessionMessages()`

339</h3>339</h3>

340 340 

341Lee mensajes de usuario y asistente de una transcripción de sesión pasada.341Lee mensajes de usuario y asistente de la transcripción de una sesión pasada.

342 342 

343```typescript theme={null}343```typescript theme={null}

344function getSessionMessages(344function getSessionMessages(


353 353 

354| Parámetro | Tipo | Predeterminado | Descripción |354| Parámetro | Tipo | Predeterminado | Descripción |

355| :- | :- | :- | :- |355| :- | :- | :- | :- |

356| `sessionId` | `string` | requerido | UUID de sesión a leer (vea `listSessions()`) |356| `sessionId` | `string` | requerido | UUID de la sesión a leer (consulta `listSessions()`) |

357| `options.dir` | `string` | `undefined` | Directorio de proyecto para encontrar la sesión. Cuando se omite, busca en todos los proyectos |357| `options.dir` | `string` | `undefined` | Directorio de proyecto en el que buscar la sesión. Cuando se omite, busca en todos los proyectos |

358| `options.limit` | `number` | `undefined` | Número máximo de mensajes a devolver |358| `options.limit` | `number` | `undefined` | Número máximo de mensajes a devolver |

359| `options.offset` | `number` | `undefined` | Número de mensajes a omitir desde el inicio |359| `options.offset` | `number` | `undefined` | Número de mensajes a omitir desde el inicio |

360 360 


367| `type` | `"user" \| "assistant"` | Rol del mensaje |367| `type` | `"user" \| "assistant"` | Rol del mensaje |

368| `uuid` | `string` | Identificador de mensaje único |368| `uuid` | `string` | Identificador de mensaje único |

369| `session_id` | `string` | Sesión a la que pertenece este mensaje |369| `session_id` | `string` | Sesión a la que pertenece este mensaje |

370| `message` | `unknown` | Carga útil de mensaje sin procesar de la transcripción |370| `message` | `unknown` | Payload del mensaje sin procesar de la transcripción |

371| `parent_tool_use_id` | `string \| null` | Para mensajes de subagente, el `tool_use_id` de la llamada de herramienta `Agent` o `Skill` que inició el subagente. `null` para mensajes de sesión principal y sesiones más antiguas |371| `parent_tool_use_id` | `string \| null` | Para mensajes de subagente, el `tool_use_id` de la llamada a herramienta `Agent` o `Skill` que inició el subagente. `null` para mensajes de la sesión principal y sesiones más antiguas |

372| `parent_agent_id` | `string \| null` | Para mensajes de un [subagente anidado](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents), el `agentId` del subagente que lo generó. `null` para mensajes de sesión principal, mensajes de subagentes de nivel superior y sesiones más antiguas. Requiere Claude Code v2.1.202 o posterior |372| `parent_agent_id` | `string \| null` | Para mensajes de un [subagente anidado](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents), el `agentId` del subagente que lo generó. `null` para mensajes de la sesión principal, mensajes de subagentes de nivel superior y sesiones más antiguas. Requiere Claude Code v2.1.202 o posterior |

373 373 

374<h4 id="example-4">374<h4 id="example-4">

375 Ejemplo375 Ejemplo


396 `getSessionInfo()`396 `getSessionInfo()`

397</h3>397</h3>

398 398 

399Lee metadatos para una única sesión por ID sin escanear el directorio de proyecto completo.399Lee los metadatos de una única sesión por ID sin escanear el directorio de proyecto completo.

400 400 

401```typescript theme={null}401```typescript theme={null}

402function getSessionInfo(402function getSessionInfo(


414| `sessionId` | `string` | requerido | UUID de la sesión a buscar |414| `sessionId` | `string` | requerido | UUID de la sesión a buscar |

415| `options.dir` | `string` | `undefined` | Ruta del directorio del proyecto. Cuando se omite, busca en todos los directorios de proyecto |415| `options.dir` | `string` | `undefined` | Ruta del directorio del proyecto. Cuando se omite, busca en todos los directorios de proyecto |

416 416 

417Devuelve [`SDKSessionInfo`](#return-type-sdksessioninfo), o `undefined` si la sesión no se encuentra.417Devuelve [`SDKSessionInfo`](#return-type-sdksessioninfo), o `undefined` si no se encuentra la sesión.

418 418 

419<h3 id="renamesession">419<h3 id="renamesession">

420 `renameSession()`420 `renameSession()`

421</h3>421</h3>

422 422 

423Cambia el nombre de una sesión añadiendo una entrada de título personalizado. Las llamadas repetidas son seguras; el título más reciente gana.423Cambia el nombre de una sesión añadiendo una entrada de título personalizado. Las llamadas repetidas son seguras; prevalece el título más reciente.

424 424 

425```typescript theme={null}425```typescript theme={null}

426function renameSession(426function renameSession(


437| Parámetro | Tipo | Predeterminado | Descripción |437| Parámetro | Tipo | Predeterminado | Descripción |

438| :- | :- | :- | :- |438| :- | :- | :- | :- |

439| `sessionId` | `string` | requerido | UUID de la sesión a renombrar |439| `sessionId` | `string` | requerido | UUID de la sesión a renombrar |

440| `title` | `string` | requerido | Nuevo título. Debe ser no vacío después de recortar espacios en blanco |440| `title` | `string` | requerido | Nuevo título. No debe estar vacío después de recortar los espacios en blanco |

441| `options.dir` | `string` | `undefined` | Ruta del directorio del proyecto. Cuando se omite, busca en todos los directorios de proyecto |441| `options.dir` | `string` | `undefined` | Ruta del directorio del proyecto. Cuando se omite, busca en todos los directorios de proyecto |

442 442 

443<h3 id="tagsession">443<h3 id="tagsession">

444 `tagSession()`444 `tagSession()`

445</h3>445</h3>

446 446 

447Etiqueta una sesión. Pase `null` para borrar la etiqueta. Las llamadas repetidas son seguras; la etiqueta más reciente gana.447Etiqueta una sesión. Pasa `null` para borrar la etiqueta. Las llamadas repetidas son seguras; prevalece la etiqueta más reciente.

448 448 

449```typescript theme={null}449```typescript theme={null}

450function tagSession(450function tagSession(


468 `resolveSettings()`468 `resolveSettings()`

469</h3>469</h3>

470 470 

471Resuelve la configuración efectiva de Claude Code para un directorio determinado utilizando el mismo motor de fusión que la CLI, sin generar la CLI de Claude. Úselo para inspeccionar qué configuración vería una llamada a `query()` antes de invocar una.471Resuelve la configuración efectiva de Claude Code para un directorio determinado utilizando el mismo motor de combinación que la CLI, sin generar la CLI de Claude. Úsalo para inspeccionar qué configuración vería una llamada a `query()` antes de invocar una.

472 472 

473<Note>473<Note>

474 Esta función es alfa y su API puede cambiar antes de la estabilización.474 Esta función es alfa y su API puede cambiar antes de la estabilización.

475</Note>475</Note>

476 476 

477La instantánea difiere de lo que una sesión `query()` activa aplica:477La instantánea difiere de lo que aplica una sesión `query()` activa:

478 478 

479* **`policyHelper`**: `resolveSettings()` lee fuentes MDM, incluidas plist de macOS y HKLM/HKCU de Windows, pero no ejecuta el subproceso `policyHelper` configurado por el administrador.479* **`policyHelper`**: `resolveSettings()` lee fuentes MDM, incluidas plist de macOS y HKLM/HKCU de Windows, pero no ejecuta el subproceso `policyHelper` configurado por el administrador.

480* **Configuración administrada por servidor**: `resolveSettings()` no obtiene [configuración administrada por servidor](/docs/es/server-managed-settings#fetch-and-caching-behavior). Páselas como `options.serverManagedSettings` para incluirlas.480* **Configuración administrada por servidor**: `resolveSettings()` no obtiene la [configuración administrada por servidor](/docs/es/server-managed-settings#fetch-and-caching-behavior). Pásala como `options.serverManagedSettings` para incluirla.

481* **`defaultMode`**: la instantánea devuelve `permissions.defaultMode` tal como está de todos los niveles, por lo que puede incluir los valores `'auto'` y `'bypassPermissions'` de la configuración del proyecto y local, que [una sesión activa ignora](/docs/es/permission-modes#which-mode-a-session-starts-in).481* **`defaultMode`**: la instantánea devuelve `permissions.defaultMode` tal como está de todos los niveles, por lo que puede incluir los valores `'auto'` y `'bypassPermissions'` de la configuración del proyecto y local, que [una sesión activa ignora](/docs/es/permission-modes#which-mode-a-session-starts-in).

482 482 

483```typescript theme={null}483```typescript theme={null}


494 494 

495| Parámetro | Tipo | Predeterminado | Descripción |495| Parámetro | Tipo | Predeterminado | Descripción |

496| :- | :- | :- | :- |496| :- | :- | :- | :- |

497| `options.cwd` | `string` | `process.cwd()` | Directorio para resolver la configuración del proyecto y local relativa a |497| `options.cwd` | `string` | `process.cwd()` | Directorio respecto al cual se resuelve la configuración del proyecto y local |

498| `options.settingSources` | [`SettingSource`](#settingsource)`[]` | Todas las fuentes | Qué fuentes del sistema de archivos cargar. Pase `[]` para omitir la configuración del usuario, proyecto y local. La [política administrada por punto final](/docs/es/managed-settings#delivery-mechanisms) se carga en todos los casos. `resolveSettings()` incluye configuración administrada por servidor solo cuando pasa `options.serverManagedSettings` |498| `options.settingSources` | [`SettingSource`](#settingsource)`[]` | Todas las fuentes | Qué fuentes del sistema de archivos cargar. Pasa `[]` para omitir la configuración del usuario, del proyecto y local. La [política administrada por endpoint](/docs/es/managed-settings#delivery-mechanisms) se carga en todos los casos. `resolveSettings()` incluye la configuración administrada por servidor solo cuando pasas `options.serverManagedSettings` |

499| `options.managedSettings` | `Settings` | `undefined` | Configuración de nivel de política suministrada por el host de incrustación. Sigue las mismas reglas que [`managedSettings` en `Options`](#options), excepto que `resolveSettings()` no ejecuta un [`policyHelper`](/docs/es/settings-reference#policyhelper) configurado, por lo que la instantánea puede incluir configuración que una sesión activa descarta |499| `options.managedSettings` | `Settings` | `undefined` | Configuración de nivel de política suministrada por el host de incrustación. Sigue las mismas reglas que [`managedSettings` en `Options`](#options), excepto que `resolveSettings()` no ejecuta un [`policyHelper`](/docs/es/settings-reference#policyhelper) configurado, por lo que la instantánea puede incluir configuración que una sesión activa descarta |

500| `options.serverManagedSettings` | `Settings` | `undefined` | Carga útil de configuración administrada por servidor desde `/api/claude_code/settings`. Las claves no restrictivas pasan sin filtrar |500| `options.serverManagedSettings` | `Settings` | `undefined` | Payload de configuración administrada por servidor desde `/api/claude_code/settings`. Las claves no restrictivas pasan sin filtrar |

501 501 

502<h4 id="return-type-resolvedsettings">502<h4 id="return-type-resolvedsettings">

503 Tipo de retorno: `ResolvedSettings`503 Tipo de retorno: `ResolvedSettings`

504</h4>504</h4>

505 505 

506`resolveSettings()` devuelve un objeto que describe la configuración fusionada y la fuente que contribuyó a cada clave.506`resolveSettings()` devuelve un objeto que describe la configuración combinada y la fuente que aportó cada clave.

507 507 

508| Propiedad | Tipo | Descripción |508| Propiedad | Tipo | Descripción |

509| :- | :- | :- |509| :- | :- | :- |

510| `effective` | `Settings` | Configuración fusionada después de aplicar todas las fuentes habilitadas en orden de precedencia |510| `effective` | `Settings` | Configuración combinada después de aplicar todas las fuentes habilitadas en orden de precedencia |

511| `provenance` | `Partial<Record<keyof Settings, ProvenanceEntry>>` | Para cada clave de nivel superior en `effective`, qué fuente suministró el valor |511| `provenance` | `Partial<Record<keyof Settings, ProvenanceEntry>>` | Para cada clave de nivel superior en `effective`, qué fuente suministró el valor |

512| `sources` | `Array<{ source, settings, path?, policyOrigin? }>` | Configuración sin procesar por fuente, ordenada de precedencia más baja a más alta |512| `sources` | `Array<{ source, settings, path?, policyOrigin? }>` | Configuración sin procesar por fuente, ordenada de menor a mayor precedencia |

513 513 

514<h4 id="example-5">514<h4 id="example-5">

515 Ejemplo515 Ejemplo

516</h4>516</h4>

517 517 

518El ejemplo a continuación resuelve la configuración para un directorio de proyecto e imprime la fuente que controla el período de limpieza. En una máquina donde ningún archivo de configuración establece `cleanupPeriodDays`, ambas líneas impresas muestran `undefined` para el valor, que es la salida esperada en lugar de un error.518El siguiente ejemplo resuelve la configuración para un directorio de proyecto e imprime la fuente que controla el período de limpieza. En una máquina donde ningún archivo de configuración establece `cleanupPeriodDays`, ambas líneas impresas muestran `undefined` como valor, que es la salida esperada y no un error.

519 519 

520```typescript theme={null}520```typescript theme={null}

521import { resolveSettings } from "@anthropic-ai/claude-agent-sdk";521import { resolveSettings } from "@anthropic-ai/claude-agent-sdk";


1756* `ttft_stream_ms`: tiempo en milisegundos hasta el primer evento de streaming `message_start`, cuando se abre el stream de respuesta. Es menor que `ttft_ms`; la diferencia entre ambos es el tiempo dedicado a transmitir en streaming el primer mensaje. Presente solo en la rama de éxito.1756* `ttft_stream_ms`: tiempo en milisegundos hasta el primer evento de streaming `message_start`, cuando se abre el stream de respuesta. Es menor que `ttft_ms`; la diferencia entre ambos es el tiempo dedicado a transmitir en streaming el primer mensaje. Presente solo en la rama de éxito.

1757* `user_message_uuid`: el `uuid` del mensaje que enviaste y que este turno respondió. Consulta [`user_message_uuid`](#user_message_uuid) para saber qué resultados lo llevan.1757* `user_message_uuid`: el `uuid` del mensaje que enviaste y que este turno respondió. Consulta [`user_message_uuid`](#user_message_uuid) para saber qué resultados lo llevan.

1758* `user_message_uuids`: los `uuid` de cada mensaje que enviaste y que Claude Code respondió en este turno. Consulta [`user_message_uuids`](#user_message_uuids).1758* `user_message_uuids`: los `uuid` de cada mensaje que enviaste y que Claude Code respondió en este turno. Consulta [`user_message_uuids`](#user_message_uuids).

1759* `resume_reason`: por qué Claude Code volvió a ejecutar este turno después de que un reinicio lo interrumpiera. Presente en ambas ramas, y solo en esa nueva ejecución. Consulta [`resume_reason`](#resume_reason).1759* `resume_reason`: por qué Claude Code volvió a ejecutar este turno después de que un reinicio lo interrumpiera. Presente en ambas ramas. Consulta [`resume_reason`](#resume_reason).

1760* `local_command`: el nombre del comando que despachó el turno, en el resultado de éxito de un turno que un comando completó sin entrar en el bucle del agente, como `/compact`. El nombre se convierte a letras minúsculas y guiones bajos, así que `/reload-plugins` reporta `reload_plugins`. Un comando que proporciona un servidor MCP, y el `/mcp` integrado, reportan `mcp`. Un comando que definiste tú mismo reporta `custom`. Los argumentos nunca se incluyen. Ausente en todo turno que entró en el bucle del agente y en los envíos que no ejecutaron ningún comando. Requiere Agent SDK v0.3.268 o posterior.1760* `local_command`: el nombre del comando que despachó el turno, en el resultado de éxito de un turno que un comando completó sin entrar en el bucle del agente, como `/compact`. El nombre se convierte a letras minúsculas y guiones bajos, así que `/reload-plugins` reporta `reload_plugins`. Un comando que proporciona un servidor MCP, y el `/mcp` integrado, reportan `mcp`. Un comando que definiste tú mismo reporta `custom`. Los argumentos nunca se incluyen. Ausente en todo turno que entró en el bucle del agente y en los envíos que no ejecutaron ningún comando. Requiere Agent SDK v0.3.268 o posterior.

1761* `request_sent_wall_ms`: milisegundos de época en los que Claude Code despachó la solicitud de API, para cruzarlos con marcas de tiempo del lado del servidor. Presente solo junto con [`user_message_uuid`](#user_message_uuid), en un resultado de éxito con `is_error` en false cuyo turno envió una solicitud de API.1761* `request_sent_wall_ms`: milisegundos de época en los que Claude Code despachó la solicitud de API, para cruzarlos con marcas de tiempo del lado del servidor. Presente solo junto con [`user_message_uuid`](#user_message_uuid), en un resultado de éxito con `is_error` en false cuyo turno envió una solicitud de API.

1762* `first_content_frame_ms`: tiempo en milisegundos hasta el primer evento de streaming `content_block_start` o `content_block_delta`, contando los bloques de pensamiento como contenido. Presente solo en la rama de éxito, cuando `is_error` es false. Requiere Agent SDK v0.3.260 o posterior.1762* `first_content_frame_ms`: tiempo en milisegundos hasta el primer evento de streaming `content_block_start` o `content_block_delta`, contando los bloques de pensamiento como contenido. Presente solo en la rama de éxito, cuando `is_error` es false. Requiere Agent SDK v0.3.260 o posterior.


1845* **El resultado de la nueva ejecución**: tanto en la rama de éxito como en la de error, lleve o no el resultado `user_message_uuid`.1845* **El resultado de la nueva ejecución**: tanto en la rama de éxito como en la de error, lleve o no el resultado `user_message_uuid`.

1846* **Los frames de respuesta de la nueva ejecución**: aquellos que llevan [`user_message_uuid`](#user_message_uuid).1846* **Los frames de respuesta de la nueva ejecución**: aquellos que llevan [`user_message_uuid`](#user_message_uuid).

1847 1847 

1848El valor es un token breve en minúsculas que indica por qué se volvió a ejecutar el turno, como `interrupted_turn`. El campo está ausente en todos los demás turnos.1848El valor es un token breve en minúsculas que nombra por qué se volvió a ejecutar el turno, como `interrupted_turn`.

1849 1849 

1850<h4 id="queued_turn_count">1850<h4 id="queued_turn_count">

1851 `queued_turn_count`1851 `queued_turn_count`


1887 | "worktree_resume_refused"1887 | "worktree_resume_refused"

1888 | "worktree_unverified"1888 | "worktree_unverified"

1889 | "cli_version_too_old"1889 | "cli_version_too_old"

1890 | "bypass_root";1890 | "bypass_root"

1891 | "org_config_required_unavailable"

1892 | "org_config_refused";

1891```1893```

1892 1894 

1893Cada valor nombra un rechazo:1895Cada valor nombra un rechazo:


1911| `worktree_unverified` | No se pudo verificar el worktree de la sesión en este momento, y reintentar puede funcionar |1913| `worktree_unverified` | No se pudo verificar el worktree de la sesión en este momento, y reintentar puede funcionar |

1912| `cli_version_too_old` | Esta versión de Claude Code está por debajo del mínimo que exige Anthropic |1914| `cli_version_too_old` | Esta versión de Claude Code está por debajo del mínimo que exige Anthropic |

1913| `bypass_root` | Se solicitó el modo de permisos bypass mientras se ejecutaba como root |1915| `bypass_root` | Se solicitó el modo de permisos bypass mientras se ejecutaba como root |

1916| `org_config_required_unavailable` | La sesión necesita las políticas y la configuración administrada de la organización antes de poder iniciar, y no se pudieron cargar, por ejemplo debido a un fallo de red o a un error del servidor de Anthropic. Requiere Agent SDK v0.3.293 o posterior |

1917| `org_config_refused` | Anthropic se negó a proporcionar las políticas y la configuración administrada de la organización para este inicio de sesión, por ejemplo porque el inicio de sesión caducó o fue revocado, o porque la organización no permite Claude Code para esta cuenta. Requiere Agent SDK v0.3.293 o posterior |

1914 1918 

1915<h3 id="sdksystemmessage">1919<h3 id="sdksystemmessage">

1916 `SDKSystemMessage`1920 `SDKSystemMessage`


3180**Nombre de herramienta:** `Agent`. El nombre anterior `Task` aún se acepta como alias, y el array `tools` en el mensaje de inicialización [`SDKSystemMessage`](#sdksystemmessage) actualmente enumera esta herramienta como `Task` para compatibilidad hacia atrás.3184**Nombre de herramienta:** `Agent`. El nombre anterior `Task` aún se acepta como alias, y el array `tools` en el mensaje de inicialización [`SDKSystemMessage`](#sdksystemmessage) actualmente enumera esta herramienta como `Task` para compatibilidad hacia atrás.

3181 3185 

3182<Note>3186<Note>

3183 El campo `mode` está deprecado e ignorado en Claude Code v2.1.212 o posterior. Un subagente se ejecuta en el modo de permiso de la sesión padre o en la [`permissionMode`](#agentdefinition) de su definición, y las [reglas de herencia de subagentes](/docs/es/agent-sdk/permissions#available-modes) deciden cuál.3187 El campo `mode` está obsoleto y se ignora en Claude Code v2.1.212 o posterior. Un subagente se ejecuta en el modo de permisos de la sesión padre o en el [`permissionMode`](#agentdefinition) de su definición, y las [reglas de herencia de subagentes](/docs/es/agent-sdk/permissions#available-modes) deciden cuál.

3184</Note>3188</Note>

3185 3189 

3186```typescript theme={null}3190```typescript theme={null}


3219};3223};

3220```3224```

3221 3225 

3222Hace preguntas aclaratorias al usuario durante la ejecución. Vea [Manejar aprobaciones e entrada del usuario](/docs/es/agent-sdk/user-input#handle-clarifying-questions) para detalles de uso.3226Hace preguntas aclaratorias al usuario durante la ejecución. Consulta [Manejar aprobaciones y entrada del usuario](/docs/es/agent-sdk/user-input#handle-clarifying-questions) para detalles de uso.

3223 3227 

3224<h3 id="bash">3228<h3 id="bash">

3225 Bash3229 Bash


3237};3241};

3238```3242```

3239 3243 

3240Ejecuta comandos Bash con tiempo de espera opcional y ejecución en segundo plano. El directorio de trabajo persiste entre comandos, incluyendo comandos ejecutados en turnos posteriores de una sesión de múltiples turnos; el estado del shell como variables de entorno exportadas no. Para los límites sobre qué cambios de directorio se mantienen, vea [Lo que persiste entre comandos](/docs/es/tools-reference#what-persists-between-commands). Para lo que establece el límite de primer plano, vea [Límites de tiempo de espera y salida](/docs/es/tools-reference#timeout-and-output-limits). Para el límite de tiempo en segundo plano, vea [Límite de tiempo para comandos en segundo plano](/docs/es/tools-reference#time-limit-for-background-commands).3244Ejecuta comandos Bash con tiempo de espera opcional y ejecución en segundo plano. El directorio de trabajo persiste entre comandos, incluyendo comandos ejecutados en turnos posteriores de una sesión de múltiples turnos; el estado del shell como variables de entorno exportadas no. Para los límites sobre qué cambios de directorio se mantienen, consulta [Lo que persiste entre comandos](/docs/es/tools-reference#what-persists-between-commands). Para lo que establece el límite de primer plano, consulta [Límites de tiempo de espera y salida](/docs/es/tools-reference#timeout-and-output-limits). Para el límite de tiempo en segundo plano, consulta [Límite de tiempo para comandos en segundo plano](/docs/es/tools-reference#time-limit-for-background-commands).

3241 3245 

3242<h3 id="monitor">3246<h3 id="monitor">

3243 Monitor3247 Monitor


3257};3261};

3258```3262```

3259 3263 

3260Ejecuta una fuente de fondo 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. Proporcione exactamente uno de `command` o `ws`. La fuente `ws` requiere Claude Code v2.1.195 o posterior.3264Ejecuta 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.

3261 3265 

3262`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.3266`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.

3263 3267 

3264El tipo exportado marca `timeout_ms` como requerido porque el esquema completa el valor predeterminado; una llamada que lo omite valida.3268El tipo exportado marca `timeout_ms` como requerido porque el esquema completa el valor predeterminado; una llamada que lo omite valida.

3265 3269 

3266Cuando Monitor ejecuta un comando, sigue las mismas reglas de permiso que Bash; una vigilancia de WebSocket solicita aprobación por separado. Vea la [referencia de herramienta Monitor](/docs/es/tools-reference#monitor-tool) para comportamiento y disponibilidad de proveedor.3270Cuando 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](/docs/es/tools-reference#monitor-tool) para comportamiento y disponibilidad de proveedor.

3267 3271 

3268<h3 id="taskoutput">3272<h3 id="taskoutput">

3269 TaskOutput3273 TaskOutput

3270</h3>3274</h3>

3271 3275 

3272Eliminado en Claude Code v2.1.277, junto con su tipo `TaskOutputInput`. Anteriormente recuperaba salida de una tarea de fondo en ejecución o completada; Claude lee el archivo de salida de una tarea de fondo con `Read` en su lugar.3276Eliminado en Claude Code v2.1.277, junto con su tipo `TaskOutputInput`. Anteriormente recuperaba la salida de una tarea en segundo plano en ejecución o completada; Claude lee el archivo de salida de una tarea en segundo plano con `Read` en su lugar.

3273 3277 

3274Una entrada `disallowedTools` o una regla de denegación que aún nombre `TaskOutput` se ignora sin una advertencia.3278Una entrada `disallowedTools` o una regla de denegación que aún nombre `TaskOutput` se ignora sin una advertencia.

3275 3279 


3305};3309};

3306```3310```

3307 3311 

3308Lee archivos del sistema de archivos local, incluyendo texto, imágenes, PDFs y cuadernos Jupyter. Use `pages` para rangos de páginas PDF (por ejemplo, `"1-5"`).3312Lee archivos del sistema de archivos local, incluyendo texto, imágenes, PDFs y cuadernos Jupyter. Usa `pages` para rangos de páginas PDF (por ejemplo, `"1-5"`).

3309 3313 

3310Para un PDF, Claude recibe el contenido del archivo dentro del `tool_result` de la llamada Read. Una lectura que devuelve la salida `pdf` [output](#tool-output-types) lleva un bloque `text` de resumen seguido de un bloque `document`. Una que devuelve la salida `parts` lleva el bloque `text` de resumen seguido de un bloque por página extraída: un bloque `image`, o un bloque `text` nombrando la página cuando Claude Code no pudo renderizarla como imagen. Antes de Agent SDK v0.3.242, Claude Code entregaba el contenido del archivo como un mensaje `user` separado después del resultado de la herramienta.3314Para un PDF, Claude recibe el contenido del archivo dentro del contenido `tool_result` de la llamada Read. Una lectura que devuelve la [salida](#tool-output-types) `pdf` lleva un bloque `text` de resumen seguido de un bloque `document`. Una que devuelve la salida `parts` lleva el bloque `text` de resumen seguido de un bloque por página extraída: un bloque `image`, o un bloque `text` nombrando la página cuando Claude Code no pudo renderizarla como imagen. Antes de Agent SDK v0.3.242, Claude Code entregaba el contenido del archivo como un mensaje `user` separado después del resultado de la herramienta.

3311 3315 

3312<h3 id="write">3316<h3 id="write">

3313 Write3317 Write


3380};3384};

3381```3385```

3382 3386 

3383Detiene una tarea de fondo en ejecución o shell por ID. A partir de v2.1.198, `task_id` también acepta un compañero de equipo de agentes o un agente de fondo nombrado por ID de agente o nombre.3387Detiene una tarea en segundo plano en ejecución o un shell por ID. A partir de v2.1.198, `task_id` también acepta un compañero de un equipo de agentes o un agente en segundo plano con nombre, por ID de agente o nombre.

3384 3388 

3385<h3 id="notebookedit">3389<h3 id="notebookedit">

3386 NotebookEdit3390 NotebookEdit


3455| - | - | - |3459| - | - | - |

3456| `script` | `string` | Script de flujo de trabajo en línea. Debe comenzar con `export const meta = { name, description }` como un literal, seguido del cuerpo del script usando `agent()`, `parallel()`, `pipeline()` y `phase()`. Una matriz `phases` opcional en `meta` agrupa agentes bajo etapas nombradas en la vista de progreso |3460| `script` | `string` | Script de flujo de trabajo en línea. Debe comenzar con `export const meta = { name, description }` como un literal, seguido del cuerpo del script usando `agent()`, `parallel()`, `pipeline()` y `phase()`. Una matriz `phases` opcional en `meta` agrupa agentes bajo etapas nombradas en la vista de progreso |

3457| `name` | `string` | Nombre de un flujo de trabajo integrado o uno guardado en `.claude/workflows/`. Se resuelve a un script |3461| `name` | `string` | Nombre de un flujo de trabajo integrado o uno guardado en `.claude/workflows/`. Se resuelve a un script |

3458| `scriptPath` | `string` | Ruta a un archivo de script de flujo de trabajo en disco. Tiene precedencia sobre `script` y `name`. Claude Code persiste cada invocación de script y devuelve la ruta en el resultado, para que pueda editar ese archivo e invocar nuevamente con el mismo `scriptPath` para iterar |3462| `scriptPath` | `string` | Ruta a un archivo de script de flujo de trabajo en disco. Tiene precedencia sobre `script` y `name`. Claude Code persiste el script de cada invocación y devuelve la ruta en el resultado, para que puedas editar ese archivo e invocar nuevamente con el mismo `scriptPath` para iterar |

3459| `args` | `unknown` | Valor de entrada expuesto al script como el `args` global, para flujos de trabajo nombrados parametrizados como una pregunta de investigación o una lista de rutas de archivo. Pase matrices y objetos como valores JSON reales, no como una cadena codificada en JSON |3463| `args` | `unknown` | Valor de entrada expuesto al script como el `args` global, para flujos de trabajo nombrados parametrizados como una pregunta de investigación o una lista de rutas de archivo. Pasa matrices y objetos como valores JSON reales, no como una cadena codificada en JSON |

3460| `resumeFromRunId` | `string` | ID de ejecución de una invocación anterior de `Workflow` para reanudar. Las llamadas `agent()` completadas con entradas sin cambios devuelven resultados en caché; el resto se ejecuta en vivo. [Reanudar después de una pausa](/docs/es/workflows#resume-after-a-pause) cubre qué llamadas completadas se re-ejecutan. Solo la misma sesión |3464| `resumeFromRunId` | `string` | ID de ejecución de una invocación anterior de `Workflow` para reanudar. Las llamadas `agent()` completadas con entradas sin cambios normalmente devuelven resultados en caché; el resto se ejecuta en vivo. [Reanudar después de una pausa](/docs/es/workflows#resume-after-a-pause) cubre qué llamadas completadas se vuelven a ejecutar. Solo la misma sesión |

3461| `title` | `string` | Ignorado; el bloque `meta` del script establece el título |3465| `title` | `string` | Ignorado; el bloque `meta` del script establece el título |

3462| `description` | `string` | Ignorado; el bloque `meta` del script establece la descripción |3466| `description` | `string` | Ignorado; el bloque `meta` del script establece la descripción |

3463 3467 


3492 3496 

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

3494 3498 

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

3496</Note>3500</Note>

3497 3501 

3498<h3 id="taskcreate">3502<h3 id="taskcreate">


3532};3536};

3533```3537```

3534 3538 

3535Parcha una tarea por ID. Establezca `status` a `"deleted"` para eliminarla.3539Modifica una tarea por ID. Establece `status` en `"deleted"` para eliminarla.

3536 3540 

3537<h3 id="taskget">3541<h3 id="taskget">

3538 TaskGet3542 TaskGet


3577};3581};

3578```3582```

3579 3583 

3580Sale del modo de planificación. El campo `allowedPrompts` está deprecado e ignorado; Claude Code aún lo acepta para que los llamadores existentes y las transcripciones se validen. Antes de v2.1.205, solicitaba permisos de Bash basados en mensajes para implementar el plan.3584Sale del modo plan. El campo `allowedPrompts` está obsoleto y se ignora; Claude Code aún lo acepta para que los llamadores existentes y las transcripciones se validen. Antes de v2.1.205, solicitaba permisos de Bash basados en prompts para implementar el plan.

3581 3585 

3582<h3 id="listmcpresources">3586<h3 id="listmcpresources">

3583 ListMcpResources3587 ListMcpResources


3621};3625};

3622```3626```

3623 3627 

3624Crea e ingresa a un worktree git temporal para trabajo aislado. Pase `path` para cambiar a un worktree existente en lugar de crear uno nuevo. En la primera entrada, el destino debe ser un worktree registrado del repositorio actual o, en un espacio de trabajo de múltiples repositorios, de un repositorio anidado dentro de él; desde dentro de una sesión de worktree debe estar bajo `.claude/worktrees/` del repositorio de la sesión. `name` y `path` son mutuamente excluyentes.3628Crea e ingresa a un worktree git temporal para trabajo aislado. Pasa `path` para cambiar a un worktree existente en lugar de crear uno nuevo. En la primera entrada, el destino debe ser un worktree registrado del repositorio actual o, en un espacio de trabajo de múltiples repositorios, de un repositorio anidado dentro de él; desde dentro de una sesión de worktree debe estar bajo `.claude/worktrees/` del repositorio de la sesión. `name` y `path` son mutuamente excluyentes.

3625 3629 

3626<h3 id="exitworktree">3630<h3 id="exitworktree">

3627 ExitWorktree3631 ExitWorktree


3648type EnterPlanModeInput = {};3652type EnterPlanModeInput = {};

3649```3653```

3650 3654 

3651Entra en modo de planificación, donde Claude investiga y presenta un plan antes de hacer cambios.3655Entra en modo plan, donde Claude investiga y presenta un plan antes de hacer cambios.

3652 3656 

3653<h3 id="croncreate">3657<h3 id="croncreate">

3654 CronCreate3658 CronCreate


3665};3669};

3666```3670```

3667 3671 

3668Programa un mensaje para ejecutarse en un cronograma cron de 5 campos en hora local. Establezca `recurring` a `false` para dispararse una vez en la siguiente coincidencia. Los trabajos tienen alcance de sesión de forma predeterminada, y reanudar con `--resume` o `--continue` restaura trabajos que no han expirado. Vea [Tareas programadas](/docs/es/scheduled-tasks).3672Programa un prompt para ejecutarse en un cronograma cron de 5 campos en hora local. Establece `recurring` en `false` para que se dispare una vez en la siguiente coincidencia. Los trabajos tienen alcance de sesión de forma predeterminada, y reanudar con `--resume` o `--continue` restaura trabajos que no han expirado. Consulta [Tareas programadas](/docs/es/scheduled-tasks).

3669 3673 

3670Establecer `durable` a `true` solicita persistencia a `.claude/scheduled_tasks.json` para que el trabajo sobreviva a los reinicios. La programación durable no está disponible en todas las sesiones: cuando no lo está, Claude Code acepta `durable: true` pero crea el trabajo solo de sesión. Lea el campo `durable` de la salida para ver si el trabajo persistió.3674Establecer `durable` en `true` solicita persistencia en `.claude/scheduled_tasks.json` para que el trabajo sobreviva a los reinicios. La programación durable no está disponible en todas las sesiones: cuando no lo está, Claude Code acepta `durable: true` pero crea el trabajo solo de sesión. Lee el campo `durable` de la salida para ver si el trabajo persistió.

3671 3675 

3672<h3 id="crondelete">3676<h3 id="crondelete">

3673 CronDelete3677 CronDelete


3711};3715};

3712```3716```

3713 3717 

3714Programa un despertar de una sola vez que dispara el mensaje dado después de un retraso. Esta herramienta respalda el comando `/loop` de ritmo propio. El tiempo de ejecución fija `delaySeconds` entre 60 y 3600 segundos. Los campos `delaySeconds`, `reason`, `prompt` y `noop` son requeridos a menos que `stop` sea true. `noop: true` reporta un despertar donde nada cambió. Establecer `stop: true` cancela el despertar pendiente y finaliza el `/loop` de ritmo propio. El campo `stop` requiere Claude Code v2.1.202 o posterior. Vea la [fila ScheduleWakeup en la referencia de herramientas](/docs/es/tools-reference).3718Programa un despertar de una sola vez que dispara el prompt dado después de un retraso. Esta herramienta respalda el comando `/loop` de ritmo propio. El tiempo de ejecución fija `delaySeconds` entre 60 y 3600 segundos. Los campos `delaySeconds`, `reason`, `prompt` y `noop` son requeridos a menos que `stop` sea true. `noop: true` reporta un despertar donde nada cambió. Establecer `stop: true` cancela el despertar pendiente y finaliza el `/loop` de ritmo propio. El campo `stop` requiere Claude Code v2.1.202 o posterior. Consulta la [fila ScheduleWakeup en la referencia de herramientas](/docs/es/tools-reference).

3715 3719 

3716<h3 id="remotetrigger">3720<h3 id="remotetrigger">

3717 RemoteTrigger3721 RemoteTrigger


3745 3749 

3746`list_runs` enumera las ejecuciones recientes de una rutina, y `get_run_log` lee el registro de una ejecución. `session_id` nombra la ejecución a leer, desde un resultado de `list_runs`, y `cursor` pagina a través de los resultados de cualquiera de las acciones. Ambas acciones requieren Claude Code v2.1.227 o posterior.3750`list_runs` enumera las ejecuciones recientes de una rutina, y `get_run_log` lee el registro de una ejecución. `session_id` nombra la ejecución a leer, desde un resultado de `list_runs`, y `cursor` pagina a través de los resultados de cualquiera de las acciones. Ambas acciones requieren Claude Code v2.1.227 o posterior.

3747 3751 

3748Esta herramienta está disponible solo cuando la sesión se autentica con una cuenta claude.ai en un plan con Rutinas habilitadas, y está ausente cuando la política de su organización deshabilita [Claude Code en la web](/docs/es/claude-code-on-the-web). En Claude Code v2.1.227 o posterior, la herramienta también está ausente cuando un Propietario ha [desactivado las rutinas para la organización](/docs/es/routines#routines-are-disabled-by-your-organizations-policy). Antes de v2.1.227, una sesión con solo el interruptor de rutinas desactivado aún mostraba la herramienta, y el servidor denegaba sus llamadas.3752Esta herramienta está disponible solo cuando la sesión se autentica con una cuenta de claude.ai en un plan con rutinas habilitadas, y está ausente cuando la política de tu organización deshabilita las [sesiones en la nube](/docs/es/claude-code-on-the-web). En Claude Code v2.1.227 o posterior, la herramienta también está ausente cuando un Propietario ha [desactivado las rutinas para la organización](/docs/es/routines#routines-are-disabled-by-your-organizations-policy). Antes de v2.1.227, una sesión con solo el interruptor de rutinas desactivado aún mostraba la herramienta, y el servidor denegaba sus llamadas.

3749 3753 

3750<h3 id="pushnotification">3754<h3 id="pushnotification">

3751 PushNotification3755 PushNotification


3760};3764};

3761```3765```

3762 3766 

3763Envía una notificación push proactiva al usuario. Mantenga `message` bajo 200 caracteres porque los sistemas operativos móviles truncan texto más largo. Vea la [fila PushNotification en la referencia de herramientas](/docs/es/tools-reference) para disponibilidad de proveedor; la entrega push se ejecuta a través de infraestructura alojada por Anthropic que no es accesible desde Amazon Bedrock, Claude Platform en AWS, Agent Platform de Google Cloud o Microsoft Foundry.3767Envía una notificación push proactiva al usuario. Mantén `message` por debajo de 200 caracteres porque los sistemas operativos móviles truncan texto más largo. Consulta la [fila PushNotification en la referencia de herramientas](/docs/es/tools-reference) para disponibilidad de proveedor; la entrega push se ejecuta a través de infraestructura alojada por Anthropic que no es accesible desde Amazon Bedrock, Claude Platform en AWS, Agent Platform de Google Cloud o Microsoft Foundry.

3764 3768 

3765<h3 id="repl">3769<h3 id="repl">

3766 REPL3770 REPL

3767</h3>3771</h3>

3768 3772 

3769Eliminado en v2.1.275. A través de v2.1.274, una herramienta `REPL` experimental podría activarse con `CLAUDE_CODE_REPL=1` en la opción [`env`](#options).3773Eliminado en v2.1.275. Hasta v2.1.274, una herramienta `REPL` experimental podía activarse con `CLAUDE_CODE_REPL=1` en la [opción `env`](#options).

3770 3774 

3771<h3 id="reportfindings">3775<h3 id="reportfindings">

3772 ReportFindings3776 ReportFindings


3827};3831};

3828```3832```

3829 3833 

3830Publica un archivo `.html` o `.md` local como una página de artefacto alojada, o enumera los artefactos publicados del usuario. Omita `action` o pase `"publish"` para publicar `file_path`, que es requerido para la acción de publicación. Cada campo a continuación se aplica a una publicación:3834Publica un archivo `.html` o `.md` local como una página de artefacto alojada, o enumera los artefactos publicados del usuario. Omite `action` o pasa `"publish"` para publicar `file_path`, que es requerido para la acción de publicación. Cada campo a continuación se aplica a una publicación:

3831 3835 

3832* `icon`: una palabra genérica corta para el icono de pestaña del navegador del artefacto, como `chart` o `map`. Claude lo incluye en una primera publicación y lo omite en una actualización, lo que mantiene el icono almacenado del artefacto.3836* `icon`: una palabra genérica corta para el icono de pestaña del navegador del artefacto, como `chart` o `map`. Claude lo incluye en una primera publicación y lo omite en una actualización, lo que mantiene el icono almacenado del artefacto.

3833* `favicon`: deprecado, y Claude lo omite.3837* `favicon`: obsoleto, y Claude lo omite.

3834* `title`: nombra la página publicada en la pestaña del navegador y la galería cuando el archivo HTML no tiene etiqueta `<title>`.3838* `title`: nombra la página publicada en la pestaña del navegador y la galería cuando el archivo HTML no tiene etiqueta `<title>`.

3835* `url`: apunta a un artefacto existente para actualizar en su lugar en lugar de crear uno nuevo.3839* `url`: apunta a un artefacto existente para actualizarlo en su lugar en vez de crear uno nuevo.

3836 3840 

3837`force` es una sobrescritura de último recurso que descarta una versión más nueva que otra sesión publicó. En un conflicto, la publicación fallida devuelve el contenido más nuevo; Claude fusiona sus cambios en ese contenido, o vuelve a leer el artefacto, y publica nuevamente. Pase `force` solo cuando el usuario solicita explícitamente descartar esa versión.3841`force` es una sobrescritura de último recurso que descarta una versión más nueva que otra sesión publicó. En un conflicto, la publicación fallida devuelve el contenido más nuevo; Claude fusiona sus cambios en ese contenido, o vuelve a leer el artefacto, y publica nuevamente. Pasa `force` solo cuando el usuario solicita explícitamente descartar esa versión.

3838 3842 

3839Pase `"list"` para enumerar los artefactos publicados del usuario; solo `limit` y `scope` pueden acompañarlo. `scope` tiene como valor predeterminado `"mine"`, que enumera artefactos que el usuario posee; `"shared"` enumera artefactos que otras personas compartieron con el usuario, y `"all"` enumera ambos.3843Pasa `"list"` para enumerar los artefactos publicados del usuario; solo `limit` y `scope` pueden acompañarlo. `scope` tiene como valor predeterminado `"mine"`, que enumera artefactos que el usuario posee; `"shared"` enumera artefactos que otras personas compartieron con el usuario, y `"all"` enumera ambos.

3840 3844 

3841* `capabilities`: las capacidades de tiempo de ejecución que usa la página publicada, codificadas por nombre de capacidad, como los [conectores que la página puede llamar](/docs/es/artifacts#pull-live-data-with-mcp-connectors). El servicio de artefactos valida la declaración y rechaza una publicación que nombra una capacidad que la cuenta no puede usar o le da una configuración inválida. Pase `{}` para borrar una declaración almacenada, y omita el campo en un redeploy para mantenerlo. Requiere Agent SDK v0.3.235 o posterior.3845`limit` establece la cantidad máxima de artefactos que devuelve un listado, de 1 a 200. Un `limit` superior a 50 requiere Agent SDK v0.3.292 o posterior. Sin `limit`, un listado devuelve hasta 25.

3842* `contract`: la versión de tiempo de ejecución contra la que se ejecuta la página publicada. Omítalo para mantener la versión actual del artefacto, pase `"latest"` para actualizar, o pase una versión específica para fijar o revertir. Requiere Agent SDK v0.3.235 o posterior.

3843 3846 

3844Los tipos se exportan, pero la herramienta está desactivada de forma predeterminada en sesiones de Agent SDK. La publicación también requiere todas las condiciones en la [tabla de disponibilidad de artefactos](/docs/es/artifacts#availability), que las sesiones autenticadas con una clave API no cumplen.3847* `capabilities`: las capacidades de tiempo de ejecución que usa la página publicada, codificadas por nombre de capacidad, como los [conectores que la página puede llamar](/docs/es/artifacts#pull-live-data-with-mcp-connectors). El servicio de artefactos valida la declaración y rechaza una publicación que nombra una capacidad que la cuenta no puede usar o le da una configuración inválida. Pasa `{}` para borrar una declaración almacenada, y omite el campo en un redeploy para mantenerla. Requiere Agent SDK v0.3.235 o posterior.

3848* `contract`: la versión de tiempo de ejecución contra la que se ejecuta la página publicada. Omítelo para mantener la versión actual del artefacto, pasa `"latest"` para actualizar, o pasa una versión específica para fijar o revertir. Requiere Agent SDK v0.3.235 o posterior.

3849 

3850Los tipos se exportan, pero la herramienta está desactivada de forma predeterminada en sesiones de Agent SDK. La publicación también requiere todas las condiciones en la [tabla de disponibilidad de artefactos](/docs/es/artifacts#availability), que las sesiones autenticadas con una clave de API no cumplen.

3845 3851 

3846<h3 id="projects">3852<h3 id="projects">

3847 Projects3853 Projects


3866};3872};

3867```3873```

3868 3874 

3869Lee y escribe el Proyecto de claude.ai adjunto a la sesión. Distribuye en `method`:3875Lee y escribe el Proyecto de claude.ai adjunto a la sesión. Distribuye según `method`:

3870 3876 

3871* `project_info`: devuelve metadatos del proyecto y la lista de documentos.3877* `project_info`: devuelve metadatos del proyecto y la lista de documentos.

3872* `project_read`: lee un documento por `path`.3878* `project_read`: lee un documento por `path`.

3873* `project_search`: consulta la base de conocimiento del proyecto con `query`. `n` limita los resultados y tiene como valor predeterminado 5.3879* `project_search`: consulta la base de conocimiento del proyecto con `query`. `n` limita los resultados y tiene como valor predeterminado `5`.

3874* `project_write`: crea o reemplaza un documento en `path` desde exactamente uno de `content`, que lleva texto en línea, o `local_path`, que nombra un archivo dentro del directorio de trabajo. `present_to_user: true` marca el documento escrito como el entregable que el usuario necesita ver.3880* `project_write`: crea o reemplaza un documento en `path` desde exactamente uno de `content`, que lleva texto en línea, o `local_path`, que nombra un archivo dentro del directorio de trabajo. `present_to_user: true` marca el documento escrito como el entregable que el usuario necesita ver.

3875* `project_delete`: elimina un documento por `path`.3881* `project_delete`: elimina un documento por `path`.

3876 3882 


3901};3907};

3902```3908```

3903 3909 

3904Vuelve a consultar la lista de herramientas de servidores MCP conectados y aplica cualquier cambio. Los tipos se exportan, pero Claude Code registra la herramienta solo cuando establece `CLAUDE_CODE_ENABLE_REFRESH_MCP_TOOLS=1` en la opción [`env`](#options), y solo en sesiones con al menos un servidor MCP. Requiere Claude Code v2.1.211 o posterior.3910Vuelve a consultar la lista de herramientas de servidores MCP conectados y aplica cualquier cambio. Los tipos se exportan, pero Claude Code registra la herramienta solo cuando estableces `CLAUDE_CODE_ENABLE_REFRESH_MCP_TOOLS=1` en la [opción `env`](#options), y solo en sesiones con al menos un servidor MCP. Requiere Claude Code v2.1.211 o posterior.

3905 3911 

3906<h3 id="showonboardingrolepicker">3912<h3 id="showonboardingrolepicker">

3907 ShowOnboardingRolePicker3913 ShowOnboardingRolePicker


3913type ShowOnboardingRolePickerInput = {};3919type ShowOnboardingRolePickerInput = {};

3914```3920```

3915 3921 

3916Renderiza una fila de chip selector de rol clickeable durante la incorporación de Cowork para que el usuario pueda elegir su rol y obtener un plugin coincidente instalado. No toma argumentos; la lista de roles se define por el cliente. La llamada se bloquea hasta que el usuario responde.3922Renderiza una fila de chips de selección de rol en la que se puede hacer clic durante la incorporación de Cowork para que el usuario pueda elegir su rol y obtener instalado un plugin correspondiente. No toma argumentos; la lista de roles la define el cliente. La llamada se bloquea hasta que el usuario responde.

3917 3923 

3918<h3 id="mcpinput">3924<h3 id="mcpinput">

3919 McpInput3925 McpInput


3927};3933};

3928```3934```

3929 3935 

3930Los argumentos de herramientas MCP son un objeto abierto: cada servidor define sus propios parámetros, por lo que el tipo no coloca restricciones en nombres de campos o valores. Consulte el esquema de herramientas del servidor para los campos que acepta una herramienta específica.3936Los argumentos de herramientas MCP son un objeto abierto: cada servidor define sus propios parámetros, por lo que el tipo no coloca restricciones en nombres de campos o valores. Consulta el esquema de herramientas del propio servidor para los campos que acepta una herramienta específica.

3931 3937 

3932<h2 id="tool-output-types">3938<h2 id="tool-output-types">

3933 Tipos de salida de herramientas3939 Tipos de salida de herramientas


4875 rel?: "mine" | "shared";4881 rel?: "mine" | "shared";

4876 }>;4882 }>;

4877 truncated?: boolean;4883 truncated?: boolean;

4884 total?: number;

4885 total_at_least?: true;

4878 scope?: "shared" | "all";4886 scope?: "shared" | "all";

4879 };4887 };

4880```4888```

4881 4889 

4882Para la acción de publicación, devuelve la `url` de la página publicada y la `path` local que se publicó, con `updated` establecido en true cuando la publicación volvió a desplegar un artefacto existente, y `warnings` con cualquier advertencia del momento de la publicación. La acción de listado devuelve en cambio las filas de `artifacts`, con `truncated` establecido cuando existen más artefactos que el límite solicitado. En los listados cuyo alcance no es `"mine"`, cada fila incluye `rel`, que indica si el usuario es dueño del artefacto o si se compartió con él, y el `scope` de la salida registra qué alcance no predeterminado produjo el listado; ambos están ausentes en los listados predeterminados.4890Para la acción de publicación, devuelve la `url` de la página publicada y la `path` local que se publicó, con `updated` establecido en true cuando la publicación volvió a desplegar un artefacto existente, y `warnings` con cualquier advertencia del momento de la publicación. La acción de listado devuelve en cambio las filas de `artifacts`, con `truncated` establecido cuando existen más artefactos que el límite solicitado. En los listados cuyo alcance no es `"mine"`, cada fila incluye `rel`, que indica si el usuario es dueño del artefacto o si se compartió con él, y el `scope` de la salida registra qué alcance no predeterminado produjo el listado; ambos están ausentes en los listados predeterminados.

4883 4891 

4892Un resultado de listado también informa `total`, la cantidad de artefactos que coinciden con el alcance listado, incluidos los que superan `limit`. Cuando `total_at_least` está establecido, ese número es un límite inferior y puede haber más artefactos. Ambos campos requieren Agent SDK v0.3.292 o posterior.

4893 

4884<h3 id="projects-2">4894<h3 id="projects-2">

4885 Projects4895 Projects

4886</h3>4896</h3>

agent-teams.md +2 −0

Details

1603. [`CLAUDE_CODE_SUBAGENT_MODEL`](/docs/es/model-config#environment-variables), cuando está configurado en algo distinto de `inherit`.1603. [`CLAUDE_CODE_SUBAGENT_MODEL`](/docs/es/model-config#environment-variables), cuando está configurado en algo distinto de `inherit`.

1614. El modelo actual del líder.1614. El modelo actual del líder.

162 162 

163Si un [mod](/docs/es/plugins/mods/overview) instalado establece un modelo en su hook [`agent.spawn`](/docs/es/plugins/mods/reference#subagents), Claude Code usa ese modelo en lugar de la primera fuente.

164 

163Si configura [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE=1`](/docs/es/sub-agents#run-every-subagent-on-one-model), las dos primeras fuentes no se aplican. Claude Code elige el modelo de cada compañero de equipo de `CLAUDE_CODE_SUBAGENT_MODEL` cuando está configurado en algo distinto de `inherit`, y del modelo actual del líder de lo contrario. Requiere Claude Code v2.1.257 o posterior.165Si configura [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE=1`](/docs/es/sub-agents#run-every-subagent-on-one-model), las dos primeras fuentes no se aplican. Claude Code elige el modelo de cada compañero de equipo de `CLAUDE_CODE_SUBAGENT_MODEL` cuando está configurado en algo distinto de `inherit`, y del modelo actual del líder de lo contrario. Requiere Claude Code v2.1.257 o posterior.

164 166 

165Antes de v2.1.251, `CLAUDE_CODE_SUBAGENT_MODEL` venía primero en este orden.167Antes de v2.1.251, `CLAUDE_CODE_SUBAGENT_MODEL` venía primero en este orden.

agent-view.md +12 −7

Details

226 226 

227Escribe una respuesta en el panel de vista previa y presiona `Enter` para enviarla a esa sesión. Antepón `!` a una respuesta para enviar en su lugar un comando Bash. Lo que pasa con la respuesta depende de la sesión y de lo que envíes:227Escribe una respuesta en el panel de vista previa y presiona `Enter` para enviarla a esa sesión. Antepón `!` a una respuesta para enviar en su lugar un comando Bash. Lo que pasa con la respuesta depende de la sesión y de lo que envíes:

228 228 

229* Una sesión que está trabajando: la respuesta se une a la [cola de mensajes](/docs/es/interactive-mode#queue-messages-while-claude-works) de la sesión en lugar de interrumpir la respuesta, y surte efecto [cuando lo hace la entrada en cola](/docs/es/interactive-mode#when-claude-code-sends-what-you-queued). Un [comando](/docs/es/commands) espera a que termine el turno, incluso uno que se ejecuta en cuanto lo escribes en el propio prompt de una sesión229* Una sesión que está trabajando: `/model`, `/effort`, `/rename` y `/usage` se ejecutan de inmediato. Las demás respuestas se unen a la [cola de mensajes](/docs/es/interactive-mode#queue-messages-while-claude-works) de la sesión en lugar de interrumpir la respuesta, y surten efecto [cuando lo hace la entrada en cola](/docs/es/interactive-mode#when-claude-code-sends-what-you-queued). Los demás [comandos](/docs/es/commands) esperan a que termine el turno, incluso los que se ejecutan en cuanto los escribes en el propio prompt de una sesión

230* Una respuesta que es exactamente `/stop`: detiene la sesión de inmediato en lugar de entregársele, tanto si la sesión está trabajando como si te está esperando230* Una respuesta que es exactamente `/stop`: detiene la sesión de inmediato en lugar de entregársele, tanto si la sesión está trabajando como si te está esperando

231* Un [trabajo de shell](#run-a-shell-command): la respuesta, incluido `/stop`, va a la terminal del comando como entrada escrita231* Un [trabajo de shell](#run-a-shell-command): la respuesta, incluido `/stop`, va a la terminal del comando como entrada escrita

232 232 


238 238 

239Cuando un hook [`PermissionRequest`](/docs/es/hooks#permissionrequest) o [`PreToolUse`](/docs/es/hooks#pretooluse) devuelve una salida que Claude Code no puede validar para la llamada que la sesión está pidiendo, la fila muestra el evento del hook y `hook output invalid:` con el error de validación antes del texto de la solicitud pendiente. Para un hook que falla de otra manera, la fila dice que el hook falló. La sesión sigue esperando la misma solicitud.239Cuando un hook [`PermissionRequest`](/docs/es/hooks#permissionrequest) o [`PreToolUse`](/docs/es/hooks#pretooluse) devuelve una salida que Claude Code no puede validar para la llamada que la sesión está pidiendo, la fila muestra el evento del hook y `hook output invalid:` con el error de validación antes del texto de la solicitud pendiente. Para un hook que falla de otra manera, la fila dice que el hook falló. La sesión sigue esperando la misma solicitud.

240 240 

241Una respuesta que no se puede entregar, porque el servicio en segundo plano es inaccesible o el envío falla, se guarda y se envía a la sesión como su próximo prompt cuando su proceso vuelve a iniciarse, y el mensaje de error dice que la respuesta se guardó. Una respuesta con el prefijo `!` no se guarda, porque el texto guardado llegaría a la sesión como un prompt simple en lugar de ejecutarse como un comando Bash.241Cuando una respuesta no se puede entregar, el mensaje de error indica si se guardó. Una respuesta con el prefijo `!` o `/` nunca se guarda. Claude Code envía una respuesta guardada como el próximo prompt de la sesión la próxima vez que reinicies la sesión; vuelve a enviar cualquier otra respuesta.

242 242 

243Con el [dictado de voz](/docs/es/voice-dictation) habilitado en [modo de mantener](/docs/es/voice-dictation#hold-to-record), mantén presionada tu tecla de pulsar para hablar mientras la entrada de respuesta tiene el foco para dictar una respuesta en lugar de escribirla. Lo mismo funciona en la entrada de despacho en la parte inferior de la vista de agentes.243Con el [dictado de voz](/docs/es/voice-dictation) habilitado en [modo de mantener](/docs/es/voice-dictation#hold-to-record), mantén presionada tu tecla de pulsar para hablar mientras la entrada de respuesta tiene el foco para dictar una respuesta en lugar de escribirla. Lo mismo funciona en la entrada de despacho en la parte inferior de la vista de agentes.

244 244 


288 288 

289La fila desde la que presionaste `←` también mantiene un nombre en negrita y sin atenuar después de que muevas la selección con las teclas de flecha o el ratón, para que puedas saber de qué sesión viniste.289La fila desde la que presionaste `←` también mantiene un nombre en negrita y sin atenuar después de que muevas la selección con las teclas de flecha o el ratón, para que puedas saber de qué sesión viniste.

290 290 

291Si una herramienta se está ejecutando cuando presionas `←`, Claude Code espera hasta unos diez segundos a que termine antes de pasar a segundo plano, y Claude continúa la respuesta en la sesión en segundo plano. Presiona `←` de nuevo para pasar a segundo plano de inmediato en lugar de esperar. Cuando el trabajo en curso no puede trasladarse a la sesión en segundo plano, Claude Code muestra primero el diálogo `Background this session?`, igual que con [`/background`](#from-inside-a-session).291Si una herramienta se está ejecutando cuando presionas `←`, Claude Code espera a que termine antes de pasar a segundo plano, y Claude continúa la respuesta en la sesión en segundo plano. Presiona `←` de nuevo para pasar a segundo plano de inmediato en lugar de esperar. Cuando el trabajo en curso no puede trasladarse a la sesión en segundo plano, Claude Code muestra primero el diálogo `Background this session?`, igual que con [`/background`](#from-inside-a-session).

292 292 

293El límite de diez segundos no se aplica mientras los [subagentes en primer plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background) que Claude inició en la conversación sigan ejecutándose. Claude Code sigue esperando para que su trabajo se traslade, y muestra un aviso `Still backgrounding after the current tool` mientras espera. Presiona `←` de nuevo para pasar a segundo plano sin esperar, lo que reinicia esos subagentes desde el principio. Claude Code no espera a los subagentes que está ejecutando un [flujo de trabajo dinámico](/docs/es/workflows). Cuando un flujo de trabajo tiene subagentes en ejecución, Claude Code muestra en su lugar el diálogo `Background this session?`.293Después de unos diez segundos, Claude Code pasa la sesión a segundo plano sin esperar más, excepto en casos como estos:

294 294 

295Claude Code no pasa la sesión a segundo plano mientras tienes texto sin enviar en la entrada del prompt, porque el texto permanece en el cuadro de entrada de tu terminal y no se trasladaría a la sesión en segundo plano. Si escribes en la entrada mientras Claude Code espera para pasar la sesión a segundo plano, cancela el cambio con `Backgrounding cancelled — you have unsent text in the input. Send it or clear it, then press ← again.`295* **Los subagentes en primer plano siguen ejecutándose**: Claude Code sigue esperando para que el trabajo de los [subagentes en primer plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background) que Claude inició se traslade, y muestra `Still backgrounding after the current tool`. Presiona `←` de nuevo para pasar a segundo plano sin esperar, lo que reinicia esos subagentes desde el principio.

296* **Una solicitud de permiso o una pregunta espera tu respuesta**: mientras espera una solicitud de permiso o una pregunta que hizo Claude, Claude Code sigue esperando y muestra `Still backgrounding after the current tool — a question is waiting for your answer.`

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

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

296 299 

297Presionar `←` crea la fila de la sesión incluso cuando la conversación aún no tiene mensajes, por lo que `→` sigue volviendo a ella.300Presionar `←` crea la fila de la sesión incluso cuando la conversación aún no tiene mensajes, por lo que `→` sigue volviendo a ella.

298 301 


876 879 

877Cada sesión es su propio proceso de Claude Code bajo el supervisor, y lo que sucede con ese proceso depende del estado de la sesión:880Cada sesión es su propio proceso de Claude Code bajo el supervisor, y lo que sucede con ese proceso depende del estado de la sesión:

878 881 

879* **Funcionando, pausado en una solicitud de permiso u otro diálogo, o conectado**: el proceso sigue ejecutándose. Un subagente, flujo de trabajo o monitor en ejecución cuenta como funcionando.882* **Funcionando, pausado en una solicitud de permiso u otro diálogo, o conectado**: el proceso sigue ejecutándose. Un subagente, flujo de trabajo o monitor en ejecución cuenta como funcionando, y también una [tarea programada con alcance de sesión](/docs/es/scheduled-tasks) pendiente, como una reactivación de `/loop`.

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

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

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


970* Una terminal donde reanudaste la conversación, por ejemplo con `claude --resume` o `/resume`: la fila muestra `Open in a terminal` con una sugerencia para continuarla allí, y abrir la fila muestra `Can't open — this session is running in another terminal`. Continúa en esa terminal, o sal de ella y abre la fila nuevamente.973* Una terminal donde reanudaste la conversación, por ejemplo con `claude --resume` o `/resume`: la fila muestra `Open in a terminal` con una sugerencia para continuarla allí, y abrir la fila muestra `Can't open — this session is running in another terminal`. Continúa en esa terminal, o sal de ella y abre la fila nuevamente.

971* Otro proceso de Claude Code no interactivo, por ejemplo un proceso de sesión en segundo plano para la misma conversación que aún no ha salido: abrir la fila muestra `This conversation is already open in another running Claude session`. Usa ese proceso, o espera a que salga y abre la fila nuevamente.974* Otro proceso de Claude Code no interactivo, por ejemplo un proceso de sesión en segundo plano para la misma conversación que aún no ha salido: abrir la fila muestra `This conversation is already open in another running Claude session`. Usa ese proceso, o espera a que salga y abre la fila nuevamente.

972 975 

973Claude Code guarda una respuesta que escribiste con el intento rechazado y la envía la próxima vez que se inicia la sesión.976Claude Code guarda una respuesta que escribiste con el intento rechazado, excepto una que empiece con `!` o `/`, y la envía la próxima vez que se inicia la sesión.

974 977 

975<h3 id="opening-a-session-says-it-has-no-saved-transcript">978<h3 id="opening-a-session-says-it-has-no-saved-transcript">

976 Abrir una sesión dice que no tiene transcripción guardada979 Abrir una sesión dice que no tiene transcripción guardada


1093| Versión | Cambio |1096| Versión | Cambio |

1094| - | - |1097| - | - |

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

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

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

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

1097| v2.1.287 | El [filtro `n:<text>`](#filter-sessions) encuentra sesiones por nombre o por primer prompt. Mientras cualquier filtro está activo, los grupos que contrajiste se expanden para mostrar sus coincidencias y se selecciona la primera coincidencia, por lo que `Enter` la abre. |1102| v2.1.287 | El [filtro `n:<text>`](#filter-sessions) encuentra sesiones por nombre o por primer prompt. Mientras cualquier filtro está activo, los grupos que contrajiste se expanden para mostrar sus coincidencias y se selecciona la primera coincidencia, por lo que `Enter` la abre. |

1098| v2.1.287 | Un comando enviado como [respuesta desde el panel de vista previa](#peek-and-reply) se ejecuta cuando termina el turno actual de la sesión, incluidos los comandos que se ejecutan en cuanto los escribes en el propio prompt de una sesión. Una respuesta que es exactamente `/stop` detiene la sesión de inmediato. |1103| v2.1.287 | Un comando enviado como [respuesta desde el panel de vista previa](#peek-and-reply) se ejecuta cuando termina el turno actual de la sesión, incluidos los comandos que se ejecutan en cuanto los escribes en el propio prompt de una sesión. Una respuesta que es exactamente `/stop` detiene la sesión de inmediato. |

amazon-bedrock.md +49 −12

Details

136 2. Configurar credenciales de AWS136 2. Configurar credenciales de AWS

137</h3>137</h3>

138 138 

139Claude Code utiliza la cadena de credenciales predeterminada del SDK de AWS. Configure sus credenciales utilizando uno de estos métodos:139Claude Code utiliza la cadena de credenciales predeterminada del SDK de AWS. Si la máquina ya proporciona credenciales a esa cadena, como un perfil de instancia de Amazon EC2 o credenciales de tarea de Amazon ECS, pasa directamente al [paso 3](#3-configure-claude-code).

140 140 

141**Opción A: Configuración de AWS CLI**141AWS [desaconseja usar las claves de acceso de un usuario de IAM](https://docs.aws.amazon.com/cli/latest/userguide/cli-authentication-user.html) cuando desarrollas software específico o trabajas con datos reales. Configura tus credenciales con uno de estos métodos:

142 

143* [`aws configure`](#use-aws-configure): guarda la clave de acceso de un usuario de IAM en un perfil en tu directorio `~/.aws`

144* [Variables de entorno de clave de acceso](#export-an-access-key): establece una clave de acceso, o credenciales temporales con un token de sesión, solo en el shell actual

145* [Perfil de SSO](#use-an-sso-profile): inicia sesión a través del Centro de identidades de IAM en tu navegador y obtén credenciales temporales. Usa este método si accedes a tu cuenta de AWS a través del Centro de identidades de IAM.

146* [Credenciales de la consola de administración de AWS](#use-aws-management-console-credentials): inicia sesión a través de tu navegador con tus credenciales de la consola de administración de AWS y obtén credenciales temporales. AWS [recomienda este método](https://docs.aws.amazon.com/signin/latest/userguide/command-line-sign-in.html) si accedes a tu cuenta de AWS como usuario raíz, como usuario de IAM o mediante federación con IAM.

147* [Clave de API de Amazon Bedrock](#use-an-amazon-bedrock-api-key): autentícate con un token de portador que solo funciona para Amazon Bedrock, en lugar de credenciales de AWS

148 

149<h4 id="use-aws-configure">

150 Usar `aws configure`

151</h4>

152 

153Ejecuta `aws configure` e introduce tu ID de clave de acceso, tu clave de acceso secreta y tu región predeterminada cuando se te solicite:

142 154 

143```bash theme={null}155```bash theme={null}

144aws configure156aws configure

145```157```

146 158 

147**Opción B: Variables de entorno (clave de acceso)**159La AWS CLI guarda la clave en el perfil `default` en `~/.aws/credentials`, donde la cadena de credenciales la lee.

160 

161<h4 id="export-an-access-key">

162 Exportar una clave de acceso

163</h4>

164 

165Exporta tu clave de acceso como variables de entorno. `AWS_SESSION_TOKEN` solo es necesaria con credenciales temporales, así que omite esa línea si tu clave de acceso pertenece a un usuario de IAM:

148 166 

149```bash theme={null}167```bash theme={null}

150export AWS_ACCESS_KEY_ID=your-access-key-id168export AWS_ACCESS_KEY_ID=your-access-key-id


152export AWS_SESSION_TOKEN=your-session-token170export AWS_SESSION_TOKEN=your-session-token

153```171```

154 172 

155**Opción C: Variables de entorno (perfil de SSO)**173<h4 id="use-an-sso-profile">

174 Usar un perfil de SSO

175</h4>

156 176 

157Reemplace `your-profile-name` con el nombre de su perfil de AWS antes de ejecutar estos comandos.177Crea un perfil con `aws configure sso` si no tienes uno. Luego inicia sesión en el Centro de identidades de IAM y establece `AWS_PROFILE` para que la cadena de credenciales use ese perfil. Reemplaza `your-profile-name` con el nombre de tu perfil de AWS antes de ejecutar estos comandos.

158 178 

159```bash theme={null}179```bash theme={null}

160aws sso login --profile=your-profile-name180aws sso login --profile=your-profile-name


164 184 

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

166 186 

167**Opción D: Credenciales de la consola de administración de AWS**187<h4 id="use-aws-management-console-credentials">

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

189</h4>

190 

191El comando `aws login` requiere AWS CLI 2.32.0 o posterior. Para la política de IAM que necesita tu identidad, consulta las [instrucciones de AWS para `aws login`](https://docs.aws.amazon.com/signin/latest/userguide/command-line-sign-in.html).

192 

193Ejecuta el comando para iniciar sesión a través de tu navegador con tus credenciales de la consola de administración de AWS:

168 194 

169```bash theme={null}195```bash theme={null}

170aws login196aws login

171```197```

172 198 

173[Obtenga más información](https://docs.aws.amazon.com/signin/latest/userguide/command-line-sign-in.html) sobre `aws login`.199La sesión es válida hasta 12 horas, tras lo cual debes ejecutar `aws login` de nuevo.

200 

201<h4 id="use-an-amazon-bedrock-api-key">

202 Usar una clave de API de Amazon Bedrock

203</h4>

204 

205Una clave de API de Amazon Bedrock es un token de portador que autentica tus solicitudes en lugar de las credenciales de AWS. AWS emite [dos tipos de clave](https://docs.aws.amazon.com/bedrock/latest/userguide/api-keys.html):

174 206 

175**Opción E: Claves de API de Amazon Bedrock**207* **Claves de corto plazo**: duran hasta 12 horas. AWS las prefiere frente a las claves de largo plazo para entornos de producción.

208* **Claves de largo plazo**: duran hasta una fecha de expiración que tú estableces. AWS las recomienda solo para exploración.

209 

210Exporta la clave como `AWS_BEARER_TOKEN_BEDROCK`:

176 211 

177```bash theme={null}212```bash theme={null}

178export AWS_BEARER_TOKEN_BEDROCK=your-bedrock-api-key213export AWS_BEARER_TOKEN_BEDROCK=your-bedrock-api-key

179```214```

180 215 

181Las claves de API de Amazon Bedrock proporcionan un método de autenticación más simple sin necesidad de credenciales completas de AWS. [Obtenga más información sobre las claves de API de Amazon Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/).216Cuando `AWS_BEARER_TOKEN_BEDROCK` está establecida, Claude Code se autentica con la clave y no resuelve la cadena de credenciales, incluso si hay otras credenciales de AWS presentes. [Obtén más información sobre las claves de API de Amazon Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/).

182 217 

183<h4 id="credential-caching-and-resolution-timeout">218<h4 id="credential-caching-and-resolution-timeout">

184 Almacenamiento en caché de credenciales y tiempo de espera de resolución219 Almacenamiento en caché de credenciales y tiempo de espera de resolución


186 221 

187Claude Code resuelve la cadena de proveedores de credenciales predeterminada de AWS una vez y mantiene las credenciales resueltas en memoria. Las reutiliza hasta cinco minutos antes de que expiren, o durante una hora cuando no tienen expiración, por lo que un perfil respaldado por SSO solicita credenciales del Centro de identidades de IAM aproximadamente una vez por vida útil de credenciales. Un error de credenciales de la API borra el caché, y el reintento resuelve credenciales nuevas. Requiere Claude Code v2.1.207 o posterior.222Claude Code resuelve la cadena de proveedores de credenciales predeterminada de AWS una vez y mantiene las credenciales resueltas en memoria. Las reutiliza hasta cinco minutos antes de que expiren, o durante una hora cuando no tienen expiración, por lo que un perfil respaldado por SSO solicita credenciales del Centro de identidades de IAM aproximadamente una vez por vida útil de credenciales. Un error de credenciales de la API borra el caché, y el reintento resuelve credenciales nuevas. Requiere Claude Code v2.1.207 o posterior.

188 223 

189El caché cubre todas las opciones de credenciales anteriores excepto una clave de API de Amazon Bedrock, que no utiliza la cadena de proveedores. Para resolver la cadena en cada solicitud en su lugar, establezca [`CLAUDE_CODE_SKIP_AWS_CRED_CACHE=1`](/docs/es/env-vars).224La caché cubre todos los métodos de credenciales enumerados al inicio de este paso excepto una clave de API de Amazon Bedrock, que no utiliza la cadena de proveedores. Para resolver la cadena en cada solicitud en su lugar, establece [`CLAUDE_CODE_SKIP_AWS_CRED_CACHE=1`](/docs/es/env-vars).

190 225 

191La resolución que llena la caché agota el tiempo de espera después de 60 segundos. Si un paso en la cadena se detiene, por ejemplo un asistente `credential_process` que espera una entrada que no puede recibir, la solicitud falla con [`AWS default-chain credential resolve timed out`](/docs/es/errors#aws-default-chain-credential-resolve-timed-out). Si tu cadena ejecuta un inicio de sesión interactivo que legítimamente necesita más tiempo, como SSO basado en navegador con MFA a través de un contenedor como `aws-vault`, aumenta el límite en milisegundos con [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/es/env-vars). Con `CLAUDE_CODE_SKIP_AWS_CRED_CACHE=1` establecido, cada solicitud a la API resuelve la cadena sin este límite.226La resolución que llena la caché agota el tiempo de espera después de 60 segundos. Si un paso en la cadena se detiene, por ejemplo un asistente `credential_process` que espera una entrada que no puede recibir, la solicitud falla con [`AWS default-chain credential resolve timed out`](/docs/es/errors#aws-default-chain-credential-resolve-timed-out). Si tu cadena ejecuta un inicio de sesión interactivo que legítimamente necesita más tiempo, como SSO basado en navegador con MFA a través de un contenedor como `aws-vault`, aumenta el límite en milisegundos con [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/es/env-vars). Con `CLAUDE_CODE_SKIP_AWS_CRED_CACHE=1` establecido, cada solicitud a la API resuelve la cadena sin este límite.

192 227 


509 Ventana de contexto de 1M de tokens544 Ventana de contexto de 1M de tokens

510</h2>545</h2>

511 546 

512Claude Sonnet 5, Opus 4.6 y posteriores, y Sonnet 4.6 admiten la [ventana de contexto de 1M de tokens](https://platform.claude.com/docs/es/build-with-claude/context-windows#context-window-sizes-by-model) en Amazon Bedrock. Sonnet 5 siempre se ejecuta con la ventana de 1M tanto en la API Invoke como en el [punto de conexión Mantle](#use-the-mantle-endpoint), sin variante `[1m]` para seleccionar. Para los otros modelos en la API Invoke, Claude Code habilita automáticamente la ventana de contexto extendida cuando selecciona una variante de modelo de 1M.547Los modelos Fable, Sonnet 5 y posteriores, y Opus 4.7 y posteriores se ejecutan con la [ventana de contexto de 1M de tokens](https://platform.claude.com/docs/es/build-with-claude/context-windows#context-window-sizes-by-model) de forma predeterminada en Amazon Bedrock, tanto en la API Invoke como en el [endpoint Mantle](#use-the-mantle-endpoint), sin necesidad del sufijo `[1m]`. Un ARN de perfil de inferencia de aplicación obtiene la ventana de 1M cuando una entrada de [`modelOverrides`](#map-each-model-version-to-an-inference-profile) asigna su modelo a él. Para mantener en su lugar una ventana de 200K, establece [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/es/model-config#turn-off-1m-context).

548 

549Opus 4.6 y Sonnet 4.6 en la API Invoke alcanzan la ventana de 1M cuando seleccionas su variante `[1m]`. El [asistente de configuración](#sign-in-with-bedrock) ofrece una opción de contexto de 1M cuando fija modelos. Para habilitarlo para un modelo fijado manualmente en su lugar, agrega `[1m]` al ID del modelo. Consulta [Fijar modelos para despliegues de terceros](/docs/es/model-config#pin-models-for-third-party-deployments) para obtener detalles, incluida la forma de usar la ventana de 1M sin cambiar la fijación.

513 550 

514El [asistente de configuración](#sign-in-with-bedrock) ofrece una opción de contexto de 1M cuando fija modelos. Para habilitarlo para un modelo fijado manualmente en su lugar, agregue `[1m]` al ID del modelo. Vea [Fijar modelos para implementaciones de terceros](/docs/es/model-config#pin-models-for-third-party-deployments) para detalles, incluida la forma de usar la ventana de 1M sin cambiar la fijación.551Antes de la v2.1.287, los modelos Fable y Opus 4.7 y posteriores se ejecutaban con una ventana de 200K de forma predeterminada en la API Invoke y alcanzaban allí la ventana de 1M mediante un sufijo `[1m]`.

515 552 

516<h2 id="service-tiers">553<h2 id="service-tiers">

517 Niveles de servicio554 Niveles de servicio

artifacts.md +1 −1

Details

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

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

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

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

395 395 

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

397 397 

Details

142* **De qué cierra sesión**: Claude Code cierra sesión de cualquier inicio de sesión de claude.ai almacenado en la máquina142* **De qué cierra sesión**: Claude Code cierra sesión de cualquier inicio de sesión de claude.ai almacenado en la máquina

143* **Cómo deshacerlo**: ejecute `/logout`, que elimina y revoca la credencial que escribió este inicio de sesión143* **Cómo deshacerlo**: ejecute `/logout`, que elimina y revoca la credencial que escribió este inicio de sesión

144 144 

145Si su organización usa [configuración administrada por servidor](/docs/es/server-managed-settings), se aplican a este inicio de sesión en Claude Code v2.1.257 o posterior.

146 

147Todo lo demás sobre perfiles se aplica a este inicio de sesión, incluido dónde se clasifica contra sus otras credenciales, la fila `Profile` que obtiene en `/status` y las características que necesitan un inicio de sesión de claude.ai. Consulte [Perfiles de Anthropic y credenciales de federación](#anthropic-profiles-and-federation-credentials).145Todo lo demás sobre perfiles se aplica a este inicio de sesión, incluido dónde se clasifica contra sus otras credenciales, la fila `Profile` que obtiene en `/status` y las características que necesitan un inicio de sesión de claude.ai. Consulte [Perfiles de Anthropic y credenciales de federación](#anthropic-profiles-and-federation-credentials).

148 146 

149<h3 id="cloud-provider-authentication">147<h3 id="cloud-provider-authentication">

Details

305 Permitir un gateway en un espacio de direcciones público de tu propiedad305 Permitir un gateway en un espacio de direcciones público de tu propiedad

306</h3>306</h3>

307 307 

308Algunas organizaciones numeran su red interna a partir de un bloque IPv4 público de su propiedad, como el espacio de direcciones propio de un operador o un `/8` heredado, por lo que su gateway no puede tener una dirección privada. Enumera esos bloques en el ajuste de configuración administrada `gatewayInternalNetworks`. Entonces `/login` acepta un gateway dentro de un bloque enumerado cuando la máquina del desarrollador se conecta a él desde una dirección dentro del mismo bloque. Esto requiere Claude Code v2.1.268 o posterior en la máquina del desarrollador; las versiones anteriores ignoran la clave y aplican la regla de direcciones privadas.308Algunas organizaciones numeran su red interna a partir de un bloque IPv4 público de su propiedad, como el espacio de direcciones propio de un operador o un `/8` heredado, por lo que su gateway no tiene una dirección privada. Enumera esos bloques en el ajuste de configuración administrada `gatewayInternalNetworks`. Entonces `/login` acepta un gateway dentro de un bloque enumerado cuando la máquina del desarrollador se conecta a él desde una dirección dentro del mismo bloque. Esto requiere Claude Code v2.1.268 o posterior en la máquina del desarrollador; las versiones anteriores ignoran la clave y aplican la regla de direcciones privadas.

309 309 

310<Warning>310<Warning>

311 `gatewayInternalNetworks` es para redes internas que resultan estar numeradas a partir de un espacio de direcciones público. No hace que sea seguro exponer un gateway a internet: un gateway de confianza puede distribuir ajustes que ejecutan comandos en las máquinas de los desarrolladores.311 `gatewayInternalNetworks` es para redes internas que resultan estar numeradas a partir de un espacio de direcciones público. No hace que sea seguro exponer un gateway a internet: un gateway de confianza puede distribuir ajustes que ejecutan comandos en las máquinas de los desarrolladores.


523| Característica | Estado | Notas |523| Característica | Estado | Notas |

524| - | - | - |524| - | - | - |

525| Reenvío de inferencia (Amazon Bedrock, Claude Platform en AWS, Agent Platform de Google Cloud, Microsoft Foundry, Anthropic) | Disponible | Con traducción de modelos por ascendente y conmutación por error. El ascendente de Amazon Bedrock utiliza el endpoint `bedrock-runtime` y la cadena de credenciales predeterminada de AWS. El [ascendente Amazon Bedrock Mantle](/docs/es/claude-apps-gateway-config#amazon-bedrock-mantle-endpoint) requiere Claude Code v2.1.283 o posterior en el servidor del gateway, y el [ascendente Claude Platform en AWS](/docs/es/claude-apps-gateway-config#claude-platform-on-aws) requiere v2.1.198 o posterior. |525| Reenvío de inferencia (Amazon Bedrock, Claude Platform en AWS, Agent Platform de Google Cloud, Microsoft Foundry, Anthropic) | Disponible | Con traducción de modelos por ascendente y conmutación por error. El ascendente de Amazon Bedrock utiliza el endpoint `bedrock-runtime` y la cadena de credenciales predeterminada de AWS. El [ascendente Amazon Bedrock Mantle](/docs/es/claude-apps-gateway-config#amazon-bedrock-mantle-endpoint) requiere Claude Code v2.1.283 o posterior en el servidor del gateway, y el [ascendente Claude Platform en AWS](/docs/es/claude-apps-gateway-config#claude-platform-on-aws) requiere v2.1.198 o posterior. |

526| Ventana de contexto de 1M tokens | Disponible | Los modelos Fable, Sonnet 5 y posteriores, y Opus 4.7 y posteriores se ejecutan con la ventana de 1M de forma predeterminada; consulta [Contexto extendido](/docs/es/model-config#extended-context). El valor predeterminado de 1M para los modelos Fable y Opus requiere Claude Code v2.1.287 o posterior en la máquina del desarrollador |

526| Acceso a modelos y configuración administrada por grupo de IdP | Disponible | El acceso a modelos se aplica del lado del servidor; la configuración administrada se entrega por grupo de IdP y la CLI la aplica en el [nivel de configuración administrada](/docs/es/settings#settings-precedence) |527| Acceso a modelos y configuración administrada por grupo de IdP | Disponible | El acceso a modelos se aplica del lado del servidor; la configuración administrada se entrega por grupo de IdP y la CLI la aplica en el [nivel de configuración administrada](/docs/es/settings#settings-precedence) |

527| Claude Desktop | Disponible con participación opcional | El gateway sirve la configuración de Claude Desktop en `/user/bootstrap` una vez que una política [participa con una clave `desktop`](/docs/es/claude-apps-gateway-config#claude-desktop-overlay), y Claude Desktop envía solicitudes de modelo desde sus pestañas Cowork y Code, y desde la pestaña Chat cuando la habilitas, a través del gateway. Para activar la pestaña Chat, consulta [Conectar Claude Desktop](#connect-claude-desktop). Requiere Claude Code v2.1.203 o posterior en el servidor del gateway. |528| Claude Desktop | Disponible con participación opcional | El gateway sirve la configuración de Claude Desktop en `/user/bootstrap` una vez que una política [participa con una clave `desktop`](/docs/es/claude-apps-gateway-config#claude-desktop-overlay), y Claude Desktop envía solicitudes de modelo desde sus pestañas Cowork y Code, y desde la pestaña Chat cuando la habilitas, a través del gateway. Para activar la pestaña Chat, consulta [Conectar Claude Desktop](#connect-claude-desktop). Requiere Claude Code v2.1.203 o posterior en el servidor del gateway. |

528| Distribución de telemetría (OTLP/HTTP) | Disponible | Marcada con la identidad en cada exportación; codificaciones protobuf y JSON |529| Distribución de telemetría (OTLP/HTTP) | Disponible | Marcada con la identidad en cada exportación; codificaciones protobuf y JSON |

Details

6 6 

7> Registre la puerta de enlace con su IdP, construya el contenedor, implemente en Kubernetes o Cloud Run, y opérelo: verificaciones de salud, rotación de secretos, actualizaciones y seguridad.7> Registre la puerta de enlace con su IdP, construya el contenedor, implemente en Kubernetes o Cloud Run, y opérelo: verificaciones de salud, rotación de secretos, actualizaciones y seguridad.

8 8 

9<Info>

10 **Planifica primero la red de tu gateway.** Al iniciar sesión, Claude Code rechaza un Claude apps gateway cuyo nombre de host se resuelve en una dirección IP pública, incluso una a la que no se puede acceder desde internet.

11 

12 Un Claude apps gateway puede enviar configuración a las máquinas de los usuarios, incluidos hooks que ejecutan comandos de shell. Esta comprobación ayuda a evitar que los usuarios inicien sesión por accidente en un gateway malicioso en internet pública. Mantén también tu propio gateway fuera de internet.

13 

14 Elige la dirección del gateway antes de elegir dónde se ejecuta. Por lo general, es una dirección privada a la que los usuarios acceden desde tu red interna o a través de una VPN. Si tu red interna usa rangos IPv4 públicos, puedes indicar un rango que contenga tanto el gateway como las máquinas de tus usuarios. Claude Code toma esa coincidencia como señal de que el gateway está en tu red interna. Consulta [Elegir una dirección para el gateway](#choose-an-address-for-the-gateway). Si ninguna de las dos opciones se ajusta a tu red, comunícate con tu equipo de cuenta de Anthropic.

15</Info>

16 

9Esta página cubre el lado operativo de ejecutar la [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway): registrar un cliente OAuth en su proveedor de identidad (IdP), implementar la puerta de enlace como un contenedor y ejecutarla día a día. Para cada opción en el archivo `gateway.yaml` que la puerta de enlace lee al iniciar, consulte la [referencia de configuración](/docs/es/claude-apps-gateway-config).17Esta página cubre el lado operativo de ejecutar la [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway): registrar un cliente OAuth en su proveedor de identidad (IdP), implementar la puerta de enlace como un contenedor y ejecutarla día a día. Para cada opción en el archivo `gateway.yaml` que la puerta de enlace lee al iniciar, consulte la [referencia de configuración](/docs/es/claude-apps-gateway-config).

10 18 

11Una implementación de producción sigue cuatro pasos en orden, y las secciones a continuación coinciden con ellos. Los dos primeros son donde usted toma decisiones; los dos segundos son material de referencia para consultar una vez que esté en funcionamiento.19Una implementación de producción sigue cuatro pasos en orden, y las secciones a continuación coinciden con ellos. Los dos primeros son donde usted toma decisiones; los dos segundos son material de referencia para consultar una vez que esté en funcionamiento.


17 25 

18Si un inicio de sesión o arranque falla en el camino, vaya directamente a [Solución de problemas](#troubleshooting), que está indexada por el error que ve.26Si un inicio de sesión o arranque falla en el camino, vaya directamente a [Solución de problemas](#troubleshooting), que está indexada por el error que ve.

19 27 

20<Note>

21 **Implemente en su red privada.** Claude Code solo se conecta a una puerta de enlace cuya dirección es privada. Esta es una protección de seguridad, porque una puerta de enlace de confianza puede enviar configuraciones que ejecuten comandos en máquinas de desarrolladores. Coloque la puerta de enlace que implemente detrás de un equilibrador de carga interno o VPN y asígnele un nombre de host que se resuelva solo en direcciones IP privadas. Si su red interna está numerada desde espacio IPv4 público que su organización posee, consulte [Permitir una puerta de enlace en espacio de dirección público que usted posee](/docs/es/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own).

22</Note>

23 

24<h2 id="identity-provider-setup">28<h2 id="identity-provider-setup">

25 Configuración del proveedor de identidad29 Configuración del proveedor de identidad

26</h2>30</h2>


51 Implementación55 Implementación

52</h2>56</h2>

53 57 

54La puerta de enlace es un único binario de Linux sin estado que se coordina a través de Postgres, así que impleméntela de la manera en que implementa cualquier otro servicio sin estado en su entorno. Manténgala dentro de su red, donde sus desarrolladores e IdP puedan alcanzarla a través de HTTPS, y trátela como cualquier servicio que contiene una credencial de producción.58El gateway es un único binario de Linux sin estado que se coordina a través de Postgres, así que despliégalo de la misma manera en que despliegas cualquier otro servicio sin estado en tu entorno. Mantenlo dentro de tu red, donde tus desarrolladores puedan alcanzarlo a través de HTTPS y él pueda alcanzar tu IdP, y trátalo como cualquier servicio que contiene una credencial de producción.

55 59 

56Algunas decisiones dan forma a la implementación más allá de dónde se ejecuta:60Algunas decisiones dan forma a la implementación más allá de dónde se ejecuta:

57 61 


71 75 

72Un valor predeterminado como los 60 segundos del ALB es suficiente para mantener una secuencia silenciosa abierta. El [ejemplo trabajado de AWS](/docs/es/claude-apps-gateway-on-aws#troubleshooting) lo aumenta a una hora de todas formas, y su fila de solución de problemas cubre puertas de enlace anteriores a v2.1.229, que no enviaban nada durante períodos silenciosos en los ascendentes que ahora reciben pings.76Un valor predeterminado como los 60 segundos del ALB es suficiente para mantener una secuencia silenciosa abierta. El [ejemplo trabajado de AWS](/docs/es/claude-apps-gateway-on-aws#troubleshooting) lo aumenta a una hora de todas formas, y su fila de solución de problemas cubre puertas de enlace anteriores a v2.1.229, que no enviaban nada durante períodos silenciosos en los ascendentes que ahora reciben pings.

73 77 

78<h3 id="choose-an-address-for-the-gateway">

79 Elige una dirección para el gateway

80</h3>

81 

82Claude Code acepta la dirección de un gateway de una de dos maneras:

83 

84* **Dirección privada**: coloca el gateway detrás de un balanceador de carga interno o una VPN, con un nombre de host que se resuelva solo a direcciones privadas, como RFC 1918 o CGNAT `100.64.0.0/10`. Las máquinas de los usuarios pueden estar en cualquier dirección. El [requisito previo de red privada](/docs/es/claude-apps-gateway#prerequisites) enumera los rangos aceptados.

85* **Bloque declarado**: si tu red interna usa espacio IPv4 público que pertenece a tu organización, enumera el bloque en el ajuste de configuración administrada `gatewayInternalNetworks`. Tanto el gateway como la máquina del usuario deben estar en ese bloque. Consulta [Permitir un gateway en espacio de direcciones públicas de tu propiedad](/docs/es/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own).

86 

87Si ningún bloque contiene a ambos, asigna al gateway una dirección privada en su lugar.

88 

74<h3 id="container-image">89<h3 id="container-image">

75 Imagen de contenedor90 Imagen de contenedor

76</h3>91</h3>


375 Solución de problemas390 Solución de problemas

376</h2>391</h2>

377 392 

378Para preguntas y comentarios, usa el [soporte de Claude Code](https://support.claude.com/en/collections/14445694-claude-code) o abre un issue en el [repositorio de GitHub de Claude Code](https://github.com/anthropics/claude-code/issues). Al reportar un problema, incluye:393Para preguntas y comentarios, usa el [soporte de Claude Code](https://support.claude.com/en/collections/14445694-claude-code) o abre un issue en el [repositorio de GitHub de Claude Code](https://github.com/anthropics/claude-code/issues). También puedes contactar al equipo de tu cuenta de Anthropic. Al reportar un problema, incluye:

379 394 

380* **Problema del gateway**: el stderr del gateway para el intervalo correspondiente, tu `gateway.yaml` con los secretos ocultos, la versión del gateway, que se muestra en la página de inicio en `/` y en el encabezado de respuesta `x-cc-gateway-version` en `/managed/settings`, y qué cambió recientemente395* **Problema del gateway**: el stderr del gateway para el intervalo correspondiente, tu `gateway.yaml` con los secretos ocultos, la versión del gateway, que se muestra en la página de inicio en `/` y en el encabezado de respuesta `x-cc-gateway-version` en `/managed/settings`, y qué cambió recientemente

381* **Problema de inicio de sesión**: el desarrollador ejecuta `claude --debug-file ./claude-debug.txt`, reproduce el problema y envía ese archivo junto con el registro de auditoría del gateway para el mismo intervalo396* **Problema de inicio de sesión**: el desarrollador ejecuta `claude --debug-file ./claude-debug.txt`, reproduce el problema y envía ese archivo junto con el registro de auditoría del gateway para el mismo intervalo


394| CLI `/login`: `The gateway is limiting sign-in attempts right now`, o `Request failed with status code 429` en versiones anteriores. La página `/device` puede mostrar `Too many attempts` a desarrolladores que no lo han intentado antes | Se alcanzó el rate limit de inicio de sesión por IP. O bien `listen.trusted_proxies` no cubre el balanceador de carga, por lo que todos los desarrolladores comparten su dirección, o muchos desarrolladores comparten una dirección de salida de NAT o VPN. Los eventos de auditoría con `result: rate_limited` muestran el mismo valor de `client_ip` o unos pocos. | Primero establece `listen.trusted_proxies` en los rangos de origen del balanceador de carga y luego aumenta `rate_limits` si los desarrolladores siguen compartiendo direcciones. Consulta [Despliegues a gran escala](#large-rollouts). |409| CLI `/login`: `The gateway is limiting sign-in attempts right now`, o `Request failed with status code 429` en versiones anteriores. La página `/device` puede mostrar `Too many attempts` a desarrolladores que no lo han intentado antes | Se alcanzó el rate limit de inicio de sesión por IP. O bien `listen.trusted_proxies` no cubre el balanceador de carga, por lo que todos los desarrolladores comparten su dirección, o muchos desarrolladores comparten una dirección de salida de NAT o VPN. Los eventos de auditoría con `result: rate_limited` muestran el mismo valor de `client_ip` o unos pocos. | Primero establece `listen.trusted_proxies` en los rangos de origen del balanceador de carga y luego aumenta `rate_limits` si los desarrolladores siguen compartiendo direcciones. Consulta [Despliegues a gran escala](#large-rollouts). |

395| CLI `/login`: `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | El nombre de host del gateway se resuelve en al menos una dirección IP pública. Claude Code verifica cada dirección resuelta y exige que todas sean privadas. Una causa común es un nombre de doble pila en el que una familia se resuelve en una dirección pública, incluidos los balanceadores de carga internos de doble pila de AWS, que devuelven direcciones AAAA de rango público. | Haz que el nombre del gateway se resuelva solo en direcciones privadas en las máquinas de los desarrolladores. Para un nombre de doble pila, elimina el registro de rango público o sirve un nombre DNS aparte, solo interno. Consulta el [requisito previo de red privada](/docs/es/claude-apps-gateway#prerequisites). Si la dirección pertenece a un espacio público que tu organización posee y usa internamente, [declara ese bloque](/docs/es/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) en su lugar. |410| CLI `/login`: `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | El nombre de host del gateway se resuelve en al menos una dirección IP pública. Claude Code verifica cada dirección resuelta y exige que todas sean privadas. Una causa común es un nombre de doble pila en el que una familia se resuelve en una dirección pública, incluidos los balanceadores de carga internos de doble pila de AWS, que devuelven direcciones AAAA de rango público. | Haz que el nombre del gateway se resuelva solo en direcciones privadas en las máquinas de los desarrolladores. Para un nombre de doble pila, elimina el registro de rango público o sirve un nombre DNS aparte, solo interno. Consulta el [requisito previo de red privada](/docs/es/claude-apps-gateway#prerequisites). Si la dirección pertenece a un espacio público que tu organización posee y usa internamente, [declara ese bloque](/docs/es/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) en su lugar. |

396| CLI `/login`: `Gateway login would go through proxy <proxy>, which is not on a private network` | Un `HTTPS_PROXY` o `HTTP_PROXY` se aplica al host del gateway y el nombre de host del proxy se resuelve en una dirección pública. Un proxy cuyo host se resuelve solo en direcciones privadas está permitido y no provoca este error | Agrega el host del gateway a `NO_PROXY` en la máquina del desarrollador para que la conexión sea directa, o usa un proxy cuyo nombre de host se resuelva en direcciones privadas. El mensaje indica la entrada exacta de `NO_PROXY` que debes agregar |411| CLI `/login`: `Gateway login would go through proxy <proxy>, which is not on a private network` | Un `HTTPS_PROXY` o `HTTP_PROXY` se aplica al host del gateway y el nombre de host del proxy se resuelve en una dirección pública. Un proxy cuyo host se resuelve solo en direcciones privadas está permitido y no provoca este error | Agrega el host del gateway a `NO_PROXY` en la máquina del desarrollador para que la conexión sea directa, o usa un proxy cuyo nombre de host se resuelva en direcciones privadas. El mensaje indica la entrada exacta de `NO_PROXY` que debes agregar |

397| CLI `/login`: `Claude Code only signs in to <host> from inside its declared network <block> (managed settings), and this machine is connecting from <ip>, outside it` | El gateway está en un bloque declarado en [`gatewayInternalNetworks`](/docs/es/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own), y la máquina del desarrollador llegó a él desde una dirección fuera de ese bloque: un pool de direcciones de VPN, un segmento NAT de contenedor o de WSL2, o una red que no es tuya | Pide al desarrollador que ejecute `/login` desde el sistema operativo anfitrión en tu red. Si la dirección mostrada también pertenece al espacio público de tu organización, reemplaza la entrada del gateway por un bloque que cubra ambos, hasta `/8`; una segunda entrada superpuesta se rechaza |412| CLI `/login`: `Claude Code only signs in to <host> from inside its declared network <block> (managed settings), and this machine is connecting from <ip>, outside it` | El gateway está en un bloque declarado en [`gatewayInternalNetworks`](/docs/es/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own), y la máquina del desarrollador llegó a él desde una dirección fuera de ese bloque: un pool de direcciones de VPN, un segmento NAT de contenedor o de WSL2, o una red que no es tuya | Pide al desarrollador que ejecute `/login` desde el sistema operativo anfitrión en tu red. Si la dirección mostrada también pertenece al espacio público de tu organización, reemplaza la entrada del gateway por un bloque que cubra ambos, hasta `/8`; una segunda entrada superpuesta se rechaza. Si ningún bloque cubre ambos, consulta [Elegir una dirección para el gateway](#choose-an-address-for-the-gateway) |

398| CLI `/login`: `Every address for gateway host <host> must be inside its declared network <block>, and it also resolves to <ip>` | El nombre del gateway se resuelve en una dirección fuera del bloque declarado en [`gatewayInternalNetworks`](/docs/es/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own): un segundo sitio, o un registro IPv6 en un nombre de doble pila. Con un bloque declarado, todos los registros deben estar dentro de ese único bloque IPv4, incluidas las direcciones privadas e IPv6 | Publica solo registros dentro del bloque para el nombre del gateway en las máquinas de los desarrolladores, o sirve un nombre aparte, solo interno |413| CLI `/login`: `Every address for gateway host <host> must be inside its declared network <block>, and it also resolves to <ip>` | El nombre del gateway se resuelve en una dirección fuera del bloque declarado en [`gatewayInternalNetworks`](/docs/es/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own): un segundo sitio, o un registro IPv6 en un nombre de doble pila. Con un bloque declarado, todos los registros deben estar dentro de ese único bloque IPv4, incluidas las direcciones privadas e IPv6 | Publica solo registros dentro del bloque para el nombre del gateway en las máquinas de los desarrolladores, o sirve un nombre aparte, solo interno |

399| CLI `/login`: `<host> is on the declared network <block>, which Claude Code checks over a direct connection, not through an HTTP proxy` | Un `HTTPS_PROXY` o `HTTP_PROXY` se aplica a un gateway en un bloque declarado | En la máquina del desarrollador, agrega la entrada de `NO_PROXY` que indica el mensaje |414| CLI `/login`: `<host> is on the declared network <block>, which Claude Code checks over a direct connection, not through an HTTP proxy` | Un `HTTPS_PROXY` o `HTTP_PROXY` se aplica a un gateway en un bloque declarado | En la máquina del desarrollador, agrega la entrada de `NO_PROXY` que indica el mensaje |

400| CLI `/login`: un mensaje que comienza con `gatewayInternalNetworks in managed settings` | El valor infringe una de las [reglas de validación](/docs/es/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own), y el mensaje indica cuál. Hasta que lo corrijas, Claude Code rechaza cualquier nuevo `/login` de gateway en la máquina, incluidos los gateways en direcciones privadas; los inicios de sesión existentes siguen funcionando | En la fuente de configuración administrada que implementas, corrige la entrada que indica el mensaje y luego vuelve a ejecutar `/login` |415| CLI `/login`: un mensaje que comienza con `gatewayInternalNetworks in managed settings` | El valor infringe una de las [reglas de validación](/docs/es/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own), y el mensaje indica cuál. Hasta que lo corrijas, Claude Code rechaza cualquier nuevo `/login` de gateway en la máquina, incluidos los gateways en direcciones privadas; los inicios de sesión existentes siguen funcionando | En la fuente de configuración administrada que implementas, corrige la entrada que indica el mensaje y luego vuelve a ejecutar `/login` |

Details

4 4 

5# Usar Claude Code en la nube5# Usar Claude Code en la nube

6 6 

7> Ejecute sesiones de Claude Code en la nube desde su navegador, teléfono, aplicación de escritorio o terminal, muévalas con `--cloud` y `--teleport`, y corrija automáticamente solicitudes de extracción.7> Ejecuta sesiones de Claude Code en la nube desde tu navegador, teléfono, aplicación de escritorio o terminal, muévelas con `--cloud` y `--teleport`, y corrige automáticamente pull requests.

8 8 

9<Note>9<Note>

10 Las sesiones en la nube están disponibles en los planes Pro, Max y Team, y para usuarios Enterprise con asientos premium o asientos Chat + Claude Code.10 Las sesiones en la nube están disponibles en los planes Pro, Max y Team, y para usuarios Enterprise con asientos premium o asientos Chat + Claude Code.

11</Note>11</Note>

12 12 

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

14 14 

15Para que las sesiones en la nube puedan clonar tu código desde GitHub y enviar ramas, conecta GitHub con uno de los [métodos de conexión de GitHub](#github-authentication-options). Si tu repositorio está en GitLab, Bitbucket u otro host, consulta [Restricciones de plataforma](#limitations) para saber qué funciona.15Para que las sesiones en la nube puedan clonar tu código desde GitHub y enviar ramas, conecta GitHub con uno de los [métodos de conexión de GitHub](#github-authentication-options). Si tu repositorio está en GitLab, Bitbucket u otro host, consulta [Restricciones de plataforma](#limitations) para saber qué funciona.

16 16 


416* **Máquinas virtuales aisladas**: cada sesión se ejecuta en una VM aislada administrada por Anthropic. Las sesiones que su organización enruta a un [entorno autohospedado](/docs/es/self-hosted-environments) se ejecutan en su propia infraestructura en su lugar, donde el aislamiento es responsabilidad de su implementación416* **Máquinas virtuales aisladas**: cada sesión se ejecuta en una VM aislada administrada por Anthropic. Las sesiones que su organización enruta a un [entorno autohospedado](/docs/es/self-hosted-environments) se ejecutan en su propia infraestructura en su lugar, donde el aislamiento es responsabilidad de su implementación

417* <span id="default-allowed-domains" />**Controles de acceso a la red**: en entornos alojados por Anthropic, el acceso a la red se limita de forma predeterminada y puede deshabilitarse. Consulte [Acceso a la red](/docs/es/cloud-environments#network-access) para los niveles de acceso, los [dominios permitidos predeterminados](/docs/es/cloud-environments#default-allowed-domains) y el tráfico que no pasa por la lista de permitidos. En un entorno autohospedado, usted restringe la salida de la sesión en su propio límite de red. Cuando se ejecuta con acceso a la red deshabilitado, Claude Code aún puede comunicarse con la API de Anthropic, lo que puede permitir que los datos salgan de la VM.417* <span id="default-allowed-domains" />**Controles de acceso a la red**: en entornos alojados por Anthropic, el acceso a la red se limita de forma predeterminada y puede deshabilitarse. Consulte [Acceso a la red](/docs/es/cloud-environments#network-access) para los niveles de acceso, los [dominios permitidos predeterminados](/docs/es/cloud-environments#default-allowed-domains) y el tráfico que no pasa por la lista de permitidos. En un entorno autohospedado, usted restringe la salida de la sesión en su propio límite de red. Cuando se ejecuta con acceso a la red deshabilitado, Claude Code aún puede comunicarse con la API de Anthropic, lo que puede permitir que los datos salgan de la VM.

418* **Protección de credenciales**: en entornos alojados por Anthropic, las credenciales de git y las claves de firma permanecen fuera del sandbox, y un proxy se autentica en nombre de la sesión con credenciales de alcance. En un entorno autohospedado, su implementación proporciona credenciales de git; consulte [Configurar git](/docs/es/self-hosted-environments-deploy#configure-git)418* **Protección de credenciales**: en entornos alojados por Anthropic, las credenciales de git y las claves de firma permanecen fuera del sandbox, y un proxy se autentica en nombre de la sesión con credenciales de alcance. En un entorno autohospedado, su implementación proporciona credenciales de git; consulte [Configurar git](/docs/es/self-hosted-environments-deploy#configure-git)

419* **Secretos de red**: en entornos alojados por Anthropic en planes Pro y Max, las claves que [agregas a un entorno en la nube](/docs/es/cloud-environments#add-api-credentials) permanecen fuera del sandbox de la misma manera, adjuntas a solicitudes coincidentes después de que salen de la sesión. Un entorno autohospedado no tiene secretos de red, y los planes Team y Enterprise aún no los tienen419* **Secretos de red**: en entornos alojados por Anthropic en planes Pro y Max, las claves que [agregas a un entorno en la nube](/docs/es/cloud-environments#add-network-secrets) permanecen fuera del sandbox de la misma manera, adjuntas a solicitudes coincidentes después de que salen de la sesión. Un entorno autohospedado no tiene secretos de red, y los planes Team y Enterprise aún no los tienen

420* **Análisis seguro**: el código se analiza y modifica dentro del entorno aislado de la sesión antes de crear PRs420* **Análisis seguro**: el código se analiza y modifica dentro del entorno aislado de la sesión antes de crear PRs

421 421 

422<h2 id="troubleshooting">422<h2 id="troubleshooting">


491 491 

492Antes de confiar en sesiones en la nube para un flujo de trabajo, tenga en cuenta estas restricciones:492Antes de confiar en sesiones en la nube para un flujo de trabajo, tenga en cuenta estas restricciones:

493 493 

494* **Límites de velocidad**: las sesiones en la nube comparten límites de velocidad con todo otro uso de Claude y Claude Code dentro de su cuenta. Ejecutar múltiples tareas en paralelo consume más límites de velocidad proporcionalmente. No hay cargo de computación separado para la VM en la nube.494* **Rate limits**: las sesiones en la nube comparten los rate limits con todo otro uso de Claude y Claude Code dentro de tu cuenta. Ejecutar múltiples tareas en paralelo consume proporcionalmente más de tus rate limits.

495* **Límites de tiempo**: los comandos que Claude ejecuta y los hooks SessionStart tienen tiempos de espera predeterminados que puede cambiar, y un script de configuración se almacena en caché solo cuando se completa en aproximadamente cinco minutos. Consulte [Límites de tiempo](/docs/es/cloud-environments#time-limits)495* **Límites de tiempo**: los comandos que Claude ejecuta y los hooks SessionStart tienen tiempos de espera predeterminados que puede cambiar, y un script de configuración se almacena en caché solo cuando se completa en aproximadamente cinco minutos. Consulte [Límites de tiempo](/docs/es/cloud-environments#time-limits)

496* **Autenticación de repositorio**: solo puede extraer una sesión en la nube a su terminal cuando está autenticado en la misma cuenta496* **Autenticación de repositorio**: solo puede extraer una sesión en la nube a su terminal cuando está autenticado en la misma cuenta

497* **Restricciones de plataforma**: la clonación de repositorio y la creación de solicitudes de extracción requieren GitHub. Las instancias autohospedadas de [GitHub Enterprise Server](/docs/es/github-enterprise-server) son compatibles con planes de Team y Enterprise. Puede enviar un repositorio de GitLab, Bitbucket u otro que no sea GitHub a una sesión en la nube como un [paquete local](#send-local-repositories-without-github) estableciendo `CCR_FORCE_BUNDLE=1`, pero la sesión no puede insertar resultados de vuelta a ese remoto497* **Restricciones de plataforma**: la clonación de repositorio y la creación de solicitudes de extracción requieren GitHub. Las instancias autohospedadas de [GitHub Enterprise Server](/docs/es/github-enterprise-server) son compatibles con planes de Team y Enterprise. Puede enviar un repositorio de GitLab, Bitbucket u otro que no sea GitHub a una sesión en la nube como un [paquete local](#send-local-repositories-without-github) estableciendo `CCR_FORCE_BUNDLE=1`, pero la sesión no puede insertar resultados de vuelta a ese remoto

Details

217 1. Configurar credenciales de AWS217 1. Configurar credenciales de AWS

218</h3>218</h3>

219 219 

220Claude Code admite dos métodos de autenticación para Claude Platform on AWS. Elija el método que se ajuste a cómo su equipo gestiona el acceso.220Claude Code admite dos métodos de autenticación para Claude Platform on AWS. Elige el método que se ajuste a cómo tu equipo gestiona el acceso:

221 221 

222**Opción A: Credenciales de AWS con SigV4**222* [Credenciales de AWS con SigV4](#use-aws-credentials-with-sigv4): autentícate como una entidad principal de IAM, con credenciales de la cadena de credenciales estándar de AWS

223* [Clave de API del espacio de trabajo](#use-a-workspace-api-key): autentícate con una clave de larga duración que generas en la Consola de AWS

224 

225<h4 id="use-aws-credentials-with-sigv4">

226 Usar credenciales de AWS con SigV4

227</h4>

223 228 

224Claude Code firma solicitudes con SigV4 utilizando la cadena de credenciales estándar de AWS: variables de entorno, credenciales compartidas en `~/.aws/credentials`, roles de IAM, sesiones de AWS SSO y cualquier otra fuente que el SDK de AWS admita.229Claude Code firma solicitudes con SigV4 utilizando la cadena de credenciales estándar de AWS: variables de entorno, credenciales compartidas en `~/.aws/credentials`, roles de IAM, sesiones de AWS SSO y cualquier otra fuente que el SDK de AWS admita.

225 230 


244 249 

245Con `awsAuthRefresh` configurado, ejecute `/login`, seleccione **plataforma de terceros**, luego seleccione **Claude Platform on AWS · actualizar credenciales** en **Usando plataformas de terceros**. Claude Code ejecuta el comando configurado y vuelve a leer sus credenciales de AWS sin reiniciar.250Con `awsAuthRefresh` configurado, ejecute `/login`, seleccione **plataforma de terceros**, luego seleccione **Claude Platform on AWS · actualizar credenciales** en **Usando plataformas de terceros**. Claude Code ejecuta el comando configurado y vuelve a leer sus credenciales de AWS sin reiniciar.

246 251 

247**Opción B: Clave API del espacio de trabajo**252<h4 id="use-a-workspace-api-key">

253 Usar una clave de API del espacio de trabajo

254</h4>

248 255 

249Una clave API del espacio de trabajo es un secreto de larga duración, útil cuando no desea gestionar credenciales de AWS federados. Genere una en la Consola de AWS en **Claude Platform on AWS → API keys** y establézcala como `ANTHROPIC_AWS_API_KEY`:256Una clave API del espacio de trabajo es un secreto de larga duración, útil cuando no desea gestionar credenciales de AWS federados. Genere una en la Consola de AWS en **Claude Platform on AWS → API keys** y establézcala como `ANTHROPIC_AWS_API_KEY`:

250 257 

claude-projects.md +39 −39

Details

172 172 

173Antes de enviar a un nuevo proyecto un lote de trabajo, configúrelo para que los primeros hilos regresen de la manera que desea:173Antes de enviar a un nuevo proyecto un lote de trabajo, configúrelo para que los primeros hilos regresen de la manera que desea:

174 174 

1751. [Escribir instrucciones del proyecto](#write-project-instructions): el resumen que cada hilo comienza, como qué rama dirigirse, cómo un hilo verifica su trabajo, y qué necesita su aprobación.1751. [Escribir instrucciones del proyecto](#write-project-instructions): el resumen con el que comienza cada hilo, como a qué rama dirigirse, cómo un hilo verifica su trabajo, y qué necesita su aprobación.

1762. Envíe una pequeña pieza del trabajo real, o inicie uno de los hilos que Claude sugirió si ofreció alguno, y abra el hilo cuando termine para ver cómo informa y qué hizo en su rama. Si asumió algo incorrecto o no pudo alcanzar lo que necesitaba, [Los hilos adivinaron o se estancaron en lugar de preguntar](#threads-guessed-or-stalled-instead-of-asking) cubre dónde arreglarlo.1762. Envíe una pequeña pieza del trabajo real, o inicie uno de los hilos que Claude sugirió si ofreció alguno, y abra el hilo cuando termine para ver cómo informa y qué hizo en su rama. Si asumió algo incorrecto o no pudo alcanzar lo que necesitaba, [Los hilos adivinaron o se estancaron en lugar de preguntar](#threads-guessed-or-stalled-instead-of-asking) cubre dónde arreglarlo.

1773. Verifique **Thread model** y **Thread effort** en **Project settings > General**. Un nuevo proyecto ejecuta cada hilo en Opus con esfuerzo alto, que consume su plan más rápidamente; [Elegir modelos y dejar que Claude gestione el contexto](#choose-models-and-let-claude-manage-context) cubre las alternativas.1773. Verifique **Thread model** y **Thread effort** en **Project settings > General**. Un nuevo proyecto ejecuta cada hilo en Opus con esfuerzo alto, que consume su plan más rápidamente; [Elegir modelos y dejar que Claude gestione el contexto](#choose-models-and-let-claude-manage-context) cubre las alternativas.

1784. Pida a Claude que [proponga hilos antes de iniciarlos y ejecute algunos a la vez](#tune-how-claude-runs-a-project), y elimine esos límites una vez que algunos hilos regresen de la manera que desea.1784. Pida a Claude que [proponga hilos antes de iniciarlos y ejecute algunos a la vez](#tune-how-claude-runs-a-project), y elimine esos límites una vez que algunos hilos regresen de la manera que desea.


313Un proyecto no puede ejecutar un hilo en su computadora mientras [**Require trusted devices**](/docs/es/remote-control#trusted-devices) está activado para su cuenta.313Un proyecto no puede ejecutar un hilo en su computadora mientras [**Require trusted devices**](/docs/es/remote-control#trusted-devices) está activado para su cuenta.

314 314 

315<h2 id="give-a-project-standing-context">315<h2 id="give-a-project-standing-context">

316 Proporcione contexto permanente al proyecto316 Dale al proyecto contexto permanente

317</h2>317</h2>

318 318 

319La memoria del proyecto, las instrucciones del proyecto y los repositorios, archivos y entorno del proyecto llevan contexto entre hilos. Usted establece cada uno una sola vez.319La memoria del proyecto, las instrucciones del proyecto y los repositorios, archivos y entorno del proyecto llevan contexto entre hilos. Estableces cada uno una sola vez.

320 320 

321| Contexto | Lo que lleva | Cómo lo establece |321| Contexto | Lo que lleva | Cómo lo estableces |

322| :- | :- | :- |322| :- | :- | :- |

323| Memoria del proyecto | Notas que Claude mantiene sobre el proyecto, como requisitos, decisiones y trampas, almacenadas como archivos. Cada hilo en la nube lee el archivo de índice `MEMORY.md` cuando comienza y abre los otros archivos cuando los necesita | Pida a Claude en la conversación del proyecto o en cualquier hilo en la nube que recuerde un requisito, una decisión o una trampa, o que olvide uno. Lea, edite y elimine los archivos en **Configuración del proyecto > Memoria** |323| Memoria del proyecto | Notas que Claude mantiene sobre el proyecto, como requisitos, decisiones y trampas, almacenadas como archivos. Cada hilo en la nube lee el archivo de índice `MEMORY.md` cuando comienza y abre los otros archivos cuando los necesita | Pide a Claude en la conversación del proyecto o en cualquier hilo en la nube que recuerde un requisito, una decisión o una trampa, o que olvide uno. Lee, edita y elimina los archivos en **Configuración del proyecto > Memoria** |

324| Instrucciones del proyecto | Texto enviado a cada nuevo hilo y a Claude en la conversación del proyecto, hasta 16.000 caracteres. [Escribir instrucciones del proyecto](#write-project-instructions) cubre qué poner en él | **Configuración del proyecto > Memoria > Instrucciones del proyecto**, o pida a Claude que cambie las instrucciones |324| Instrucciones del proyecto | Texto enviado a cada nuevo hilo y a Claude en la conversación del proyecto, hasta 16.000 caracteres. [Escribir instrucciones del proyecto](#write-project-instructions) cubre qué poner en él | **Configuración del proyecto > Memoria > Instrucciones del proyecto**, o pide a Claude que cambie las instrucciones |

325| Repositorios, archivos y entorno | Los repositorios que cada hilo en la nube clona, las carpetas y archivos que puede leer en `/mnt/project-files`, y el entorno en la nube en el que se ejecuta | Repositorios y entorno en **Configuración del proyecto > Entorno**, o pida a Claude en la conversación que agregue un repositorio al proyecto. [Archivos y carpetas](#add-files-and-folders) desde **Agregar** en la pestaña **Biblioteca** en **Descripción general** |325| Repositorios, archivos y entorno | Los repositorios que cada hilo en la nube clona, las carpetas y archivos que puede leer en `/mnt/project-files`, y el entorno en la nube en el que se ejecuta | Repositorios y entorno en **Configuración del proyecto > Entorno**, o pide a Claude en la conversación que agregue un repositorio al proyecto. [Archivos y carpetas](#add-files-and-folders) desde **Agregar** en la pestaña **Biblioteca** en **Descripción general** |

326 326 

327**Configuración del proyecto > Memoria** enumera estos archivos en **Memoria automática**, porque Claude los escribe a sí mismo mientras trabaja en el proyecto. Son separados de la [memoria automática](/docs/es/memory) que Claude Code mantiene en su máquina, aunque ambos usen un índice `MEMORY.md`. La memoria del proyecto también es separada de los archivos `CLAUDE.md` en los repositorios del proyecto. Cada hilo en la nube aún lee esos archivos `CLAUDE.md` de su clon cuando comienza, así que ponga instrucciones sobre un repositorio en su `CLAUDE.md` y notas sobre el proyecto en la memoria del proyecto.327**Configuración del proyecto > Memoria** enumera estos archivos en **Memoria automática**, porque Claude mismo los escribe mientras trabaja en el proyecto. Son independientes de la [memoria automática](/docs/es/memory) que Claude Code mantiene en tu máquina, aunque ambas usen un índice `MEMORY.md`. La memoria del proyecto también es independiente de los archivos `CLAUDE.md` en los repositorios del proyecto. Cada hilo en la nube aún lee esos archivos `CLAUDE.md` de su clon cuando comienza, así que pon las instrucciones sobre un repositorio en su `CLAUDE.md` y las notas sobre el proyecto en la memoria del proyecto.

328 328 

329<h3 id="write-project-instructions">329<h3 id="write-project-instructions">

330 Escribir instrucciones del proyecto330 Escribir instrucciones del proyecto

331</h3>331</h3>

332 332 

333Las instrucciones del proyecto son el resumen con el que comienza cada nuevo hilo. Haga clic en el icono de engranaje en el encabezado del proyecto para abrir **Configuración del proyecto**, luego vaya a **Memoria > Instrucciones del proyecto**. Un resumen útil cubre:333Las instrucciones del proyecto son el resumen con el que comienza cada nuevo hilo. Haz clic en el icono de engranaje en el encabezado del proyecto para abrir **Configuración del proyecto**, luego ve a **Memoria > Instrucciones del proyecto**. Un resumen útil cubre:

334 334 

335* Para qué es el proyecto335* Para qué es el proyecto

336* Dónde ocurre el trabajo: qué repositorios, de qué rama comenzar, cómo nombrar solicitudes de extracción336* Dónde ocurre el trabajo: qué repositorios, de qué rama partir, cómo nombrar los pull requests

337* Cómo un hilo verifica su propio trabajo antes de considerarlo terminado337* Cómo un hilo verifica su propio trabajo antes de considerarlo terminado

338* Qué hacer cuando falta algo que necesita338* Qué hacer cuando falta algo que necesita

339* Qué necesita su aprobación primero339* Qué necesita tu aprobación primero

340 340 

341Por ejemplo:341Por ejemplo:

342 342 

343```text theme={null}343```text theme={null}

344Este proyecto mantiene la latencia p95 de la API de pagos por debajo de 200 ms: perfilado, correcciones de consultas y almacenamiento en caché, y las actualizaciones de dependencias que vienen con ellas, en el repositorio payments-api.344This project holds p95 latency for the payments API under 200 ms: profiling, query and caching fixes, and the dependency upgrades that come with them, in the payments-api repository.

345 345 

346- Rama desde main y abre una solicitud de extracción de borrador por hilo.346- Branch from main and open one draft pull request per thread.

347- Antes de considerar el trabajo terminado, ejecuta `make test` y `make lint` y pega las líneas de resumen en tu mensaje final.347- Before you call work done, run `make test` and `make lint` and paste the summary lines in your final message.

348- Si no puedes acceder a algo que necesitas, como un repositorio, un secreto, una API o un conector, di exactamente qué falta en tu primer mensaje y detente. No sustituyas, simules ni adivines.348- If you can't reach something you need, such as a repository, a secret, an API, or a connector, say exactly what's missing in your first message and stop. Don't substitute, mock, or guess.

349- No fusiones, no hagas push forzado ni cambies la configuración de CI sin preguntarme en el hilo.349- Don't merge, force-push, or change CI configuration without asking me in the thread.

350```350```

351 351 

352Las reglas sobre un repositorio, como sus comandos de compilación, pertenecen al `CLAUDE.md` de ese repositorio, que cada hilo en la nube lee cuando el repositorio es parte del proyecto. Una vez que el trabajo está en marcha, cuando corrija un hilo, también dígale a Claude que recuerde la corrección: va a la [memoria del proyecto](#give-a-project-standing-context) y los hilos posteriores comienzan con ella.352Las reglas sobre un repositorio, como sus comandos de compilación, pertenecen al `CLAUDE.md` de ese repositorio, que cada hilo en la nube lee cuando el repositorio es parte del proyecto. Una vez que el trabajo está en marcha, cuando corrijas un hilo, dile también a Claude que recuerde la corrección: va a la [memoria del proyecto](#give-a-project-standing-context) y los hilos en la nube posteriores comienzan con ella.

353 353 

354<h3 id="decide-which-repositories-to-add">354<h3 id="decide-which-repositories-to-add">

355 Decidir qué repositorios agregar355 Decidir qué repositorios agregar

356</h3>356</h3>

357 357 

358Los repositorios que agrega a un proyecto vienen con todo lo que contienen, su código, `CLAUDE.md` y skills, en cada hilo en la nube. Los repositorios que no agrega aún están al alcance: un hilo en la nube puede agregar uno a sí mismo cuando su tarea lo necesita. La mayoría de los proyectos usan ambos:358Los repositorios que agregas a un proyecto vienen con todo lo que contienen, su código, `CLAUDE.md` y skills, en cada hilo en la nube. Los repositorios que no agregas siguen al alcance: un hilo en la nube puede agregarse uno a sí mismo cuando su tarea lo necesita. La mayoría de los proyectos usan ambos:

359 359 

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

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

362 362 

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

364 364 

365Una vez que el proyecto tiene repositorios, Claude solo puede agregar repositorios de un propietario de GitHub que el proyecto ya usa, ya sea que agregue uno al proyecto o un hilo agregue uno a sí mismo. Para traer un repositorio de un propietario diferente, agréguelo al proyecto usted mismo en **Configuración del proyecto > Entorno**.365Una vez que el proyecto tiene repositorios, Claude solo puede agregar repositorios de un propietario de GitHub que el proyecto ya usa, ya sea que agregue uno al proyecto o que un hilo se agregue uno a sí mismo. Para traer un repositorio de un propietario diferente, agrégalo al proyecto tú mismo en **Configuración del proyecto > Entorno**.

366 366 

367Para un proyecto que abarca muchos repositorios, como una característica con código de servidor, web, móvil y escritorio, agregue uno o dos repositorios que casi todas las tareas tocan y nombre los otros en [instrucciones del proyecto](#write-project-instructions) para que Claude sepa dónde vive el resto del código. Los hilos en la nube entonces comienzan pequeños y traen los otros repositorios solo para las tareas que los necesitan.367Para un proyecto que abarca muchos repositorios, como una característica con código de servidor, web, móvil y escritorio, agrega el repositorio o los dos repositorios que casi todas las tareas tocan y nombra los otros en las [instrucciones del proyecto](#write-project-instructions) para que Claude sepa dónde está el resto del código. Los hilos en la nube entonces comienzan pequeños y traen los otros repositorios solo para las tareas que los necesitan.

368 368 

369<h3 id="add-files-and-folders">369<h3 id="add-files-and-folders">

370 Agregar archivos y carpetas370 Agregar archivos y carpetas

371</h3>371</h3>

372 372 

373Agregue los archivos y carpetas que desea que los hilos lean en el campo **Contexto** del diálogo **Nuevo proyecto**, o después con **Agregar** en la pestaña **Biblioteca** en **Descripción general**. Estos límites se aplican a lo que agrega:373Agrega los archivos y carpetas que quieres que los hilos lean en el campo **Contexto** del diálogo **Nuevo proyecto**, o después con **Agregar** en la pestaña **Biblioteca** en **Descripción general**. Estos límites se aplican a lo que agregas:

374 374 

375* **Pestaña Biblioteca**: hasta 100 archivos y 2 GB en una selección, con un único archivo de hasta 480 MB.375* **Pestaña Biblioteca**: hasta 100 archivos y 2 GB en una selección, con un único archivo de hasta 480 MB.

376* **Diálogo Nuevo proyecto**: los archivos de más de 30 MB se omiten, así que agregue archivos más grandes desde la pestaña **Biblioteca** después de crear el proyecto.376* **Diálogo Nuevo proyecto**: los archivos de más de 30 MB se omiten, así que agrega los archivos más grandes desde la pestaña **Biblioteca** después de crear el proyecto.

377* **Carpetas**: cuando agrega una carpeta desde cualquiera de los dos lugares, el proyecto recibe una copia de sus primeros 100 archivos de hasta 200 MB, sin archivos de más de 30 MB, archivos ocultos o `node_modules`. Un proyecto contiene hasta 10 carpetas y carpetas de Google Drive combinadas, y los archivos individuales no cuentan hacia ese límite.377* **Carpetas**: cuando agregas una carpeta desde cualquiera de los dos lugares, el proyecto recibe una copia de sus primeros 100 archivos hasta 200 MB, sin archivos de más de 30 MB, archivos ocultos ni `node_modules`. Un proyecto contiene hasta 10 carpetas y carpetas de Google Drive combinadas, y los archivos individuales no cuentan para ese límite.

378* **Cambios después de la carga**: las cargas son copias, por lo que un cambio que realiza en su computadora después no llega al proyecto hasta que cargue el archivo nuevamente y elija **Reemplazar** cuando se le pregunte sobre el nombre existente.378* **Cambios después de la carga**: las cargas son copias, por lo que un cambio que hagas en tu computadora después no llega al proyecto hasta que cargues el archivo nuevamente y elijas **Reemplazar** cuando se te pregunte sobre el nombre existente.

379 379 

380<h3 id="what-threads-pick-up-from-your-repositories">380<h3 id="what-threads-pick-up-from-your-repositories">

381 Lo que los hilos recogen de sus repositorios381 Lo que los hilos recogen de tus repositorios

382</h3>382</h3>

383 383 

384Cada hilo en la nube clona cada repositorio en el proyecto y carga `CLAUDE.md` y skills de todos ellos. Las reglas de permisos, hooks y `env` vienen solo del `.claude/settings.json` en el directorio en el que comienza el hilo: dentro del repositorio cuando el proyecto tiene uno, y encima de los clones cuando tiene varios, donde no se lee el archivo de ningún repositorio para ellos.384Cada hilo en la nube clona cada repositorio del proyecto y carga `CLAUDE.md` y skills de todos ellos. Las reglas de permisos, los hooks y `env` vienen solo del `.claude/settings.json` en el directorio en el que comienza el hilo: dentro del repositorio cuando el proyecto tiene uno, y encima de los clones cuando tiene varios, donde no se lee el archivo de ningún repositorio para ellos.

385 385 

386| En cada repositorio | Un repositorio | Varios repositorios |386| En cada repositorio | Un repositorio | Varios repositorios |

387| :- | :- | :- |387| :- | :- | :- |

388| `CLAUDE.md` | Se carga cuando comienza el hilo | Se carga desde cada repositorio cuando comienza el hilo |388| `CLAUDE.md` | Se carga cuando comienza el hilo | Se carga desde cada repositorio cuando comienza el hilo |

389| Skills, agentes y comandos bajo `.claude/` | Se cargan | Se cargan desde cada repositorio |389| Skills, agentes y comandos bajo `.claude/` | Se cargan | Se cargan desde cada repositorio |

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

391| Reglas de permisos, hooks y `env` definidos en `.claude/settings.json` | Se aplican al hilo, excepto las claves `env` que [ninguna sesión en la nube honra](/docs/es/cloud-environments#what-carries-over-from-your-setup) | No se aplican |391| Reglas de permisos, hooks y `env` definidos en `.claude/settings.json` | Se aplican al hilo, excepto las claves `env` que [ninguna sesión en la nube respeta](/docs/es/cloud-environments#what-carries-over-from-your-setup) | No se aplican |

392 392 

393En un proyecto con varios repositorios, cada clon se adjunta al hilo como un [directorio adicional](/docs/es/memory#load-from-additional-directories) con carga de `CLAUDE.md` activada, por lo que el `CLAUDE.md` y skills de cada repositorio se cargan al inicio aunque el hilo comience encima de ellos. En un proyecto con varios repositorios, ponga reglas permanentes en instrucciones del proyecto y proporcione a los hilos variables de entorno a través del [entorno en la nube](#choose-an-environment-for-threads).393En un proyecto con varios repositorios, cada clon se adjunta al hilo como un [directorio adicional](/docs/es/memory#load-from-additional-directories) con la carga de `CLAUDE.md` activada, por lo que el `CLAUDE.md` y los skills de cada repositorio se cargan al inicio aunque el hilo comience encima de ellos. En un proyecto así, pon las reglas permanentes en las instrucciones del proyecto y proporciona a los hilos variables de entorno a través del [entorno en la nube](#choose-an-environment-for-threads).

394 394 

395<h3 id="choose-an-environment-for-threads">395<h3 id="choose-an-environment-for-threads">

396 Elegir un entorno para los hilos396 Elegir un entorno para los hilos


398 398 

399Cada nuevo hilo en la nube comienza en el [entorno en la nube](/docs/es/cloud-environments) del proyecto. El entorno establece a qué dominios pueden acceder los hilos, qué variables de entorno tienen, qué secretos de red se agregan a sus solicitudes y qué instala el script de configuración antes de que Claude comience. Los hilos en la nube usan un entorno predeterminado alojado por Anthropic hasta que eliges uno en **Configuración del proyecto > Entorno**.399Cada nuevo hilo en la nube comienza en el [entorno en la nube](/docs/es/cloud-environments) del proyecto. El entorno establece a qué dominios pueden acceder los hilos, qué variables de entorno tienen, qué secretos de red se agregan a sus solicitudes y qué instala el script de configuración antes de que Claude comience. Los hilos en la nube usan un entorno predeterminado alojado por Anthropic hasta que eliges uno en **Configuración del proyecto > Entorno**.

400 400 

401Si los hilos en la nube necesitan acceder a una API interna o a un registro de paquetes privado, o necesitan un token que tu máquina normalmente tiene, cambia el entorno en lugar del proyecto: consulta [Acceso de red](/docs/es/cloud-environments#network-access), [Agregar secretos de red](/docs/es/cloud-environments#add-api-credentials) y [Scripts de configuración](/docs/es/cloud-environments#setup-scripts).401Si los hilos en la nube necesitan acceder a una API interna o a un registro de paquetes privado, o necesitan un token que tu máquina normalmente tiene, cambia el entorno en lugar del proyecto: consulta [Acceso de red](/docs/es/cloud-environments#network-access), [Agregar secretos de red](/docs/es/cloud-environments#add-network-secrets) y [Scripts de configuración](/docs/es/cloud-environments#setup-scripts).

402 402 

403<h3 id="get-skills-plugins-connectors-and-tools-into-threads">403<h3 id="get-skills-plugins-connectors-and-tools-into-threads">

404 Obtener skills, plugins, conectores y herramientas en los hilos404 Obtener skills, plugins, conectores y herramientas en los hilos

405</h3>405</h3>

406 406 

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

408 408 

409* Skills, subagentes y comandos: confírmelos en un repositorio que agregó al proyecto, por ejemplo un skill en `.claude/skills/<skill-name>/SKILL.md`. Cada hilo en la nube clona cada repositorio en el proyecto y carga `.claude/skills/`, `.claude/agents/` y `.claude/commands/` de cada uno de ellos, por lo que un skill confirmado en un repositorio está disponible en cada hilo en la nube. Los hilos en la nube también cargan los skills que habilita para su cuenta de claude.ai.409* Skills, subagentes y comandos: haz commit de ellos en un repositorio que agregaste al proyecto, por ejemplo un skill en `.claude/skills/<skill-name>/SKILL.md`. Cada hilo en la nube clona cada repositorio del proyecto y carga `.claude/skills/`, `.claude/agents/` y `.claude/commands/` de cada uno de ellos, por lo que un skill con commit en un repositorio está disponible en cada hilo en la nube. Los hilos en la nube también cargan los skills que habilitas para tu cuenta de claude.ai.

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

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

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

413 413 

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

415 415 

416<h2 id="project-settings-reference">416<h2 id="project-settings-reference">

417 Referencia de configuración del proyecto417 Referencia de configuración del proyecto

Details

10 Los entornos en la nube se aplican a [sesiones en la nube](/docs/es/claude-code-on-the-web), que están disponibles en planes Pro, Max y Team, y para usuarios de Enterprise con [asientos premium o asientos de Chat + Claude Code](https://support.claude.com/en/articles/11845131-use-claude-code-with-your-team-or-enterprise-plan).10 Los entornos en la nube se aplican a [sesiones en la nube](/docs/es/claude-code-on-the-web), que están disponibles en planes Pro, Max y Team, y para usuarios de Enterprise con [asientos premium o asientos de Chat + Claude Code](https://support.claude.com/en/articles/11845131-use-claude-code-with-your-team-or-enterprise-plan).

11</Note>11</Note>

12 12 

13Cada [sesión en la nube](/docs/es/claude-code-on-the-web) se ejecuta en un entorno en la nube. Puedes configurar un entorno para permitir o denegar [acceso a la red](#access-levels), [establecer variables de entorno](#set-environment-variables) para la sesión, en planes Pro y Max almacenar [secretos de red](#add-api-credentials) que las sesiones utilizan sin verlos, y ejecutar un [script de configuración](#setup-scripts) antes de que Claude comience a trabajar.13Cada [sesión en la nube](/docs/es/claude-code-on-the-web) se ejecuta en un entorno en la nube. Puedes configurar un entorno para permitir o denegar [acceso a la red](#access-levels), [establecer variables de entorno](#set-environment-variables) para la sesión, en planes Pro y Max almacenar [secretos de red](#add-network-secrets) que las sesiones utilizan sin verlos, y ejecutar un [script de configuración](#setup-scripts) antes de que Claude comience a trabajar.

14 14 

15Los mismos entornos se aplican dondequiera que inicie una sesión en la nube: la [aplicación de escritorio](/docs/es/desktop), la [aplicación móvil de Claude](/docs/es/mobile), su navegador en [claude.ai/code](https://claude.ai/code), la terminal con [`claude --cloud`](/docs/es/claude-code-on-the-web#from-terminal-to-cloud), [routines](/docs/es/routines) y [Claude Tag](https://claude.com/docs/claude-tag/overview). Cada una de estas superficies también puede enrutar a un [entorno autohospedado](/docs/es/self-hosted-environments). [Disponibilidad y limitaciones](/docs/es/self-hosted-environments#availability-and-limitations) cubre lo que Claude aún no puede usar cuando una sesión de Claude Tag se ejecuta en uno.15Los mismos entornos se aplican dondequiera que inicie una sesión en la nube: la [aplicación de escritorio](/docs/es/desktop), la [aplicación móvil de Claude](/docs/es/mobile), su navegador en [claude.ai/code](https://claude.ai/code), la terminal con [`claude --cloud`](/docs/es/claude-code-on-the-web#from-terminal-to-cloud), [routines](/docs/es/routines) y [Claude Tag](https://claude.com/docs/claude-tag/overview). Cada una de estas superficies también puede enrutar a un [entorno autohospedado](/docs/es/self-hosted-environments). [Disponibilidad y limitaciones](/docs/es/self-hosted-environments#availability-and-limitations) cubre lo que Claude aún no puede usar cuando una sesión de Claude Tag se ejecuta en uno.

16 16 


58 <Step title="Agregar o editar un entorno">58 <Step title="Agregar o editar un entorno">

59 Seleccione **Cloud** para enumerar sus entornos. Luego seleccione **Agregar entorno en la nube**, o pase el ratón sobre un entorno existente y seleccione el icono de configuración que aparece a la derecha.59 Seleccione **Cloud** para enumerar sus entornos. Luego seleccione **Agregar entorno en la nube**, o pase el ratón sobre un entorno existente y seleccione el icono de configuración que aparece a la derecha.

60 60 

61 El diálogo incluye el nombre, nivel de acceso a la red, variables de entorno y script de configuración. Cuando editas un entorno en la nube existente en un plan Pro o Max, el diálogo también incluye [secretos de red](#add-api-credentials).61 El diálogo incluye el nombre, nivel de acceso a la red, variables de entorno y script de configuración. Cuando editas un entorno en la nube existente en un plan Pro o Max, el diálogo también incluye [secretos de red](#add-network-secrets).

62 62 

63 <Frame>63 <Frame>

64 <img src="https://mintcdn.com/claude-code/ZFId6l95856c5LSw/images/cloud-environment-dialog.png?fit=max&auto=format&n=ZFId6l95856c5LSw&q=85&s=30d4478b31d1f879f7ee287ddab32505" alt="El diálogo Nuevo entorno en la nube. Un campo Nombre con el texto de marcador de posición Default, un selector de Acceso a la red establecido en Trusted con enlaces a la política de red y niveles de acceso, un cuadro Variables de entorno que muestra texto de marcador de posición en formato .env con una nota de que los valores son visibles para cualquiera que use el entorno, un cuadro Script de configuración descrito como un script Bash que se ejecuta cuando comienza una nueva sesión antes de que se lance Claude Code, y botones Cancelar y Crear entorno." width="874" height="1372" data-path="images/cloud-environment-dialog.png" />64 <img src="https://mintcdn.com/claude-code/ZFId6l95856c5LSw/images/cloud-environment-dialog.png?fit=max&auto=format&n=ZFId6l95856c5LSw&q=85&s=30d4478b31d1f879f7ee287ddab32505" alt="El diálogo Nuevo entorno en la nube. Un campo Nombre con el texto de marcador de posición Default, un selector de Acceso a la red establecido en Trusted con enlaces a la política de red y niveles de acceso, un cuadro Variables de entorno que muestra texto de marcador de posición en formato .env con una nota de que los valores son visibles para cualquiera que use el entorno, un cuadro Script de configuración descrito como un script Bash que se ejecuta cuando comienza una nueva sesión antes de que se lance Claude Code, y botones Cancelar y Crear entorno." width="874" height="1372" data-path="images/cloud-environment-dialog.png" />


91 91 

92Una sesión en la nube también establece algunas variables por sí misma cuando inicia. Para [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/docs/es/claude-code-on-the-web#manage-context), el valor que la sesión establece anula uno que agregue aquí, por lo que agregar esa clave aquí no tiene efecto.92Una sesión en la nube también establece algunas variables por sí misma cuando inicia. Para [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/docs/es/claude-code-on-the-web#manage-context), el valor que la sesión establece anula uno que agregue aquí, por lo que agregar esa clave aquí no tiene efecto.

93 93 

94Cualquiera que use el entorno puede leer los valores. En planes Pro y Max, usa en su lugar un [secreto de red](#add-api-credentials) para una clave que el proxy del agente pueda adjuntar a una solicitud. Las [solicitudes que nunca obtienen un secreto](#requests-that-never-get-the-credential) se enumeran allí.94Cualquiera que use el entorno puede leer los valores. En planes Pro y Max, usa en su lugar un [secreto de red](#add-network-secrets) para una clave que el proxy del agente pueda adjuntar a una solicitud. Las [solicitudes que nunca obtienen un secreto](#requests-that-never-get-the-credential) se enumeran allí.

95 95 

96<h3 id="add-api-credentials">96<span id="add-api-credentials" />

97 

98<h3 id="add-network-secrets">

97 Agregar secretos de red99 Agregar secretos de red

98</h3>100</h3>

99 101 


197 199 

198Los Propietarios eligen el [entorno predeterminado](#the-default-environment) de la organización por separado, en [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).200Los Propietarios eligen el [entorno predeterminado](#the-default-environment) de la organización por separado, en [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).

199 201 

200Las sesiones de cada miembro en un entorno compartido leen sus variables, por lo que no incluyas secretos en ellas. Los [secretos de red](#add-api-credentials), que dan a las sesiones una clave que no pueden leer, aún no están disponibles en planes Team o Enterprise.202Las sesiones de cada miembro en un entorno compartido leen sus variables, por lo que no incluyas secretos en ellas. Los [secretos de red](#add-network-secrets), que dan a las sesiones una clave que no pueden leer, aún no están disponibles en planes Team o Enterprise.

201 203 

202<h3 id="set-the-environment-a-claude-tag-channel-uses">204<h3 id="set-the-environment-a-claude-tag-channel-uses">

203 Establecer el entorno que usa un canal de Claude Tag205 Establecer el entorno que usa un canal de Claude Tag


239 241 

240* GitHub, a través de su [proxy separado](#github-proxy)242* GitHub, a través de su [proxy separado](#github-proxy)

241* [Conectores MCP](#network-access) que habilita, cuyo tráfico viaja a través de los servidores de Anthropic243* [Conectores MCP](#network-access) que habilita, cuyo tráfico viaja a través de los servidores de Anthropic

242* Los hosts que indicaste en los [secretos de red](#add-api-credentials) del entorno, excepto los [hosts que nunca reciben el secreto](#requests-that-never-get-the-credential)244* Los hosts que indicaste en los [secretos de red](#add-network-secrets) del entorno, excepto los [hosts que nunca reciben el secreto](#requests-that-never-get-the-credential)

243* La API de Anthropic, para las propias solicitudes de Claude Code, incluso en **None**, como se señala bajo [Seguridad y aislamiento](/docs/es/claude-code-on-the-web#security-and-isolation)245* La API de Anthropic, para las propias solicitudes de Claude Code, incluso en **None**, como se señala bajo [Seguridad y aislamiento](/docs/es/claude-code-on-the-web#security-and-isolation)

244 246 

245<h3 id="allow-specific-domains">247<h3 id="allow-specific-domains">


254registry.example.com256registry.example.com

255```257```

256 258 

257Las sesiones en este entorno ahora pueden alcanzar `api.example.com`, cualquier subdominio de `internal.example.com` y `registry.example.com`, y ningún otro dominio a través de la red de la sesión. El [tráfico de GitHub](#github-proxy), el [tráfico de conectores MCP](#network-access) y las solicitudes a los hosts de los [secretos de red](#add-api-credentials) del entorno, excepto los [hosts que nunca reciben el secreto](#requests-that-never-get-the-credential), no pasan por esta lista de permitidos. Un `*.` inicial coincide con cada subdominio. Para mantener también los [dominios Trusted](#default-allowed-domains), marca **Also include default list of common package managers**; déjalo sin marcar para permitir solo lo que enumeras.259Las sesiones en este entorno ahora pueden alcanzar `api.example.com`, cualquier subdominio de `internal.example.com` y `registry.example.com`, y ningún otro dominio a través de la red de la sesión. El [tráfico de GitHub](#github-proxy), el [tráfico de conectores MCP](#network-access) y las solicitudes a los hosts de los [secretos de red](#add-network-secrets) del entorno, excepto los [hosts que nunca reciben el secreto](#requests-that-never-get-the-credential), no pasan por esta lista de permitidos. Un `*.` inicial coincide con cada subdominio. Para mantener también los [dominios Trusted](#default-allowed-domains), marca **Also include default list of common package managers**; déjalo sin marcar para permitir solo lo que enumeras.

258 260 

259Si su organización utiliza [artefactos](/docs/es/artifacts#availability), no necesita `*.frame.claudeusercontent.com` en la lista para que las sesiones los lean. Cuando la lista deja ese host fuera, Claude Code lee el contenido del artefacto a través de la conexión de la sesión a Anthropic en su lugar. Mantenga el host en una lista permitida en dos situaciones:261Si su organización utiliza [artefactos](/docs/es/artifacts#availability), no necesita `*.frame.claudeusercontent.com` en la lista para que las sesiones los lean. Cuando la lista deja ese host fuera, Claude Code lee el contenido del artefacto a través de la conexión de la sesión a Anthropic en su lugar. Mantenga el host en una lista permitida en dos situaciones:

260 262 


316| Plugins habilitados solo en tu configuración de usuario | No | El `enabledPlugins` con alcance de usuario vive en `~/.claude/settings.json` en tu máquina |318| Plugins habilitados solo en tu configuración de usuario | No | El `enabledPlugins` con alcance de usuario vive en `~/.claude/settings.json` en tu máquina |

317| Servidores MCP que agregaste con `claude mcp add` en el alcance local predeterminado o el alcance de usuario | No | Esos escriben en `~/.claude.json` en tu máquina, no en el repositorio. Agrega el servidor con `claude mcp add --scope project`, que escribe el [`.mcp.json`](/docs/es/mcp#project-scope) del repositorio, y haz commit de ese archivo. Una sesión con un repositorio lo carga |319| Servidores MCP que agregaste con `claude mcp add` en el alcance local predeterminado o el alcance de usuario | No | Esos escriben en `~/.claude.json` en tu máquina, no en el repositorio. Agrega el servidor con `claude mcp add --scope project`, que escribe el [`.mcp.json`](/docs/es/mcp#project-scope) del repositorio, y haz commit de ese archivo. Una sesión con un repositorio lo carga |

318| Variables de transporte en el bloque `env` de `.claude/settings.json` de tu repositorio, como `NODE_EXTRA_CA_CERTS` y las [variables de certificado de cliente mTLS](/docs/es/network-config#mtls-authentication) | No | El entorno de alojamiento administra la conexión de API de la sesión, por lo que Claude Code ignora estas claves y anota cada clave ignorada en el registro de depuración de la sesión |320| Variables de transporte en el bloque `env` de `.claude/settings.json` de tu repositorio, como `NODE_EXTRA_CA_CERTS` y las [variables de certificado de cliente mTLS](/docs/es/network-config#mtls-authentication) | No | El entorno de alojamiento administra la conexión de API de la sesión, por lo que Claude Code ignora estas claves y anota cada clave ignorada en el registro de depuración de la sesión |

319| Claves de API y tokens para servicios que Claude llama | En planes Pro y Max, como [secretos de red](#add-api-credentials) | Agregas la clave una vez en el entorno y el proxy del agente la adjunta a las solicitudes de los hosts que enumeras. Una clave que el proxy del agente [no puede adjuntar](#requests-that-never-get-the-credential), o cualquier clave en un plan Team o Enterprise, permanece en una variable de entorno |321| Claves de API y tokens para servicios que Claude llama | En planes Pro y Max, como [secretos de red](#add-network-secrets) | Agregas la clave una vez en el entorno y el proxy del agente la adjunta a las solicitudes de los hosts que enumeras. Una clave que el proxy del agente [no puede adjuntar](#requests-that-never-get-the-credential), o cualquier clave en un plan Team o Enterprise, permanece en una variable de entorno |

320| Autenticación interactiva como AWS SSO | No | No compatible. SSO requiere un inicio de sesión basado en navegador que no puede ejecutarse en una sesión en la nube |322| Autenticación interactiva como AWS SSO | No | No compatible. SSO requiere un inicio de sesión basado en navegador que no puede ejecutarse en una sesión en la nube |

321 323 

322Para que tu propia configuración esté disponible en sesiones en la nube, haz commit de ella en el repositorio.324Para que tu propia configuración esté disponible en sesiones en la nube, haz commit de ella en el repositorio.

323 325 

324Cualquiera que use el entorno puede leer sus variables de entorno y su script de configuración. La nota del diálogo en **Variables de entorno** lo indica y advierte que no pongas secretos allí. En planes Pro y Max, almacena una clave que el proxy del agente pueda adjuntar como un [secreto de red](#add-api-credentials) en su lugar.326Cualquiera que use el entorno puede leer sus variables de entorno y su script de configuración. La nota del diálogo en **Variables de entorno** lo indica y advierte que no pongas secretos allí. En planes Pro y Max, almacena una clave que el proxy del agente pueda adjuntar como un [secreto de red](#add-network-secrets) en su lugar.

325 327 

326<h4 id="add-personal-preferences-without-committing-to-the-repo">328<h4 id="add-personal-preferences-without-committing-to-the-repo">

327 Agregar preferencias personales sin hacer commit en el repositorio329 Agregar preferencias personales sin hacer commit en el repositorio

commands.md +1 −1

Details

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

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

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

90| `/doctor [prompt-audit [path]]` | **[Skill](/docs/es/skills#bundled-skills).** Ejecuta una revisión de la configuración que diagnostica problemas y puede corregirlos. Comprueba el estado de la instalación, incluidas instalaciones duplicadas o sobrantes, problemas de `PATH` y archivos de configuración que no se pueden analizar. Encuentra skills, servidores MCP y plugins sin usar en comparación con su costo de contexto, marca [hooks](/docs/es/hooks) lentos y busca una versión más reciente en tu [canal de versiones](/docs/es/setup#configure-release-channel). Elimina duplicados entre los archivos `CLAUDE.md` locales y los que están incluidos en el repositorio, recorta los archivos [`CLAUDE.md`](/docs/es/memory#my-claude-md-is-too-large) incluidos en el repositorio eliminando contenido que Claude podría derivar de la base de código, y migra la orientación que se carga siempre y que queda a [skills](/docs/es/skills) y archivos `CLAUDE.md` anidados que se cargan bajo demanda. También ofrece convertir el [modo automático](/docs/es/permissions#permission-modes) en tu predeterminado y [aprobar previamente](/docs/es/permissions) comandos de solo lectura que se deniegan con frecuencia. Informa primero los hallazgos y pide confirmación antes de cambiar nada. Desde la terminal, `claude doctor` imprime diagnósticos de instalación de solo lectura sin iniciar una sesión. Alias: `/checkup`. Ejecuta `/doctor prompt-audit` para que Claude [audite tus archivos `CLAUDE.md`, tus skills y otra configuración](/docs/es/memory#audit-your-instruction-files) en busca de instrucciones obsoletas o contradictorias en lugar de ejecutar la revisión. El subcomando `prompt-audit` requiere Claude Code v2.1.283 o posterior. La comprobación de recorte de `CLAUDE.md` requiere Claude Code v2.1.206 o posterior. Antes de v2.1.205, `/doctor` abría una pantalla de diagnóstico de solo lectura y al presionar `f` se enviaba el informe a Claude |90| `/doctor [prompt-audit [path]]` | **[Skill](/docs/es/skills#bundled-skills).** Ejecuta una revisión de la configuración que diagnostica problemas de instalación, configuración, extensiones y `CLAUDE.md`, y propone correcciones que Claude aplica después de que confirmas. Para saber qué cubre la revisión, o para auditar tus instrucciones con `prompt-audit` en su lugar, consulta [Revisar tu configuración con `/doctor`](/docs/es/skills#check-your-setup-with-/doctor). El subcomando `prompt-audit` requiere Claude Code v2.1.283 o posterior. Alias: `/checkup` |

91| `/effort [level\|auto\|status\|ultracode [on\|off]]` | Establece el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level): de `low` a `xhigh`, `max` o `auto`; `status` lo imprime. `ultracode` o `ultracode on` activa [ultracode](/docs/es/workflows#let-claude-decide-with-ultracode) para la sesión en el nivel actual, y `ultracode off` lo desactiva; la clave [`ultracode`](/docs/es/settings-reference#ultracode) persiste. `max` es solo para la sesión. Los argumentos `on` y `off` y mantener el nivel actual requieren Claude Code v2.1.284 o posterior. Antes de v2.1.284, `/effort ultracode` establecía la sesión en `xhigh`, y `/effort ultracode off` fallaba con `Invalid argument`. Ejecútalo mientras Claude está respondiendo y, una vez que confirmes la [advertencia de caché](/docs/es/prompt-caching#changing-effort-level), si Claude Code muestra una, Claude Code aplica el nuevo nivel a la siguiente solicitud de ese turno. Antes de v2.1.242, Claude Code decidía, a partir de un feature flag que obtenía de Anthropic, si ejecutar el comando a mitad del turno o ponerlo en cola hasta que terminara el turno, y siempre lo ponía en cola en una sesión que no [obtiene feature flags](/docs/es/env-vars#features-that-need-feature-flag-fetching), como con un [proveedor externo](/docs/es/third-party-integrations). Funciona en `-p` |91| `/effort [level\|auto\|status\|ultracode [on\|off]]` | Establece el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level): de `low` a `xhigh`, `max` o `auto`; `status` lo imprime. `ultracode` o `ultracode on` activa [ultracode](/docs/es/workflows#let-claude-decide-with-ultracode) para la sesión en el nivel actual, y `ultracode off` lo desactiva; la clave [`ultracode`](/docs/es/settings-reference#ultracode) persiste. `max` es solo para la sesión. Los argumentos `on` y `off` y mantener el nivel actual requieren Claude Code v2.1.284 o posterior. Antes de v2.1.284, `/effort ultracode` establecía la sesión en `xhigh`, y `/effort ultracode off` fallaba con `Invalid argument`. Ejecútalo mientras Claude está respondiendo y, una vez que confirmes la [advertencia de caché](/docs/es/prompt-caching#changing-effort-level), si Claude Code muestra una, Claude Code aplica el nuevo nivel a la siguiente solicitud de ese turno. Antes de v2.1.242, Claude Code decidía, a partir de un feature flag que obtenía de Anthropic, si ejecutar el comando a mitad del turno o ponerlo en cola hasta que terminara el turno, y siempre lo ponía en cola en una sesión que no [obtiene feature flags](/docs/es/env-vars#features-that-need-feature-flag-fetching), como con un [proveedor externo](/docs/es/third-party-integrations). Funciona en `-p` |

92| `/exit` | Sale de la CLI. En una [sesión en segundo plano](/docs/es/agent-view#attach-to-a-session) adjunta, esto la separa y la sesión sigue ejecutándose. Alias: `/quit` |92| `/exit` | Sale de la CLI. En una [sesión en segundo plano](/docs/es/agent-view#attach-to-a-session) adjunta, esto la separa y la sesión sigue ejecutándose. Alias: `/quit` |

93| `/export [filename]` | Exporta la conversación actual como texto sin formato. Con un nombre de archivo, escribe directamente en ese archivo. Sin él, abre un diálogo para copiar al portapapeles o guardar en un archivo |93| `/export [filename]` | Exporta la conversación actual como texto sin formato. Con un nombre de archivo, escribe directamente en ese archivo. Sin él, abre un diálogo para copiar al portapapeles o guardar en un archivo |

Details

391 Explica la lógica en @src/utils/auth.js391 Explica la lógica en @src/utils/auth.js

392 ```392 ```

393 393 

394 Esto incluye el contenido completo del archivo en la conversación.394 Esto incluye el contenido del archivo en la conversación cuando cabe en el límite de tokens de la [herramienta Read](/docs/es/tools-reference#read-tool-behavior), que es de 25,000 tokens de forma predeterminada. Un archivo de texto de más de 256KB no se incluye.

395 </Step>395 </Step>

396 396 

397 <Step title="Haga referencia a un directorio">397 <Step title="Haz referencia a un directorio">

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

399 ¿Cuál es la estructura de @src/components?399 ¿Cuál es la estructura de @src/components?

400 ```400 ```


446 Pregunte a Claude sobre sus capacidades446 Pregunte a Claude sobre sus capacidades

447</h3>447</h3>

448 448 

449Claude tiene acceso integrado a su documentación y puede responder preguntas sobre sus propias características y limitaciones.449Claude puede responder preguntas sobre sus propias características y limitaciones. Busca las respuestas en la documentación actual de Claude Code, por lo que no se limitan a la versión que estás ejecutando.

450 450 

451<h4 id="example-questions">451<h4 id="example-questions">

452 Preguntas de ejemplo452 Preguntas de ejemplo


483<Tip>483<Tip>

484 Consejos:484 Consejos:

485 485 

486 * Claude siempre tiene acceso a la documentación más reciente de Claude Code, independientemente de la versión que esté utilizando

487 * Haga preguntas específicas para obtener respuestas detalladas486 * Haga preguntas específicas para obtener respuestas detalladas

488 * Claude puede explicar características complejas como integración MCP, configuraciones empresariales y flujos de trabajo avanzados487 * Claude puede explicar características complejas como integración MCP, configuraciones empresariales y flujos de trabajo avanzados

489</Tip>488</Tip>

Details

1634 1634 

1635Si necesitas una ventana más grande en lugar de una conversación más pequeña, los modelos Fable, 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. Consulta [Contexto extendido](/docs/es/model-config#extended-context) para conocer la disponibilidad por plan y cómo seleccionar una variante de modelo `[1m]`. La compactación funciona de la misma manera en el límite más grande.1635Si necesitas una ventana más grande en lugar de una conversación más pequeña, los modelos Fable, 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. Consulta [Contexto extendido](/docs/es/model-config#extended-context) para conocer la disponibilidad por plan y cómo seleccionar una variante de modelo `[1m]`. La compactación funciona de la misma manera en el límite más grande.

1636 1636 

1637Sonnet 5.5 y Sonnet 5 se ejecutan con la ventana de contexto de 1M y no tienen variante `[1m]` para seleccionar. Vea [Sonnet 5.5 and Sonnet 5 context window](/docs/es/model-config#sonnet-5-5-and-sonnet-5-context-window) para sus umbrales de compactación automática, y [the context window behind a gateway](/docs/es/model-config#context-window-behind-a-gateway) para cómo Claude Code dimensiona la ventana cuando establece `ANTHROPIC_BASE_URL` en una [LLM gateway](/docs/es/llm-gateway).

1638 

1639El punto donde se ejecuta la compactación automática depende de su modelo y configuración. Vea [Default auto-compact thresholds](/docs/es/model-config#default-auto-compact-thresholds) para los límites por modelo, y [Correct the window for a gateway or custom model ID](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id) si Claude Code asume la ventana incorrecta para su ID de modelo, como un alias de [LLM gateway](/docs/es/llm-gateway).1637El punto donde se ejecuta la compactación automática depende de su modelo y configuración. Vea [Default auto-compact thresholds](/docs/es/model-config#default-auto-compact-thresholds) para los límites por modelo, y [Correct the window for a gateway or custom model ID](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id) si Claude Code asume la ventana incorrecta para su ID de modelo, como un alias de [LLM gateway](/docs/es/llm-gateway).

1640 1638 

1641<h2 id="check-your-own-session">1639<h2 id="check-your-own-session">

Details

128* **Alcance `exec` dentro de aproximadamente tres segundos cada vez que se ejecute el lanzador.** Un envío de fondo frío ejecuta el lanzador dos veces en serie antes del primer byte de salida, así que haga trabajo lento como un intercambio de inicio de sesión único de manera perezosa o desde un caché.128* **Alcance `exec` dentro de aproximadamente tres segundos cada vez que se ejecute el lanzador.** Un envío de fondo frío ejecuta el lanzador dos veces en serie antes del primer byte de salida, así que haga trabajo lento como un intercambio de inicio de sesión único de manera perezosa o desde un caché.

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

130* **No escriba en la terminal antes de que Claude Code se inicie.** Cualquier cosa impresa antes del `exec` se reporta como la causa del bloqueo si la sesión muere antes de inicializarse.130* **No escriba en la terminal antes de que Claude Code se inicie.** Cualquier cosa impresa antes del `exec` se reporta como la causa del bloqueo si la sesión muere antes de inicializarse.

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

131 132 

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

133 Formato del valor del lanzador134 Formato del valor del lanzador

Details

85 Probar contra una configuración limpia85 Probar contra una configuración limpia

86</h2>86</h2>

87 87 

88Comience con [`claude --safe-mode`](/docs/es/cli-reference#cli-flags), que inicia una sesión con todas las personalizaciones deshabilitadas, incluidos `CLAUDE.md`, skills, plugins, hooks, servidores MCP y comandos y agentes personalizados. La autenticación, la selección de modelo, las herramientas integradas y los permisos funcionan normalmente. Si el problema desaparece en modo seguro, una de esas superficies es la causa; use las comprobaciones dirigidas anteriores para encontrar cuál. El modo seguro aún aplica hooks administrados y la política de configuración de su organización. Los plugins administrados, skills, `CLAUDE.md` y servidores MCP están desactivados.88Comienza con [`claude --safe-mode`](/docs/es/cli-reference#cli-flags), que inicia una sesión con tus personalizaciones deshabilitadas, incluidos:

89 

90* `CLAUDE.md`

91* Skills, plugins y hooks

92* Servidores MCP

93* Comandos y agentes personalizados

94* Estilos de salida personalizados

95* Atajos de teclado personalizados

96 

97La autenticación, la selección de modelo, las herramientas integradas y los permisos funcionan normalmente. Si el problema desaparece en modo seguro, has reducido la causa a uno de los elementos que desactivaste. Para encontrarlo, usa la comprobación correspondiente a ese elemento, como [Ver qué se cargó en el contexto](#see-what-loaded-into-context), [Comprobar servidores MCP](#check-mcp-servers) o [Comprobar hooks](#check-hooks).

98 

99El modo seguro aún aplica los hooks administrados y la política de configuración de tu organización. Los plugins administrados, skills, `CLAUDE.md` y servidores MCP están desactivados.

89 100 

90Si el problema persiste en modo seguro, o si su configuración en sí es sospechosa, compare contra una sesión que no carga nada de su configuración habitual. Apunte [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars) a un directorio vacío para omitir todo bajo `~/.claude`, e inicie desde un directorio que no tenga carpeta `.claude`, `.mcp.json` o `CLAUDE.md` para que la configuración del proyecto también se omita.101Si el problema persiste en modo seguro, o si su configuración en sí es sospechosa, compare contra una sesión que no carga nada de su configuración habitual. Apunte [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars) a un directorio vacío para omitir todo bajo `~/.claude`, e inicie desde un directorio que no tenga carpeta `.claude`, `.mcp.json` o `CLAUDE.md` para que la configuración del proyecto también se omita.

91 102 

desktop.md +154 −106

Details

57 Trabajar con código57 Trabajar con código

58</h2>58</h2>

59 59 

60Proporcione a Claude el contexto correcto, controle cuánto hace por su cuenta y revise lo que cambió.60Proporciona a Claude el contexto correcto, controla cuánto hace por su cuenta y revisa lo que cambió.

61 61 

62<h3 id="use-the-prompt-box">62<h3 id="use-the-prompt-box">

63 Usar el cuadro de solicitud63 Usar el cuadro de prompt

64</h3>64</h3>

65 65 

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

67 67 

68El botón **+** junto al cuadro de solicitud le da acceso a archivos adjuntos, [skills](#use-skills), [conectores](#connect-external-tools) y [plugins](#install-plugins).68El botón **+** junto al cuadro de prompt te da acceso a archivos adjuntos, [skills](#use-skills), [conectores](#connect-external-tools) y [plugins](#install-plugins).

69 

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

71 Aceptar un prompt sugerido

72</h3>

73 

74Después de que Claude responde, la pestaña Code puede mostrar un siguiente prompt sugerido como texto gris en el cuadro de prompt vacío. Claude Code [genera cada sugerencia](/docs/es/interactive-mode#prompt-suggestions) a partir de tu conversación con una breve solicitud en segundo plano que cuenta para los límites de uso de tu plan o tus costos de API.

75 

76* **Usar la sugerencia**: presiona **Tab** o **Flecha derecha** para colocarla en el cuadro de prompt, edítala si quieres y luego presiona **Enter** para enviarla. Presionar **Enter** antes de aceptar la sugerencia no la envía.

77* **Escribir tu propio prompt**: empieza a escribir. La sugerencia solo se muestra mientras el cuadro de prompt está vacío y no tiene archivos adjuntos.

78 

79Ve a **Configuración > Claude Code** y desactiva **Prompt suggestions** en **Sessions** para dejar de ver sugerencias en cada sesión a partir de la próxima vez que se inicie o se reanude.

69 80 

70<h3 id="add-files-and-context-to-prompts">81<h3 id="add-files-and-context-to-prompts">

71 Agregar archivos y contexto a las solicitudes82 Agregar archivos y contexto a los prompts

72</h3>83</h3>

73 84 

74El cuadro de solicitud admite dos formas de traer contexto externo:85El cuadro de prompt admite dos formas de traer contexto externo:

75 86 

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

77* **Adjuntar archivos**: adjunte imágenes, PDF y otros archivos a su solicitud usando el botón de adjuntos, o arrastre y suelte archivos directamente en la solicitud. Esto es útil para compartir capturas de pantalla de errores, maquetas de diseño o documentos de referencia.88* **Adjuntar archivos**: adjunta imágenes, PDF y otros archivos a tu prompt usando el botón de adjuntos, o arrastra y suelta archivos directamente en el prompt. Esto es útil para compartir capturas de pantalla de errores, maquetas de diseño o documentos de referencia.

78 89 

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

80 Elegir un modo de permisos91 Elegir un modo de permisos

81</h3>92</h3>

82 93 

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

84 95 

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

86 97 

87| Modo | Clave de configuración | Comportamiento |98| Modo | Clave de configuración | Comportamiento |

88| - | - | - |99| - | - | - |

89| **Manual** | `default` | Claude pregunta antes de editar archivos o ejecutar comandos. Usted ve una diferencia y puede aceptar o rechazar cada cambio. |100| **Manual** | `default` | Claude pregunta antes de editar archivos o ejecutar comandos. Ves un diff y puedes aceptar o rechazar cada cambio. |

90| **Accept edits** | `acceptEdits` | Claude acepta automáticamente ediciones de archivos y comandos comunes del sistema de archivos como `mkdir`, `touch` y `mv`, pero aún pregunta antes de ejecutar otros comandos de terminal. Use esto cuando confíe en cambios de archivos y desee una iteración más rápida. |101| **Accept edits** | `acceptEdits` | Claude acepta automáticamente ediciones de archivos y comandos comunes del sistema de archivos como `mkdir`, `touch` y `mv`, pero aún pregunta antes de ejecutar otros comandos de terminal. Usa esto cuando confíes en los cambios de archivos y quieras una iteración más rápida. |

91| **Plan** | `plan` | Claude lee archivos y ejecuta comandos para explorar, luego propone un plan sin editar su código fuente. Bueno para tareas complejas donde desea revisar el enfoque primero. |102| **Plan** | `plan` | Claude lee archivos y ejecuta comandos para explorar, luego propone un plan sin editar tu código fuente. Bueno para tareas complejas donde quieres revisar el enfoque primero. |

92| **Auto** | `auto` | Claude se ejecuta sin avisos de rutina; antes de que se ejecuten acciones como comandos de shell y solicitudes de red, un clasificador en segundo plano verifica que se alineen con su solicitud. Aparece cuando [auto mode está disponible](#auto-mode-availability); no hay un control deslizante de Configuración separado para esto. |103| **Auto** | `auto` | Claude se ejecuta sin solicitudes de confirmación habituales; antes de que se ejecuten acciones como comandos de shell y solicitudes de red, un clasificador en segundo plano verifica que se alineen con tu solicitud. Aparece cuando [el modo automático está disponible](#auto-mode-availability); no hay un control de Configuración separado para esto. |

93| **Bypass permissions** | `bypassPermissions` | Claude se ejecuta sin avisos de permisos, excepto para las [acciones que ningún modo aprueba automáticamente](/docs/es/permission-modes#actions-no-mode-auto-approves), clasificadores de seguridad cuando Claude [actúa en sitios externos](#browse-external-sites), o acciones de escritorio donde Claude siempre pregunta primero, como [archivar una sesión](#work-across-sessions). Equivalente a `--dangerously-skip-permissions` en la CLI. En planes Pro y Max, habilítelo en su Configuración → Claude Code bajo "Allow bypass permissions mode"; en planes Team y Enterprise no hay un control deslizante de Configuración, y la política de la organización lo controla en su lugar. Use solo en contenedores o máquinas virtuales sandboxed. |104| **Bypass permissions** | `bypassPermissions` | Claude se ejecuta sin solicitudes de permiso, excepto para las [acciones que ningún modo aprueba automáticamente](/docs/es/permission-modes#actions-no-mode-auto-approves), los clasificadores de seguridad cuando Claude [actúa en sitios externos](#browse-external-sites), o acciones de escritorio donde Claude siempre pregunta primero, como [archivar una sesión](#work-across-sessions). Equivalente a `--dangerously-skip-permissions` en la CLI. En los planes Pro y Max, habilítalo en tu Configuración → Claude Code en "Allow bypass permissions mode"; en los planes Team y Enterprise no hay un control de Configuración, y la política de la organización lo controla en su lugar. Úsalo solo en contenedores o máquinas virtuales en sandbox. |

94 105 

95Las versiones anteriores de la pestaña Code etiquetaban estos modos como Ask permissions, Auto accept edits y Plan mode.106Las versiones anteriores de la pestaña Code etiquetaban estos modos como Ask permissions, Auto accept edits y Plan mode.

96 107 

97El modo de permisos `dontAsk` está disponible solo en la [CLI](/docs/es/permission-modes#allow-only-pre-approved-tools-with-dontask-mode).108El modo de permisos `dontAsk` está disponible solo en la [CLI](/docs/es/permission-modes#allow-only-pre-approved-tools-with-dontask-mode).

98 109 

99<Tip title="Mejor práctica">110<Tip title="Buena práctica">

100 Comience tareas complejas en Plan para que Claude mapee un enfoque antes de realizar cambios. Una vez que apruebe el plan, cambie a Accept edits o Manual para ejecutarlo. Consulte [explorar primero, luego planificar, luego codificar](/docs/es/best-practices#explore-first-then-plan-then-code) para obtener más información sobre este flujo de trabajo.111 Comienza las tareas complejas en Plan para que Claude trace un enfoque antes de realizar cambios. Una vez que apruebes el plan, cambia a Accept edits o Manual para ejecutarlo. Consulta [explorar primero, luego planificar, luego codificar](/docs/es/best-practices#explore-first-then-plan-then-code) para obtener más información sobre este flujo de trabajo.

101</Tip>112</Tip>

102 113 

103Las sesiones en la nube admiten Accept edits, Plan y Auto. Accept edits corresponde al modo `default`: las sesiones en la nube aceptan automáticamente ediciones de archivos, por lo que el selector muestra Accept edits en lugar de Manual. Bypass permissions no está disponible en sesiones en la nube, incluidas las sesiones en un [entorno autohospedado](/docs/es/self-hosted-environments).114Las sesiones en la nube admiten Accept edits, Plan y Auto. Accept edits corresponde al modo `default`: las sesiones en la nube aprueban previamente las ediciones de archivos, por lo que el selector muestra Accept edits en lugar de Manual. Bypass permissions no está disponible en sesiones en la nube, incluidas las sesiones en un [entorno autohospedado](/docs/es/self-hosted-environments).

104 115 

105Los administradores empresariales pueden restringir qué modos de permisos están disponibles. Consulte [configuración empresarial](#enterprise-configuration) para obtener detalles.116Los administradores empresariales pueden restringir qué modos de permisos están disponibles. Consulta [configuración empresarial](#enterprise-configuration) para obtener detalles.

106 117 

107<h4 id="auto-mode-availability">118<h4 id="auto-mode-availability">

108 Disponibilidad del modo automático119 Disponibilidad del modo automático


113En los despliegues de Enterprise que enrutan Desktop a Agent Platform de Google Cloud, el modo automático también está disponible de forma predeterminada; consulta [Modo automático en Bedrock, Agent Platform o Foundry](/docs/es/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry) para ver los modelos compatibles.124En los despliegues de Enterprise que enrutan Desktop a Agent Platform de Google Cloud, el modo automático también está disponible de forma predeterminada; consulta [Modo automático en Bedrock, Agent Platform o Foundry](/docs/es/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry) para ver los modelos compatibles.

114 125 

115<h3 id="preview-your-app">126<h3 id="preview-your-app">

116 Vista previa de su aplicación127 Vista previa de tu aplicación

117</h3>128</h3>

118 129 

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

120 131 

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

122 133 

123Desde el panel del navegador, puede:134Desde el panel del navegador, puedes:

124 135 

125* Interactuar con su aplicación en ejecución directamente en el panel del navegador136* Interactuar con tu aplicación en ejecución directamente en el panel del navegador

126* Ver a Claude verificar sus propios cambios automáticamente: toma capturas de pantalla, inspecciona el DOM, hace clic en elementos, completa formularios y corrige problemas que encuentra137* Ver a Claude verificar sus propios cambios automáticamente: toma capturas de pantalla, inspecciona el DOM, hace clic en elementos, completa formularios y corrige los problemas que encuentra

127* Iniciar o detener servidores, o detenerlos todos a la vez, desde el menú **Dev servers** en el encabezado del panel del navegador138* Iniciar o detener servidores, o detenerlos todos a la vez, desde el menú **Dev servers** en el encabezado del panel del navegador

128* Elegir si el navegador conserva las cookies después de salir de la aplicación con **Keep cookies** en el menú **⋮** del panel del navegador, para que no tengas que volver a iniciar sesión durante el desarrollo139* Elegir si el navegador conserva las cookies después de salir de la aplicación con **Keep cookies** en el menú **⋮** del panel del navegador, para que no tengas que volver a iniciar sesión durante el desarrollo

129 140 

130Claude crea la configuración inicial del servidor basada en su proyecto. Si su aplicación usa un comando de desarrollo personalizado, edite `.claude/launch.json` para que coincida con su configuración. Consulte [Configurar servidores de vista previa](#configure-preview-servers) para la referencia completa.141Claude crea la configuración inicial del servidor basada en tu proyecto. Si tu aplicación usa un comando de desarrollo personalizado, edita `.claude/launch.json` para que coincida con tu configuración. Consulta [Configurar servidores de vista previa](#configure-preview-servers) para la referencia completa.

131 142 

132Para borrar los datos guardados del navegador, selecciona **Clear browsing data** en el menú **⋮** del panel del navegador. Para desactivar el navegador por completo, desactiva **Browser tools** en **Configuración > Claude Code**.143Para borrar los datos guardados del navegador, selecciona **Clear browsing data** en el menú **⋮** del panel del navegador. Para desactivar el navegador por completo, desactiva **Browser tools** en **Configuración > Claude Code**.

133 144 


139 150 

140La primera vez que haces clic en un enlace externo en el chat, un diálogo te pregunta si los enlaces se abren en el panel del navegador o en tu navegador predeterminado. Para cambiar tu elección más adelante, usa **Open links in built-in browser** en el menú **⋮** del panel del navegador. **Cmd**-clic en macOS o **Ctrl**-clic en Windows abre un enlace directamente en tu navegador predeterminado.151La primera vez que haces clic en un enlace externo en el chat, un diálogo te pregunta si los enlaces se abren en el panel del navegador o en tu navegador predeterminado. Para cambiar tu elección más adelante, usa **Open links in built-in browser** en el menú **⋮** del panel del navegador. **Cmd**-clic en macOS o **Ctrl**-clic en Windows abre un enlace directamente en tu navegador predeterminado.

141 152 

142Claude puede leer e interactuar con páginas externas usando las mismas herramientas que usa para [verificar su aplicación](#preview-your-app), con dos verificaciones de seguridad adicionales:153Claude puede leer e interactuar con páginas externas usando las mismas herramientas que usa para [verificar tu aplicación](#preview-your-app), con dos verificaciones de seguridad adicionales:

143 154 

144* Los clasificadores de seguridad revisan las acciones de escritura de Claude en páginas externas, como hacer clic y escribir, en cada modo de permisos. Estos son los mismos clasificadores que [auto mode](#choose-a-permission-mode) usa, y cuando marcan una acción, obtiene un aviso de permisos independientemente del modo.155* Los clasificadores de seguridad revisan las acciones de escritura de Claude en páginas externas, como hacer clic y escribir, en cada modo de permisos. Son los mismos clasificadores que usa el [modo automático](#choose-a-permission-mode), y cuando marcan una acción, recibes una solicitud de permiso independientemente del modo.

145* En modos de permisos distintos de Auto y Bypass permissions, una verificación de lista de permitidos de dominio también se aplica antes de que Claude navegue a un nuevo sitio.156* En los modos de permisos distintos de Auto y Bypass permissions, también se aplica una verificación de la lista de dominios permitidos antes de que Claude navegue a un nuevo sitio.

146 157 

147<h4 id="approve-claude’s-actions-on-a-site">158<h4 id="approve-claude’s-actions-on-a-site">

148 Aprobar las acciones de Claude en un sitio159 Aprobar las acciones de Claude en un sitio

149</h4>160</h4>

150 161 

151La primera vez que Claude actúa en un sitio externo, aparece una tarjeta de permisos y Claude espera su elección: **Allow once**, **Always allow** o **Deny**. **Allow once** aprueba la acción sin guardar nada. **Always allow** guarda la aprobación para ese sitio en su dispositivo, y puede revocarla en Configuración. Cada sitio necesita su propia aprobación, incluidos los subdominios. Sus servidores de desarrollo local y archivos de proyecto no necesitan aprobación, por lo que [auto-verify](#auto-verify-changes) sigue funcionando sin avisos.162La primera vez que Claude actúa en un sitio externo, aparece una tarjeta de permisos y Claude espera tu elección: **Allow once**, **Always allow** o **Deny**. **Allow once** aprueba la acción sin guardar nada. **Always allow** guarda la aprobación para ese sitio en tu dispositivo, y puedes revocarla en Configuración. Cada sitio necesita su propia aprobación, incluidos los subdominios. Tus servidores de desarrollo locales y archivos de proyecto no necesitan aprobación, por lo que [auto-verify](#auto-verify-changes) sigue funcionando sin solicitudes de confirmación.

152 163 

153Incluso en un sitio aprobado, Claude no comprará artículos, creará cuentas ni omitirá CAPTCHAs sin su entrada. Navegar en el panel del navegador usa el mismo modelo de seguridad que la [extensión Claude en Chrome](/docs/es/chrome). Consulte [Usar Claude en Chrome de forma segura](https://support.claude.com/en/articles/12902428-using-claude-in-chrome-safely) para saber cómo Claude maneja sitios sensibles y acciones riesgosas.164Incluso en un sitio aprobado, Claude no comprará artículos, creará cuentas ni omitirá CAPTCHAs sin tu intervención. Navegar en el panel del navegador usa el mismo modelo de seguridad que la [extensión Claude in Chrome](/docs/es/chrome). Consulta [Usar Claude in Chrome de forma segura](https://support.claude.com/en/articles/12902428-using-claude-in-chrome-safely) para saber cómo Claude maneja sitios sensibles y acciones riesgosas.

154 165 

155<h4 id="choose-between-the-browser-and-the-chrome-extension">166<h4 id="choose-between-the-browser-and-the-chrome-extension">

156 Elegir entre el panel del navegador y la extensión de Chrome167 Elegir entre el panel del navegador y la extensión de Chrome

157</h4>168</h4>

158 169 

159El panel del navegador usa un perfil de navegador limpio, separado de su navegador personal, sin ninguno de sus inicios de sesión guardados o historial. Úselo para construir y probar su aplicación y para sitios que no necesitan su identidad. Cuando desee que Claude actúe como usted en sus sesiones iniciadas, use la [extensión Claude en Chrome](/docs/es/chrome) en su lugar, que comparte el estado de inicio de sesión de su navegador.170El panel del navegador usa un perfil de navegador limpio, separado de tu navegador personal, sin ninguno de tus inicios de sesión guardados ni tu historial. Úsalo para construir y probar tu aplicación y para sitios que no necesitan tu identidad. Cuando quieras que Claude actúe como tú en tus sesiones iniciadas, usa en su lugar la [extensión Claude in Chrome](/docs/es/chrome), que comparte el estado de inicio de sesión de tu navegador.

160 171 

161<h4 id="restrict-external-browsing-for-your-organization">172<h4 id="restrict-external-browsing-for-your-organization">

162 Restringir la navegación externa para su organización173 Restringir la navegación externa para tu organización

163</h4>174</h4>

164 175 

165El navegador sigue los mismos [controles de lista de permitidos y lista de bloqueos de sitios](https://support.claude.com/en/articles/13065128-claude-in-chrome-admin-controls) que la extensión Claude en Chrome. Si su organización ya configuró esas listas para la extensión, el navegador las respeta automáticamente. Los administradores también pueden desactivar las herramientas de Claude en páginas externas con la configuración administrada [`browserExternalPageTools`](#managed-settings). Con las herramientas desactivadas, los usuarios aún pueden navegar a sitios externos; las herramientas de Claude no pueden leerlos ni actuar sobre ellos.176El navegador sigue los mismos [controles de lista de sitios permitidos y lista de bloqueo](https://support.claude.com/en/articles/13065128-claude-in-chrome-admin-controls) que la extensión Claude in Chrome. Si tu organización ya configuró esas listas para la extensión, el navegador las respeta automáticamente. Los administradores también pueden desactivar las herramientas de Claude en páginas externas con el [ajuste de configuración administrada `browserExternalPageTools`](#managed-settings). Con las herramientas desactivadas, los usuarios aún pueden visitar sitios externos; las herramientas de Claude no pueden leerlos ni actuar sobre ellos.

166 177 

167Para desactivar la navegación externa por completo, establezca la configuración administrada [`disableBrowserExternalNavigation`](#managed-settings) en `true`. Esto bloquea toda la navegación externa en el navegador, incluidos los sitios en la lista de permitidos de su organización; los servidores de desarrollo localhost y las vistas previas de archivos siguen funcionando. Use `browserExternalPageTools` para permitir que los usuarios sigan navegando por sitios externos sin las herramientas de Claude, y `disableBrowserExternalNavigation` para bloquear sitios externos tanto para usuarios como para Claude.178Para desactivar la navegación externa por completo, establece el [ajuste de configuración administrada `disableBrowserExternalNavigation`](#managed-settings) en `true`. Esto bloquea toda la navegación externa en el navegador, incluidos los sitios en la lista de permitidos de tu organización; los servidores de desarrollo localhost y las vistas previas de archivos siguen funcionando. Usa `browserExternalPageTools` para permitir que los usuarios sigan navegando por sitios externos sin las herramientas de Claude, y `disableBrowserExternalNavigation` para bloquear sitios externos tanto para los usuarios como para Claude.

168 179 

169<h3 id="review-changes-with-diff-view">180<h3 id="review-changes-with-diff-view">

170 Revisar cambios con vista de diferencias181 Revisar cambios con la vista de diff

171</h3>182</h3>

172 183 

173Después de que Claude realiza cambios en su código, la vista de diferencias le permite revisar modificaciones archivo por archivo antes de crear una solicitud de extracción.184Después de que Claude realiza cambios en tu código, la vista de diff te permite revisar las modificaciones archivo por archivo antes de crear un pull request.

174 185 

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

176 187 

177Para comentar en líneas específicas, haga clic en cualquier línea en la diferencia para abrir un cuadro de comentarios. Escriba su comentario y presione **Enter** para agregar el comentario. Después de agregar comentarios a varias líneas, envíe todos los comentarios a la vez:188Para comentar líneas específicas, haz clic en cualquier línea del diff para abrir un cuadro de comentarios. Escribe tu comentario y presiona **Enter** para agregarlo. Después de agregar comentarios a varias líneas, envía todos los comentarios a la vez:

178 189 

179* **macOS**: presione **Cmd+Enter**190* **macOS**: presiona **Cmd+Enter**

180* **Windows**: presione **Ctrl+Enter**191* **Windows**: presiona **Ctrl+Enter**

181 192 

182Claude lee sus comentarios y realiza los cambios solicitados, que aparecen como una nueva diferencia que puede revisar.193Claude lee tus comentarios y realiza los cambios solicitados, que aparecen como un nuevo diff que puedes revisar.

183 194 

184<h3 id="review-your-code">195<h3 id="review-your-code">

185 Revisar su código196 Revisar tu código

186</h3>197</h3>

187 198 

188Para que Claude revise tus cambios antes de hacer commit, escribe `/code-review` en el [cuadro de prompt](#use-the-prompt-box). Los hallazgos llegan a la conversación cuando la revisión se completa.199Para que Claude revise tus cambios antes de hacer commit, escribe `/code-review` en el [cuadro de prompt](#use-the-prompt-box). Los hallazgos llegan a la conversación cuando la revisión se completa.


195En cualquier sesión, también puedes pedirle a Claude en el cuadro de prompt que corrija lo que encontró la revisión. Para saber qué busca `/code-review` y qué argumentos acepta, consulta [Revisar un diff localmente](/docs/es/code-review#review-a-diff-locally).206En cualquier sesión, también puedes pedirle a Claude en el cuadro de prompt que corrija lo que encontró la revisión. Para saber qué busca `/code-review` y qué argumentos acepta, consulta [Revisar un diff localmente](/docs/es/code-review#review-a-diff-locally).

196 207 

197<h3 id="monitor-pull-request-status">208<h3 id="monitor-pull-request-status">

198 Monitorear el estado de la solicitud de extracción209 Monitorear el estado del pull request

199</h3>210</h3>

200 211 

201Después de abrir una solicitud de extracción, aparece una barra de estado de CI en la sesión. Claude Code usa la CLI de GitHub para sondear resultados de verificación y mostrar fallas.212Después de abrir un pull request, aparece una barra de estado de CI en la sesión. Claude Code usa la CLI de GitHub para consultar los resultados de las verificaciones y mostrar las fallas.

202 213 

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

204* **Auto-merge when ready**: cuando está habilitado, Claude fusiona el PR una vez que todas las verificaciones pasan. El método de fusión es squash. Habilita primero auto-merge en la [configuración de tu repositorio de GitHub](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-auto-merge-for-pull-requests-in-your-repository); sin esto, Claude no puede fusionar el PR.215* **Auto-merge when ready**: cuando está habilitado, Claude fusiona el PR una vez que todas las verificaciones pasan. El método de fusión es squash. Habilita primero auto-merge en la [configuración de tu repositorio de GitHub](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-auto-merge-for-pull-requests-in-your-repository); sin esto, Claude no puede fusionar el PR.


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

207 218 

208<Note>219<Note>

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

210</Note>221</Note>

211 222 

212<h2 id="arrange-your-workspace">223<h2 id="arrange-your-workspace">

213 Organizar su espacio de trabajo224 Organizar tu espacio de trabajo

214</h2>225</h2>

215 226 

216La pestaña Code está construida alrededor de paneles que puedes organizar en cualquier diseño: chat, diff, navegador, terminal, archivo, plan, tareas y subagente, junto con el [iOS Simulator](/docs/es/desktop-ios-simulator) en macOS. Arrastra un panel por su encabezado para reposicionarlo, o arrastra un borde de panel para redimensionarlo. Presiona **Cmd+\\** en macOS o **Ctrl+\\** en Windows para cerrar el panel enfocado. Haz clic en **Terminal**, **Changes** o **Browser** en la barra de título de la sesión para abrir el panel de terminal, de diff o de navegador. El menú **⋮** junto a ellos abre más paneles, como **Files**, y contiene esos botones cuando la ventana es demasiado estrecha para mostrarlos.227La pestaña Code está construida alrededor de paneles que puedes organizar en cualquier diseño: chat, diff, navegador, terminal, archivo, plan, tareas y subagente, junto con el [iOS Simulator](/docs/es/desktop-ios-simulator) en macOS. Arrastra un panel por su encabezado para reposicionarlo, o arrastra un borde de panel para redimensionarlo. Presiona **Cmd+\\** en macOS o **Ctrl+\\** en Windows para cerrar el panel enfocado. Haz clic en **Terminal**, **Changes** o **Browser** en la barra de título de la sesión para abrir el panel de terminal, de diff o de navegador. El menú **⋮** junto a ellos abre más paneles, como **Files**, y contiene esos botones cuando la ventana es demasiado estrecha para mostrarlos.

217 228 

218Para trabajar en múltiples pantallas, extraiga un panel como el diff o terminal en su propia ventana, y acóplelo de nuevo cuando haya terminado. Claude continúa trabajando en la ventana principal.229Para trabajar en múltiples pantallas, extrae un panel como el diff o la terminal en su propia ventana, y vuelve a acoplarlo cuando hayas terminado. Claude continúa trabajando en la ventana principal.

219 230 

220<Note>231<Note>

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

222</Note>233</Note>

223 234 

224<h3 id="run-commands-in-the-terminal">235<h3 id="run-commands-in-the-terminal">


231 Abrir y editar archivos242 Abrir y editar archivos

232</h3>243</h3>

233 244 

234Haga clic en una ruta de archivo en el chat o visor de diferencias para abrirlo en el panel de archivos. Las rutas HTML, PDF, imagen y vídeo se abren en el [panel de navegador](#preview-your-app) en su lugar. Realice ediciones puntuales y haga clic en **Save** para escribirlas de vuelta. Si el archivo cambió en el disco desde que lo abrió, el panel le advierte y le permite anular o descartar. Haga clic en **Discard** para revertir sus ediciones, o haga clic en la ruta en el encabezado del panel para copiar la ruta absoluta.245Haz clic en una ruta de archivo en el chat o en el visor de diff para abrirlo en el panel de archivos. Las rutas HTML, PDF, de imagen y de video se abren en el [panel de navegador](#preview-your-app) en su lugar. Realiza ediciones puntuales y haz clic en **Save** para guardarlas. Si el archivo cambió en el disco desde que lo abriste, el panel te advierte y te permite sobrescribir o descartar. Haz clic en **Discard** para revertir tus ediciones, o haz clic en la ruta en el encabezado del panel para copiar la ruta absoluta.

235 246 

236El panel de archivos está disponible en sesiones locales y SSH. Para sesiones remotas, pídale a Claude que realice el cambio.247El panel de archivos está disponible en sesiones locales y SSH. Para sesiones en la nube, pídele a Claude que realice el cambio.

237 248 

238<h3 id="open-files-in-other-apps">249<h3 id="open-files-in-other-apps">

239 Abrir archivos en otras aplicaciones250 Abrir archivos en otras aplicaciones

240</h3>251</h3>

241 252 

242Haga clic con el botón derecho en cualquier ruta de archivo en el chat, visor de diferencias o panel de archivos para abrir un menú contextual:253Haz clic con el botón derecho en cualquier ruta de archivo en el chat, el visor de diff o el panel de archivos para abrir un menú contextual:

243 254 

244* **Attach as context**: agregue el archivo a su siguiente solicitud255* **Attach as context**: agrega el archivo a tu siguiente prompt

245* **Open in**: abra el archivo en un editor instalado como VS Code, Cursor o Zed256* **Open in**: abre el archivo en un editor instalado como VS Code, Cursor o Zed

246* **Show in Finder** en macOS, **Show in Explorer** en Windows: abra la carpeta contenedora257* **Show in Finder** en macOS, **Show in Explorer** en Windows: abre la carpeta contenedora

247* **Copy path**: copie la ruta absoluta a su portapapeles258* **Copy path**: copia la ruta absoluta a tu portapapeles

248 259 

249<h3 id="switch-view-modes">260<h3 id="switch-view-modes">

250 Cambiar modos de vista261 Cambiar modos de vista


254 265 

255| Modo | Lo que muestra |266| Modo | Lo que muestra |

256| - | - |267| - | - |

257| **Normal** | Llamadas de herramientas contraídas en resúmenes, con respuestas de texto completo |268| **Normal** | Llamadas a herramientas contraídas en resúmenes, con respuestas de texto completo |

258| **Thinking** | Llamadas de herramientas contraídas en resúmenes, más el pensamiento de Claude |269| **Thinking** | Llamadas a herramientas contraídas en resúmenes, más el pensamiento de Claude |

259| **Verbose** | Cada llamada de herramienta, lectura de archivo y paso intermedio que Claude toma, más el pensamiento de Claude |270| **Verbose** | Cada llamada a herramienta, lectura de archivo y paso intermedio que Claude realiza, más el pensamiento de Claude |

260 271 

261Use Thinking para seguir el razonamiento de Claude con llamadas de herramientas aún contraídas. Use Verbose cuando depure por qué Claude tomó una acción particular. Las versiones de Claude Desktop anteriores a 1.46388.1 también enumeran un modo Summary, y una sesión aún configurada en Summary se abre en Normal una vez que actualiza.272Usa Thinking para seguir el razonamiento de Claude con las llamadas a herramientas aún contraídas. Usa Verbose cuando depures por qué Claude tomó una acción particular. Las versiones de Claude Desktop anteriores a 1.46388.1 también incluyen un modo Summary, y una sesión aún configurada en Summary se abre en Normal una vez que actualizas.

262 273 

263<h3 id="keyboard-shortcuts">274<h3 id="keyboard-shortcuts">

264 Atajos de teclado275 Atajos de teclado

265</h3>276</h3>

266 277 

267Presione **Cmd+/** en macOS o **Ctrl+/** en Windows para ver todos los atajos disponibles en la pestaña Code. En Windows, use **Ctrl** en lugar de **Cmd** para los atajos a continuación. El ciclismo de sesiones, el alternador de terminal y el alternador de modo de vista usan **Ctrl** en todas las plataformas.278Presiona **Cmd+/** en macOS o **Ctrl+/** en Windows para ver todos los atajos disponibles en la pestaña Code. En Windows, usa **Ctrl** en lugar de **Cmd** para los atajos a continuación. El cambio entre sesiones, el alternador de terminal y el alternador de modo de vista usan **Ctrl** en todas las plataformas.

268 279 

269| Atajo | Acción |280| Atajo | Acción |

270| - | - |281| - | - |

271| `Cmd` `/` | Mostrar atajos de teclado |282| `Cmd` `/` | Mostrar atajos de teclado |

272| `Cmd` `N` | Nueva sesión |283| `Cmd` `N` | Nueva sesión |

273| `Cmd` `W` | Cerrar sesión |284| `Cmd` `W` | Cerrar sesión |

274| `Ctrl` `Tab` / `Ctrl` `Shift` `Tab` | Siguiente o sesión anterior |285| `Ctrl` `Tab` / `Ctrl` `Shift` `Tab` | Sesión siguiente o anterior |

275| `Cmd` `Shift` `]` / `Cmd` `Shift` `[` | Siguiente o sesión anterior |286| `Cmd` `Shift` `]` / `Cmd` `Shift` `[` | Sesión siguiente o anterior |

276| `Esc` | Detener respuesta de Claude |287| `Esc` | Detener la respuesta de Claude |

277| `Cmd` `Shift` `D` | Alternar panel de diferencias |288| `Tab` / `Right arrow` | [Aceptar el prompt sugerido](#accept-a-suggested-prompt) en un cuadro de prompt vacío |

289| `Cmd` `Shift` `D` | Alternar panel de diff |

278| `Cmd` `Shift` `B` | Alternar panel de navegador |290| `Cmd` `Shift` `B` | Alternar panel de navegador |

279| `Cmd` `Shift` `S` | Seleccionar un elemento en el navegador |291| `Cmd` `Shift` `S` | Seleccionar un elemento en el navegador |

280| `Ctrl` `` ` `` | Alternar panel de terminal |292| `Ctrl` `` ` `` | Alternar panel de terminal |


286| `Cmd` `Shift` `E` | Abrir menú de esfuerzo |298| `Cmd` `Shift` `E` | Abrir menú de esfuerzo |

287| `1`–`9` | Seleccionar elemento en un menú abierto |299| `1`–`9` | Seleccionar elemento en un menú abierto |

288 300 

289Estos atajos se aplican solo a la pestaña Code. Los [atajos de modo interactivo](/docs/es/interactive-mode#keyboard-shortcuts) basados en terminal, como `Shift+Tab` para ciclar modos, no se aplican en Desktop.301Estos atajos se aplican a la pestaña Code. En Desktop, `Shift+Tab` no recorre los modos de permisos como lo hace en el [modo interactivo](/docs/es/interactive-mode#keyboard-shortcuts) de la terminal.

290 302 

291<h3 id="check-usage">303<h3 id="check-usage">

292 Verificar uso304 Verificar uso

293</h3>305</h3>

294 306 

295Haga clic en el anillo de uso junto al selector de modelo para ver su uso actual de la ventana de contexto y su uso del plan para el período. El uso de contexto es por sesión; el uso del plan se comparte en todas sus superficies de Claude Code.307Haz clic en el anillo de uso junto al selector de modelo para ver tu uso actual de la ventana de contexto y tu uso del plan para el período. El uso de contexto es por sesión; el uso del plan se comparte en todas tus superficies de Claude Code.

296 308 

297<h2 id="let-claude-use-your-computer">309<h2 id="let-claude-use-your-computer">

298 Permitir que Claude use su computadora310 Permitir que Claude use su computadora


458* Selecciona **Cloud** para continuar la sesión como una [sesión en la nube](/docs/es/claude-code-on-the-web), con tu conversación trasladada como un resumen. Antes de que confirmes, el cuadro de diálogo indica si tus archivos también se mueven y si esta sesión se archiva una vez que la de la nube esté lista. No puedes mover de esta forma una sesión que se ejecuta por [SSH](#ssh-sessions) o en [WSL](/docs/es/desktop-wsl).470* Selecciona **Cloud** para continuar la sesión como una [sesión en la nube](/docs/es/claude-code-on-the-web), con tu conversación trasladada como un resumen. Antes de que confirmes, el cuadro de diálogo indica si tus archivos también se mueven y si esta sesión se archiva una vez que la de la nube esté lista. No puedes mover de esta forma una sesión que se ejecuta por [SSH](#ssh-sessions) o en [WSL](/docs/es/desktop-wsl).

459* Selecciona un editor instalado o tu administrador de archivos para abrir allí la carpeta de la sesión en el disco.471* Selecciona un editor instalado o tu administrador de archivos para abrir allí la carpeta de la sesión en el disco.

460 472 

473<h3 id="control-which-sessions-appear-on-your-other-devices">

474 Controlar qué sesiones aparecen en tus otros dispositivos

475</h3>

476 

477Una sesión local aparece en tus otros dispositivos una vez que [Remote Control](/docs/es/remote-control) la conecta. Una sesión conectada aparece en la lista de sesiones de [claude.ai/code](https://claude.ai/code) y en las aplicaciones de Claude de los dispositivos en los que iniciaste sesión con tu cuenta de claude.ai.

478 

479Una sesión local se conecta cuando activas Remote Control para ella, o cuando se conecta automáticamente al iniciarse:

480 

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

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

483 

484Para ver si una sesión está conectada, mira el icono de laptop antes del título de la sesión en la barra de herramientas. El icono se resalta mientras la sesión está conectada o conectándose. Haz clic en él para abrir el interruptor **Remote Control** de la sesión.

485 

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

487 

488* **Una sesión**: desactiva su interruptor **Remote Control**. En una sesión que se conectó al iniciarse, escribir `/remote-control` deja Remote Control activado y muestra `Remote Control is already on. This session connected automatically when it started.` Haz clic en **Turn off** en esa línea para desconectarla.

489* **Nuevas sesiones de Desktop en esta computadora**: desactiva **Connect new sessions to Remote Control** en **Configuración > Claude Code**. Si ya aparece desactivado, actívalo y luego desactívalo para que Desktop guarde tu elección. Una vez guardado, tiene precedencia sobre `remoteControlAtStartup` y los valores predeterminados.

490* **Cualquier sesión en esta computadora, incluida la CLI**: establece [`disableRemoteControl`](/docs/es/settings-reference#disableremotecontrol) en `true` en `~/.claude/settings.json` para impedir que las sesiones se conecten. Una sesión que ya estaba conectada cuando guardaste el archivo permanece conectada hasta que desactives Remote Control para ella.

491 

492Para ocultar una sesión que ya aparece en tus otros dispositivos, archívala en Desktop. Desktop también archiva la copia de Remote Control de la sesión, por lo que deja de aparecer en la lista de sesiones predeterminada de esos dispositivos. Para verla o eliminarla allí, consulta [Archivar sesiones](/docs/es/claude-code-on-the-web#archive-sessions).

493 

461<h3 id="sessions-from-dispatch">494<h3 id="sessions-from-dispatch">

462 Sesiones desde Dispatch495 Sesiones desde Dispatch

463</h3>496</h3>


836 Pre-configurar conexiones SSH para su equipo869 Pre-configurar conexiones SSH para su equipo

837</h4>870</h4>

838 871 

839Los administradores pueden distribuir conexiones SSH a los miembros del equipo agregando `sshConfigs` a un archivo de [configuración administrada](/docs/es/managed-settings). Las conexiones definidas de esta manera aparecen en el menú desplegable de entorno de cada usuario automáticamente y se muestran como administradas, por lo que los usuarios pueden seleccionarlas pero no pueden editarlas ni eliminarlas en la aplicación.872Los administradores pueden distribuir conexiones SSH a los miembros del equipo estableciendo `sshConfigs` en la [configuración administrada](/docs/es/managed-settings). Las conexiones definidas de esta manera aparecen en el menú desplegable de entorno de cada usuario automáticamente y se muestran como administradas, por lo que los usuarios pueden seleccionarlas pero no pueden editarlas ni eliminarlas en la aplicación.

840 873 

841El siguiente ejemplo pre-configura una única conexión:874El siguiente ejemplo pre-configura una única conexión:

842 875 


860 Restringir a qué hosts SSH pueden conectarse los usuarios893 Restringir a qué hosts SSH pueden conectarse los usuarios

861</h4>894</h4>

862 895 

863Los administradores pueden limitar las sesiones SSH de Desktop a un conjunto aprobado de hosts agregando `sshHostAllowlist` a un archivo de [configuración administrada](/docs/es/managed-settings). Cuando se establece, los usuarios solo pueden conectarse a hosts cuyo nombre de host resuelto coincida con uno de los patrones. Establézcalo en una matriz vacía para deshabilitar completamente las sesiones SSH.896Los administradores pueden limitar las sesiones SSH de Desktop a un conjunto aprobado de hosts estableciendo `sshHostAllowlist` en la [configuración administrada](/docs/es/managed-settings). Cuando se establece, los usuarios solo pueden conectarse a hosts cuyo nombre de host resuelto coincida con uno de los patrones. Establécelo en una matriz vacía para deshabilitar las sesiones SSH. La [entrada de referencia de `sshHostAllowlist`](/docs/es/settings-reference#sshhostallowlist) explica cómo se combina una matriz vacía con las listas de otras fuentes administradas.

864 897 

865El siguiente ejemplo permite conexiones a cualquier host bajo `devboxes.example.com` y a un único host bastión nombrado:898El siguiente ejemplo permite conexiones a cualquier host bajo `devboxes.example.com` y a un único host bastión nombrado:

866 899 


870}903}

871```904```

872 905 

906<Warning>

907 Si tu organización distribuye [configuración administrada por servidor](/docs/es/server-managed-settings), establece `sshHostAllowlist` allí. De forma predeterminada, Desktop lee la clave solo desde la [fuente administrada de mayor prioridad que entrega una clave de política](/docs/es/managed-settings#how-claude-code-combines-managed-sources). Si esa fuente deja la clave sin establecer, Desktop ignora una lista en una política MDM o un archivo de configuración administrada de menor prioridad y trata la clave como [no establecida](/docs/es/settings-reference#sshhostallowlist). Desktop no muestra ninguna advertencia.

908 

909 Mantén también la misma lista en la máquina de cada usuario, en la política MDM o el archivo de configuración administrada de mayor prioridad allí. Desktop obtiene la configuración administrada por servidor al iniciarse y no guarda ninguna copia en caché, por lo que, hasta que una obtención tenga éxito, la lista que se aplica es la de la máquina.

910</Warning>

911 

873Los patrones no distinguen entre mayúsculas y minúsculas. `*` coincide con cualquier host, y `*.example.com` coincide con `example.com` y cualquier subdominio. Cualquier otra cosa es una coincidencia exacta. La verificación se ejecuta contra el nombre de host después de la resolución de `~/.ssh/config` a través de `ssh -G`, por lo que se permiten entradas de alias `Host` y `ProxyCommand`/`ProxyJump` siempre que el `HostName` resuelto coincida.912Los patrones no distinguen entre mayúsculas y minúsculas. `*` coincide con cualquier host, y `*.example.com` coincide con `example.com` y cualquier subdominio. Cualquier otra cosa es una coincidencia exacta. La verificación se ejecuta contra el nombre de host después de la resolución de `~/.ssh/config` a través de `ssh -G`, por lo que se permiten entradas de alias `Host` y `ProxyCommand`/`ProxyJump` siempre que el `HostName` resuelto coincida.

874 913 

875`sshHostAllowlist` se lee solo desde la configuración administrada; los valores en la configuración de usuario o proyecto se ignoran. Solo la aplicación Claude Desktop honra esta configuración; la CLI de Claude Code y las extensiones IDE no la leen, y no restringe los comandos `ssh` ejecutados a través de la herramienta Bash. Rige a qué hosts se conecta la aplicación Desktop, no la salida de red, por lo que emparéjelo con los controles de red de su organización o de confianza cero si necesita un límite duro.914`sshHostAllowlist` se lee solo desde la configuración administrada; los valores en la configuración de usuario o proyecto se ignoran. Solo la aplicación Claude Desktop honra esta configuración; la CLI de Claude Code y las extensiones IDE no la leen, y no restringe los comandos `ssh` ejecutados a través de la herramienta Bash. Rige a qué hosts se conecta la aplicación Desktop, no la salida de red, por lo que emparéjelo con los controles de red de su organización o de confianza cero si necesita un límite duro.


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

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

915| `sshConfigs` | preconfigura [conexiones SSH](#pre-configure-ssh-connections-for-your-team) que aparecen en el menú desplegable de entorno. Los usuarios no pueden editar ni eliminar conexiones administradas. |954| `sshConfigs` | preconfigura [conexiones SSH](#pre-configure-ssh-connections-for-your-team) que aparecen en el menú desplegable de entorno. Los usuarios no pueden editar ni eliminar conexiones administradas. |

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

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

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

919| `managedMcpServers` | envía configuraciones de servidores MCP a todos los usuarios. Disponible solo en despliegues de Desktop de terceros (3P). En cada entrada, establece un transporte `"http"`, `"sse"` o `"stdio"`, los detalles de conexión y, opcionalmente, un mapa `toolPolicy` para restringir qué herramientas de ese servidor pueden invocar los usuarios. Entrégalo a través del archivo de configuración administrada, MDM o el [bloque `desktop`](/docs/es/claude-apps-gateway-config#claude-desktop-overlay) de la política de un gateway de aplicaciones Claude, ya que los despliegues de terceros no reciben la configuración de la consola de administración. Para entregarlo a través del gateway, necesitas Claude Code v2.1.232 o posterior en el servidor del gateway. Esta es la clave propia de la aplicación de escritorio; Claude Code lee un [ajuste de configuración administrada con el mismo nombre](/docs/es/managed-mcp#provide-servers-through-managed-settings) propio, con una forma de entrada diferente. |958| `managedMcpServers` | envía configuraciones de servidores MCP a todos los usuarios. Disponible solo en despliegues de Desktop de terceros (3P). En cada entrada, establece un transporte `"http"`, `"sse"` o `"stdio"`, los detalles de conexión y, opcionalmente, un mapa `toolPolicy` para restringir qué herramientas de ese servidor pueden invocar los usuarios. Entrégalo a través del archivo de configuración administrada, MDM o el [bloque `desktop`](/docs/es/claude-apps-gateway-config#claude-desktop-overlay) de la política de un gateway de aplicaciones Claude, ya que los despliegues de terceros no reciben la configuración de la consola de administración. Para entregarlo a través del gateway, necesitas Claude Code v2.1.232 o posterior en el servidor del gateway. Esta es la clave propia de la aplicación de escritorio; Claude Code lee un [ajuste de configuración administrada con el mismo nombre](/docs/es/managed-mcp#provide-servers-through-managed-settings) propio, con una forma de entrada diferente. |

920 959 

921Qué configuración administrada llega a una sesión de Desktop depende de dónde se ejecute esa sesión. Las restricciones de modelo como [`availableModels`](/docs/es/model-config#restrict-model-selection) se aplican en las sesiones de Claude Code de Desktop de la misma manera que en la CLI de la terminal; consulta [cobertura de superficie](/docs/es/model-config#surface-coverage).960Qué configuración administrada llega a una sesión de Desktop depende de dónde se ejecute esa sesión. Las restricciones de modelo como [`availableModels`](/docs/es/model-config#restrict-model-selection) se aplican en las sesiones de Claude Code de Desktop de la misma manera que en la CLI de la terminal; consulta [cobertura de superficie](/docs/es/model-config#surface-coverage).

922 961 

923* **Sesiones locales en esta máquina**: se aplica un archivo de configuración administrada desplegado en disco. La configuración administrada enviada de forma remota a través de la consola de administración también llega a estas sesiones en la API de Anthropic cuando la sesión se autentica con un [inicio de sesión o clave elegible](/docs/es/server-managed-settings#platform-availability), siguiendo la misma [precedencia de configuración](/docs/es/settings#settings-precedence) que la CLI de la terminal.962* **Sesiones locales en esta máquina**: se aplica un archivo de configuración administrada desplegado en disco. La configuración administrada enviada de forma remota a través de la consola de administración también llega a estas sesiones en la API de Anthropic cuando la sesión se autentica con un [inicio de sesión elegible](/docs/es/server-managed-settings#platform-availability), siguiendo la misma [precedencia de configuración](/docs/es/settings#settings-precedence) que la CLI de la terminal.

924* **[Sesiones en la nube](#cloud-sessions)**: reciben [configuración administrada por servidor](/docs/es/server-managed-settings); los archivos desplegados en dispositivos no llegan a ellas, porque se ejecutan en máquinas virtuales administradas por Anthropic. Las sesiones enrutadas a un [entorno autohospedado](/docs/es/self-hosted-environments) también leen el archivo de configuración administrada en la imagen del ejecutor. [Cómo Claude Code combina fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources) indica cuándo se aplica ese archivo.963* **[Sesiones en la nube](#cloud-sessions)**: reciben [configuración administrada por servidor](/docs/es/server-managed-settings); los archivos desplegados en dispositivos no llegan a ellas, porque se ejecutan en máquinas virtuales administradas por Anthropic. Las sesiones enrutadas a un [entorno autohospedado](/docs/es/self-hosted-environments) también leen el archivo de configuración administrada en la imagen del ejecutor. [Cómo Claude Code combina fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources) indica cuándo se aplica ese archivo.

925* **[Sesiones SSH](#ssh-sessions)**: la sesión lee el archivo de configuración administrada desde el host remoto. Desktop mismo lee `sshConfigs`, `sshHostAllowlist`, `disableSshSavedPasswords` y `disableDesktopLocalSessions` desde la configuración administrada de la máquina local.964* **[Sesiones SSH](#ssh-sessions)**: la sesión lee el archivo de configuración administrada desde el host remoto. Desktop mismo lee `sshConfigs`, `sshHostAllowlist`, `disableSshSavedPasswords` y `disableDesktopLocalSessions` en la máquina local. Si entregas más de una fuente administrada, los lee desde [una sola de forma predeterminada](/docs/es/managed-settings#how-claude-code-combines-managed-sources).

926* **Sesiones de [Cowork](https://claude.com/docs/cowork/overview)**: en una sesión de Cowork en esta máquina, Claude Code nunca obtiene la configuración de la consola de administración, incluso cuando el usuario inicia sesión con una cuenta de Team o Enterprise, y lee la política desplegada en la máquina a menos que tu configuración de Claude Desktop establezca `requireCoworkFullVmSandbox`. Las sesiones remotas de Cowork no reciben ninguna de las dos. Consulta [dónde y cuándo se aplica una política](/docs/es/managed-settings#where-and-when-a-policy-applies) para saber qué archivos de dispositivo llegan a Cowork, y [reglas de permisos de MCP](/docs/es/permissions#mcp) para saber cómo se aplican las reglas de `Bash` y `WebFetch` a las herramientas de Cowork.965* **Sesiones de [Cowork](https://claude.com/docs/cowork/overview)**: en una sesión de Cowork en esta máquina, Claude Code nunca obtiene la configuración de la consola de administración, incluso cuando el usuario inicia sesión con una cuenta de Team o Enterprise, y lee la política desplegada en la máquina a menos que tu configuración de Claude Desktop establezca `requireCoworkFullVmSandbox`. Las sesiones remotas de Cowork no reciben ninguna de las dos. Consulta [dónde y cuándo se aplica una política](/docs/es/managed-settings#where-and-when-a-policy-applies) para saber qué archivos de dispositivo llegan a Cowork, y [reglas de permisos de MCP](/docs/es/permissions#mcp) para saber cómo se aplican las reglas de `Bash` y `WebFetch` a las herramientas de Cowork.

927 966 

928En sesiones locales y SSH, la aplicación de escritorio entrega directamente a Claude Code los conectores de claude.ai conectados de cada usuario. Ningún ajuste de MCP ni `managed-mcp.json` llega a esos conectores, cualquiera que sea la fuente de configuración o ubicación de archivo que uses. Para bloquear las herramientas de un conector en estas sesiones, usa los [controles de herramientas de conectores](/docs/es/mcp#organization-controls-on-connector-tools) de tu organización. [Cómo los conectores llegan a Claude Code](/docs/es/mcp#how-connectors-reach-claude-code) muestra qué configuración rige los conectores en cada tipo de sesión.967En sesiones locales y SSH, la aplicación de escritorio entrega directamente a Claude Code los conectores de claude.ai conectados de cada usuario. Ningún ajuste de MCP ni `managed-mcp.json` llega a esos conectores, cualquiera que sea la fuente de configuración o ubicación de archivo que uses. Para bloquear las herramientas de un conector en estas sesiones, usa los [controles de herramientas de conectores](/docs/es/mcp#organization-controls-on-connector-tools) de tu organización. [Cómo los conectores llegan a Claude Code](/docs/es/mcp#how-connectors-reach-claude-code) muestra qué configuración rige los conectores en cada tipo de sesión.


975assets-proxy.anthropic.com1014assets-proxy.anthropic.com

976claude.ai1015claude.ai

977a.claude.ai1016a.claude.ai

978a-cdn.claude.ai

979assets.claude.ai1017assets.claude.ai

980downloads.claude.ai1018downloads.claude.ai

981*.livepreview.claude.ai1019*.livepreview.claude.ai


1020Para la referencia completa de configuración empresarial, consulta la [guía de configuración empresarial](https://support.claude.com/en/articles/12622667-enterprise-configuration).1058Para la referencia completa de configuración empresarial, consulta la [guía de configuración empresarial](https://support.claude.com/en/articles/12622667-enterprise-configuration).

1021 1059 

1022<h2 id="coming-from-the-cli">1060<h2 id="coming-from-the-cli">

1023 ¿Viene de la CLI?1061 ¿Vienes de la CLI?

1024</h2>1062</h2>

1025 1063 

1026Si ya usa la CLI de Claude Code, Desktop ejecuta el mismo motor subyacente con una interfaz gráfica. Puede ejecutar ambos simultáneamente en la misma máquina, incluso en el mismo proyecto. Cada uno mantiene su propia lista de sesiones, y puede traer una sesión de CLI a Desktop. Comparten configuración y memoria del proyecto a través de archivos CLAUDE.md.1064Si ya usas la CLI de Claude Code, Desktop ejecuta el mismo motor subyacente con una interfaz gráfica. Puedes ejecutar ambos simultáneamente en la misma máquina, incluso en el mismo proyecto. Cada uno mantiene su propia lista de sesiones, y puedes traer una sesión de CLI a Desktop. Comparten configuración y memoria del proyecto a través de archivos CLAUDE.md.

1027 1065 

1028Para mover una sesión de CLI a Desktop, ejecute `/desktop` en la terminal. Claude guarda su sesión y la abre en la aplicación de escritorio, luego sale de la CLI. Este comando está disponible en macOS y Windows x64 cuando inicia sesión con una suscripción de Claude. No está disponible con autenticación de clave API ni en Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry.1066Para mover una sesión de CLI a Desktop, ejecuta `/desktop` en la terminal. Claude guarda tu sesión y la abre en la aplicación de escritorio, luego sale de la CLI. Este comando está disponible en macOS y Windows x64 cuando inicias sesión con una suscripción de Claude. No está disponible con autenticación de clave de API ni en Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry.

1029 1067 

1030Desde su shell, [`claude --desktop`](/docs/es/cli-reference#cli-flags) abre Desktop directamente sin iniciar una sesión de terminal. Requiere Claude Code v2.1.285 o posterior y tiene los mismos requisitos de plataforma e inicio de sesión que `/desktop`. Sin otros argumentos, abre Desktop en el directorio actual. Para abrir una sesión de CLI existente en Desktop, agregue `--continue` para la conversación más reciente en este directorio, o `--resume` con el ID de sesión que `/status` muestra:1068Desde tu shell, [`claude --desktop`](/docs/es/cli-reference#cli-flags) abre Desktop directamente sin iniciar una sesión de terminal. Requiere Claude Code v2.1.285 o posterior y tiene los mismos requisitos de plataforma e inicio de sesión que `/desktop`. Sin otros argumentos, abre Desktop en el directorio actual. Para abrir una sesión de CLI existente en Desktop, agrega `--continue` para la conversación más reciente en este directorio, o `--resume` con el ID de sesión que `/status` muestra:

1031 1069 

1032```bash theme={null}1070```bash theme={null}

1033claude --desktop --resume <session-id>1071claude --desktop --resume <session-id>


1035 1073 

1036Claude Code imprime `Opening session <session-id> in Claude Desktop`, la sesión se abre en la aplicación y el comando sale. Un nombre de sesión no funciona en lugar del ID. Claude Code no mueve una sesión que está abierta en otra terminal o aún se ejecuta en segundo plano. Si Claude Desktop no está instalado, el comando imprime un enlace de descarga y sale.1074Claude Code imprime `Opening session <session-id> in Claude Desktop`, la sesión se abre en la aplicación y el comando sale. Un nombre de sesión no funciona en lugar del ID. Claude Code no mueve una sesión que está abierta en otra terminal o aún se ejecuta en segundo plano. Si Claude Desktop no está instalado, el comando imprime un enlace de descarga y sale.

1037 1075 

1038También puede retomar una sesión de CLI desde dentro de Desktop con `/resume`. El comando está disponible en sesiones locales, no en sesiones SSH, WSL o en la nube.1076También puedes retomar una sesión de CLI desde dentro de Desktop con `/resume`. El comando está disponible en sesiones locales, no en sesiones SSH, WSL o en la nube.

1039 1077 

1040Para continuar una sesión de terminal en Desktop:1078Para continuar una sesión de terminal en Desktop:

1041 1079 

10421. Cierre la sesión en la terminal.10801. Cierra la sesión en la terminal.

10432. En el cuadro de solicitud de Desktop, escriba `/resume`. Desktop enumera las sesiones que inició desde la CLI en esta computadora. Busque por título, carpeta o rama, y obtenga una vista previa de dónde dejó cada una.10812. En el cuadro del prompt de Desktop, escribe `/resume`. Desktop enumera las sesiones que iniciaste desde la CLI en esta computadora. Busca por título, carpeta o rama, y obtén una vista previa de dónde quedó cada una.

10443. Seleccione la sesión. Continuará en la aplicación con su conversación completa y contexto.10823. Selecciona la sesión. Continuará en la aplicación con su conversación completa y contexto.

1045 1083 

1046Desktop continúa la misma sesión en lugar de una copia, por lo que `claude --resume` en la terminal aún la encuentra después.1084Desktop continúa la misma sesión en lugar de una copia, por lo que `claude --resume` en la terminal aún la encuentra después.

1047 1085 

1048<Tip>1086<Tip>

1049 Cuándo usar Desktop vs CLI: use Desktop cuando desee gestionar sesiones paralelas en una ventana, organizar paneles lado a lado o revisar cambios visualmente. Use la CLI cuando necesite scripting, automatización o prefiera un flujo de trabajo de terminal.1087 Cuándo usar Desktop vs CLI: usa Desktop cuando quieras gestionar sesiones paralelas en una ventana, organizar paneles lado a lado o revisar cambios visualmente. Usa la CLI cuando necesites scripting, automatización o prefieras un flujo de trabajo de terminal.

1050</Tip>1088</Tip>

1051 1089 

1052<h3 id="cli-flag-equivalents">1090<h3 id="cli-flag-equivalents">


1058| CLI | Equivalente de Desktop |1096| CLI | Equivalente de Desktop |

1059| - | - |1097| - | - |

1060| `--model sonnet` | Menú desplegable de modelo junto al botón de envío |1098| `--model sonnet` | Menú desplegable de modelo junto al botón de envío |

1061| `--resume`, `--continue` | Haga clic en una sesión en la barra lateral, o escriba `/resume` en el cuadro de solicitud para retomar una sesión que inició desde la CLI |1099| `--resume`, `--continue` | Haz clic en una sesión en la barra lateral, o escribe `/resume` en el cuadro del prompt para retomar una sesión que iniciaste desde la CLI |

1062| `--permission-mode` | Selector de modo junto al botón de envío |1100| `--permission-mode` | Selector de modo junto al botón de envío |

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

1064| `--add-dir` | Agregue múltiples repositorios con el botón **+** en sesiones en la nube |1102| `--add-dir` | Agrega múltiples repositorios con el botón **+** en sesiones en la nube |

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

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

1067| `--print`, `--output-format` | No disponible. Desktop es solo interactivo. |1105| `--print`, `--output-format` | No disponible. Desktop es solo interactivo. |

1068| Variable de entorno `ANTHROPIC_MODEL` | Menú desplegable de modelo junto al botón de envío |1106| Variable de entorno `ANTHROPIC_MODEL` | Menú desplegable de modelo junto al botón de envío |

1069| Variable de entorno `MAX_THINKING_TOKENS` | Establezca en el editor de entorno local. Consulte [configuración del entorno](#environment-configuration). |1107| Variable de entorno `MAX_THINKING_TOKENS` | Establécela en el editor de entorno local. Consulta [configuración del entorno](#environment-configuration). |

1070 1108 

1071<h3 id="shared-configuration">1109<h3 id="shared-configuration">

1072 Configuración compartida1110 Configuración compartida

1073</h3>1111</h3>

1074 1112 

1075Desktop y CLI leen los mismos archivos de configuración, por lo que su configuración se transfiere:1113Desktop y CLI leen los mismos archivos de configuración, por lo que tu configuración se transfiere:

1076 1114 

1077* Los archivos **[CLAUDE.md](/docs/es/memory)** y `CLAUDE.local.md` en su proyecto son utilizados por ambos1115* Los archivos **[CLAUDE.md](/docs/es/memory)** y `CLAUDE.local.md` en tu proyecto son utilizados por ambos

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

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

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

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

1082 1120 

1083<h4 id="mcp-servers-from-the-claude-desktop-chat-app">1121<h4 id="mcp-servers-from-the-claude-desktop-chat-app">

1084 MCP servers de la aplicación de chat de Claude Desktop1122 Servidores MCP de la aplicación de chat de Claude Desktop

1085</h4>1123</h4>

1086 1124 

1087La aplicación Desktop carga MCP servers de `claude_desktop_config.json` en sesiones de la pestaña Code local, junto con servidores de `~/.claude.json` y `.mcp.json`. Un servidor definido en `claude_desktop_config.json` está disponible tanto en la superficie de chat de Desktop como en sesiones de la pestaña Code local.1125La aplicación Desktop carga servidores MCP de `claude_desktop_config.json` en sesiones de la pestaña Code local, junto con servidores de `~/.claude.json` y `.mcp.json`. Un servidor que definas en `claude_desktop_config.json` está disponible tanto en la superficie de chat de Desktop como en sesiones de la pestaña Code local.

1088 1126 

1089Si define el mismo nombre de servidor en `claude_desktop_config.json` y en `~/.claude.json` o `.mcp.json`, la pestaña Code en sesiones locales se conecta una vez y usa la definición de `claude_desktop_config.json`.1127Si defines el mismo nombre de servidor en `claude_desktop_config.json` y en `~/.claude.json` o `.mcp.json`, la pestaña Code en sesiones locales se conecta una vez y usa la definición de `claude_desktop_config.json`.

1090 1128 

1091La aplicación también reentrega servidores stdio de `~/.claude.json` a la CLI integrada en sesiones locales. Cuando el nivel superior de `~/.claude.json` (alcance de usuario) y `.mcp.json` definen el mismo nombre de servidor stdio, la pestaña Code usa la definición de `~/.claude.json`, apartándose de la [jerarquía de alcance](/docs/es/mcp#scope-hierarchy-and-precedence) de la CLI.1129La aplicación también reentrega servidores stdio de `~/.claude.json` a la CLI integrada en sesiones locales. Cuando el nivel superior de `~/.claude.json` (alcance de usuario) y `.mcp.json` definen el mismo nombre de servidor stdio, la pestaña Code usa la definición de `~/.claude.json`, apartándose de la [jerarquía de alcance](/docs/es/mcp#scope-hierarchy-and-precedence) de la CLI.

1092 1130 

1093<Note>1131<Note>

1094 La CLI independiente no lee `claude_desktop_config.json`. En macOS y WSL, ejecute `claude mcp add-from-claude-desktop` para copiar esos servidores en `~/.claude.json`. Consulte [Importar MCP servers desde Claude Desktop](/docs/es/mcp#import-mcp-servers-from-claude-desktop) para el flujo de importación y opciones de alcance.1132 La CLI independiente no lee `claude_desktop_config.json`. En macOS y WSL, ejecuta `claude mcp add-from-claude-desktop` para copiar esos servidores en `~/.claude.json`. Consulta [Importar servidores MCP desde Claude Desktop](/docs/es/mcp#import-mcp-servers-from-claude-desktop) para el flujo de importación y las opciones de alcance.

1095</Note>1133</Note>

1096 1134 

1097<h3 id="feature-comparison">1135<h3 id="feature-comparison">

1098 Comparación de características1136 Comparación de características

1099</h3>1137</h3>

1100 1138 

1101Esta tabla compara capacidades principales entre la CLI y Desktop. Para una lista completa de banderas de CLI, consulte la [referencia de CLI](/docs/es/cli-reference).1139Esta tabla compara capacidades principales entre la CLI y Desktop. Para una lista completa de banderas de CLI, consulta la [referencia de CLI](/docs/es/cli-reference).

1102 1140 

1103| Característica | CLI | Desktop |1141| Característica | CLI | Desktop |

1104| - | - | - |1142| - | - | - |

1105| Modos de permisos | Todos los modos incluyendo `dontAsk` | Manual, Aceptar ediciones, Plan y Auto. Bypass permissions aparece en el selector de modo una vez habilitado: a través del botón de alternancia de Configuración en planes Pro y Max, o a través de la política de la organización en planes Team y Enterprise |1143| Modos de permisos | Todos los modos incluyendo `dontAsk` | Manual, Aceptar ediciones, Plan y Auto. Bypass permissions aparece en el selector de modo una vez habilitado: a través del botón de alternancia de Configuración en planes Pro y Max, o a través de la política de la organización en planes Team y Enterprise |

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

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

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

1109| Archivos @mention | Basado en texto | Con autocompletado; sesiones locales y SSH solamente |1147| Archivos @mention | Basado en texto | Con autocompletado; sesiones locales y SSH solamente |

1110| Archivos adjuntos | No disponible | Imágenes, PDF |1148| Archivos adjuntos | No disponible | Imágenes, PDF |

1111| Aislamiento de sesión | Bandera [`--worktree`](/docs/es/cli-reference) | Opción **worktree** al iniciar una sesión |1149| Aislamiento de sesión | Bandera [`--worktree`](/docs/es/cli-reference) | Opción **worktree** al iniciar una sesión |

1112| Múltiples sesiones | Terminales separadas | Pestañas de barra lateral |1150| Múltiples sesiones | Terminales separadas | Pestañas de barra lateral |

1113| Tareas recurrentes | Trabajos cron, tuberías de CI | [Tareas programadas](/docs/es/desktop-scheduled-tasks) |1151| Tareas recurrentes | Trabajos cron, pipelines de CI | [Tareas programadas](/docs/es/desktop-scheduled-tasks) |

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

1115| Simulador de iOS | Conducir el simulador a través de [computer use](/docs/es/computer-use#test-a-simulator-flow) | [Panel iOS Simulator](/docs/es/desktop-ios-simulator) se abre automáticamente |1153| Simulador de iOS | Controlar el simulador a través de [computer use](/docs/es/computer-use#test-a-simulator-flow) | [Panel iOS Simulator](/docs/es/desktop-ios-simulator) se abre automáticamente |

1116| Integración de Dispatch | No disponible | [Sesiones de Dispatch](#sessions-from-dispatch) en la barra lateral |1154| Integración de Dispatch | No disponible | [Sesiones de Dispatch](#sessions-from-dispatch) en la barra lateral |

1117| Scripting y automatización | [`--print`](/docs/es/cli-reference), [Agent SDK](/docs/es/headless) | No disponible |1155| Scripting y automatización | [`--print`](/docs/es/cli-reference), [Agent SDK](/docs/es/headless) | No disponible |

1118 1156 


1122 1160 

1123Las siguientes características no están disponibles en Desktop, excepto donde se indique:1161Las siguientes características no están disponibles en Desktop, excepto donde se indique:

1124 1162 

1125* **Proveedores de terceros**: Desktop se conecta a la API de Anthropic de forma predeterminada. Para enrutar Desktop a través de una puerta de enlace, o para ejecutar la pestaña Code en Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry o una puerta de enlace LLM autohospedada, siga los enlaces en la fila [Proveedores de terceros](#feature-comparison).1163* **Proveedores de terceros**: Desktop se conecta a la API de Anthropic de forma predeterminada. Para enrutar Desktop a través de un gateway, o para ejecutar la pestaña Code en Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry o un gateway LLM autohospedado, sigue los enlaces en la fila [Proveedores de terceros](#feature-comparison).

1126* **Linux (beta)**: Computer Use aún no está disponible en la aplicación de escritorio Linux. Consulte [Claude Desktop en Linux](/docs/es/desktop-linux).1164* **Linux (beta)**: Computer Use aún no está disponible en la aplicación de escritorio para Linux. Consulta [Claude Desktop en Linux](/docs/es/desktop-linux).

1127* **Sugerencias de código en línea**: Desktop no proporciona sugerencias de estilo autocompletado. Funciona a través de solicitudes conversacionales y cambios de código explícitos.1165* **Sugerencias de código en línea**: Desktop no ofrece completados de código de estilo autocompletado. Funciona a través de prompts conversacionales y cambios de código explícitos, y puede [sugerir tu próximo prompt](#accept-a-suggested-prompt) después de que Claude responde.

1128* **Equipos de agentes**: equipos coordinados, donde Claude como líder del equipo asigna tareas a compañeros de equipo desde una lista de tareas compartida, están disponibles en la [CLI](/docs/es/agent-teams), no en Desktop. Para trabajo multiagente dentro de una sesión, use [flujos de trabajo dinámicos](/docs/es/workflows), que se ejecutan en Desktop; Claude también puede [enviar mensajes y gestionar sus otras sesiones](#work-across-sessions) directamente.1166* **Equipos de agentes**: los equipos coordinados, donde Claude como líder del equipo asigna tareas a compañeros de equipo desde una lista de tareas compartida, están disponibles en la [CLI](/docs/es/agent-teams), no en Desktop. Para trabajo multiagente dentro de una sesión, usa [flujos de trabajo dinámicos](/docs/es/workflows), que se ejecutan en Desktop; Claude también puede [enviar mensajes y gestionar tus otras sesiones](#work-across-sessions) directamente.

1129* **Comandos de diálogo de terminal**: comandos integrados que abren un panel interactivo en la terminal se comportan de manera diferente en la pestaña Code. Edite [archivos de configuración](/docs/es/settings) directamente para gestionar reglas de permisos y configuración, o ejecute los comandos desde la CLI independiente.1167* **Comandos de diálogo de terminal**: los comandos integrados que abren un panel interactivo en la terminal se comportan de manera diferente en la pestaña Code. Edita los [archivos de configuración](/docs/es/settings) directamente para gestionar reglas de permisos y configuración, o ejecuta los comandos desde la CLI independiente.

1130 * Los comandos sin forma de argumento, como `/permissions`, responden con `isn't available in this environment`.1168 * Los comandos sin forma de argumento, como `/permissions`, responden con `isn't available in this environment`.

1131 * `/config` abre Configuración → Claude Code. El texto después del comando se ignora, por lo que `/config theme=dark` no establece el tema.1169 * `/config` abre Configuración → Claude Code. El texto después del comando se ignora, por lo que `/config theme=dark` no establece el tema.

1132 1170 


1147 1185 

1148Haga clic en el número de versión para copiarlo a su portapapeles.1186Haga clic en el número de versión para copiarlo a su portapapeles.

1149 1187 

1188<h4 id="claude-code-version-in-the-code-tab">

1189 Versión de Claude Code en la pestaña Code

1190</h4>

1191 

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

1193 

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

1195 

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

1197 

1150<h3 id="403-or-authentication-errors-in-the-code-tab">1198<h3 id="403-or-authentication-errors-in-the-code-tab">

1151 Errores 403 o de autenticación en la pestaña Code1199 Errores 403 o de autenticación en la pestaña Code

1152</h3>1200</h3>

env-vars.md +275 −272

Details

126 Variables126 Variables

127</h2>127</h2>

128 128 

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

130 130 

131<Note>131<Note>

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

133 133 

134 Algunas variables solo comprueban si las estableces o no, por lo que cualquier valor no vacío, incluido `0`, activa el comportamiento, y lo desactivas quitando la variable o estableciéndola en un valor vacío. Estas variables funcionan así:134 Algunas variables solo comprueban si las estableciste o no, así que cualquier valor no vacío, incluido `0`, activa el comportamiento, y lo desactivas eliminando la variable o estableciéndola en un valor vacío. Estas variables funcionan así:

135 135 

136 * `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`136 * `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`

137 * `DISABLE_TELEMETRY`137 * `DISABLE_TELEMETRY`


140 * `FALLBACK_FOR_ALL_PRIMARY_MODELS`140 * `FALLBACK_FOR_ALL_PRIMARY_MODELS`

141 * `IS_DEMO`141 * `IS_DEMO`

142 142 

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

144</Note>144</Note>

145 145 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

197| `BASH_DEFAULT_TIMEOUT_MS` | Tiempo de espera predeterminado para un comando de la herramienta Bash o PowerShell en primer plano, en milisegundos (predeterminado: 120000, o 2 minutos). Un valor predeterminado mayor de 30 minutos también se convierte en el [límite de tiempo predeterminado para comandos en segundo plano](/docs/es/tools-reference#time-limit-for-background-commands) en sesiones desatendidas. El límite de tiempo en segundo plano requiere Claude Code v2.1.285 o posterior |197| `BASH_DEFAULT_TIMEOUT_MS` | Tiempo de espera predeterminado para un comando en primer plano de la herramienta Bash o PowerShell, en milisegundos (predeterminado: 120000, o 2 minutos). Un valor por encima del [límite de tiempo predeterminado para comandos en segundo plano](/docs/es/tools-reference#time-limit-for-background-commands) reemplaza ese valor predeterminado en sesiones desatendidas. El límite de tiempo en segundo plano requiere Claude Code v2.1.285 o posterior |

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

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

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

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

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

203| `CLAUDE_AFK_COUNTDOWN_MS` | Cuántos milisegundos antes de la continuación automática aparece la cuenta regresiva en pantalla en un diálogo [`AskUserQuestion`](/docs/es/tools-reference) sin responder. Predeterminado `20000` (20 segundos), limitado al tiempo de espera de continuación automática. No tiene efecto a menos que la continuación automática esté activada; consulta el ajuste [`askUserQuestionTimeout`](/docs/es/settings-reference#askuserquestiontimeout) y `CLAUDE_AFK_TIMEOUT_MS`. Requiere Claude Code v2.1.198 o posterior |203| `CLAUDE_AFK_COUNTDOWN_MS` | Cuántos milisegundos antes de la continuación automática aparece la cuenta regresiva en pantalla en un diálogo de [`AskUserQuestion`](/docs/es/tools-reference) sin responder. Predeterminado `20000` (20 segundos), limitado al tiempo de espera de la continuación automática. No tiene efecto a menos que la continuación automática esté activada; consulta el ajuste [`askUserQuestionTimeout`](/docs/es/settings-reference#askuserquestiontimeout) y `CLAUDE_AFK_TIMEOUT_MS`. Requiere Claude Code v2.1.198 o posterior |

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

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

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

207| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Tiempo de espera por bloqueo en milisegundos para subagentes. Predeterminado `600000` (10 minutos); si aumentas `CLAUDE_STREAM_IDLE_TIMEOUT_MS` mientras el watchdog de streaming está activado, el valor predeterminado aumenta con él, como se describe en [Manejar respuestas de la API lentas o bloqueadas](/docs/es/agent-sdk/typescript#handle-slow-or-stalled-api-responses). El temporizador se reinicia con cada evento de progreso del streaming; si no llega ningún progreso dentro de la ventana, Claude Code aborta el subagente e informa el bloqueo al padre |207| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Tiempo de espera por bloqueo en milisegundos para los subagentes. Predeterminado `600000` (10 minutos); si aumentas `CLAUDE_STREAM_IDLE_TIMEOUT_MS` mientras el watchdog de streaming está activado, el valor predeterminado aumenta con él, como describe [Manejar respuestas de la API lentas o bloqueadas](/docs/es/agent-sdk/typescript#handle-slow-or-stalled-api-responses). El temporizador se reinicia con cada evento de progreso del streaming; si no llega ningún progreso dentro de la ventana, Claude Code aborta el subagente e informa el bloqueo al agente padre |

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

242| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Establécela en `1` para desactivar la compatibilidad con la [ventana de contexto de 1M](/docs/es/model-config#extended-context). Cuando está establecida, las variantes de modelo de 1M no están disponibles en el selector de modelos, y Claude Code limita las sesiones en modelos con una ventana nativa de 1M, como [Sonnet 5.5](/docs/es/model-config#sonnet-5-5-and-sonnet-5-context-window) y los modelos Fable, a una ventana de 200K; consulta [Contexto extendido](/docs/es/model-config#extended-context) para ver cómo se aplica este límite. Útil para entornos empresariales con requisitos de cumplimiento. Para conocer su función en la corrección de la ventana para un ID de modelo `[1m]` no reconocido, consulta [Corregir la ventana para un gateway o ID de modelo personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |242| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Establécela en `1` para desactivar la compatibilidad con la [ventana de contexto de 1M](/docs/es/model-config#extended-context). Claude Code elimina las variantes de modelo `[1m]` del selector de modelos y limita a una ventana de 200K los modelos que se ejecutan con la ventana de 1M de forma predeterminada. Consulta [Desactivar el contexto de 1M](/docs/es/model-config#turn-off-1m-context). Útil para entornos empresariales con requisitos de cumplimiento. Para conocer su función al corregir la ventana de un ID de modelo `[1m]` no reconocido, consulta [Corregir la ventana para un ID de modelo de gateway o personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |

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

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

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

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

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

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

249| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Establécela en `1` para desactivar el procesamiento de adjuntos. Las menciones de archivos con la sintaxis `@` se envían como texto plano en lugar de expandirse al contenido del archivo |249| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Establécela en `1` para desactivar el procesamiento de archivos adjuntos. Las menciones de archivos con la sintaxis `@` se envían como texto sin formato en lugar de expandirse al contenido del archivo |

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

286| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | Establécela en `1` para omitir la [compactación automática](/docs/es/costs#reduce-token-usage) proactiva cuando Claude Code no reconoce el ID del modelo, como un alias de un [LLM gateway](/docs/es/llm-gateway). Sin esta variable, Claude Code compacta en la ventana de contexto que asume para el ID. `CLAUDE_CODE_MAX_CONTEXT_TOKENS` puede corregir la ventana asumida en su lugar; consulta [Corregir la ventana para un gateway o ID de modelo personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id) para saber cuándo se aplica cada variable. Requiere Claude Code v2.1.223 o posterior |286| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | Establécela en `1` para omitir la [compactación automática](/docs/es/costs#reduce-token-usage) proactiva cuando Claude Code no reconoce el ID del modelo, como un alias de un [gateway de LLM](/docs/es/llm-gateway). Sin esta variable, Claude Code compacta según la ventana de contexto que supone para el ID. `CLAUDE_CODE_MAX_CONTEXT_TOKENS` puede corregir la ventana supuesta en su lugar; consulta [Corregir la ventana para un ID de modelo de gateway o personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id) para saber cuándo se aplica cada variable. Requiere Claude Code v2.1.223 o posterior |

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

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

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

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

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

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

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

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

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

296| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Establécela en `1` para enviar la encuesta de calidad de sesión "How is Claude doing?" a tu propio [recopilador de OpenTelemetry](/docs/es/monitoring-usage) cuando el tráfico no esencial destinado a Anthropic está bloqueado. Las calificaciones de la encuesta se emiten solo como eventos OTEL a tu recopilador configurado. En este modo no se envían datos de la encuesta a Anthropic. Se aplica cuando se establece `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY` o `DO_NOT_TRACK`, y no tiene efecto en caso contrario. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` y la política de comentarios sobre el producto de la organización tienen precedencia |296| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Establécela en `1` para enviar la encuesta de calidad de sesión "How is Claude doing?" a tu propio [recopilador de OpenTelemetry](/docs/es/monitoring-usage) cuando el tráfico no esencial dirigido a Anthropic está bloqueado. Las calificaciones de la encuesta se emiten solo como eventos OTEL a tu recopilador configurado. En este modo no se envían datos de la encuesta a Anthropic. Se aplica cuando `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY` o `DO_NOT_TRACK` están establecidas, y no tiene efecto en otro caso. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` y la política de comentarios sobre el producto de la organización tienen precedencia |

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

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

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

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

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

302| `CLAUDE_CODE_ENABLE_TELEMETRY` | Establécela en `1` para habilitar la recopilación de datos de OpenTelemetry para métricas y registros. Es necesaria antes de configurar los exportadores de OTel. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env). Consulta [Monitoreo](/docs/es/monitoring-usage) |302| `CLAUDE_CODE_ENABLE_TELEMETRY` | Establécela en `1` para activar la recopilación de datos de OpenTelemetry para métricas y registros. Es necesaria antes de configurar los exportadores de OTel. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env). Consulta [Monitoreo](/docs/es/monitoring-usage) |

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

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

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

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

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

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

309| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | Establécela en `1` para forzar la representación tachada de `~~text~~` en las respuestas de Claude cuando tu terminal lo admite pero no se detecta automáticamente, como a través de SSH sin reenviar `TERM_PROGRAM`. Sin ella, las terminales no detectadas muestran los marcadores `~~` literales en lugar de representar el texto como tachado. Requiere Claude Code v2.1.186 o posterior |309| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | Establécela en `1` para forzar la representación del tachado de `~~text~~` en las respuestas de Claude cuando tu terminal lo admite pero no se detecta automáticamente, como por SSH sin reenviar `TERM_PROGRAM`. Sin esto, las terminales no detectadas muestran los marcadores `~~` literales en lugar de mostrar el texto tachado. Requiere Claude Code v2.1.186 o posterior |

310| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Establécela en `1` para forzar la activación de la [salida sincronizada](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) del modo privado DEC 2026 cuando tu terminal la admite pero no se detecta automáticamente. Útil para emuladores como `eat` de Emacs que implementan BSU/ESU pero no responden a la sonda de capacidades. No tiene efecto en tmux. A diferencia de `CLAUDE_CODE_NO_FLICKER`, que cambia a la [representación en pantalla completa](/docs/es/fullscreen), esta no cambia el renderizador |310| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Establécela en `1` para forzar la activación de la [salida sincronizada](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) del modo privado DEC 2026 cuando tu terminal lo admite pero no se detecta automáticamente. Útil para emuladores como `eat` de Emacs que implementan BSU/ESU pero no responden a la sonda de capacidades. No tiene efecto dentro de tmux. A diferencia de `CLAUDE_CODE_NO_FLICKER`, que cambia a la [representación en pantalla completa](/docs/es/fullscreen), esta no cambia el renderizador |

311| `CLAUDE_CODE_FORK_SUBAGENT` | Controla el [modo fork](/docs/es/sub-agents#turn-fork-mode-on-or-off), que permite a Claude generar [subagentes bifurcados](/docs/es/sub-agents#fork-the-current-conversation) por sí mismo y está activado de forma predeterminada solo en sesiones interactivas. Establécela en `1` para activarlo también en `claude -p` y en el Agent SDK, o en `0` para desactivarlo en todo tipo de sesión. Puedes ejecutar `/subtask` tanto si el modo fork está activado como si no. El valor predeterminado interactivo requiere Claude Code v2.1.232 o posterior; en versiones anteriores, establece la variable en `1` para activar el modo fork |311| `CLAUDE_CODE_FORCE_TERMINAL_IMAGES` | Establécela en `1` para dibujar los [elementos `Image` de los mods](/docs/es/plugins/mods/reference#elements) como imágenes cuando tu terminal dibuja imágenes del protocolo gráfico de kitty con marcadores de posición Unicode pero no se detecta automáticamente. Consulta [qué terminales detecta Claude Code](/docs/es/plugins/mods/gallery#image-and-client) y por qué no ayuda dentro de tmux o screen |

312| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | Establécela en `1` para emitir bloques de texto y de pensamiento de [subagentes](/docs/es/sub-agents) en la salida de `claude -p --output-format stream-json`, el mismo comportamiento que el flag [`--forward-subagent-text`](/docs/es/cli-reference#cli-flags). Usa la variable cuando un harness invoca `claude` y no puede pasar el flag por sí mismo. A diferencia del flag, que termina con un error fuera del modo no interactivo con salida stream-json, la variable se ignora allí para que las invocaciones anidadas sigan funcionando cuando se establece para todo el proceso. Requiere Claude Code v2.1.211 o posterior |312| `CLAUDE_CODE_FORK_SUBAGENT` | Controla el [modo de bifurcación](/docs/es/sub-agents#turn-fork-mode-on-or-off), que permite a Claude generar por sí mismo [subagentes bifurcados](/docs/es/sub-agents#fork-the-current-conversation) y que está activado de forma predeterminada solo en las sesiones interactivas. Establécela en `1` para activarlo también en `claude -p` y en el Agent SDK, o en `0` para desactivarlo en todo tipo de sesión. Puedes ejecutar `/subtask` esté o no activado el modo de bifurcación. El valor predeterminado interactivo requiere Claude Code v2.1.232 o posterior; en versiones anteriores, establece la variable en `1` para activar el modo de bifurcación |

313| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | Establécela en `1` para enviar los [encabezados de sugerencia del gateway](/docs/es/llm-gateway-protocol#gateway-hint-headers), como `x-claude-code-request-class` y `x-claude-code-compaction`, en un proxy personalizado o un proveedor externo como Amazon Bedrock o Claude Platform on AWS. Establécela en `0` para dejar de enviarlos en todas las conexiones, incluida una conexión directa a la API de Anthropic, donde Claude Code los envía de forma predeterminada. Requiere Claude Code v2.1.273 o posterior |313| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | Establécela en `1` para emitir los bloques de texto y de pensamiento de los [subagentes](/docs/es/sub-agents) en la salida de `claude -p --output-format stream-json`, el mismo comportamiento que el flag [`--forward-subagent-text`](/docs/es/cli-reference#cli-flags). Usa la variable cuando un harness invoca `claude` y no puede pasar el flag por sí mismo. A diferencia del flag, que termina con un error fuera del modo no interactivo con salida stream-json, la variable se ignora en esos casos para que las invocaciones anidadas sigan funcionando cuando se establece para todo el proceso. Requiere Claude Code v2.1.211 o posterior |

314| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | Tiempo de espera en milisegundos para la solicitud de [descubrimiento de modelos del gateway](/docs/es/llm-gateway-protocol#model-discovery) que activa `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` (predeterminado: `3000`). Auméntalo cuando tu gateway necesite más de tres segundos para responder a `/v1/models` al inicio. Solo acepta dígitos simples; `0`, los valores negativos y otras formas de escribirlo mantienen el valor predeterminado. Requiere Claude Code v2.1.269 o posterior |314| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | Establécela en `1` para enviar los [encabezados de sugerencia para gateways](/docs/es/llm-gateway-protocol#gateway-hint-headers), como `x-claude-code-request-class` y `x-claude-code-compaction`, a un proxy personalizado o a un proveedor externo como Amazon Bedrock o Claude Platform on AWS. Establécela en `0` para dejar de enviarlos en todas las conexiones, incluida una conexión directa a la API de Anthropic, donde Claude Code los envía de forma predeterminada. Requiere Claude Code v2.1.273 o posterior |

315| `CLAUDE_CODE_GIT_BASH_PATH` | Solo Windows: ruta al ejecutable de Git Bash (`bash.exe`). Úsala cuando Git Bash está instalado pero no está en tu PATH. Si la ruta no existe o el archivo no se llama `bash.exe`, `sh.exe`, `bash` o `sh`, Claude Code ignora la variable y detecta automáticamente Git Bash como si no estuviera establecida, y registra una advertencia visible con `--debug`. Antes de v2.1.219, Claude Code salía al inicio cuando la ruta no existía y usaba cualquier archivo existente como shell sin comprobar que fuera bash o sh. Consulta [Configuración en Windows](/docs/es/setup#set-up-on-windows) |315| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | Tiempo de espera en milisegundos para la solicitud de [descubrimiento de modelos del gateway](/docs/es/llm-gateway-protocol#model-discovery) que activa `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` (predeterminado: `3000`). Auméntalo cuando tu gateway necesite más de tres segundos para responder a `/v1/models` al iniciar. Solo acepta dígitos simples; `0`, los valores negativos y otras formas de escritura mantienen el valor predeterminado. Requiere Claude Code v2.1.269 o posterior |

316| `CLAUDE_CODE_GLOB_HIDDEN` | Establécela en `false` para excluir los dotfiles de los resultados cuando Claude invoca la [herramienta Glob](/docs/es/tools-reference#glob-tool-behavior). Se incluyen de forma predeterminada. No afecta al autocompletado de archivos con `@`, a `ls`, a Grep ni a Read |316| `CLAUDE_CODE_GIT_BASH_PATH` | Solo Windows: ruta al ejecutable de Git Bash (`bash.exe`). Úsala cuando Git Bash está instalado pero no está en tu PATH. Si la ruta no existe o el archivo no se llama `bash.exe`, `sh.exe`, `bash` ni `sh`, Claude Code ignora la variable y detecta Git Bash automáticamente como si no estuviera establecida, y registra una advertencia visible con `--debug`. Antes de v2.1.219, Claude Code terminaba al iniciar cuando la ruta no existía, y usaba cualquier archivo existente como shell sin comprobar que fuera bash o sh. Consulta [Configuración en Windows](/docs/es/setup#set-up-on-windows) |

317| `CLAUDE_CODE_GLOB_NO_IGNORE` | Establécela en `false` para que la [herramienta Glob](/docs/es/tools-reference#glob-tool-behavior) respete los patrones de `.gitignore`. De forma predeterminada, Glob devuelve todos los archivos coincidentes, incluidos los ignorados por git. No afecta al autocompletado de archivos con `@`, que tiene su propio [ajuste `respectGitignore`](/docs/es/settings-reference#respectgitignore) |317| `CLAUDE_CODE_GLOB_HIDDEN` | Establécela en `false` para excluir los dotfiles de los resultados cuando Claude invoca la [herramienta Glob](/docs/es/tools-reference#glob-tool-behavior). Se incluyen de forma predeterminada. No afecta el autocompletado de archivos con `@`, `ls`, Grep ni Read |

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

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

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

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

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

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

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

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

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

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

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

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

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

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

331| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | Número de [capas de subagentes](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents) permitidas por debajo de la conversación principal (predeterminado: 3). Con el predeterminado, los subagentes pueden generar sus propios subagentes, y un subagente en la tercera capa no puede generar más; establece `1` para desactivar el anidamiento. Desde v2.1.217 hasta v2.1.218, el predeterminado era 1, por lo que un subagente no podía generar los suyos a menos que aumentaras el límite; v2.1.219 aumentó el predeterminado a 3. Acepta un número entero positivo en dígitos simples; cualquier otro valor se ignora, por lo que el límite se puede ajustar pero no eliminar. Requiere Claude Code v2.1.217 o posterior |332| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | Número de [capas de subagentes](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents) permitidas debajo de la conversación principal (predeterminado: 3). Con el valor predeterminado, los subagentes pueden generar sus propios subagentes, y un subagente en la tercera capa no puede generar más; establécela en `1` para desactivar el anidamiento. En las versiones v2.1.217 a v2.1.218, el valor predeterminado era 1, por lo que un subagente no podía generar los suyos a menos que aumentaras el límite; v2.1.219 aumentó el valor predeterminado a 3. Acepta un número entero positivo en dígitos simples; cualquier otro valor se ignora, por lo que el límite se puede ajustar pero no eliminar. Requiere Claude Code v2.1.217 o posterior |

332| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Número máximo de herramientas de solo lectura y subagentes que pueden ejecutarse en paralelo (predeterminado: 10). Los valores más altos aumentan el paralelismo pero consumen más recursos |333| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Número máximo de herramientas de solo lectura y subagentes que pueden ejecutarse en paralelo (predeterminado: 10). Los valores más altos aumentan el paralelismo pero consumen más recursos |

333| `CLAUDE_CODE_MAX_TURNS` | Limita el número de turnos agénticos cuando no se pasa un límite explícito. Equivale a pasar [`--max-turns`](/docs/es/cli-reference#cli-flags), que tiene precedencia cuando ambos están establecidos. Un valor que no es un entero positivo se rechaza al inicio con un error en lugar de tratarse como sin límite |334| `CLAUDE_CODE_MAX_TURNS` | Limita el número de turnos agénticos cuando no se pasa un límite explícito. Equivale a pasar [`--max-turns`](/docs/es/cli-reference#cli-flags), que tiene precedencia cuando ambos están establecidos. Un valor que no es un entero positivo se rechaza al iniciar con un error en lugar de tratarse como sin límite |

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

335| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Establécela en `1` para iniciar los servidores MCP stdio solo con un entorno base seguro más el `env` configurado del servidor, en lugar de heredar el entorno de tu shell |336| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Establécela en `1` para iniciar los servidores MCP stdio solo con un entorno base seguro más el `env` configurado del servidor, en lugar de heredar el entorno de tu shell |

336| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | Tiempo transcurrido en milisegundos antes de que una llamada a herramienta MCP que sigue en ejecución [pase a una tarea en segundo plano](/docs/es/mcp#automatic-backgrounding-of-long-tool-calls) (predeterminado: 120000, o 2 minutos). Establécela en `0` para desactivar el paso automático a segundo plano. Requiere Claude Code v2.1.212 o posterior |337| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | Tiempo transcurrido en milisegundos antes de que una llamada a herramienta MCP que sigue en ejecución [pase a una tarea en segundo plano](/docs/es/mcp#automatic-backgrounding-of-long-tool-calls) (predeterminado: 120000, o 2 minutos). Establécela en `0` para desactivar el paso automático a segundo plano. Requiere Claude Code v2.1.212 o posterior |

337| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | Cuánto tiempo en milisegundos espera el primer turno de una sesión [no interactiva](/docs/es/headless) a los servidores MCP que todavía se están conectando, en lugar de la [espera del primer turno](/docs/es/agent-sdk/mcp#connection-timing) predeterminada. Cuando se establece, la espera cubre todos los servidores pendientes. Establécela en `0` para omitir la espera. Un servidor de [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags) mantiene su propia espera de `MCP_TIMEOUT` independientemente del valor. Requiere Claude Code v2.1.274 o posterior |338| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | Cuánto tiempo en milisegundos espera el primer turno de una sesión [no interactiva](/docs/es/headless) a los servidores MCP que todavía se están conectando, en lugar de la [espera del primer turno](/docs/es/agent-sdk/mcp#connection-timing) predeterminada. Cuando está establecida, la espera abarca todos los servidores pendientes. Establécela en `0` para omitir la espera. Un servidor de [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags) mantiene su propia espera de `MCP_TIMEOUT` sin importar el valor. Requiere Claude Code v2.1.274 o posterior |

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

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

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

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

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

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

344| `CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES` | Limita cuántas veces Claude Code vuelve a enviar una [solicitud sin streaming](/docs/es/errors#streaming-response-ended-before-any-complete-data-was-received) cuyo tiempo de espera se agota. Con `0`, la solicitud falla la primera vez que se agota el tiempo de espera. No está establecida de forma predeterminada, por lo que `CLAUDE_CODE_MAX_RETRIES` limita estos reenvíos. Consulta [Ajustar el comportamiento de reintento](/docs/es/errors#tune-retry-behavior) para conocer el tiempo de espera. Requiere Claude Code v2.1.285 o posterior |345| `CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES` | Limita cuántas veces Claude Code vuelve a enviar una [solicitud sin streaming](/docs/es/errors#streaming-response-ended-before-any-complete-data-was-received) cuando se agota su tiempo de espera. Con `0`, la solicitud falla la primera vez que se agota el tiempo de espera. Consulta [Ajustar el comportamiento de reintentos](/docs/es/errors#tune-retry-behavior) para conocer el tiempo de espera. Requiere Claude Code v2.1.285 o posterior |

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

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

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

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

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

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

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

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

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

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

355| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Establécela en `1` para permitir que Claude Code ejecute el comando de actualización de tu gestor de paquetes en segundo plano cuando haya una nueva versión disponible. Se aplica a instalaciones con Homebrew y WinGet. Otros gestores de paquetes siguen mostrando el comando de actualización sin ejecutarlo. Consulta [Actualizaciones automáticas](/docs/es/setup#auto-updates) |356| `CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS` | Retraso inicial en milisegundos, en lugar del predeterminado de 500, del retroceso exponencial entre [reintentos automáticos](/docs/es/errors#tune-retry-behavior) de una solicitud que la API rechaza con un error `529` de sobrecarga. Auméntalo para repartir los reintentos en una ventana más larga cuando la API está al límite de su capacidad. Indica milisegundos enteros de 500 a 32000 en dígitos simples; Claude Code trata cualquier otro valor como no establecido. No tiene efecto cuando `CLAUDE_CODE_RETRY_WATCHDOG` está establecida en `1`, ni cuando la solicitud rechazada se envió en [modo rápido](/docs/es/fast-mode#handle-rate-limits). Requiere Claude Code v2.1.292 o posterior |

356| `CLAUDE_CODE_PERFORCE_MODE` | Establécela en `1` para habilitar la protección contra escritura compatible con Perforce. Cuando se establece, Edit, Write y NotebookEdit fallan con una sugerencia `p4 edit <file>` si el archivo de destino no tiene el bit de escritura del propietario, que Perforce borra en los archivos sincronizados hasta que `p4 edit` los abre. Esto evita que Claude Code eluda el seguimiento de cambios de Perforce |357| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Establécela en `1` para permitir que Claude Code ejecute en segundo plano el comando de actualización de tu gestor de paquetes cuando haya una nueva versión disponible. Se aplica a las instalaciones con Homebrew y WinGet. Los demás gestores de paquetes siguen mostrando el comando de actualización sin ejecutarlo. Consulta [Actualizaciones automáticas](/docs/es/setup#auto-updates) |

357| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Sobrescribe el directorio raíz de plugins. A pesar del nombre, establece el directorio principal, no la caché en sí: los marketplaces y la caché de plugins se encuentran en subdirectorios de esta ruta. El valor predeterminado es `~/.claude/plugins` |358| `CLAUDE_CODE_PERFORCE_MODE` | Establécela en `1` para activar la protección contra escritura compatible con Perforce. Cuando está establecida, Edit, Write y NotebookEdit fallan con una sugerencia `p4 edit <file>` si el archivo de destino no tiene el bit de escritura del propietario, que Perforce desactiva en los archivos sincronizados hasta que `p4 edit` los abre. Esto evita que Claude Code eluda el seguimiento de cambios de Perforce |

358| `CLAUDE_CODE_PLUGIN_DIRS` | Directorios de plugins que se cargan para la sesión, cada uno cargado de la misma forma en que lo carga un flag [`--plugin-dir`](/docs/es/plugins/cli-reference#flags-that-load-a-plugin-for-one-session). Separa varias rutas con `:` en Unix o `;` en Windows. Indica cada ruta como una ruta absoluta o comiénzala con `~`, porque Claude Code omite las rutas relativas. Requiere Claude Code v2.1.280 o posterior. Consulta [Cargar un plugin para una sesión](/docs/es/plugins/create#load-a-directory-or-archive-for-one-session) |359| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Sobrescribe el directorio raíz de los plugins. A pesar del nombre, esto establece el directorio padre, no la caché en sí: los marketplaces y la caché de plugins se encuentran en subdirectorios bajo esta ruta. El valor predeterminado es `~/.claude/plugins` |

359| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | Controla si Claude Code recarga un [mod](/docs/es/plugins/mods/overview) cuando cambian los archivos del mod. La recarga se aplica a un mod que cargas desde un directorio con `--plugin-dir`, y está activada de forma predeterminada en sesiones interactivas. Establécela en `1` para activarla también en sesiones no interactivas, o en `0` para desactivarla en todas las sesiones. Requiere Claude Code v2.1.287 o posterior. Consulta [configuración y variables de entorno de los mods](/docs/es/plugins/mods/reference#settings-and-environment-variables) |360| `CLAUDE_CODE_PLUGIN_DIRS` | Directorios de plugins que se cargan para la sesión, cada uno cargado de la misma forma en que lo carga un flag [`--plugin-dir`](/docs/es/plugins/cli-reference#flags-that-load-a-plugin-for-one-session). Separa varias rutas con `:` en Unix o `;` en Windows. Indica cada ruta como una ruta absoluta o haz que empiece con `~`, porque Claude Code omite las rutas relativas. Requiere Claude Code v2.1.280 o posterior. Consulta [Cargar un plugin para una sesión](/docs/es/plugins/create#load-a-directory-or-archive-for-one-session) |

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

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

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

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

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

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

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

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

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

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

369| `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 cubre 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 conexión directa a la API de Anthropic. Se agregó en v2.1.152. Consulta [Trazas (beta)](/docs/es/monitoring-usage#traces-beta) |371| `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á activada cuando hay una conexión directa a la API de Anthropic. Se agregó en v2.1.152. Consulta [Trazas (beta)](/docs/es/monitoring-usage#traces-beta) |

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

371| `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 de activación voluntaria para entornos donde el proxy debe encargarse de la resolución de nombres de host |373| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Establécela en `1` para permitir que el proxy realice la resolución DNS en lugar del llamador. Es opcional, para entornos en los que el proxy debe encargarse de la resolución de nombres de host |

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

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

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

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

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

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

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

379| `CLAUDE_CODE_SAFE_MODE` | Establécela en `1` para iniciar en modo seguro: CLAUDE.md, skills, plugins, hooks, servidores MCP, comandos y agentes personalizados, estilos de salida, flujos de trabajo, temas personalizados, atajos de teclado personalizados, comandos de línea de estado y de sugerencia de archivos, servidores LSP y memoria automática no se cargan, para solucionar problemas de una configuración defectuosa. La política de configuración administrada sigue aplicándose, incluidos los hooks, la línea de estado y los comandos de sugerencia de archivos configurados por la política; los plugins administrados, los skills administrados, el CLAUDE.md administrado y los servidores MCP configurados por la política no. Equivale a pasar [`--safe-mode`](/docs/es/cli-reference#cli-flags). Los procesos hijos generados directamente heredan la variable |381| `CLAUDE_CODE_SAFE_MODE` | Establécela en `1` para iniciar en modo seguro: CLAUDE.md, skills, plugins, hooks, servidores MCP, comandos y agentes personalizados, estilos de salida, flujos de trabajo, temas personalizados, atajos de teclado personalizados, comandos de línea de estado y de sugerencia de archivos, servidores LSP y la memoria automática no se cargan, para solucionar problemas de una configuración dañada. La política de configuración administrada sigue aplicándose, incluidos los hooks, la línea de estado y los comandos de sugerencia de archivos configurados por política; los plugins administrados, los skills administrados, el CLAUDE.md administrado y los servidores MCP configurados por política no. Equivale a pasar [`--safe-mode`](/docs/es/cli-reference#cli-flags). Los procesos hijos iniciados directamente heredan la variable |

380| `CLAUDE_CODE_SCRIPT_CAPS` | Objeto JSON que limita cuántas veces se pueden invocar scripts específicos por sesión cuando se establece `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`. Las claves son subcadenas que se comparan con el texto del comando; los valores son límites enteros de llamadas. Por ejemplo, `{"deploy.sh": 2}` permite llamar a `deploy.sh` como máximo dos veces. La coincidencia se basa en subcadenas, por lo que los trucos de expansión del shell como `./scripts/deploy.sh $(evil)` siguen contando para el límite. La multiplicación en tiempo de ejecución mediante `xargs` o `find -exec` no se detecta; este es un control de defensa en profundidad |382| `CLAUDE_CODE_SCRIPT_CAPS` | Objeto JSON que limita cuántas veces se pueden invocar scripts específicos por sesión cuando `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` está establecida. Las claves son subcadenas que se comparan con el texto del comando; los valores son límites enteros de llamadas. Por ejemplo, `{"deploy.sh": 2}` permite llamar a `deploy.sh` como máximo dos veces. La coincidencia se basa en subcadenas, por lo que los trucos de expansión del shell como `./scripts/deploy.sh $(evil)` siguen contando para el límite. No se detecta la multiplicación en tiempo de ejecución mediante `xargs` o `find -exec`; este es un control de defensa en profundidad |

381| `CLAUDE_CODE_SCROLL_SPEED` | Establece el multiplicador de desplazamiento de la rueda del mouse en la [representación en pantalla completa](/docs/es/fullscreen#mouse-wheel-scrolling). Acepta cualquier valor positivo hasta 20, incluidos valores fraccionarios inferiores a 1, como `0.5`, para ralentizar el desplazamiento acelerado del trackpad y de la rueda en terminales que ya amplifican los eventos de la rueda. Establécela en `3` para igualar a `vim` si tu terminal envía un evento de rueda por cada muesca sin amplificación. Se ignora en la terminal del IDE de JetBrains, donde Claude Code usa su propio manejo del desplazamiento |383| `CLAUDE_CODE_SCROLL_SPEED` | Establece el multiplicador de desplazamiento de la rueda del mouse en la [representación en pantalla completa](/docs/es/fullscreen#mouse-wheel-scrolling). Acepta cualquier valor positivo hasta 20, incluidos valores fraccionarios menores que 1, como `0.5`, para ralentizar el desplazamiento acelerado del trackpad y la rueda en terminales que ya amplifican los eventos de la rueda. Establécela en `3` para igualar a `vim` si tu terminal envía un evento de rueda por muesca sin amplificación. Se ignora en la terminal del IDE de JetBrains, donde Claude Code usa su propio manejo del desplazamiento |

382| `CLAUDE_CODE_SEND_FEEDBACK` | Establécela en `0` para desactivar los [comentarios redactados por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior) en una sesión. Establécela en `1` para activarlos donde tu cuenta ya tiene acceso; la variable no puede conceder acceso por sí misma, y los otros interruptores que desactivan los comentarios, como `DISABLE_FEEDBACK_COMMAND` y el valor `off` del ajuste [`feedbackDrafts`](/docs/es/settings-reference#feedbackdrafts), siguen aplicándose |384| `CLAUDE_CODE_SEND_FEEDBACK` | Establécela en `0` para desactivar los [comentarios redactados por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior) en una sesión. Establécela en `1` para activarlos donde tu cuenta ya tiene acceso; la variable no puede otorgar acceso por sí misma, y los demás interruptores que desactivan los comentarios, como `DISABLE_FEEDBACK_COMMAND` y el valor `off` del ajuste [`feedbackDrafts`](/docs/es/settings-reference#feedbackdrafts), siguen aplicándose |

383| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | Sobrescribe el presupuesto de tiempo en milisegundos para los hooks [SessionEnd](/docs/es/hooks#sessionend). El valor también es el tiempo de espera para cada hook que no establece su propio `timeout`. Se aplica al salir de la sesión, a `/clear` y al cambiar de sesión mediante `/resume` interactivo. De forma predeterminada, el presupuesto es de 1.5 segundos, y se eleva automáticamente al `timeout` por hook más alto configurado en los archivos de configuración, hasta 60 segundos. Los tiempos de espera de los hooks proporcionados por plugins no elevan el presupuesto |385| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | Sobrescribe el presupuesto de tiempo en milisegundos para los hooks de [SessionEnd](/docs/es/hooks#sessionend). El valor también es el tiempo de espera de cada hook que no establece su propio `timeout`. Se aplica al salir de la sesión, a `/clear` y al cambiar de sesión mediante `/resume` interactivo. De forma predeterminada, el presupuesto es de 1.5 segundos y se eleva automáticamente al `timeout` por hook más alto configurado en los archivos de configuración, hasta 60 segundos. Los tiempos de espera de los hooks proporcionados por plugins no elevan el presupuesto |

384| `CLAUDE_CODE_SESSION_ID` | Se establece automáticamente con el ID de la sesión actual en los subprocesos de las herramientas Bash y PowerShell, los subprocesos de [comandos de hook](/docs/es/hooks) y los subprocesos de [servidores MCP](/docs/es/mcp) stdio. Para Bash, PowerShell y hooks, coincide con el campo `session_id` de la entrada JSON del hook y se actualiza con `/clear`. Un subproceso de servidor MCP conserva el ID con el que se generó. Con `--resume <session-id>` recibe el ID reanudado, igual que los hooks y Bash. Con `--continue` o `--resume` sin un ID explícito, puede recibir en su lugar el ID inicial de arranque. Úsala para correlacionar scripts y herramientas externas con la sesión de Claude Code que los inició |386| `CLAUDE_CODE_SESSION_ID` | Se establece automáticamente con el ID de la sesión actual en los subprocesos de las herramientas Bash y PowerShell, en los subprocesos de los [comandos de hooks](/docs/es/hooks) y en los subprocesos de los [servidores MCP](/docs/es/mcp) stdio. Para Bash, PowerShell y los hooks, coincide con el campo `session_id` de la entrada JSON del hook y se actualiza con `/clear`. Un subproceso de servidor MCP conserva el ID con el que se inició. Con `--resume <session-id>` recibe el ID reanudado, en coincidencia con los hooks y Bash. Con `--continue` o `--resume` sin un ID explícito, puede recibir en su lugar el ID inicial del arranque. Úsala para correlacionar scripts y herramientas externas con la sesión de Claude Code que los inició |

385| `CLAUDE_CODE_SHELL` | Establece el shell que Claude Code usa para ejecutar los comandos de la herramienta Bash. Acepta una ruta a un binario de `bash` o `zsh`, por ejemplo `/opt/homebrew/bin/bash`. Otros shells como `fish` no son compatibles. Si el valor no es una ruta funcional de `bash` o `zsh`, Claude Code lo ignora y recurre a la detección automática. La detección automática usa tu `$SHELL` cuando apunta a `bash` o `zsh`; de lo contrario, elige el primer `zsh` y luego `bash` funcional que encuentre en tu `PATH` y en las ubicaciones de instalación estándar |387| `CLAUDE_CODE_SHELL` | Establece el shell que Claude Code usa para ejecutar los comandos de la herramienta Bash. Acepta una ruta a un binario de `bash` o `zsh`, por ejemplo `/opt/homebrew/bin/bash`. Otros shells como `fish` no son compatibles. Si el valor no es una ruta válida de `bash` o `zsh`, Claude Code lo ignora y recurre a la detección automática. La detección automática usa tu `$SHELL` cuando apunta a `bash` o `zsh`; de lo contrario, elige el primer `zsh` y luego `bash` válidos que encuentre en tu `PATH` y en las ubicaciones de instalación estándar |

386| `CLAUDE_CODE_SHELL_PREFIX` | Prefijo de comando que envuelve los comandos de shell que Claude Code genera: llamadas a la herramienta Bash, comandos de [hooks](/docs/es/hooks), comandos de la [línea de estado](/docs/es/statusline) y comandos de inicio de [servidores MCP](/docs/es/mcp) stdio. Los hooks de PowerShell y los hooks en forma exec se ejecutan sin el prefijo. Útil para registro o auditoría. Establecer una ruta de ejecutable simple como `/path/to/logger.sh` ejecuta cada comando como `/path/to/logger.sh '<command>'`. El wrapper recibe la línea de comandos como un único argumento entrecomillado para el shell en `$1`, por lo que el wrapper debe volver a evaluar `$1` con un shell, por ejemplo `exec bash -c "$1"`. Tratar `$1` como una ruta de ejecutable simple rompe los servidores MCP stdio que pasan argumentos como `npx -y <package>`. Para las llamadas a la herramienta Bash, `$1` contiene la invocación completa del shell que ensambla Claude Code, incluida la configuración del entorno, no solo el comando que ejecutó Claude |388| `CLAUDE_CODE_SHELL_PREFIX` | Prefijo de comando que envuelve los comandos de shell que inicia Claude Code: llamadas a la herramienta Bash, comandos de [hooks](/docs/es/hooks), comandos de la [línea de estado](/docs/es/statusline) y comandos de inicio de los [servidores MCP](/docs/es/mcp) stdio. Los hooks de PowerShell y los hooks en forma exec se ejecutan sin el prefijo. Útil para registro o auditoría. Establecer una ruta de ejecutable simple como `/path/to/logger.sh` ejecuta cada comando como `/path/to/logger.sh '<command>'`. El envoltorio recibe la línea de comandos como un único argumento entre comillas de shell en `$1`, por lo que el envoltorio debe volver a evaluar `$1` con un shell, por ejemplo `exec bash -c "$1"`. Tratar `$1` como una ruta de ejecutable simple rompe los servidores MCP stdio que pasan argumentos como `npx -y <package>`. Para las llamadas a la herramienta Bash, `$1` contiene la invocación completa del shell que arma Claude Code, incluida la configuración del entorno, no solo el comando que ejecutó Claude |

387| `CLAUDE_CODE_SIMPLE` | Establécela en `1` para ejecutar con un prompt del sistema mínimo y solo las herramientas Bash, de lectura de archivos y de edición de archivos. Las herramientas MCP de `--mcp-config` siguen disponibles. Deshabilita el descubrimiento automático de hooks, skills, comandos personalizados, subagentes, plugins instalados, servidores MCP, memoria automática y CLAUDE.md. Los skills de un directorio que pasas con `--add-dir` se siguen cargando. Los tokens de OAuth y las credenciales del llavero no se leen, por lo que la autenticación de Anthropic debe provenir de `ANTHROPIC_API_KEY` o de un `apiKeyHelper` en `--settings`. Equivale a pasar [`--bare`](/docs/es/headless#start-faster-with-bare-mode) |389| `CLAUDE_CODE_SIMPLE` | Establécela en `1` para ejecutar con un prompt del sistema mínimo y solo las herramientas Bash, de lectura de archivos y de edición de archivos. Las herramientas MCP de `--mcp-config` siguen disponibles. Desactiva el descubrimiento automático de hooks, skills, comandos personalizados, subagentes, plugins instalados, servidores MCP, memoria automática y CLAUDE.md. Los skills de un directorio que pasas con `--add-dir` se siguen cargando. No se leen los tokens de OAuth ni las credenciales del llavero, por lo que la autenticación de Anthropic debe provenir de `ANTHROPIC_API_KEY` o de un `apiKeyHelper` en `--settings`. Equivale a pasar [`--bare`](/docs/es/headless#start-faster-with-bare-mode) |

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

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

390| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | Establécela en `1` para desactivar la caché en proceso de las credenciales resueltas a partir de la cadena de proveedores de credenciales predeterminada de AWS, de modo que Claude Code resuelva la cadena en cada solicitud a la API. Con la caché desactivada, un perfil respaldado por SSO solicita credenciales a IAM Identity Center en cada solicitud. Consulta [almacenamiento en caché de credenciales y tiempo de espera de resolución](/docs/es/amazon-bedrock#credential-caching-and-resolution-timeout). Requiere Claude Code v2.1.207 o posterior |392| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | Establécela en `1` para desactivar la caché en proceso de las credenciales resueltas a partir de la cadena de proveedores de credenciales predeterminada de AWS, de modo que Claude Code resuelva la cadena en cada solicitud a la API. Con la caché desactivada, un perfil respaldado por SSO solicita credenciales a IAM Identity Center en cada solicitud. Consulta [almacenamiento en caché de credenciales y tiempo de espera de resolución](/docs/es/amazon-bedrock#credential-caching-and-resolution-timeout). Requiere Claude Code v2.1.207 o posterior |

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

428| `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` | Cuando `CLAUDE_AUTO_BACKGROUND_TASKS` está establecida en `1`, cuánto tiempo espera Claude Code antes de cada recordatorio a Claude para que revise los [subagentes en segundo plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background) que siguen en ejecución. Acepta una o más esperas separadas por comas, en segundos enteros de `1` a `86400`, como `600` o `600,1800,3600`. Cada valor es la espera antes del siguiente recordatorio, y el último valor se repite. Solo acepta dígitos simples; cualquier otro valor o escritura se interpreta como no establecida. Cuando no está establecida, no hay recordatorios. Requiere Claude Code v2.1.283 o posterior |430| `CLAUDE_CODE_WEB_SEARCH_REFILLS_PER_HOUR` | Ritmo al que se recarga el [límite de WebSearch](/docs/es/tools-reference#session-search-limit) de una sesión, en llamadas por hora. El valor predeterminado es `100` en una sesión interactiva de terminal. En una sesión [no interactiva](/docs/es/headless), el valor predeterminado es `0`, lo que desactiva la recarga. Solo acepta dígitos simples; cualquier otra escritura se interpreta como no establecida. Requiere Claude Code v2.1.290 o posterior |

429| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | Cuántos agentes ejecuta a la vez una sola ejecución de [flujo de trabajo](/docs/es/workflows), de `1` a `256`. De forma predeterminada, una ejecución ejecuta hasta 16 agentes a la vez, menos cuando Claude Code tiene menos CPU disponibles; las llamadas a `agent()` en cola esperan a que haya un espacio libre. La transcripción de cada agente en ejecución permanece en la memoria de Claude Code, por lo que los valores más altos aumentan el uso de memoria. Solo acepta dígitos simples; los valores fuera de rango y otras escrituras mantienen el valor predeterminado. Requiere Claude Code v2.1.269 o posterior |431| `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` | Cuando `CLAUDE_AUTO_BACKGROUND_TASKS` está establecida en `1`, cuánto tiempo espera Claude Code antes de cada recordatorio a Claude para que revise los [subagentes en segundo plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background) que siguen en ejecución. Acepta una o más esperas separadas por comas en segundos enteros de `1` a `86400`, como `600` o `600,1800,3600`. Cada valor es la espera antes del siguiente recordatorio, y el último valor se repite. Solo acepta dígitos simples; cualquier otro valor o escritura se interpreta como no establecida. Cuando no está establecida, no hay recordatorios. Requiere Claude Code v2.1.283 o posterior |

430| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Límite superior en milisegundos del tiempo que un agente de [flujo de trabajo](/docs/es/workflows) espera a que comience la primera respuesta de un agente hermano con el mismo prefijo antes de enviar su propia primera solicitud. Cuando una distribución en abanico inicia varios agentes que comparten un [prefijo de caché de prompts](/docs/es/workflows#prompt-caching-in-a-fan-out), Claude Code retiene a todos los agentes excepto el primero hasta este tiempo, para que los demás lean el prefijo en caché en lugar de que cada uno lo procese sin caché. Valor predeterminado: `5000`. Establécela en `0` para desactivar la espera. Cuando `DISABLE_PROMPT_CACHING` está establecida, los agentes nunca esperan. Requiere Claude Code v2.1.229 o posterior |432| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | Cuántos agentes ejecuta a la vez una sola ejecución de [flujo de trabajo](/docs/es/workflows), de `1` a `256`. De forma predeterminada, una ejecución ejecuta hasta 16 agentes a la vez, menos cuando Claude Code tiene menos CPU disponibles; las llamadas `agent()` en cola esperan a que haya un hueco libre. La transcripción de cada agente en ejecución permanece en la memoria de Claude Code, por lo que los valores más altos aumentan el uso de memoria. Solo acepta dígitos simples; los valores fuera de rango y otras escrituras mantienen el valor predeterminado. Requiere Claude Code v2.1.269 o posterior |

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

448| `DISABLE_COST_WARNINGS` | Establécela en `1` para deshabilitar los mensajes de advertencia de costos |451| `DISABLE_COST_WARNINGS` | Establécela en `1` para deshabilitar los mensajes de advertencia de costos |

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

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

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

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

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

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

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

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

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

458| `DISABLE_LOGOUT_COMMAND` | Establécela en `1` para ocultar el comando `/logout` |461| `DISABLE_LOGOUT_COMMAND` | Establécela en `1` para ocultar el comando `/logout` |

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


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

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

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

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

466| `DISABLE_UPGRADE_COMMAND` | Establécela en `1` para ocultar el comando `/upgrade` |469| `DISABLE_UPGRADE_COMMAND` | Establécela en `1` para ocultar el comando `/upgrade` |

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

499| `OTEL_LOG_ASSISTANT_RESPONSES` | Establécela en `1` para incluir el texto de la respuesta del modelo en los eventos de registro de OpenTelemetry `assistant_response`. Cuando no está establecida, Claude Code usa en su lugar el valor de `OTEL_LOG_USER_PROMPTS`. Establécela en `0` para mantener las respuestas ocultas incluso cuando `OTEL_LOG_USER_PROMPTS` está establecida. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env). Requiere Claude Code v2.1.193 o posterior. Consulta [Monitoreo](/docs/es/monitoring-usage#assistant-response-event) |502| `OTEL_LOG_ASSISTANT_RESPONSES` | Establécela en `1` para incluir el texto de respuesta del modelo en los eventos de registro de OpenTelemetry `assistant_response`. Cuando no está establecida, Claude Code usa en su lugar el valor de `OTEL_LOG_USER_PROMPTS`. Establécela en `0` para mantener las respuestas ocultas incluso cuando `OTEL_LOG_USER_PROMPTS` está establecida. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env). Requiere Claude Code v2.1.193 o posterior. Consulta [Monitoreo](/docs/es/monitoring-usage#assistant-response-event) |

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

501| `OTEL_LOG_RAW_API_BODIES` | Emite el JSON de solicitud y respuesta de la API Messages de Anthropic como eventos de registro `api_request_body` / `api_response_body`. Establécela en `1` para cuerpos en línea truncados en el límite de contenido, o en `file:<dir>` para escribir los cuerpos sin truncar en el disco y emitir en su lugar una ruta `body_ref`. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` configura el límite de contenido, 60 KB de forma predeterminada. Deshabilitada de forma predeterminada; los cuerpos incluyen todo el historial de la conversación. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env). Consulta [Monitoreo](/docs/es/monitoring-usage#api-request-body-event) |504| `OTEL_LOG_RAW_API_BODIES` | Emite el JSON de solicitud y respuesta de la Messages API de Anthropic como eventos de registro `api_request_body` / `api_response_body`. Establécela en `1` para cuerpos en línea truncados en el límite de contenido, o en `file:<dir>` para escribir los cuerpos sin truncar en disco y emitir en su lugar una ruta `body_ref`. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` configura el límite de contenido, 60 KB de forma predeterminada. Deshabilitada de forma predeterminada; los cuerpos incluyen todo el historial de la conversación. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env). Consulta [Monitoreo](/docs/es/monitoring-usage#api-request-body-event) |

502| `OTEL_LOG_TOOL_CONTENT` | Establécela en `1` para incluir el contenido de las herramientas en el evento de span de OpenTelemetry `tool.output`. Los atributos de span llevan el contenido de las herramientas bajo [sus propios controles](/docs/es/monitoring-usage#new-context-gates). Requiere [rastreo](/docs/es/monitoring-usage#traces-beta). Deshabilitada de forma predeterminada para proteger los datos confidenciales. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env), salvo los valores de desactivación que describe esa sección. Consulta [Monitoreo](/docs/es/monitoring-usage#tool-output-span-event) |505| `OTEL_LOG_TOOL_CONTENT` | Establécela en `1` para incluir el contenido de las herramientas en el evento de span de OpenTelemetry `tool.output`. Los atributos de span llevan el contenido de las herramientas bajo [sus propios controles](/docs/es/monitoring-usage#new-context-gates). Requiere [tracing](/docs/es/monitoring-usage#traces-beta). Deshabilitada de forma predeterminada para proteger los datos confidenciales. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env), salvo los valores de desactivación que describe esa sección. Consulta [Monitoreo](/docs/es/monitoring-usage#tool-output-span-event) |

503| `OTEL_LOG_TOOL_DETAILS` | Establécela en `1` para incluir los argumentos de entrada de las herramientas; los nombres de los servidores MCP; los nombres de flujos de trabajo creados por el usuario; las cadenas de error sin procesar en los fallos de herramientas; la `category` de rechazo en los eventos `api_refusal`; los nombres reales de agentes, skills, plugins y servidores MCP en las [métricas de costos y tokens](/docs/es/monitoring-usage#cost-counter); y otros detalles de las herramientas en las métricas, trazas y registros de OpenTelemetry. Deshabilitada de forma predeterminada para proteger la PII. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env), salvo los valores de desactivación que describe esa sección. Consulta [Monitoreo](/docs/es/monitoring-usage) |506| `OTEL_LOG_TOOL_DETAILS` | Establécela en `1` para incluir los argumentos de entrada de las herramientas; los nombres de servidores MCP; los nombres de flujos de trabajo creados por el usuario; las cadenas de error sin procesar en los fallos de herramientas; la `category` de rechazo en los eventos `api_refusal`; los nombres reales de agentes, skills, plugins y servidores MCP en las [métricas de costos y tokens](/docs/es/monitoring-usage#cost-counter); y otros detalles de herramientas en las métricas, trazas y registros de OpenTelemetry. Deshabilitada de forma predeterminada para proteger la PII. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env), salvo los valores de desactivación que describe esa sección. Consulta [Monitoreo](/docs/es/monitoring-usage) |

504| `OTEL_LOG_USER_PROMPTS` | Establécela en `1` para incluir el texto de los prompts del usuario en las trazas y registros de OpenTelemetry. Deshabilitada de forma predeterminada (los prompts se ocultan). Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env), salvo los valores de desactivación que describe esa sección. Consulta [Monitoreo](/docs/es/monitoring-usage) |507| `OTEL_LOG_USER_PROMPTS` | Establécela en `1` para incluir el texto de los prompts del usuario en las trazas y registros de OpenTelemetry. Deshabilitada de forma predeterminada (los prompts se ocultan). Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env), salvo los valores de desactivación que describe esa sección. Consulta [Monitoreo](/docs/es/monitoring-usage) |

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

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


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

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

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

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

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

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

514| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Sobrescribe la región para Claude 3.5 Haiku al usar Google Cloud's Agent Platform |517| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Sobrescribe la región para Claude 3.5 Haiku al usar Google Cloud's Agent Platform |

515| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Sobrescribe la región para Claude 3.5 Sonnet al usar Google Cloud's Agent Platform |518| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Sobrescribe la región para Claude 3.5 Sonnet al usar Google Cloud's Agent Platform |


532| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Sobrescribe la región para Claude Haiku 4.5 al usar Google Cloud's Agent Platform |535| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Sobrescribe la región para Claude Haiku 4.5 al usar Google Cloud's Agent Platform |

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

534 537 

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

536 539 

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

538 541 


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

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

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

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

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

592* Obtener [comentarios redactados por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior), que Claude Code activa mediante un flag obtenido595* Obtener [comentarios redactados por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior), que Claude Code activa mediante un flag obtenido

593* Hacer que Claude [trate los pegados grandes como texto pegado en lugar de texto escrito](/docs/es/terminal-config#how-claude-treats-pasted-text); el contenido detrás de un marcador de posición `[Pasted text #N]` llega a Claude sin marcar596* Hacer que Claude [trate los pegados grandes como texto pegado en lugar de texto escrito](/docs/es/terminal-config#how-claude-treats-pasted-text); el contenido detrás de un marcador de posición `[Pasted text #N]` llega a Claude sin marcar

errors.md +66 −69

Details

436| :- | :- | :- |436| :- | :- | :- |

437| [`CLAUDE_CODE_MAX_RETRIES`](/docs/es/env-vars) | 10 | Número de reintentos. Limitado a 15 a partir de v2.1.186; a partir de v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` aumenta el valor predeterminado y elimina el límite. Redúcelo para que los fallos aparezcan más rápido en scripts. |437| [`CLAUDE_CODE_MAX_RETRIES`](/docs/es/env-vars) | 10 | Número de reintentos. Limitado a 15 a partir de v2.1.186; a partir de v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` aumenta el valor predeterminado y elimina el límite. Redúcelo para que los fallos aparezcan más rápido en scripts. |

438| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/es/env-vars) | sin establecer | Establécelo en `1` en sesiones desatendidas, como trabajos de CI, para reintentar errores de capacidad `429` y `529` indefinidamente en lugar de fallar después de `CLAUDE_CODE_MAX_RETRIES` intentos. Claude Code falla de inmediato cuando una solicitud de velocidad estándar recibe un `429` que reporta un límite de gasto o créditos de uso agotados, incluso uno de un [límite de gasto de un gateway](#spend-limit-reached) que se restablece según un calendario. Antes de v2.1.239, el watchdog los reintentaba indefinidamente. Para solicitudes en modo rápido, consulta [Handle rate limits](/docs/es/fast-mode#handle-rate-limits). En v2.1.199 o posterior, también aumenta el número predeterminado de reintentos para otros errores transitorios, como errores del servidor, tiempos de espera agotados y conexiones perdidas, a 300, aproximadamente tres horas de retroceso, y elimina el límite de 15 en `CLAUDE_CODE_MAX_RETRIES` si estableces esa variable explícitamente. |438| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/es/env-vars) | sin establecer | Establécelo en `1` en sesiones desatendidas, como trabajos de CI, para reintentar errores de capacidad `429` y `529` indefinidamente en lugar de fallar después de `CLAUDE_CODE_MAX_RETRIES` intentos. Claude Code falla de inmediato cuando una solicitud de velocidad estándar recibe un `429` que reporta un límite de gasto o créditos de uso agotados, incluso uno de un [límite de gasto de un gateway](#spend-limit-reached) que se restablece según un calendario. Antes de v2.1.239, el watchdog los reintentaba indefinidamente. Para solicitudes en modo rápido, consulta [Handle rate limits](/docs/es/fast-mode#handle-rate-limits). En v2.1.199 o posterior, también aumenta el número predeterminado de reintentos para otros errores transitorios, como errores del servidor, tiempos de espera agotados y conexiones perdidas, a 300, aproximadamente tres horas de retroceso, y elimina el límite de 15 en `CLAUDE_CODE_MAX_RETRIES` si estableces esa variable explícitamente. |

439| [`CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS`](/docs/es/env-vars) | 500 | Retraso inicial en milisegundos del retroceso entre reintentos de una solicitud que la API rechaza con un error de sobrecarga `529`. Auméntalo, hasta 32000, para distribuir los reintentos en un período más largo cuando la API está al límite de su capacidad. No tiene efecto cuando `CLAUDE_CODE_RETRY_WATCHDOG` está establecido en `1`, ni cuando la solicitud rechazada se envió en [modo rápido](/docs/es/fast-mode#handle-rate-limits). Requiere Claude Code v2.1.292 o posterior. |

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

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

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


706 Límites de uso707 Límites de uso

707</h2>708</h2>

708 709 

709La mayoría de los errores en esta sección significan que se ha alcanzado una cuota vinculada a su cuenta o plan. Tres funcionan de manera diferente: [`Server is temporarily limiting requests`](#server-is-temporarily-limiting-requests) es un acelerador del lado del servidor no relacionado con su cuota de plan, [`Usage credits required for 1M context`](#usage-credits-required-for-1m-context) es una verificación de derechos en lugar de una cuota agotada, y [`The prompt to confirm went unanswered`](#the-prompt-to-confirm-went-unanswered) significa que un aviso de consentimiento de créditos de uso se cerró sin respuesta, independientemente de si se alcanzó una cuota.710La mayoría de los errores en esta sección significan que se alcanzó una cuota vinculada a tu cuenta o plan. Tres funcionan de manera diferente: [`Server is temporarily limiting requests`](#server-is-temporarily-limiting-requests) es una limitación del lado del servidor no relacionada con la cuota de tu plan, [`Usage credits required for 1M context`](#usage-credits-required-for-1m-context) es una verificación de derechos en lugar de una cuota agotada, y [`The prompt to confirm went unanswered`](#the-prompt-to-confirm-went-unanswered) significa que una solicitud de consentimiento de créditos de uso se cerró sin respuesta, independientemente de si se alcanzó una cuota.

710 711 

711<h3 id="youve-hit-your-session-limit">712<h3 id="youve-hit-your-session-limit">

712 You've hit your session limit713 You've hit your session limit

713</h3>714</h3>

714 715 

715Los planes de suscripción incluyen una asignación de uso móvil. Cuando se agota, verá uno de estos mensajes:716Los planes de suscripción incluyen una asignación de uso móvil. Cuando se agota, verás uno de estos mensajes:

716 717 

717```text theme={null}718```text theme={null}

718You've hit your session limit · resets 3:45pm719You've hit your session limit · resets 3:45pm


721You've hit your Sonnet limit · resets 3:45pm722You've hit your Sonnet limit · resets 3:45pm

722```723```

723 724 

724Claude Code bloquea las solicitudes adicionales hasta la hora de reinicio que se muestra en el mensaje. Los límites de sesión y semanales se comparten entre todos los modelos, por lo que cambiar de modelo no restaura el acceso. Los límites de Opus y Sonnet se aplican solo a las solicitudes a esa familia de modelos, por lo que cambiar a un modelo fuera de la familia con `/model` le permite seguir trabajando.725Claude Code bloquea las solicitudes adicionales hasta la hora de reinicio que se muestra en el mensaje. Los límites de sesión y semanales se comparten entre todos los modelos, por lo que cambiar de modelo no restaura el acceso. Los límites de Opus y Sonnet se aplican solo a las solicitudes a esa familia de modelos, por lo que cambiar a un modelo fuera de la familia con `/model` te permite seguir trabajando.

725 726 

726En una sesión interactiva iniciada con una suscripción de claude.ai, Claude Code también puede esperar en la sesión abierta y continuar la tarea interrumpida poco después del reinicio. Consulta [Wait for a usage limit to reset](/docs/es/interactive-mode#wait-for-a-usage-limit-to-reset) para ver qué se muestra, cómo iniciar o cancelar una espera y cómo desactivar la continuación automática. Antes de v2.1.234, Claude Code no ofrecía esta espera.727En una sesión interactiva iniciada con una suscripción de claude.ai, Claude Code también puede esperar en la sesión abierta y continuar la tarea interrumpida poco después del reinicio. Consulta [Esperar a que se reinicie un límite de uso](/docs/es/interactive-mode#wait-for-a-usage-limit-to-reset) para ver qué se muestra, cómo iniciar o cancelar una espera y cómo desactivar la continuación automática. Antes de v2.1.234, Claude Code no ofrecía esta espera.

727 728 

728El uso se cuenta contra las asignaciones de sesión y semanales al mismo tiempo. Una única ráfaga de actividad pesada, como un gran fanout de flujo de trabajo, puede agotar la asignación semanal antes de que se reinicie la ventana de sesión.729El uso se cuenta contra las asignaciones de sesión y semanales al mismo tiempo. Una única ráfaga de actividad intensa, como un gran fanout de flujo de trabajo, puede agotar la asignación semanal antes de que se reinicie la ventana de sesión.

729 730 

730**Qué hacer:**731**Qué hacer:**

731 732 

732* Espere la hora de reinicio que se muestra en el error733* Espera la hora de reinicio que se muestra en el error

733* En la pestaña Code de la [aplicación de escritorio](/docs/es/desktop), la tarjeta de límite de sesión ofrece una casilla de verificación **Auto-continue when limits reset**. La tarjeta de límite semanal no. Cuando está marcada, la aplicación de escritorio reintenta el turno interrumpido después del reinicio y muestra la hora del reintento en la tarjeta. La casilla de verificación de escritorio y la configuración **Continue automatically at usage limit** de la CLI en `/config` son independientes, así que desactive cada una por separado.734* En la pestaña Code de la [aplicación de escritorio](/docs/es/desktop), la tarjeta de límite de sesión ofrece una casilla de verificación **Auto-continue when limits reset**. La tarjeta de límite semanal no. Cuando está marcada, la aplicación de escritorio reintenta el turno interrumpido después del reinicio y muestra la hora del reintento en la tarjeta. La casilla de verificación de escritorio y el ajuste **Continue automatically at usage limit** de la CLI en `/config` son independientes, así que desactiva cada uno por separado.

734* Para el límite de Opus o Sonnet, ejecute `/model` y cambie a un modelo fuera de esa familia para seguir trabajando. Cada modelo tiene su propio caché de aviso, por lo que la siguiente solicitud relee toda la conversación sin aciertos de caché; consulte [Switching models](/docs/es/prompt-caching#switching-models)735* Para el límite de Opus o Sonnet, ejecuta `/model` y cambia a un modelo fuera de esa familia para seguir trabajando. Cada modelo tiene su propia caché de prompts, por lo que la siguiente solicitud relee toda la conversación sin aciertos de caché; consulta [Cambiar de modelo](/docs/es/prompt-caching#switching-models)

735* Ejecute `/usage` para ver los límites de su plan y cuándo se reinician736* Ejecuta `/usage` para ver los límites de tu plan y cuándo se reinician

736* Ejecute `/usage-credits` para comprar uso adicional en Pro y Max, o para solicitarlo a su administrador en Team y Enterprise. Consulte [usage credits for paid plans](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) para ver cómo se factura esto.737* Ejecuta `/usage-credits` para comprar uso adicional en Pro y Max, o para solicitarlo a tu administrador en Team y Enterprise. Consulta [créditos de uso para planes de pago](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) para ver cómo se factura esto.

737* Para actualizar su plan para obtener límites base más altos, consulte [claude.com/pricing](https://claude.com/pricing)738* Para actualizar tu plan y obtener límites base más altos, consulta [claude.com/pricing](https://claude.com/pricing)

738 739 

739Antes de que se agote una ventana, Claude Code puede advertirle que ha utilizado la mayor parte de ella, con un mensaje como `You've used 85% of your session limit · resets 3:45pm`. Para ver su asignación restante continuamente, agregue los campos `rate_limits` a una [línea de estado personalizada](/docs/es/statusline#rate-limit-usage), o en la aplicación de escritorio haga clic en el [anillo de uso](/docs/es/desktop#check-usage) junto al selector de modelo.740Antes de que se agote una ventana, Claude Code puede advertirte que usaste la mayor parte de ella, con un mensaje como `You've used 85% of your session limit · resets 3:45pm`. Para ver tu asignación restante de forma continua, agrega los campos `rate_limits` a una [línea de estado personalizada](/docs/es/statusline#rate-limit-usage), o en la aplicación de escritorio haz clic en el [anillo de uso](/docs/es/desktop#check-usage) junto al selector de modelo.

740 741 

741<h3 id="usage-credits-required-for-1m-context">742<h3 id="usage-credits-required-for-1m-context">

742 Usage credits required for 1M context743 Usage credits required for 1M context

743</h3>744</h3>

744 745 

745El modelo seleccionado utiliza la ventana de contexto extendida de 1M tokens, y su plan solo la incluye a través de créditos de uso.746El modelo seleccionado utiliza la ventana de contexto extendida de 1M tokens, y tu plan solo la incluye a través de créditos de uso.

746 747 

747```text theme={null}748```text theme={null}

748API Error: Usage credits required for 1M context · run /usage-credits to turn them on (they take effect after you restart Claude Code), or /model to switch to standard context749API Error: Usage credits required for 1M context · run /usage-credits to turn them on (they take effect after you restart Claude Code), or /model to switch to standard context

749```750```

750 751 

751En una sesión que ejecuta la aplicación Claude Desktop, el aviso no nombra comandos: apunta a la página de configuración de uso de claude.ai, o en planes Team y Enterprise dice que active los créditos de uso en claude.ai/admin-settings/usage o que pida a su administrador.752En una sesión que ejecuta la aplicación Claude Desktop, la sugerencia no nombra comandos: apunta a la página de configuración de uso de claude.ai, o en los planes Team y Enterprise indica que actives los créditos de uso en claude.ai/admin-settings/usage o que se lo pidas a tu administrador.

752 753 

753Esta es una verificación de derechos, no un agotamiento de cuota. Se activa incluso cuando sus asignaciones de sesión y semanales tienen capacidad restante. Consulte [Extended context](/docs/es/model-config#extended-context) para ver qué planes incluyen contexto de 1M directamente y cuáles requieren créditos de uso.754Esta es una verificación de derechos, no un agotamiento de cuota. Se activa incluso cuando tus asignaciones de sesión y semanales tienen capacidad restante. Consulta [Contexto extendido](/docs/es/model-config#extended-context) para ver qué planes incluyen el contexto de 1M directamente y cuáles requieren créditos de uso.

754 755 

755Cuando este error aparece a mitad de la conversación porque el contexto creció más allá de 200K tokens, Claude Code compacta automáticamente la conversación nuevamente bajo el límite de contexto estándar y mantiene la sesión en ese límite después, por lo que no se requiere acción. En versiones anteriores a v2.1.172, el error se repetía en cada solicitud posterior, incluida `/compact`; ejecute `/clear` en esas versiones para recuperarse. Los pasos a continuación se aplican cuando seleccionó explícitamente un modelo `[1m]`.756Cuando este error aparece a mitad de la conversación porque el contexto creció más allá de 200K tokens, Claude Code compacta automáticamente la conversación para volver a quedar bajo el límite de contexto estándar y mantiene la sesión en ese límite después, por lo que no se requiere ninguna acción. En versiones anteriores a v2.1.172, el error se repetía en cada solicitud posterior, incluida `/compact`; ejecuta `/clear` en esas versiones para recuperarte. Los pasos a continuación se aplican cuando seleccionaste explícitamente un modelo `[1m]`.

756 757 

757**Qué hacer:**758**Qué hacer:**

758 759 

759* Ejecute `/model` y seleccione la variante sin el sufijo `[1m]` para volver a la ventana de contexto estándar760* Ejecuta `/model` y selecciona la variante sin el sufijo `[1m]` para volver a la ventana de contexto estándar

760* Donde el mensaje menciona `/usage-credits`, ejecútelo para activar la facturación medida para la variante de 1M en Pro y Max, o para solicitar créditos de uso a su administrador en Team y Enterprise. Una vez que los créditos de uso estén activados, reinicie Claude Code o inicie una nueva sesión, lo que diga el mensaje. Hasta entonces, la sesión permanece en el límite de contexto estándar.761* Donde el mensaje menciona `/usage-credits`, ejecútalo para activar la facturación medida de la variante de 1M en Pro y Max, o para solicitar créditos de uso a tu administrador en Team y Enterprise. Una vez que los créditos de uso estén activados, reinicia Claude Code o inicia una nueva sesión, según lo que indique el mensaje. Hasta entonces, la sesión permanece en el límite de contexto estándar.

761* Si el error persiste después de `/model`, un ID de modelo de 1M puede estar configurado en otro lugar. Consulte [Setting your model](/docs/es/model-config#setting-your-model) para ver las ubicaciones de configuración a verificar en orden de prioridad.762* Si el error persiste después de `/model`, es posible que un ID de modelo de 1M esté configurado en otro lugar. Consulta [Configurar tu modelo](/docs/es/model-config#setting-your-model) para ver las ubicaciones de configuración que debes verificar en orden de prioridad.

762* Para eliminar variantes de 1M del selector de modelo por completo, establezca [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/es/env-vars)763* Para eliminar por completo las variantes de 1M del selector de modelo, establece [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/es/env-vars)

763 764 

764Antes de v2.1.268, el mensaje terminaba con `run /usage-credits to turn them on, or /model to switch to standard context` y no mencionaba reiniciar.765Antes de v2.1.268, el mensaje terminaba con `run /usage-credits to turn them on, or /model to switch to standard context` y no mencionaba reiniciar.

765 766 


767 The prompt to confirm went unanswered768 The prompt to confirm went unanswered

768</h3>769</h3>

769 770 

770Si su cuenta requiere el [consentimiento de créditos de uso de Fable](/docs/es/model-config#fable-and-usage-credits), Claude Code le pide que confirme antes de que una solicitud de Fable facture créditos de uso. Cuando el aviso de consentimiento se cierra sin que nadie lo responda, Claude Code termina el turno con uno de estos mensajes:771Si tu cuenta requiere el [consentimiento de créditos de uso de Fable](/docs/es/model-config#fable-and-usage-credits), Claude Code te pide que confirmes antes de que una solicitud de Fable facture créditos de uso. Cuando la solicitud de consentimiento se cierra sin que nadie la responda, Claude Code termina el turno con uno de estos mensajes:

771 772 

772```text theme={null}773```text theme={null}

773Fable limit reached · continuing on Fable 5.1 uses usage credits, and the prompt to confirm went unanswered — nothing was sent · answer it where this session is running, or /model to change774Fable limit reached · continuing on Fable 5.1 uses usage credits, and the prompt to confirm went unanswered — nothing was sent · answer it where this session is running, or /model to change

774Fable 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 change775Fable 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

775```776```

776 777 

777Los mensajes nombran el modelo Fable de la sesión, por lo que en Fable 5 leen `continuing on Fable 5` y `Fable 5 now uses usage credits`. Antes de v2.1.257, el primer mensaje comenzaba `Fable 5 limit reached`.778Los 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`.

778 779 

779Esto sucede en sesiones de [Remote Control](/docs/es/remote-control), [sesiones en segundo plano](/docs/es/agent-view), [equipo de agentes](/docs/es/agent-teams) sesiones de compañeros, y sesiones que otra aplicación aloja a través del Agent SDK. Para saber cuándo Claude Code cierra el aviso, consulte [Fable and usage credits](/docs/es/model-config#fable-and-usage-credits).780Esto sucede en sesiones de [Remote Control](/docs/es/remote-control), [sesiones en segundo plano](/docs/es/agent-view), sesiones de compañeros de un [equipo de agentes](/docs/es/agent-teams) 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](/docs/es/model-config#fable-and-usage-credits).

780 781 

781**Qué hacer:**782**Qué hacer:**

782 783 

783* Donde se ejecuta la sesión, en la terminal o en la aplicación que la aloja, envíe otro aviso y responda el aviso de consentimiento cuando reaparezca. Para una sesión en segundo plano, adjúntese a ella desde la [vista de agentes](/docs/es/agent-view) primero. Reenviar desde un cliente de Remote Control muestra este mensaje nuevamente, porque el cliente no puede mostrar el aviso.784* Donde se ejecuta la sesión, en la terminal o en la aplicación que la aloja, envía otro prompt y responde la solicitud de consentimiento cuando vuelva a aparecer. Para una sesión en segundo plano, primero conéctate a ella desde la [vista de agentes](/docs/es/agent-view). Reenviar desde un cliente de Remote Control vuelve a mostrar este mensaje, porque el cliente no puede mostrar la solicitud.

784* Ejecute `/model` para cambiar a un modelo que no facture créditos de uso785* Ejecuta `/model` para cambiar a un modelo que no facture créditos de uso

785* Para darse más tiempo, establezca [`dialogExpiry`](/docs/es/settings-reference#dialogexpiry) en un valor más largo o `"never"`786* Para darte más tiempo, establece [`dialogExpiry`](/docs/es/settings-reference#dialogexpiry) en un valor más largo o en `"never"`

786 787 

787Antes de v2.1.236, este mensaje no aparecía: mientras un cliente de Remote Control estaba conectado, Claude Code esperaba 60 segundos una respuesta y luego continuaba el turno en su modelo predeterminado.788Antes de v2.1.236, este mensaje no aparecía: mientras un cliente de Remote Control estaba conectado, Claude Code esperaba 60 segundos una respuesta y luego continuaba el turno con tu modelo predeterminado.

788 789 

789<h3 id="server-is-temporarily-limiting-requests">790<h3 id="server-is-temporarily-limiting-requests">

790 Server is temporarily limiting requests791 Server is temporarily limiting requests

791</h3>792</h3>

792 793 

793La API aplicó un acelerador de corta duración que no está relacionado con su cuota de plan.794La API aplicó una limitación de corta duración que no está relacionada con la cuota de tu plan.

794 795 

795```text theme={null}796```text theme={null}

796API Error: Server is temporarily limiting requests (not your usage limit)797API Error: Server is temporarily limiting requests (not your usage limit)

797```798```

798 799 

799Claude Code distingue estos de su límite de plan por la ausencia de los encabezados de cuota unificada que lleva una respuesta de límite real. A partir de v2.1.199, esto se [reintenta automáticamente](#automatic-retries) con retroceso antes de mostrarse, independientemente de cómo se autentique. En versiones anteriores, una sesión con una suscripción de claude.ai falló el turno en la primera ocurrencia; solo las claves API y los inicios de sesión de Enterprise lo reintentaron.800Claude Code distingue esto del límite de tu plan por la ausencia de los encabezados de cuota unificada que incluye una respuesta de límite real. A partir de v2.1.199, esto se [reintenta automáticamente](#automatic-retries) con retroceso antes de mostrarse, sin importar cómo te autentiques. En versiones anteriores, una sesión iniciada con una suscripción de claude.ai hacía fallar el turno en la primera ocurrencia; solo los inicios de sesión con clave de API y de Enterprise lo reintentaban.

800 801 

801**Qué hacer:**802**Qué hacer:**

802 803 

803* Espere brevemente e intente de nuevo804* Espera un momento e inténtalo de nuevo

804* Consulte [status.claude.com](https://status.claude.com) si persiste805* Consulta [status.claude.com](https://status.claude.com) si persiste

805 806 

806<h3 id="request-rejected-429">807<h3 id="request-rejected-429">

807 Request rejected (429)808 Request rejected (429)

808</h3>809</h3>

809 810 

810Ha alcanzado el límite de velocidad configurado para su clave API, proyecto de Amazon Bedrock o proyecto de Google Cloud.811Alcanzaste el rate limit configurado para tu clave de API, tu proyecto de Amazon Bedrock o tu proyecto de Google Cloud.

811 812 

812```text theme={null}813```text theme={null}

813API Error: Request rejected (429) · this may be a temporary capacity issue. If it persists, check https://status.claude.com.814API Error: Request rejected (429) · this may be a temporary capacity issue. If it persists, check https://status.claude.com.

814```815```

815 816 

816La oración final nombra dónde verificar el estado del servicio y varía según el proveedor. Las configuraciones de Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry nombran el estado del servicio de ese proveedor en lugar de la página de estado de Anthropic. Un `ANTHROPIC_BASE_URL` personalizado nombra el host de la puerta de enlace.817La oración final indica dónde verificar el estado del servicio y varía según el proveedor. Las configuraciones de Amazon Bedrock, Agent Platform de Google Cloud y Microsoft Foundry nombran el estado del servicio de ese proveedor en lugar de la página de estado de Anthropic. Un `ANTHROPIC_BASE_URL` personalizado nombra el host del gateway.

817 818 

818Cuando un proxy, equilibrador de carga o puerta de enlace entre Claude Code y la API responde con su propia página HTML 429, el texto después del `·` es el título de esa página cuando tiene uno, como `Too Many Requests`. Antes de v2.1.281, el marcado completo de la página se imprimía después del `·`.819Cuando un proxy, un balanceador de carga o un gateway entre Claude Code y la API responde con su propia página HTML 429, el texto después del `·` es el título de esa página cuando lo tiene, como `Too Many Requests`. Antes de v2.1.281, se imprimía todo el marcado de la página después del `·`.

819 820 

820**Qué hacer:**821**Qué hacer:**

821 822 

822* Ejecute `/status` y confirme que la credencial activa es la que espera. Un `ANTHROPIC_API_KEY` extraviado en su entorno puede enrutar solicitudes a través de una clave de nivel bajo en lugar de su suscripción.823* Ejecuta `/status` y confirma que la credencial activa es la que esperas. Un `ANTHROPIC_API_KEY` olvidado en tu entorno puede enrutar las solicitudes a través de una clave de nivel bajo en lugar de tu suscripción.

823* Consulte la consola de su proveedor para ver los límites activos y solicite un nivel más alto si es necesario824* Consulta la consola de tu proveedor para ver los límites activos y solicita un nivel más alto si es necesario

824* Para claves API de Anthropic, consulte la [referencia de límites de velocidad](https://platform.claude.com/docs/en/api/rate-limits) para ver cómo funcionan los niveles y cómo establecer límites por espacio de trabajo825* Para claves de API de Anthropic, consulta la [referencia de rate limits](https://platform.claude.com/docs/en/api/rate-limits) para ver cómo funcionan los niveles y cómo establecer límites por espacio de trabajo

825* Reduzca la concurrencia: baje [`CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY`](/docs/es/env-vars), evite ejecutar muchos subagentes paralelos, o cambie a un modelo más pequeño con `/model` para ejecuciones de alto volumen con scripts826* Reduce la concurrencia: baja [`CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY`](/docs/es/env-vars), evita ejecutar muchos subagentes en paralelo o cambia a un modelo más pequeño con `/model` para ejecuciones con scripts de alto volumen

826 827 

827<h3 id="youve-hit-your-monthly-spend-limit">828<h3 id="youve-hit-your-monthly-spend-limit">

828 You've hit your monthly spend limit829 You've hit your monthly spend limit

829</h3>830</h3>

830 831 

831El uso incluido en su plan no puede cubrir esta solicitud, y los [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) que de otro modo pagarían por ella han alcanzado un límite de gasto. Eso sucede cuando una de las ventanas de uso de su plan se ha agotado, o cuando la solicitud es una que solo los créditos de uso pagan, como una solicitud a un modelo que [factura a créditos de uso](/docs/es/model-config#fable-and-usage-credits). El mensaje nombra cuyo límite lo bloqueó. El texto después del `·` dice cómo aumentar ese límite, y varía con su plan y si usted gestiona la facturación:832El uso incluido en tu plan no puede cubrir esta solicitud, y los [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) que de otro modo la pagarían alcanzaron un límite de gasto. Eso sucede cuando se agotó una de las ventanas de uso de tu plan, o cuando la solicitud es de las que solo pagan los créditos de uso, como una solicitud a un modelo que [se factura con créditos de uso](/docs/es/model-config#fable-and-usage-credits). El mensaje indica de quién es el límite que te bloqueó. El texto después del `·` dice cómo conseguir que se aumente ese límite, y varía según tu plan y si gestionas la facturación:

832 833 

833```text theme={null}834```text theme={null}

834You've hit your monthly spend limit · raise it at claude.ai/settings/usage835You've hit your monthly spend limit · raise it at https://claude.ai/settings/usage?from=cc_cli_limit_message

835You've hit your individual spend limit · ask your admin for a higher limit836You've hit your individual spend limit · ask your admin for a higher limit

836You've hit your org's monthly spend limit · visit claude.ai/admin-settings/usage to raise it837You've hit your org's monthly spend limit · visit https://claude.ai/admin-settings/usage to raise it

837You've hit your team's shared budget · ask your admin to raise it at claude.ai/admin-settings/usage838You've hit your team's shared budget · ask your admin to raise it at https://claude.ai/admin-settings/usage

838You've hit your channel's monthly spend limit · an org owner or channel manager can raise it in the channel's Claude settings839You've hit your channel's monthly spend limit · an org owner or channel manager can raise it in the channel's Claude settings

839```840```

840 841 

841`team's shared budget` es un presupuesto agrupado que un administrador asignó a un grupo al que pertenece; el mensaje no nombra el grupo. `channel's monthly spend limit` es el presupuesto del único canal de Slack en el que se ejecuta la sesión, por lo que su organización aún puede tener presupuesto fuera de él.842`team's shared budget` es un presupuesto compartido que un administrador asignó a un grupo al que perteneces; el mensaje no nombra el grupo. `channel's monthly spend limit` es el presupuesto del canal de Slack específico en el que se ejecuta la sesión, por lo que tu organización aún puede tener presupuesto fuera de él.

842 843 

843Cuando una de las ventanas de su plan es lo que se agotó, el mensaje también dice cuándo se reinicia esa ventana, por ejemplo `· your session limit resets 3:45pm`, y el acceso regresa entonces sin que nadie aumente el límite. En organizaciones con facturación basada en el uso, el mensaje dice `usage limit` en lugar de `spend limit`, como en `You've hit your individual usage limit`.844Cuando lo que se agotó es una de las ventanas de tu plan, el mensaje también dice cuándo se reinicia esa ventana, por ejemplo `· your session limit resets 3:45pm`, y el acceso vuelve en ese momento sin que nadie aumente el límite. En organizaciones con facturación basada en el uso, el mensaje dice `usage limit` en lugar de `spend limit`, como en `You've hit your individual usage limit`.

844 845 

845Antes de v2.1.239, el mensaje no nombraba la hora de reinicio de la ventana del plan. Antes de v2.1.268, el presupuesto agrupado de un grupo producía el mensaje `individual spend limit` en lugar de `team's shared budget`.846Si te conectas a través de un gateway de aplicaciones Claude y ves `spend limit reached` en minúsculas, se trata en cambio del límite del operador de tu gateway; consulta [Spend limit reached](#spend-limit-reached).

846 

847Si se conecta a través de una puerta de enlace de aplicaciones Claude y ve `spend limit reached` en minúsculas, ese es el límite de su operador de puerta de enlace en su lugar; consulte [Spend limit reached](#spend-limit-reached).

848 847 

849**Qué hacer:**848**Qué hacer:**

850 849 

851* En Pro y Max, aumente su límite de gasto mensual en [**Settings > Usage**](https://claude.ai/settings/usage) en claude.ai, o ejecute `/usage-credits`850* En Pro y Max, aumenta tu límite de gasto mensual en [**Settings > Usage**](https://claude.ai/settings/usage) en claude.ai, o ejecuta `/usage-credits`

852* En Team y Enterprise, aumenta el límite en [**Organization settings > Usage**](https://claude.ai/admin-settings/usage) si gestionas la facturación, o pídele a un administrador que lo haga. `/usage-credits` envía esa solicitud a tu administrador por ti851* En Team y Enterprise, aumenta el límite en [**Organization settings > Usage**](https://claude.ai/admin-settings/usage) si gestionas la facturación, o pídele a un administrador que lo haga. `/usage-credits` envía esa solicitud a tu administrador por ti

853* Para el límite de un canal, pida a un propietario de la organización o al gerente del canal que lo aumente en claude.ai. Consulte [Per-channel limits](https://claude.com/docs/claude-tag/admins/set-spend-limit#per-channel-limits) en la documentación de Claude Tag852* Para el límite de un canal, pide a un propietario de la organización o al administrador del canal que lo aumente en claude.ai. Consulta [Per-channel limits](https://claude.com/docs/claude-tag/admins/set-spend-limit#per-channel-limits) en la documentación de Claude Tag

854* Si el mensaje nombra una hora de reinicio para la ventana de su plan, puede esperar en su lugar853* Si el mensaje indica una hora de reinicio para la ventana de tu plan, puedes esperar a que llegue

855* Ejecute `/usage` para ver las ventanas de su plan y cuándo se reinicia cada una854* Ejecuta `/usage` para ver las ventanas de tu plan y cuándo se reinicia cada una

856 855 

857<h3 id="spend-limit-reached">856<h3 id="spend-limit-reached">

858 Spend limit reached857 Spend limit reached

859</h3>858</h3>

860 859 

861Se conecta a través de una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) y ha superado un [límite de gasto](/docs/es/claude-apps-gateway-spend-limits) que estableció el operador de su puerta de enlace. La puerta de enlace bloquea sus solicitudes hasta que se reinicia el período nombrado o el operador aumenta el límite. Marca cada respuesta `429` bloqueada con `x-should-retry: false`, por lo que Claude Code muestra este mensaje sin reintentar.860Te conectas a través de un [gateway de aplicaciones Claude](/docs/es/claude-apps-gateway) y superaste un [límite de gasto](/docs/es/claude-apps-gateway-spend-limits) 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.

862 861 

863```text theme={null}862```text theme={null}

864spend limit reached (daily; resets 2026-08-09 00:00 UTC)863spend limit reached (daily; resets 2026-08-09 00:00 UTC)

865```864```

866 865 

867El mensaje nombra el período del límite y la hora de reinicio, y cuando el operador configuró un `blocked_message`, sus instrucciones lo siguen. Antes de v2.1.225, el mensaje leía solo `spend limit reached`; una puerta de enlace en una versión anterior aún envía esa forma más corta.866El 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.

868 867 

869**Qué hacer:**868**Qué hacer:**

870 869 

871* Espere la hora de reinicio que nombra el mensaje, o siga las instrucciones del operador si el mensaje las lleva870* Espera la hora de reinicio que indica el mensaje, o sigue las instrucciones del operador si el mensaje las incluye

872* Pida al operador de su puerta de enlace que aumente el límite si lo alcanza rutinariamente871* Pide al operador de tu gateway que aumente el límite si lo alcanzas con frecuencia

873 872 

874Un mensaje relacionado, `spend limit unavailable`, significa que la puerta de enlace no pudo leer sus registros de gasto y bloqueó la solicitud como precaución en lugar de sobre su límite. Generalmente se resuelve por sí solo; si persiste, informe al operador de su puerta de enlace.873Un 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.

875 874 

876<h3 id="credit-balance-is-too-low">875<h3 id="credit-balance-is-too-low">

877 Credit balance is too low876 Credit balance is too low

878</h3>877</h3>

879 878 

880Su organización de Console se ha quedado sin créditos prepagados, o Claude Code está enviando sus solicitudes con una clave API de Console cuando pretendía usar su suscripción.879Tu organización de Console se quedó sin créditos prepagados, o Claude Code está enviando tus solicitudes con una clave de API de Console cuando querías usar tu suscripción.

881 880 

882```text theme={null}881```text theme={null}

883Credit balance is too low882Credit balance is too low


885 884 

886**Qué hacer:**885**Qué hacer:**

887 886 

888* Si tiene un plan Pro, Max, Team o Enterprise y ve esto, ejecute `/status` y verifique la fila `API key`. Un `ANTHROPIC_API_KEY` aprobado en su entorno enruta solicitudes a través de esa clave en lugar de su suscripción. Desactívelo en el shell actual y elimínelo de su perfil de shell, luego reinicie `claude`. Ejecute `/login` si aún no ha iniciado sesión con su suscripción.887* Si tienes un plan Pro, Max, Team o Enterprise y ves esto, ejecuta `/status` y revisa la fila `API key`. Un `ANTHROPIC_API_KEY` aprobado en tu entorno enruta las solicitudes a través de esa clave en lugar de tu suscripción. Elimina la variable en el shell actual y quítala de tu perfil de shell, luego vuelve a iniciar `claude`. Ejecuta `/login` si aún no iniciaste sesión con tu suscripción.

889* Agregue créditos en [platform.claude.com/settings/billing](https://platform.claude.com/settings/billing), y considere habilitar la recarga automática allí para que el saldo se rellene antes de que llegue a cero888* Agrega créditos en [platform.claude.com/settings/billing](https://platform.claude.com/settings/billing), y considera activar ahí la recarga automática para que el saldo se recargue antes de llegar a cero

890* Establezca límites de gasto por espacio de trabajo en la Console para evitar que un único proyecto agote el saldo de la organización. Consulte [Manage costs effectively](/docs/es/costs).889* Establece límites de gasto por espacio de trabajo en la Console para evitar que un solo proyecto agote el saldo de la organización. Consulta [Administrar los costos de forma eficaz](/docs/es/costs).

891 890 

892<h3 id="could-not-update-your-spend-limit">891<h3 id="could-not-update-your-spend-limit">

893 Could not update your spend limit892 Could not update your spend limit

894</h3>893</h3>

895 894 

896El servidor rechazó un cambio de límite de gasto que realizó desde el aviso que aparece cuando alcanza su límite de gasto.895El servidor rechazó un cambio de límite de gasto que hiciste desde la solicitud que aparece cuando alcanzas tu límite de gasto.

897 896 

898```text theme={null}897```text theme={null}

899Could not update your spend limit: <reason from the server>898Could not update your spend limit: <reason from the server>

900```899```

901 900 

902Cuando el servidor explica el rechazo, el mensaje termina con esa razón, y reintentar el mismo valor falla nuevamente. Cuando el fallo no tiene una razón proporcionada por el servidor, como una conexión perdida, el mensaje lee `Could not update your spend limit. Press Enter to retry.` y reintentar puede tener éxito. Antes de v2.1.216, Claude Code mostraba la forma genérica para cada fallo.901Cuando el servidor explica el rechazo, el mensaje termina con esa razón, y reintentar con el mismo valor vuelve a fallar. Cuando el fallo no tiene una razón proporcionada por el servidor, como una conexión perdida, el mensaje dice `Could not update your spend limit. Press Enter to retry.` y reintentar puede funcionar. Antes de v2.1.216, Claude Code mostraba la forma genérica para todos los fallos.

903 902 

904**Qué hacer:**903**Qué hacer:**

905 904 

906* Si el mensaje incluye una razón, elija un límite que la satisfaga, como una cantidad más baja905* Si el mensaje incluye una razón, elige un límite que la cumpla, como una cantidad menor

907* Si el mensaje muestra solo la forma genérica, reintente; el fallo puede ser transitorio906* Si el mensaje muestra solo la forma genérica, reintenta; el fallo puede ser transitorio

908* Si el cambio sigue fallando, hágalo desde su [configuración de facturación de claude.ai](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) en el navegador en su lugar907* Si el cambio sigue fallando, hazlo en cambio desde tu [configuración de facturación de claude.ai](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) en el navegador

909 908 

910<h2 id="authentication-errors">909<h2 id="authentication-errors">

911 Errores de autenticación910 Errores de autenticación


2861 2860 

2862Si el mensaje incluye la línea `` Details: `[reasoning_extraction]` ``, consulta [Las protecciones marcaron una solicitud del razonamiento de Claude](#safeguards-flagged-a-request-for-claudes-reasoning).2861Si el mensaje incluye la línea `` Details: `[reasoning_extraction]` ``, consulta [Las protecciones marcaron una solicitud del razonamiento de Claude](#safeguards-flagged-a-request-for-claudes-reasoning).

2863 2862 

2864El mensaje enlaza al [Cyber Verification Program](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude), que otorga acceso para trabajo legítimo de ciberseguridad. En Opus 5.5 y Sonnet 5.5, el mensaje comienza con `<model>'s safeguards flagged this session` en su lugar. Cuando la categoría marcada tiene disponible un modelo de respaldo, Claude Code [cambia de modelo](/docs/es/model-config#automatic-model-fallback) en lugar de mostrar este error.2863Este mensaje enlaza al [Cyber Verification Program](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude), que otorga acceso para trabajo legítimo de ciberseguridad. Los modelos con [respaldo automático de modelo](/docs/es/model-config#automatic-model-fallback) muestran un mensaje diferente, sin este enlace; en Opus 5.5 y Sonnet 5.5 comienza con `<model>'s safeguards flagged this session`. Esa sección también explica cuándo Claude Code cambia de modelo en su lugar.

2865 2864 

2866En [Amazon Bedrock](/docs/es/amazon-bedrock), [Agent Platform de Google Cloud](/docs/es/google-vertex-ai) y [Microsoft Foundry](/docs/es/microsoft-foundry), una marca de ciberseguridad produce en su lugar el mensaje de [rechazo por la Política de uso](#usage-policy-refusal).2865En [Amazon Bedrock](/docs/es/amazon-bedrock), [Agent Platform de Google Cloud](/docs/es/google-vertex-ai) y [Microsoft Foundry](/docs/es/microsoft-foundry), una marca de ciberseguridad produce en su lugar el mensaje de [rechazo por la Política de uso](#usage-policy-refusal).

2867 2866 


4824This session has no saved transcript — it was stopped before its first response finished. If it was backgrounded from another conversation, that one is still intact; `claude respawn <id>` starts this one fresh.4823This session has no saved transcript — it was stopped before its first response finished. If it was backgrounded from another conversation, that one is still intact; `claude respawn <id>` starts this one fresh.

4825```4824```

4826 4825 

4827Abrir la fila de la misma sesión en [agent view](/docs/es/agent-view) muestra `Press enter again to restart this session fresh` debajo de la lista en su lugar, y un segundo `Enter` en la fila reinicia la sesión con una conversación vacía. Antes de v2.1.212, abrir la fila mostraba el mensaje de rechazo sin forma de reiniciar desde agent view. Antes de v2.1.211, abrir la sesión detenida iniciaba silenciosamente esa conversación en blanco y podía volver a ejecutar el prompt original de la sesión.4826Abrir la fila de la misma sesión en [agent view](/docs/es/agent-view) muestra `Press enter again to restart this session fresh` debajo de la lista en su lugar, y un segundo `Enter` en la fila reinicia la sesión con una conversación vacía.

4828 4827 

4829**Qué hacer:**4828**Qué hacer:**

4830 4829 


4846* **`running in another terminal`**: una terminal mantiene la conversación, por ejemplo una donde la reanudaste con `claude --resume` o `/resume`. La fila también muestra `Open in a terminal`.4845* **`running in another terminal`**: una terminal mantiene la conversación, por ejemplo una donde la reanudaste con `claude --resume` o `/resume`. La fila también muestra `Open in a terminal`.

4847* **`already open in another running Claude session`**: otro proceso no interactivo de Claude Code la mantiene, por ejemplo un proceso de [sesión en segundo plano](/docs/es/agent-view#the-supervisor-process) para la misma conversación que aún no ha salido.4846* **`already open in another running Claude session`**: otro proceso no interactivo de Claude Code la mantiene, por ejemplo un proceso de [sesión en segundo plano](/docs/es/agent-view#the-supervisor-process) para la misma conversación que aún no ha salido.

4848 4847 

4849Claude Code guarda una respuesta que escribiste al abrir la fila y la envía como el siguiente prompt de la sesión la próxima vez que la sesión se inicie.

4850 

4851**Qué hacer:**4848**Qué hacer:**

4852 4849 

4853* Continúa la conversación en el proceso que la tiene abierta, o sal de ese proceso y abre la fila nuevamente4850* Continúa la conversación en el proceso que la tiene abierta, o sal de ese proceso y abre la fila nuevamente

Details

92 <td>✗</td>92 <td>✗</td>

93 <td>✓</td>93 <td>✓</td>

94 <td>Ver nota <sup><a href="#fn1">1</a></sup></td>94 <td>Ver nota <sup><a href="#fn1">1</a></sup></td>

95 <td>✓ ([implementaciones hospedadas en Anthropic](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options))</td>95 <td>✓</td>

96 </tr>96 </tr>

97 97 

98 <tr>98 <tr>

99 <td>[Fast mode](/docs/es/fast-mode)</td>99 <td>[Modo rápido](/docs/es/fast-mode)</td>

100 <td>✓ ([Habilitado por propietario](/docs/es/fast-mode#enable-fast-mode-for-your-organization) en Team y Enterprise)</td>100 <td>✓ ([Habilitado por el propietario](/docs/es/fast-mode#enable-fast-mode-for-your-organization) en Team y Enterprise)</td>

101 <td>✓ (organizaciones aprovisionadas)</td>101 <td>✓ (organizaciones aprovisionadas)</td>

102 <td>✗</td>102 <td>✗</td>

103 <td>✗</td>103 <td>✗</td>


106 </tr>106 </tr>

107 107 

108 <tr>108 <tr>

109 <td>[Auto mode](/docs/es/auto-mode-config)</td>109 <td>[Modo automático](/docs/es/auto-mode-config)</td>

110 <td>✓</td>110 <td>✓</td>

111 <td>✓</td>111 <td>✓</td>

112 <td>Ver nota <sup><a href="#fn2">2</a></sup></td>112 <td>Ver nota <sup><a href="#fn2">2</a></sup></td>


200 <tr>200 <tr>

201 <td>[Configuración administrada por servidor](/docs/es/server-managed-settings)</td>201 <td>[Configuración administrada por servidor](/docs/es/server-managed-settings)</td>

202 <td>✓ (Team y Enterprise)</td>202 <td>✓ (Team y Enterprise)</td>

203 <td>✓ (Team y Enterprise)</td>203 <td>Consulta [Disponibilidad por plataforma](/docs/es/server-managed-settings#platform-availability)</td>

204 <td>✗</td>204 <td>✗</td>

205 <td>✗</td>205 <td>✗</td>

206 <td>✗</td>206 <td>✗</td>


283 **Soporte parcial:**283 **Soporte parcial:**

284 284 

285 * [Desktop](/docs/es/desktop): solo a través de [Claude Desktop en 3P](https://claude.com/docs/third-party/claude-desktop/overview)285 * [Desktop](/docs/es/desktop): solo a través de [Claude Desktop en 3P](https://claude.com/docs/third-party/claude-desktop/overview)

286 * [Búsqueda web](/docs/es/tools-reference#websearch-tool-behavior): [implementaciones hospedadas en Anthropic](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options) solamente

287 * [Modo automático](/docs/es/auto-mode-config): solo Sonnet 5 o posterior, Opus 4.7 o posterior, Haiku 5.5 y modelos Fable286 * [Modo automático](/docs/es/auto-mode-config): solo Sonnet 5 o posterior, Opus 4.7 o posterior, Haiku 5.5 y modelos Fable

288 * [Mensajería entre sesiones](/docs/es/cross-session-messaging): entre sus sesiones en esta máquina solamente <sup><a href="#fn5">5</a></sup>287 * [Mensajería entre sesiones](/docs/es/cross-session-messaging): entre sus sesiones en esta máquina solamente <sup><a href="#fn5">5</a></sup>

289 * [Zero Data Retention](/docs/es/zero-data-retention): sujeto a su acuerdo de Azure288 * [Zero Data Retention](/docs/es/zero-data-retention): sujeto a su acuerdo de Azure


294 <Tab title="Consola de Anthropic">293 <Tab title="Consola de Anthropic">

295 **No disponible:** todas las [características que requieren una suscripción a Claude](#features-that-require-a-claude-subscription).294 **No disponible:** todas las [características que requieren una suscripción a Claude](#features-that-require-a-claude-subscription).

296 295 

297 Todo en [Capacidades de CLI que varían por proveedor](#cli-capabilities-that-vary-by-provider) está disponible, excepto que [fast mode](/docs/es/fast-mode) requiere [acceso aprovisionado](/docs/es/fast-mode#enable-fast-mode-for-your-organization). [Configuración administrada por servidor](/docs/es/server-managed-settings) también está disponible cuando su clave API pertenece a una organización Team o Enterprise.296 Todo en [Capacidades de CLI que varían por proveedor](#cli-capabilities-that-vary-by-provider) está disponible, excepto que el [modo rápido](/docs/es/fast-mode) requiere [acceso aprovisionado](/docs/es/fast-mode#enable-fast-mode-for-your-organization). La [configuración administrada por servidor](/docs/es/server-managed-settings) que configuras en una organización Team o Enterprise de claude.ai no llega a una sesión que se autentica con una clave de API de la Consola. Consulta [Disponibilidad por plataforma](/docs/es/server-managed-settings#platform-availability) para saber cómo cubrir esas sesiones.

298 </Tab>297 </Tab>

299</Tabs>298</Tabs>

300 299 

Details

140| Permiso | Acceso |140| Permiso | Acceso |

141| - | - |141| - | - |

142| Actions | Lectura y escritura |142| Actions | Lectura y escritura |

143| Administration | Lectura |

143| Checks | Lectura y escritura |144| Checks | Lectura y escritura |

144| Contents | Lectura y escritura |145| Contents | Lectura y escritura |

145| Discussions | Lectura y escritura |146| Discussions | Lectura y escritura |

146| Issues | Lectura y escritura |147| Issues | Lectura y escritura |

147| Members | Lectura |148| Members | Lectura |

149| Merge queues | Lectura |

148| Metadata | Lectura |150| Metadata | Lectura |

149| Pull requests | Lectura y escritura |151| Pull requests | Lectura y escritura |

150| Repository hooks | Lectura y escritura |152| Repository hooks | Lectura y escritura |

glossary.md +1 −1

Details

294 Output style294 Output style

295</h3>295</h3>

296 296 

297Una configuración que cambia las instrucciones que Claude Code proporciona a Claude, para establecer el comportamiento de respuesta, tono o formato. A diferencia de [CLAUDE.md](#claude-md), que añade contexto del proyecto junto a las instrucciones predeterminadas de Claude Code, un output style personalizado puede reemplazar las instrucciones predeterminadas de ingeniería de software.297Una configuración que cambia las instrucciones que Claude Code proporciona a Claude, para establecer el comportamiento de respuesta, tono o formato. A diferencia de [CLAUDE.md](#claude-md), que añade contexto del proyecto junto a las instrucciones predeterminadas de Claude Code, un estilo de salida personalizado añade sus propias instrucciones y puede omitir las instrucciones predeterminadas de ingeniería de software.

298 298 

299Más información: [Output styles](/docs/es/output-styles)299Más información: [Output styles](/docs/es/output-styles)

300 300 

Details

342 Ventana de contexto de 1M de tokens342 Ventana de contexto de 1M de tokens

343</h2>343</h2>

344 344 

345Claude Sonnet 5, Opus 4.6 y posteriores, y Sonnet 4.6 admiten la [ventana de contexto de 1M de tokens](https://platform.claude.com/docs/es/build-with-claude/context-windows#context-window-sizes-by-model) en Google Cloud's Agent Platform. Sonnet 5 siempre se ejecuta con la ventana de 1M, sin ninguna variante `[1m]` para seleccionar. Para los otros modelos, Claude Code habilita automáticamente la ventana de contexto extendida cuando selecciona una variante de modelo de 1M.345Los modelos Fable, Sonnet 5 y posteriores, y Opus 4.7 y posteriores se ejecutan de forma predeterminada con la [ventana de contexto de 1M de tokens](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) en Google Cloud's Agent Platform, sin necesidad del sufijo `[1m]`. Para mantener una ventana de 200K en su lugar, establece [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/es/model-config#turn-off-1m-context).

346 346 

347El [asistente de configuración](#sign-in-with-agent-platform) ofrece una opción de contexto de 1M cuando fija modelos. Para habilitarlo para un modelo fijado manualmente en su lugar, agregue `[1m]` al ID del modelo. Consulte [Fijar modelos para implementaciones de terceros](/docs/es/model-config#pin-models-for-third-party-deployments) para obtener detalles, incluida la forma de usar la ventana de 1M sin cambiar la fijación.347Opus 4.6 y Sonnet 4.6 alcanzan la ventana de 1M cuando seleccionas su variante `[1m]`. El [asistente de configuración](#sign-in-with-agent-platform) ofrece una opción de contexto de 1M cuando fija modelos. Para habilitarlo para un modelo fijado manualmente en su lugar, agrega `[1m]` al ID del modelo. Consulta [Fijar modelos para despliegues de terceros](/docs/es/model-config#pin-models-for-third-party-deployments) para obtener detalles, incluida la forma de usar la ventana de 1M sin cambiar la fijación.

348 

349Antes de la v2.1.287, los modelos Fable y Opus 4.7 y posteriores se ejecutaban de forma predeterminada con una ventana de 200K en Google Cloud's Agent Platform y alcanzaban la ventana de 1M mediante un sufijo `[1m]`.

348 350 

349<h2 id="troubleshooting">351<h2 id="troubleshooting">

350 Solución de problemas352 Solución de problemas

headless.md +9 −4

Details

78 Tareas en segundo plano al salir78 Tareas en segundo plano al salir

79</h3>79</h3>

80 80 

81Si Claude inicia una [tarea Bash en segundo plano](/docs/es/tools-reference#bash-tool-behavior) durante una ejecución `claude -p`, por ejemplo un servidor de desarrollo o una compilación de vigilancia, ese shell se termina aproximadamente cinco segundos después de que Claude ha devuelto su resultado final y stdin se ha cerrado. El período de gracia permite que una tarea que finaliza justo después del resultado aún entregue su salida.81Después de que Claude termina su turno y stdin se ha cerrado, una ejecución `claude -p` puede permanecer abierta para esperar el trabajo en segundo plano que Claude inició.

82 82 

83Si Claude inicia un [subagente](/docs/es/sub-agents) en segundo plano o un flujo de trabajo, `claude -p` en su lugar permanece abierto hasta que ese trabajo se complete, porque su resultado es parte de la salida final.83A menos que siga ejecutándose un comando en segundo plano que haya iniciado la conversación principal, de forma predeterminada Claude Code detiene lo que aún se esté ejecutando después de 10 minutos de espera inactiva continua y descarta su resultado parcial. Para cambiar el límite de 10 minutos, establece [`CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS`](/docs/es/env-vars), o establécelo en `0` para esperar sin límite.

84 84 

85De forma predeterminada, la espera finaliza después de 10 minutos de espera inactiva continua, por lo que un subagente o flujo de trabajo atascado no puede mantener el proceso abierto indefinidamente. En ese punto, Claude Code detiene lo que aún se está ejecutando y descarta su resultado parcial. Para cambiar el límite, establezca [`CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS`](/docs/es/env-vars), o establézcalo en `0` para esperar sin uno.85La ejecución espera trabajo en segundo plano como comandos en segundo plano, subagentes y flujos de trabajo, vigilancias de Monitor y activaciones pendientes de `/loop`:

86 86 

87Si Claude inicia una vigilancia de [Monitor](/docs/es/tools-reference#monitor-tool) durante una ejecución `claude -p`, Claude Code espera la vigilancia hasta que agote el tiempo de espera o el límite de diez minutos finalice la espera, lo que ocurra primero. Mientras espera, Claude continúa respondiendo a lo que reporta la vigilancia. De forma predeterminada, una vigilancia agota el tiempo de espera cinco minutos después de que Claude la inicia.87* **[Comandos en segundo plano](/docs/es/tools-reference#background-commands)**: para un comando que inició la conversación principal, por ejemplo un servidor de desarrollo o una compilación de vigilancia, la ejecución espera hasta que el comando sale o alcanza su [límite de tiempo](/docs/es/tools-reference#time-limit-for-background-commands). Luego Claude toma un turno más con el resultado, y el resultado de ese turno se convierte en el último de la ejecución, que es el que imprimen las salidas `text` y `json`. Mientras el comando se ejecuta, el límite de 10 minutos no finaliza la espera.

88* **[Subagentes](/docs/es/sub-agents) y flujos de trabajo en segundo plano**: la ejecución permanece abierta hasta que ese trabajo se complete, porque su resultado es parte de la salida final.

89* **Vigilancias de [Monitor](/docs/es/tools-reference#monitor-tool)**: la ejecución espera hasta que se agote el tiempo de espera de la vigilancia o el límite de 10 minutos finalice la espera, lo que ocurra primero. Mientras espera, Claude continúa respondiendo a lo que reporta la vigilancia. De forma predeterminada, el tiempo de espera de una vigilancia se agota cinco minutos después de que Claude la inicia.

90* **Activaciones pendientes**: en una ejecución cuyo prompt pasaste como texto en lugar de con `--input-format stream-json`, cuando Claude ha programado una [activación de `/loop` a su propio ritmo](/docs/es/scheduled-tasks#let-claude-choose-the-interval), la ejecución espera a que se dispare cada activación y ejecuta su iteración hasta que [el bucle termina](/docs/es/scheduled-tasks#stop-a-loop), incluso más allá del límite de 10 minutos.

91 

92Si la ejecución alcanza su límite de [`--max-budget-usd`](/docs/es/cli-reference#cli-flags), Claude Code detiene el trabajo en segundo plano restante en lugar de esperar.

88 93 

89<h3 id="stop-a-run-with-sigterm">94<h3 id="stop-a-run-with-sigterm">

90 Detener una ejecución con SIGTERM95 Detener una ejecución con SIGTERM

hooks.md +588 −419

Details

757 Entrada y salida de hooks757 Entrada y salida de hooks

758</h2>758</h2>

759 759 

760Los hooks de comando reciben datos JSON a través de stdin y comunican resultados a través de códigos de salida, stdout y stderr. Los hooks HTTP reciben el mismo JSON que el cuerpo de la solicitud POST y comunican resultados a través del cuerpo de la respuesta HTTP. Esta sección cubre campos y comportamiento comunes a todos los eventos. Cada sección de evento bajo [Hook events](#hook-events) incluye su esquema de entrada específico y opciones de control de decisión.760Los hooks de comando reciben datos JSON a través de stdin y comunican resultados a través de códigos de salida, stdout y stderr. Los hooks HTTP reciben el mismo JSON como cuerpo de la solicitud POST y comunican resultados a través del cuerpo de la respuesta HTTP. Esta sección cubre campos y comportamiento comunes a todos los eventos. Cada sección de evento bajo [Eventos de hook](#hook-events) incluye su esquema de entrada específico y opciones de control de decisión.

761 761 

762En macOS y Linux, los hooks de comando se ejecutan en su propia sesión sin una terminal de control. El proceso de hook y cualquier proceso secundario no pueden abrir `/dev/tty` o enviar secuencias de escape directamente a la interfaz de Claude Code. Windows no tiene `/dev/tty`.762En macOS y Linux, los hooks de comando se ejecutan en su propia sesión sin una terminal de control. El proceso del hook y cualquier proceso secundario no pueden abrir `/dev/tty` ni enviar secuencias de escape directamente a la interfaz de Claude Code. Windows no tiene `/dev/tty`.

763 763 

764Para mostrar un mensaje al usuario en cualquier plataforma, devuelva [`systemMessage`](#json-output) en la salida JSON. Algunos eventos lo descartan o lo entregan en otro lugar, y cada [sección de evento](#hook-events) lo indica. Para activar una notificación de escritorio, establecer un título de ventana o sonar la campana, devuelva [`terminalSequence`](#emit-terminal-notifications) en su lugar.764Para mostrar un mensaje al usuario en cualquier plataforma, devuelve [`systemMessage`](#json-output) en la salida JSON. Algunos eventos lo descartan o lo entregan en otro lugar, y cada [sección de evento](#hook-events) lo indica. Para activar una notificación de escritorio, establecer un título de ventana o hacer sonar la campana, devuelve [`terminalSequence`](#emit-terminal-notifications) en su lugar.

765 765 

766<h3 id="common-input-fields">766<h3 id="common-input-fields">

767 Campos de entrada comunes767 Campos de entrada comunes

768</h3>768</h3>

769 769 

770Los eventos de hook reciben estos campos como JSON, además de campos específicos del evento documentados en cada sección [hook event](#hook-events). Para hooks de comando, este JSON llega a través de stdin. Para hooks HTTP, llega como el cuerpo de la solicitud POST.770Los eventos de hook reciben estos campos como JSON, además de campos específicos del evento documentados en cada sección de [evento de hook](#hook-events). Para hooks de comando, este JSON llega a través de stdin. Para hooks HTTP, llega como el cuerpo de la solicitud POST.

771 771 

772| Campo | Descripción |772| Campo | Descripción |

773| :- | :- |773| :- | :- |

774| `session_id` | Identificador de sesión actual |774| `session_id` | Identificador de sesión actual |

775| `prompt_id` | UUID que identifica el prompt del usuario que se está procesando actualmente. Coincide con el [atributo `prompt.id` en eventos de OpenTelemetry](/docs/es/monitoring-usage#event-correlation-attributes), para que puedas correlacionar la salida del hook con la telemetría de un único prompt. Ausente hasta la primera entrada del usuario |775| `prompt_id` | UUID que identifica el prompt del usuario que se está procesando actualmente. Coincide con el [atributo `prompt.id` en eventos de OpenTelemetry](/docs/es/monitoring-usage#event-correlation-attributes), para que puedas correlacionar la salida del hook con la telemetría de un único prompt. Ausente hasta la primera entrada del usuario |

776| `transcript_path` | Ruta al JSON de conversación. El archivo de transcripción se escribe de forma asincrónica y puede rezagarse con respecto a la conversación en memoria, por lo que es posible que aún no incluya los mensajes más recientes del turno actual cuando se activa un hook. Los hooks que necesitan el texto del asistente final del turno actual deben usar `last_assistant_message` en [Stop](#stop) y [SubagentStop](#subagentstop) en lugar de leer la transcripción |776| `transcript_path` | Ruta al JSON de conversación. El archivo de transcripción se escribe de forma asincrónica y puede rezagarse con respecto a la conversación en memoria, por lo que es posible que aún no incluya los mensajes más recientes del turno actual cuando se activa un hook. Los hooks que necesitan el texto final del asistente del turno actual deben usar `last_assistant_message` en [Stop](#stop) y [SubagentStop](#subagentstop) en lugar de leer la transcripción |

777| `cwd` | Directorio de trabajo actual cuando se invoca el hook |777| `cwd` | Directorio de trabajo actual cuando se invoca el hook |

778| `scratchpad_dir` | Ruta al [directorio de scratchpad de la sesión](/docs/es/claude-directory#session-scratchpad-directory), donde Claude mantiene archivos de trabajo temporales. Ausente cuando la sesión no tiene scratchpad o el directorio temporal no está disponible. Requiere Claude Code v2.1.257 o posterior |778| `scratchpad_dir` | Ruta al [directorio de scratchpad de la sesión](/docs/es/claude-directory#session-scratchpad-directory), donde Claude mantiene archivos de trabajo temporales. Ausente cuando la sesión no tiene scratchpad o el directorio temporal no está disponible. Requiere Claude Code v2.1.257 o posterior |

779| `permission_mode` | [Modo de permiso](/docs/es/permissions#permission-modes) actual: `"default"`, `"plan"`, `"acceptEdits"`, `"auto"`, `"dontAsk"` o `"bypassPermissions"`. El modo etiquetado como **Manual** llega como `"default"`, nunca como `"manual"`, por lo que los scripts que coinciden con `"default"` siguen funcionando. No todos los eventos reciben este campo. Consulte el ejemplo JSON en cada sección [hook event](#hook-events) |779| `permission_mode` | [Modo de permisos](/docs/es/permissions#permission-modes) actual: `"default"`, `"plan"`, `"acceptEdits"`, `"auto"`, `"dontAsk"` o `"bypassPermissions"`. El modo etiquetado como **Manual** llega como `"default"`, nunca como `"manual"`, por lo que los scripts que coinciden con `"default"` siguen funcionando. No todos los eventos reciben este campo. Consulta el ejemplo JSON en cada sección de [evento de hook](#hook-events) |

780| `effort` | Objeto con un campo `level` que contiene el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) en vigor cuando se ejecuta el hook: `"low"`, `"medium"`, `"high"`, `"xhigh"` o `"max"`. Si establece un nivel que el modelo activo no admite, `level` reporta el nivel que Claude Code ejecutó en su lugar; [Adjust effort level](/docs/es/model-config#adjust-effort-level) dice cómo lo elige. El objeto coincide con el campo `effort` de la [línea de estado](/docs/es/statusline#available-data). Presente para eventos que se activan dentro de un contexto de uso de herramienta, como `PreToolUse`, `PostToolUse`, `Stop` y `SubagentStop`, cuando el modelo actual admite el parámetro de esfuerzo. El nivel también está disponible para comandos de hook y la herramienta Bash como la variable de entorno `$CLAUDE_EFFORT`. |780| `effort` | Objeto con un campo `level` que contiene el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) en vigor cuando se ejecuta el hook: `"low"`, `"medium"`, `"high"`, `"xhigh"` o `"max"`. Si estableces un nivel que el modelo activo no admite, `level` reporta el nivel que Claude Code ejecutó en su lugar; [Ajustar el nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) explica cómo lo elige. El objeto coincide con el campo `effort` de la [línea de estado](/docs/es/statusline#available-data). Presente para eventos que se activan dentro de un contexto de uso de herramienta, como `PreToolUse`, `PostToolUse`, `Stop` y `SubagentStop`, cuando el modelo actual admite el parámetro de esfuerzo. El nivel también está disponible para comandos de hook y la herramienta Bash como la variable de entorno `$CLAUDE_EFFORT`. |

781| `hook_event_name` | Nombre del evento que se activó |781| `hook_event_name` | Nombre del evento que se activó |

782 782 

783Cuando se ejecuta con `--agent` o dentro de un subagente, se incluyen dos campos adicionales:783Cuando se ejecuta con `--agent` o dentro de un subagente, se incluyen dos campos adicionales:

784 784 

785| Campo | Descripción |785| Campo | Descripción |

786| :- | :- |786| :- | :- |

787| `agent_id` | Identificador único para el subagente. Presente solo cuando el hook se activa dentro de una llamada de subagente. Use esto para distinguir llamadas de hook de subagente de llamadas de hilo principal. |787| `agent_id` | Identificador único para el subagente. Presente solo cuando el hook se activa dentro de una llamada de subagente. Usa esto para distinguir llamadas de hook de subagente de llamadas del hilo principal. |

788| `agent_type` | Nombre del agente (por ejemplo, `"Explore"` o `"security-reviewer"`). Presente cuando la sesión usa `--agent` o el hook se activa dentro de un subagente. Para subagentes, el tipo del subagente tiene precedencia sobre el valor `--agent` de la sesión. Consulte [SubagentStart](#subagentstart) para los valores que los subagentes personalizados y de plugin reportan y cómo escribir un matcher contra un nombre con alcance de plugin. |788| `agent_type` | Nombre del agente (por ejemplo, `"Explore"` o `"security-reviewer"`). Presente cuando la sesión usa `--agent` o el hook se activa dentro de un subagente. Para subagentes, el tipo del subagente tiene precedencia sobre el valor `--agent` de la sesión. Consulta [SubagentStart](#subagentstart) para ver los valores que reportan los subagentes personalizados y de plugin y cómo escribir un matcher contra un nombre con alcance de plugin. |

789 789 

790Solo los hooks [`SessionStart`](#sessionstart) pueden recibir un campo `model`, y Claude Code no siempre lo incluye. Los hooks [`PreModelSwitch`](#premodelswitch) y [`PostModelSwitch`](#postmodelswitch) reciben `from_model` y `to_model` en su lugar, así que use un hook PostModelSwitch para seguir el modelo mientras cambia durante una sesión.790Solo los hooks [`SessionStart`](#sessionstart) pueden recibir un campo `model`, y Claude Code no siempre lo incluye. Los hooks [`PreModelSwitch`](#premodelswitch) y [`PostModelSwitch`](#postmodelswitch) reciben `from_model` y `to_model` en su lugar, así que usa un hook PostModelSwitch para seguir el modelo mientras cambia durante una sesión.

791 791 

792No hay variable de entorno `$CLAUDE_MODEL`. El hook puede leer `$ANTHROPIC_MODEL` si lo establece en su shell, pero ese valor no cambia cuando cambia de modelos con `/model` durante una sesión.792No hay variable de entorno `$CLAUDE_MODEL`. El hook puede leer `$ANTHROPIC_MODEL` si la estableces en tu shell, pero ese valor no cambia cuando cambias de modelo con `/model` durante una sesión.

793 793 

794Un proceso de hook hereda el entorno principal, aparte de las variables exportadoras `OTEL_*` que Claude Code [elimina de cada subproceso que genera](/docs/es/monitoring-usage#administrator-configuration) y, cuando [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/es/env-vars#variables) se establece en `1`, las variables que elimina. En una sesión que [recibe la configuración HIPAA](/docs/es/hipaa-setup#check-how-developers-sign-in-and-connect), Claude Code también [elimina las credenciales de Anthropic](/docs/es/hipaa-setup#anthropic-credentials-in-commands-hooks-and-mcp-servers) del entorno del hook.794Un proceso de hook hereda el entorno principal, aparte de las variables exportadoras `OTEL_*` que Claude Code [elimina de cada subproceso que genera](/docs/es/monitoring-usage#administrator-configuration) y, cuando [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/es/env-vars#variables) se establece en `1`, las variables que elimina. En una sesión que [recibe la configuración HIPAA](/docs/es/hipaa-setup#check-how-developers-sign-in-and-connect), Claude Code también [elimina las credenciales de Anthropic](/docs/es/hipaa-setup#anthropic-credentials-in-commands-hooks-and-mcp-servers) del entorno del hook.

795 795 


815}815}

816```816```

817 817 

818Los campos `tool_name`, `tool_input` y `tool_use_id` son específicos del evento. Cada sección [hook event](#hook-events) documenta los campos adicionales para ese evento.818Los campos `tool_name`, `tool_input` y `tool_use_id` son específicos del evento. Cada sección de [evento de hook](#hook-events) documenta los campos adicionales para ese evento.

819 819 

820<h3 id="exit-code-output">820<h3 id="exit-code-output">

821 Salida de código de salida821 Salida por código de salida

822</h3>822</h3>

823 823 

824El código de salida de su comando de hook le dice a Claude Code si la acción debe proceder, ser bloqueada o ser ignorada. El código de salida no actúa solo. Claude Code lee campos [JSON output](#json-output) desde stdout en cada código de salida, no solo en 0, y para eventos que usan el modelo de decisión estándar, un objeto analizado que pasa la validación del esquema tiene efecto junto con el código. El bloqueo de Exit 2 es el único resultado que JSON no puede anular.824El código de salida de tu comando de hook le dice a Claude Code si la acción debe continuar, ser bloqueada o ser ignorada. El código de salida no actúa solo. Claude Code lee los [campos de salida JSON](#json-output) desde stdout con cualquier código de salida, no solo con 0, y para los eventos que usan el modelo de decisión estándar, un objeto analizado que pasa la validación del esquema tiene efecto junto con el código. El bloqueo de exit 2 es el único resultado que JSON no puede sobrescribir.

825 825 

826Dos tablas poseen las excepciones por evento: [Exit code 2 behavior per event](#exit-code-2-behavior-per-event) dice qué hacen los códigos de salida para cada evento, y [Decision control](#decision-control) dice qué campos de decisión honra cada evento. Los campos universales como `systemMessage` funcionan en la mayoría de eventos y se enumeran en la tabla [JSON output](#json-output).826Dos tablas recogen las excepciones por evento: [Comportamiento del código de salida 2 por evento](#exit-code-2-behavior-per-event) indica qué hacen los códigos de salida para cada evento, y [Control de decisión](#decision-control) indica qué campos de decisión respeta cada evento. Los campos universales como `systemMessage` funcionan en la mayoría de los eventos y se enumeran en la tabla de [salida JSON](#json-output).

827 827 

828<h4 id="exit-code-0">828<h4 id="exit-code-0">

829 Exit code 0829 Exit code 0

830</h4>830</h4>

831 831 

832Exit 0 significa éxito, y es el código de salida previsto cuando imprime JSON para control estructurado.832Exit 0 significa éxito, y es el código de salida previsto cuando imprimes JSON para control estructurado.

833 833 

834Para la mayoría de eventos, Claude Code escribe stdout en el registro de depuración y no lo muestra en la transcripción. Las excepciones son `UserPromptSubmit`, `UserPromptExpansion`, `SessionStart` y `PostModelSwitch`, donde Claude Code agrega stdout de texto plano como contexto que Claude puede ver y actuar.834Para la mayoría de los eventos, Claude Code escribe stdout en el registro de depuración y no lo muestra en la transcripción. Las excepciones son `UserPromptSubmit`, `UserPromptExpansion`, `SessionStart` y `PostModelSwitch`, donde Claude Code agrega el stdout de texto plano como contexto que Claude puede ver y sobre el que puede actuar.

835 835 

836Si Claude Code lee su stdout como [JSON output](#json-output) o como texto plano depende de cómo comienza y termina, ignorando espacios en blanco circundantes:836Que Claude Code lea tu stdout como [salida JSON](#json-output) o como texto plano depende de cómo comienza y termina, ignorando los espacios en blanco circundantes:

837 837 

838* **Comienza con `{` y termina con `}`**: Claude Code lo analiza como JSON. Cuando la salida son dos o más líneas que cada una se analiza como JSON por su cuenta, y ninguna línea es un objeto [JSON output](#json-output) que establece un campo, Claude Code trata toda la salida como texto plano. Cuando una de esas líneas sí establece un campo, toda la salida es un fallo de análisis, descrito a continuación.838* **Comienza con `{` y termina con `}`**: Claude Code lo analiza como JSON. Cuando la salida son dos o más líneas que se analizan como JSON cada una por su cuenta, y ninguna línea es un objeto de [salida JSON](#json-output) que establezca un campo, Claude Code trata toda la salida como texto plano. Cuando una de esas líneas sí establece un campo, toda la salida es un fallo de análisis, descrito a continuación.

839* **Comienza con `{` pero no termina con `}`**: Claude Code lo trata como texto plano.839* **Comienza con `{` pero no termina con `}`**: Claude Code lo trata como texto plano.

840* **Comienza con cualquier otra cosa**: Claude Code lo trata como texto plano, incluso si es un array JSON o una cadena JSON entrecomillada.840* **Comienza con cualquier otra cosa**: Claude Code lo trata como texto plano, incluso si es un array JSON o una cadena JSON entrecomillada.

841 841 

842Para eventos que usan el modelo de decisión estándar, exit 0 con un objeto analizado que falla la validación del esquema es un error sin bloqueo: la acción procede, y la transcripción muestra un aviso `<hook name> hook error` con el mensaje de validación. Lo mismo sucede en cualquier código de salida que no sea 2, mientras que [exit 2 aún bloquea](#exit-code-2).842Para los eventos que usan el modelo de decisión estándar, exit 0 con un objeto analizado que falla la validación del esquema es un error sin bloqueo: la acción continúa, y la transcripción muestra un aviso `<hook name> hook error` con el mensaje de validación. Lo mismo sucede con cualquier código de salida distinto de 2, mientras que [exit 2 sigue bloqueando](#exit-code-2).

843 843 

844Para eventos que usan el modelo de decisión estándar, cuando Claude Code intenta analizar su stdout como JSON y no puede, reporta un error sin bloqueo en cada código de salida que no sea 2. La transcripción muestra un aviso `<hook name> hook error` con el mensaje de análisis. En los eventos que agregan stdout de texto plano como contexto, Claude Code no agrega el texto. Antes de v2.1.248, Claude Code trataba ese stdout como texto plano.844Para los eventos que usan el modelo de decisión estándar, cuando Claude Code intenta analizar tu stdout como JSON y no puede, reporta un error sin bloqueo con cualquier código de salida distinto de 2. La transcripción muestra un aviso `<hook name> hook error` con el mensaje de análisis. En los eventos que agregan stdout de texto plano como contexto, Claude Code no agrega el texto. Antes de v2.1.248, Claude Code trataba ese stdout como texto plano.

845 845 

846Stderr de un hook que sale 0 va solo al registro de depuración, nunca a la transcripción, y Claude nunca lo ve. Para leerlo usted mismo, habilite [debug logging](#debug-hooks). Para mostrar una advertencia a Claude desde un hook `PostToolUse` o `PostToolUseFailure`, salga 2 en su lugar para que [Claude vea stderr](#exit-code-2-behavior-per-event) aunque la herramienta ya se haya ejecutado.846El stderr de un hook que sale con 0 va solo al registro de depuración, nunca a la transcripción, y Claude nunca lo ve. Para leerlo tú mismo, habilita el [registro de depuración](#debug-hooks). Para mostrarle una advertencia a Claude desde un hook `PostToolUse` o `PostToolUseFailure`, sal con 2 en su lugar para que [Claude vea el stderr](#exit-code-2-behavior-per-event) aunque la herramienta ya se haya ejecutado.

847 847 

848<h4 id="exit-code-2">848<h4 id="exit-code-2">

849 Exit code 2849 Exit code 2

850</h4>850</h4>

851 851 

852Exit 2 significa un error de bloqueo. En [eventos que pueden bloquear](#exit-code-2-behavior-per-event), exit 2 bloquea independientemente de si imprime JSON: incluso un `permissionDecision` JSON de `"allow"` no puede anularlo. Claude Code aún lee cualquier [JSON output](#json-output) válido en stdout. En `Elicitation` y `ElicitationResult`, el `hookSpecificOutput` de un hook exit-2 se ignora.852Exit 2 significa un error de bloqueo. En los [eventos que pueden bloquear](#exit-code-2-behavior-per-event), exit 2 bloquea independientemente de si imprimes JSON: ni siquiera un `permissionDecision` JSON de `"allow"` puede sobrescribirlo. Claude Code sigue leyendo cualquier [salida JSON](#json-output) válida en stdout. En `Elicitation` y `ElicitationResult`, el `hookSpecificOutput` de un hook que sale con 2 se ignora.

853 853 

854El mensaje de bloqueo es la razón de la decisión de bloqueo de su JSON cuando hace una, y su texto stderr en caso contrario. Lo que el bloqueo hace varía según el evento: `PreToolUse` bloquea la llamada a herramienta, `UserPromptSubmit` rechaza el prompt, y así sucesivamente. [Exit code 2 behavior per event](#exit-code-2-behavior-per-event) enumera el efecto para cada evento, y cada sección de evento dice dónde va el mensaje.854El mensaje de bloqueo es la razón de la decisión de bloqueo de tu JSON cuando la incluye, y tu texto de stderr en caso contrario. Lo que hace el bloqueo varía según el evento: `PreToolUse` bloquea la llamada a herramienta, `UserPromptSubmit` rechaza el prompt, y así sucesivamente. [Comportamiento del código de salida 2 por evento](#exit-code-2-behavior-per-event) enumera el efecto para cada evento, y la sección de cada evento indica adónde va el mensaje.

855 855 

856Un hook que sale 2 mientras imprime JSON que falla la validación del esquema [JSON output](#json-output) aún bloquea: Claude Code usa stderr como la razón de bloqueo y registra el fallo de validación en el registro de depuración. Antes de v2.1.214, Claude Code trataba esa combinación como un error sin bloqueo y la acción procedía.856Un hook que sale con 2 mientras imprime JSON que falla la validación del esquema de [salida JSON](#json-output) sigue bloqueando: Claude Code usa stderr como la razón del bloqueo y registra el fallo de validación en el registro de depuración. Antes de v2.1.214, Claude Code trataba esa combinación como un error sin bloqueo y la acción continuaba.

857 857 

858Este script bloquea comandos `rm` saliendo 2 y deja cada otro comando al flujo de permiso normal:858Este script bloquea los comandos `rm` saliendo con 2 y deja todos los demás comandos al flujo de permisos normal:

859 859 

860```bash theme={null}860```bash theme={null}

861#!/bin/bash861#!/bin/bash


875 Otros códigos de salida875 Otros códigos de salida

876</h4>876</h4>

877 877 

878Cualquier otro código de salida no bloquea por su cuenta para la mayoría de eventos de hook. Lo que sucede depende de su stdout:878Cualquier otro código de salida no bloquea por sí solo en la mayoría de los eventos de hook. Lo que sucede depende de tu stdout:

879 879 

880* Con un objeto analizado que pasa la validación del esquema, para eventos que usan el modelo de decisión estándar, Claude Code ignora el código de salida y solo el JSON decide el resultado:880* Con un objeto analizado que pasa la validación del esquema, para los eventos que usan el modelo de decisión estándar, Claude Code ignora el código de salida y solo el JSON decide el resultado:

881 * Cada campo que el evento admite se honra, incluyendo `permissionDecision`, `additionalContext`, `updatedInput` y `systemMessage`, y el hook no se reporta como un error.881 * Se respeta cada campo que el evento admite, incluidos `permissionDecision`, `additionalContext`, `updatedInput` y `systemMessage`, y el hook no se reporta como error.

882 * [Decision control](#decision-control) enumera los campos de decisión por evento; campos universales como `systemMessage` siguen la tabla [JSON output](#json-output).882 * [Control de decisión](#decision-control) enumera los campos de decisión por evento; los campos universales como `systemMessage` siguen la tabla de [salida JSON](#json-output).

883* Con un objeto analizado que falla la validación del esquema, para eventos que usan el modelo de decisión estándar, es el mismo error sin bloqueo que [en exit 0](#exit-code-0): la acción procede, y el aviso `<hook name> hook error` lleva el mensaje de validación.883* Con un objeto analizado que falla la validación del esquema, para los eventos que usan el modelo de decisión estándar, es el mismo error sin bloqueo que [con exit 0](#exit-code-0): la acción continúa, y el aviso `<hook name> hook error` incluye el mensaje de validación.

884* Con stdout que Claude Code [intenta analizar como JSON](#exit-code-0) y no puede, Claude Code reporta el mismo error sin bloqueo que en exit 0 para eventos que usan el modelo de decisión estándar. La acción procede, y el aviso lleva el mensaje de análisis.884* Con stdout que Claude Code [intenta analizar como JSON](#exit-code-0) y no puede, Claude Code reporta el mismo error sin bloqueo que con exit 0 para los eventos que usan el modelo de decisión estándar. La acción continúa, y el aviso incluye el mensaje de análisis.

885* Con stdout que Claude Code [trata como texto plano](#exit-code-0), o con stdout vacío, es un error sin bloqueo para la mayoría de eventos de hook: la acción procede, y la transcripción muestra un aviso `<hook name> hook error` seguido de la primera línea de stderr, prefijado con `Failed with non-blocking status code:`. Para capturar el stderr completo, habilite [debug logging](#debug-hooks).885* Con stdout que Claude Code [trata como texto plano](#exit-code-0), o con stdout vacío, es un error sin bloqueo para la mayoría de los eventos de hook: la acción continúa, y la transcripción muestra un aviso `<hook name> hook error` seguido de la primera línea de stderr, con el prefijo `Failed with non-blocking status code:`. Para capturar el stderr completo, habilita el [registro de depuración](#debug-hooks).

886 886 

887Los eventos fuera del modelo de decisión estándar mantienen sus propias filas en la [tabla por evento](#exit-code-2-behavior-per-event): `WorktreeCreate` falla la creación en cualquier salida distinta de cero sin importar lo que diga su JSON, y eventos que descartan la salida del hook completamente, como `StopFailure`, ignoran su JSON en cada código de salida, aparte de campos de efecto secundario como `terminalSequence`, que aún se activan.887Los eventos fuera del modelo de decisión estándar mantienen sus propias filas en la [tabla por evento](#exit-code-2-behavior-per-event): `WorktreeCreate` hace fallar la creación con cualquier salida distinta de cero, diga lo que diga tu JSON, y los eventos que descartan por completo la salida del hook, como `StopFailure`, ignoran tu JSON con cualquier código de salida, aparte de los campos de efecto secundario como `terminalSequence`, que se siguen activando.

888 888 

889Un hook que no puede iniciarse cae en el mismo cubo sin bloqueo. Cuando la ruta del script no existe o no es ejecutable, el shell sale con un código como 127 y ve el mismo aviso con el mensaje del intérprete, por ejemplo `Failed with non-blocking status code: /bin/sh: /path/to/hook.sh: No such file or directory`. Para la mayoría de eventos de hook, la acción procede. Cuando configura un hook de política, observe este aviso en su primera ejecución: una ruta mal escrita en `settings.json` deja la puerta silenciosamente deshabilitada.889Un hook que no puede iniciarse cae en la misma categoría sin bloqueo. Cuando la ruta del script no existe o no es ejecutable, el shell sale con un código como 127 y ves el mismo aviso con el mensaje del intérprete, por ejemplo `Failed with non-blocking status code: /bin/sh: /path/to/hook.sh: No such file or directory`. Para la mayoría de los eventos de hook, la acción continúa. Cuando configures un hook de política, fíjate en este aviso en su primera ejecución: una ruta mal escrita en `settings.json` deja el control deshabilitado en silencio.

890 890 

891<Warning>891<Warning>

892 Para la mayoría de eventos de hook, el código de salida 2 es el único código de salida que bloquea solo a través del código. Sin JSON válido en stdout, Claude Code trata el código de salida 1 como un error sin bloqueo y procede con la acción, aunque 1 es el código de fallo convencional de Unix. Si su hook está destinado a aplicar una política, use `exit 2`. Los eventos de worktree difieren: cualquier código de salida distinto de cero de `WorktreeCreate` aborta la creación de worktree, y cualquier código de salida distinto de cero de `WorktreeRemove` hace que la eliminación de worktree falle si el directorio aún existe después.892 Para la mayoría de los eventos de hook, el código de salida 2 es el único código de salida que bloquea solo con el código. Sin JSON válido en stdout, Claude Code trata el código de salida 1 como un error sin bloqueo y continúa con la acción, aunque 1 es el código de fallo convencional de Unix. Si tu hook está pensado para aplicar una política, usa `exit 2`. Los eventos de worktree son diferentes: cualquier código de salida distinto de cero de `WorktreeCreate` aborta la creación del worktree, y cualquier código de salida distinto de cero de `WorktreeRemove` hace que la eliminación del worktree falle si el directorio sigue existiendo después.

893</Warning>893</Warning>

894 894 

895<h4 id="timeouts">895<h4 id="timeouts">

896 Tiempos de espera896 Tiempos de espera

897</h4>897</h4>

898 898 

899Aparte de un hook de comando que ejecuta con [`async: true`](#run-hooks-in-the-background), Claude Code cancela un hook `command`, `http` o `mcp_tool` que alcanza su [`timeout`](#common-fields), descartando la salida del hook, por lo que en la mayoría de eventos un hook agotado no renderiza decisión.899Aparte de un hook de comando que ejecutes con [`async: true`](#run-hooks-in-the-background), Claude Code cancela un hook `command`, `http` o `mcp_tool` que alcanza su [`timeout`](#common-fields), descartando la salida del hook, por lo que en la mayoría de los eventos un hook cuyo tiempo de espera se agota no emite ninguna decisión.

900 900 

901En [`PreModelSwitch`](#premodelswitch), un hook cancelado en su timeout bloquea el cambio de modelo. En `PreToolUse`, las dos familias de hooks difieren:901En [`PreModelSwitch`](#premodelswitch), un hook cancelado al agotarse su tiempo de espera bloquea el cambio de modelo. En `PreToolUse`, las dos familias de hooks difieren:

902 902 

903* Un hook `command`, `http` o `mcp_tool` agotado no bloquea la llamada a herramienta. La llamada continúa a través del [flujo de permiso](/docs/es/permissions) normal, así que no cuente con un hook estancado para actuar como puerta.903* Un hook `command`, `http` o `mcp_tool` cuyo tiempo de espera se agota no bloquea la llamada a herramienta. La llamada continúa a través del [flujo de permisos](/docs/es/permissions) normal, así que no cuentes con que un hook bloqueado actúe como control.

904* Un hook de callback [Agent SDK](/docs/es/agent-sdk/hooks) que excede su timeout [bloquea la llamada a herramienta](#pretooluse).904* Un [hook de callback del Agent SDK](/docs/es/agent-sdk/hooks) que excede su tiempo de espera [bloquea la llamada a herramienta](#pretooluse).

905 905 

906<h4 id="exit-code-2-behavior-per-event">906<h4 id="exit-code-2-behavior-per-event">

907 Comportamiento del código de salida 2 por evento907 Comportamiento del código de salida 2 por evento

908</h4>908</h4>

909 909 

910Exit code 2 es la forma en que un hook señala "detente, no hagas esto". El efecto depende del evento, porque algunos eventos representan acciones que pueden bloquearse (como una llamada a herramienta que aún no ha sucedido) y otros representan cosas que ya sucedieron o no pueden prevenirse.910El código de salida 2 es la forma en que un hook señala "detente, no hagas esto". El efecto depende del evento, porque algunos eventos representan acciones que pueden bloquearse (como una llamada a herramienta que aún no ha sucedido) y otros representan cosas que ya sucedieron o no pueden evitarse.

911 911 

912| Evento de hook | ¿Puede bloquear? | Qué sucede en exit 2 |912| Evento de hook | ¿Puede bloquear? | Qué sucede con exit 2 |

913| :- | :- | :- |913| :- | :- | :- |

914| `PreToolUse` | Sí | Bloquea la llamada a herramienta |914| `PreToolUse` | Sí | Bloquea la llamada a herramienta |

915| `PermissionRequest` | No | El código de salida 2 no se honra para este evento y el flujo de permiso procede sin cambios. Deniegue a través del objeto [`decision`](#permissionrequest-decision-control) en su lugar |915| `PermissionRequest` | No | El código de salida 2 no se respeta para este evento y el flujo de permisos continúa sin cambios. Deniega a través del [objeto `decision`](#permissionrequest-decision-control) en su lugar |

916| `UserPromptSubmit` | Sí | Bloquea el prompt, por lo que nunca llega a Claude. Consulte [What a blocked prompt leaves behind](#what-a-blocked-prompt-leaves-behind) |916| `UserPromptSubmit` | Sí | Bloquea el prompt, por lo que nunca llega a Claude. Consulta [Qué deja atrás un prompt bloqueado](#what-a-blocked-prompt-leaves-behind) |

917| `UserPromptExpansion` | Sí | Bloquea la expansión |917| `UserPromptExpansion` | Sí | Bloquea la expansión |

918| `Stop` | Sí | Evita que Claude se detenga, continúa la conversación |918| `Stop` | Sí | Evita que Claude se detenga, continúa la conversación |

919| `SubagentStop` | Sí | Evita que el subagente se detenga |919| `SubagentStop` | Sí | Evita que el subagente se detenga |

920| `TeammateIdle` | Sí | Evita que el compañero se quede inactivo, por lo que continúa trabajando |920| `TeammateIdle` | Sí | Evita que el compañero quede inactivo, por lo que sigue trabajando |

921| `TaskCreated` | Sí | Revierte la creación de la tarea |921| `TaskCreated` | Sí | Revierte la creación de la tarea |

922| `TaskCompleted` | Sí | Evita que la tarea se marque como completada |922| `TaskCompleted` | Sí | Evita que la tarea se marque como completada |

923| `ConfigChange` | Sí | Bloquea que el cambio de configuración tenga efecto (excepto `policy_settings`) |923| `ConfigChange` | Sí | Impide que el cambio de configuración tenga efecto (excepto `policy_settings`) |

924| `StopFailure` | No | La salida y el código de salida se ignoran, excepto `terminalSequence` |924| `StopFailure` | No | La salida y el código de salida se ignoran, excepto `terminalSequence` |

925| `PostToolUse` | No | Muestra stderr a Claude; la herramienta ya se ejecutó |925| `PostToolUse` | No | Muestra stderr a Claude; la herramienta ya se ejecutó |

926| `PostToolUseFailure` | No | Muestra stderr a Claude; la herramienta ya falló |926| `PostToolUseFailure` | No | Muestra stderr a Claude; la herramienta ya falló |

927| `PostToolBatch` | Sí | Detiene el bucle agentico antes de la siguiente llamada al modelo |927| `PostToolBatch` | Sí | Detiene el bucle agéntico antes de la siguiente llamada al modelo |

928| `PermissionDenied` | No | El código de salida y stderr se ignoran porque la denegación ya ocurrió. Use JSON `hookSpecificOutput.retry: true` para decirle al modelo que puede reintentar; Claude Code ignora `retry: true` para [denegaciones sin veredicto](#permissiondenied-decision-control) |928| `PermissionDenied` | No | El código de salida y stderr se ignoran porque la denegación ya ocurrió. Usa JSON `hookSpecificOutput.retry: true` para indicarle al modelo que puede reintentar; Claude Code ignora `retry: true` para [denegaciones sin veredicto](#permissiondenied-decision-control) |

929| `Notification` | No | El código de salida y stderr se ignoran |929| `Notification` | No | El código de salida y stderr se ignoran |

930| `SubagentStart` | No | Muestra stderr solo al usuario |930| `SubagentStart` | No | Muestra stderr solo al usuario |

931| `SessionStart` | No | Muestra stderr solo al usuario |931| `SessionStart` | No | Muestra stderr solo al usuario |


938| `PostCompact` | No | Muestra stderr solo al usuario |938| `PostCompact` | No | Muestra stderr solo al usuario |

939| `PreModelSwitch` | Sí | Bloquea el cambio de modelo y muestra stderr al usuario |939| `PreModelSwitch` | Sí | Bloquea el cambio de modelo y muestra stderr al usuario |

940| `PostModelSwitch` | No | Muestra stderr solo al usuario; el modelo ya cambió |940| `PostModelSwitch` | No | Muestra stderr solo al usuario; el modelo ya cambió |

941| `Elicitation` | Sí | Deniega la elicitación |941| `Elicitation` | Sí | Rechaza la solicitud, y no aparece ningún diálogo |

942| `ElicitationResult` | Sí | Bloquea la respuesta (la acción se convierte en decline) |942| `ElicitationResult` | Sí | Bloquea la respuesta (la acción se convierte en decline) |

943| `WorktreeCreate` | Sí | Cualquier código de salida distinto de cero causa que la creación de worktree falle |943| `WorktreeCreate` | Sí | Cualquier código de salida distinto de cero hace que la creación del worktree falle |

944| `WorktreeRemove` | Sí | Cualquier código de salida distinto de cero causa que la eliminación de worktree falle si el directorio aún existe después. Consulte [WorktreeRemove](#worktreeremove) para saber qué sucede con el directorio |944| `WorktreeRemove` | Sí | Cualquier código de salida distinto de cero hace que la eliminación del worktree falle si el directorio sigue existiendo después. Consulta [WorktreeRemove](#worktreeremove) para saber qué sucede con el directorio |

945| `InstructionsLoaded` | No | El código de salida se ignora |945| `InstructionsLoaded` | No | El código de salida se ignora |

946| `MessageDisplay` | No | Se muestra el texto original |946| `MessageDisplay` | No | Se muestra el texto original |

947 947 

948Para `SessionStart`, `SubagentStart` y `PostModelSwitch`, Claude Code renderiza el stderr del código de salida 2 en la transcripción como un aviso `<hook name> hook error`, de la misma manera que renderiza un [error sin bloqueo](#exit-code-output). Claude no lo ve, y la sesión o subagente procede. Para `SubagentStart`, el aviso aparece en la propia transcripción del subagente, no en la conversación principal.948Para `SessionStart`, `SubagentStart` y `PostModelSwitch`, Claude Code muestra el stderr del código de salida 2 en la transcripción como un aviso `<hook name> hook error`, de la misma manera que muestra un [error sin bloqueo](#exit-code-output). Claude no lo ve, y la sesión o el subagente continúa. Para `SubagentStart`, el aviso aparece en la propia transcripción del subagente, no en la conversación principal.

949 949 

950<h3 id="http-response-handling">950<h3 id="http-response-handling">

951 Manejo de respuesta HTTP951 Manejo de respuestas HTTP

952</h3>952</h3>

953 953 

954Los hooks HTTP usan códigos de estado HTTP y cuerpos de respuesta en lugar de códigos de salida y stdout. Los resultados a continuación se aplican a la mayoría de eventos; un evento con su propio contrato de fallo en la [tabla por evento](#exit-code-2-behavior-per-event), como `WorktreeCreate`, aplica ese contrato a un hook HTTP fallido también:954Los hooks HTTP usan códigos de estado HTTP y cuerpos de respuesta en lugar de códigos de salida y stdout. Los resultados a continuación se aplican a la mayoría de los eventos; un evento con su propio contrato de fallo en la [tabla por evento](#exit-code-2-behavior-per-event), como `WorktreeCreate`, aplica ese contrato también a un hook HTTP fallido:

955 955 

956* **2xx con un cuerpo vacío**: éxito, equivalente a código de salida 0 sin salida956* **2xx con un cuerpo vacío**: éxito, equivalente al código de salida 0 sin salida

957* **2xx con un cuerpo de objeto JSON**: analizado usando el mismo esquema [JSON output](#json-output) que los hooks de comando. Un cuerpo que falla la validación del esquema es un error sin bloqueo957* **2xx con un cuerpo de objeto JSON**: se analiza usando el mismo esquema de [salida JSON](#json-output) que los hooks de comando. Un cuerpo que falla la validación del esquema es un error sin bloqueo

958* **2xx con cualquier otro cuerpo, como texto plano**: error sin bloqueo, manejado igual que un estado que no es 2xx. Claude Code no agrega el texto al contexto de Claude958* **2xx con cualquier otro cuerpo, como texto plano**: error sin bloqueo, manejado igual que un estado que no es 2xx. Claude Code no agrega el texto al contexto de Claude

959* **Estado que no es 2xx**: error sin bloqueo, la ejecución continúa959* **Estado que no es 2xx**: error sin bloqueo, la ejecución continúa

960* **Fallo de conexión**: error sin bloqueo, la ejecución continúa960* **Fallo de conexión**: error sin bloqueo, la ejecución continúa

961* **Tiempo de espera**: el hook se cancela, como se describe bajo [Timeouts](#timeouts)961* **Tiempo de espera agotado**: el hook se cancela, como se describe en [Tiempos de espera](#timeouts)

962 962 

963A diferencia de los hooks de comando, los hooks HTTP no pueden señalar un error de bloqueo solo a través de códigos de estado. Para bloquear una llamada a herramienta o denegar un permiso, devuelva una respuesta 2xx con un cuerpo JSON que contenga los campos de decisión apropiados.963A diferencia de los hooks de comando, los hooks HTTP no pueden señalar un error de bloqueo solo mediante códigos de estado. Para bloquear una llamada a herramienta o denegar un permiso, devuelve una respuesta 2xx con un cuerpo JSON que contenga los campos de decisión apropiados.

964 964 

965<h3 id="json-output">965<h3 id="json-output">

966 Salida JSON966 Salida JSON

967</h3>967</h3>

968 968 

969Los códigos de salida solo le permiten bloquear o permanecer en silencio, pero la salida JSON le da un control más granular. En lugar de salir con código 2 para bloquear, salga 0 e imprima un objeto JSON en stdout. Claude Code lee campos específicos de ese JSON para controlar el comportamiento, incluyendo [decision control](#decision-control) para bloquear, permitir o escalar al usuario.969Los códigos de salida solo te permiten bloquear o permanecer en silencio, pero la salida JSON te da un control más granular. En lugar de salir con código 2 para bloquear, sal con 0 e imprime un objeto JSON en stdout. Claude Code lee campos específicos de ese JSON para controlar el comportamiento, incluido el [control de decisión](#decision-control) para bloquear, permitir o escalar al usuario.

970 970 

971<Note>971<Note>

972 Elija un enfoque por hook: use códigos de salida solos para señalizar, o salga 0 e imprima JSON para control estructurado. Si los mezcla, exit 2 mantiene su [efecto de bloqueo](#exit-code-2-behavior-per-event), y Claude Code aún lee los campos JSON, con la excepción de elicitación única anotada bajo [Exit code 2](#exit-code-2).972 Elige un enfoque por hook: usa solo códigos de salida para señalizar, o sal con 0 e imprime JSON para control estructurado. Si los mezclas, exit 2 mantiene su [efecto de bloqueo](#exit-code-2-behavior-per-event), y Claude Code sigue leyendo los campos JSON, con la única excepción de elicitación indicada en [Exit code 2](#exit-code-2).

973</Note>973</Note>

974 974 

975El stdout de su hook debe contener solo el objeto JSON. Si su perfil de shell imprime texto al inicio, puede interferir con el análisis JSON. Consulte [Hook JSON has no effect](/docs/es/hooks-guide#hook-json-has-no-effect) en la guía de solución de problemas.975El stdout de tu hook debe contener solo el objeto JSON. Si tu perfil de shell imprime texto al iniciarse, puede interferir con el análisis del JSON. Consulta [El JSON del hook no tiene efecto](/docs/es/hooks-guide#hook-json-has-no-effect) en la guía de solución de problemas.

976 976 

977Las cadenas de salida de hook, incluyendo `additionalContext`, `systemMessage` e `initialUserMessage`, y su stdout plano, están limitadas a 10.000 caracteres:977Las cadenas `additionalContext`, `systemMessage` e `initialUserMessage` de un hook, y su stdout plano, están limitadas a 10.000 caracteres:

978 978 

979* **Alcance**: Claude Code mide cada cadena por su cuenta, incluso cuando varios hooks se ejecutan para el mismo evento. Para salida JSON, cada campo se mide por separado; stdout plano se mide en su totalidad.979* **Alcance**: Claude Code mide cada cadena por separado, incluso cuando varios hooks se ejecutan para el mismo evento. En la salida JSON, cada campo se mide por separado; el stdout plano se mide completo.

980* **Sobre el límite**: Claude Code guarda la salida en un archivo en el directorio de sesión y la reemplaza con la ruta del archivo y una vista previa de hasta los primeros 2.000 caracteres. Un resultado de Bash válido grande se maneja de la misma manera, descrito bajo [Output limits](/docs/es/tools-reference#output-limits). A diferencia de ese techo de Bash, este límite no tiene configuración o variable de entorno para aumentarlo.980* **Por encima del límite**: Claude Code guarda la salida en un archivo en el directorio de la sesión y la reemplaza con la ruta del archivo y una vista previa de hasta los primeros 2.000 caracteres. Un resultado de Bash válido y grande se maneja de la misma manera, como se describe en [Límites de salida](/docs/es/tools-reference#output-limits). A diferencia de ese tope de Bash, este límite no tiene ningún ajuste ni variable de entorno para aumentarlo.

981* **Lectura del archivo**: Claude Code no le pide a Claude que lea el archivo, así que mantenga cualquier cosa que Claude siempre deba ver dentro del límite.981* **Lectura del archivo**: Claude Code no le pide a Claude que lea el archivo, así que mantén dentro del límite todo lo que Claude deba ver siempre.

982 982 

983El objeto JSON admite tres tipos de campos:983El objeto JSON admite tres tipos de campos:

984 984 

985* **Campos universales** como `continue` se enumeran en la tabla a continuación. Cada evento los acepta, pero algunos eventos los descartan o entregan `systemMessage` en otro lugar que no sea la transcripción. Cada sección de evento lo indica. `terminalSequence` funciona en esos eventos también, con las excepciones enumeradas bajo [Emit terminal notifications](#emit-terminal-notifications).985* **Campos universales** como `continue`, que se enumeran en la tabla a continuación. Todos los eventos los aceptan, pero algunos eventos los descartan o entregan `systemMessage` en un lugar distinto de la transcripción. La sección de cada evento lo indica. `terminalSequence` también funciona en esos eventos, con las excepciones enumeradas en [Emitir notificaciones de terminal](#emit-terminal-notifications).

986* **`decision` y `reason` de nivel superior** son utilizados por algunos eventos para bloquear o proporcionar retroalimentación.986* **`decision` y `reason` de nivel superior**, que algunos eventos usan para bloquear o proporcionar retroalimentación.

987* **`hookSpecificOutput`** es un objeto anidado para eventos que necesitan control más rico. Requiere un campo `hookEventName` establecido en el nombre del evento.987* **`hookSpecificOutput`**, un objeto anidado para eventos que necesitan un control más rico. Requiere un campo `hookEventName` establecido en el nombre del evento.

988 988 

989| Campo | Predeterminado | Descripción |989| Campo | Predeterminado | Descripción |

990| :- | :- | :- |990| :- | :- | :- |

991| `continue` | `true` | Si es `false`, Claude detiene el procesamiento completamente después de que se ejecuta el hook. Tiene precedencia sobre cualquier campo de decisión específico del evento |991| `continue` | `true` | Si es `false`, Claude detiene el procesamiento por completo después de que se ejecuta el hook. Tiene precedencia sobre cualquier campo de decisión específico del evento |

992| `stopReason` | ninguno | Mensaje mostrado al usuario cuando `continue` es `false`. Se queda en la conversación, por lo que Claude lo ve si la conversación continúa |992| `stopReason` | ninguno | Mensaje mostrado al usuario cuando `continue` es `false`. Permanece en la conversación, por lo que Claude lo ve si la conversación continúa |

993| `suppressOutput` | `false` | No tiene efecto: Claude Code acepta el campo pero no actúa sobre él. El stdout de un hook exitoso nunca se muestra en la transcripción y se registra en el registro de depuración |993| `suppressOutput` | `false` | No tiene efecto: Claude Code acepta el campo pero no actúa sobre él. El stdout de un hook exitoso nunca se muestra en la transcripción y se registra en el registro de depuración |

994| `systemMessage` | ninguno | Mensaje de advertencia mostrado al usuario. En [Agent SDK](/docs/es/agent-sdk/overview) y salida [`--output-format stream-json`](/docs/es/headless), puede llegar como un [`SDKInformationalMessage`](/docs/es/agent-sdk/typescript#sdkinformationalmessage) |994| `systemMessage` | ninguno | Mensaje de advertencia mostrado al usuario. En la salida del [Agent SDK](/docs/es/agent-sdk/overview) y de [`--output-format stream-json`](/docs/es/headless), puede llegar como un [`SDKInformationalMessage`](/docs/es/agent-sdk/typescript#sdkinformationalmessage) |

995| `terminalSequence` | ninguno | Una secuencia de escape de terminal para que Claude Code emita en su nombre, como una notificación de escritorio, título de ventana o campana. Restringido a OSC `0`/`1`/`2`/`9`/`99`/`777` y BEL. Si el valor contiene algo fuera de la lista de permitidos, el campo se ignora. Use esto en lugar de escribir en `/dev/tty`, que no está disponible para hooks |995| `terminalSequence` | ninguno | Una secuencia de escape de terminal para que Claude Code la emita en tu nombre, como una notificación de escritorio, un título de ventana o una campana. Restringida a OSC `0`/`1`/`2`/`9`/`99`/`777` y BEL. Si el valor contiene algo fuera de la lista de permitidos, el campo se ignora. Usa esto en lugar de escribir en `/dev/tty`, que no está disponible para los hooks |

996 996 

997Para detener Claude completamente:997Para detener a Claude por completo:

998 998 

999```json theme={null}999```json theme={null}

1000{ "continue": false, "stopReason": "Build failed, fix errors before continuing" }1000{ "continue": false, "stopReason": "Build failed, fix errors before continuing" }

1001```1001```

1002 1002 

1003Para hooks `PreToolUse` y `PostToolUse`, la parada se aplica incluso cuando la llamada a herramienta falla o se completa mientras Claude aún está transmitiendo una respuesta.1003Para los hooks `PreToolUse` y `PostToolUse`, la detención se aplica incluso cuando la llamada a herramienta falla o se completa mientras Claude todavía está transmitiendo una respuesta en streaming.

1004 1004 

1005<h4 id="emit-terminal-notifications">1005<h4 id="emit-terminal-notifications">

1006 Emitir notificaciones de terminal1006 Emitir notificaciones de terminal

1007</h4>1007</h4>

1008 1008 

1009Los hooks se ejecutan sin una terminal de control, por lo que escribir secuencias de escape directamente en `/dev/tty` falla. En su lugar, devuelva la secuencia de escape en el campo `terminalSequence` y Claude Code la emite por usted a través de su propia ruta de escritura de terminal. Esto es libre de carreras, funciona dentro de tmux y GNU screen, y funciona en Windows donde no hay `/dev/tty`.1009Los 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`.

1010 1010 

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

1012 1012 

1013* OSC `0`, `1`, `2`: títulos de ventana e icono1013* OSC `0`, `1`, `2`: títulos de ventana e icono

1014* OSC `9`: notificaciones de iTerm2, ConEmu, Windows Terminal y WezTerm, incluyendo progreso de barra de tareas `9;4`1014* OSC `9`: notificaciones de iTerm2, ConEmu, Windows Terminal y WezTerm, incluido el progreso de la barra de tareas `9;4`

1015* OSC `99`: notificaciones de Kitty1015* OSC `99`: notificaciones de Kitty

1016* OSC `777`: notificaciones de urxvt, Ghostty y Warp1016* OSC `777`: notificaciones de urxvt, Ghostty y Warp

1017* BEL desnudo1017* BEL sin más

1018 1018 

1019Las secuencias pueden terminarse con BEL o con ST. Cualquier cosa fuera de la lista de permitidos, incluyendo secuencias de cursor y color CSI, secuencias de paleta OSC, hipervínculos OSC 8, escrituras de portapapeles OSC 52 y OSC 1337, se rechaza y el campo se ignora.1019Las 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.

1020 1020 

1021Claude Code escribe la secuencia en sí cuando procesa la salida de su hook, por lo que el campo funciona en eventos que descartan `systemMessage` y `continue`, como `Notification` y `StopFailure`. Tiene dos límites:1021Claude 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:

1022 1022 

1023* Claude Code escribe la secuencia solo en una sesión interactiva, y solo mientras su interfaz está en pantalla. En modo no interactivo con la bandera `-p` y en Agent SDK, ignora el campo.1023* 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.

1024* Un hook de comando `WorktreeCreate` no puede devolver JSON, porque Claude Code lee su stdout como la ruta de worktree. Un hook HTTP `WorktreeCreate` devuelve JSON y puede incluir el campo.1024* 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.

1025 1025 

1026El ejemplo a continuación dispara una notificación de escritorio desde un hook `Notification`. La secuencia de escape se construye con escapes octales `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 en el mensaje de notificación se escapen correctamente:1026El 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:

1027 1027 

1028```bash theme={null}1028```bash theme={null}

1029#!/bin/bash1029#!/bin/bash


1041 Agregar contexto para Claude1041 Agregar contexto para Claude

1042</h4>1042</h4>

1043 1043 

1044El campo `additionalContext` pasa una cadena de su hook a la ventana de contexto de Claude. Claude Code envuelve la cadena en un [recordatorio del sistema](/docs/es/glossary#system-reminder) e la inserta en la conversación en el punto donde se activó el hook. Claude lee el recordatorio en la siguiente solicitud del modelo, pero no aparece como un mensaje de chat en la interfaz.1044El 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](/docs/es/glossary#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.

1045 1045 

1046Devuelva `additionalContext` dentro de `hookSpecificOutput` junto al nombre del evento:1046Devuelve `additionalContext` dentro de `hookSpecificOutput` junto al nombre del evento:

1047 1047 

1048```json theme={null}1048```json theme={null}

1049{1049{


1059* [SessionStart](#sessionstart) y [SubagentStart](#subagentstart): al inicio de la conversación, antes del primer prompt1059* [SessionStart](#sessionstart) y [SubagentStart](#subagentstart): al inicio de la conversación, antes del primer prompt

1060* [UserPromptSubmit](#userpromptsubmit) y [UserPromptExpansion](#userpromptexpansion): junto al prompt enviado1060* [UserPromptSubmit](#userpromptsubmit) y [UserPromptExpansion](#userpromptexpansion): junto al prompt enviado

1061* [PreToolUse](#pretooluse), [PostToolUse](#posttooluse), [PostToolUseFailure](#posttoolusefailure) y [PostToolBatch](#posttoolbatch): junto al resultado de la herramienta1061* [PreToolUse](#pretooluse), [PostToolUse](#posttooluse), [PostToolUseFailure](#posttoolusefailure) y [PostToolBatch](#posttoolbatch): junto al resultado de la herramienta

1062* [Stop](#stop) y [SubagentStop](#subagentstop): al final del turno. La conversación continúa para que Claude pueda actuar sobre la retroalimentación. Consulte [Stop decision control](#stop-decision-control)1062* [Stop](#stop) y [SubagentStop](#subagentstop): al final del turno. La conversación continúa para que Claude pueda actuar sobre la retroalimentación. Consulta [Control de decisión de Stop](#stop-decision-control)

1063* [PostModelSwitch](#postmodelswitch): con la siguiente solicitud después del cambio. Consulte [PostModelSwitch decision control](#postmodelswitch-decision-control) para el tiempo1063* [PostModelSwitch](#postmodelswitch): con la siguiente solicitud después del cambio. Consulta [Control de decisión de PostModelSwitch](#postmodelswitch-decision-control) para ver cuándo ocurre

1064 1064 

1065Cuando varios hooks devuelven `additionalContext` para el mismo evento, Claude recibe todos los valores.1065Cuando varios hooks devuelven `additionalContext` para el mismo evento, Claude recibe todos los valores.

1066 1066 

1067Si un valor excede 10.000 caracteres, Claude Code escribe el texto en un archivo en el directorio de sesión y pasa a Claude la ruta del archivo con una vista previa de hasta los primeros 2.000 caracteres en su lugar. Claude puede leer el archivo, pero Claude Code no se lo pide.1067Si un valor supera los 10.000 caracteres, Claude Code escribe el texto en un archivo en el directorio de la sesión y, en su lugar, le pasa a Claude la ruta del archivo con una vista previa de hasta los primeros 2.000 caracteres. Claude puede leer el archivo, pero Claude Code no se lo pide.

1068 1068 

1069Use `additionalContext` para información que Claude debe conocer sobre el estado actual de su entorno o la operación que acaba de ejecutarse:1069Usa `additionalContext` para información que Claude debe conocer sobre el estado actual de tu entorno o sobre la operación que acaba de ejecutarse:

1070 1070 

1071* **Estado del entorno**: la rama actual, destino de implementación o banderas de características activas1071* **Estado del entorno**: la rama actual, el destino de despliegue o los feature flags activos

1072* **Reglas de proyecto condicionales**: qué comando de prueba se aplica al archivo que acaba de editar, qué directorios son de solo lectura en este worktree1072* **Reglas de proyecto condicionales**: qué comando de prueba se aplica al archivo que se acaba de editar, qué directorios son de solo lectura en este worktree

1073* **Datos externos**: problemas abiertos asignados a usted, resultados recientes de CI, contenido obtenido de un servicio interno1073* **Datos externos**: issues abiertos asignados a ti, resultados recientes de CI, contenido obtenido de un servicio interno

1074 1074 

1075Para instrucciones que nunca cambian, prefiera [CLAUDE.md](/docs/es/memory). Se carga sin ejecutar un script y es el lugar estándar para convenciones de proyecto estáticas.1075Para instrucciones que nunca cambian, prefiere [CLAUDE.md](/docs/es/memory). Se carga sin ejecutar un script y es el lugar estándar para las convenciones estáticas del proyecto.

1076 1076 

1077Escriba el texto como declaraciones factuales en lugar de instrucciones de sistema imperativas. Frases como "El destino de implementación es producción" o "Este repositorio usa `bun test`" se leen como información del proyecto. El texto enmarcado como comandos de sistema fuera de banda puede activar las defensas de inyección de prompts de Claude, lo que hace que Claude le muestre el texto en lugar de tratarlo como contexto.1077Escribe el texto como afirmaciones de hechos en lugar de instrucciones de sistema imperativas. Frases como "El destino de despliegue es producción" o "Este repositorio usa `bun test`" se leen como información del proyecto. El texto planteado como comandos de sistema fuera de banda puede activar las defensas contra la inyección de prompts de Claude, lo que hace que Claude te muestre el texto en lugar de tratarlo como contexto.

1078 1078 

1079Claude Code guarda el texto inyectado en la transcripción de sesión. Para eventos a mitad de sesión como `PostToolUse` o `UserPromptSubmit`, cuando reanuda con `--continue` o `--resume`, Claude Code reproduce el texto guardado en lugar de volver a ejecutar el hook para turnos anteriores, por lo que valores como marcas de tiempo o SHAs de commit se vuelven obsoletos. Los hooks `SessionStart` se ejecutan nuevamente al reanudar con `source` establecido en `"resume"`, o `"fork"` si agregó `--fork-session`, por lo que pueden actualizar su contexto.1079Claude Code guarda el texto inyectado en la transcripción de la sesión. Para eventos a mitad de sesión como `PostToolUse` o `UserPromptSubmit`, cuando reanudas con `--continue` o `--resume`, Claude Code reproduce el texto guardado en lugar de volver a ejecutar el hook para los turnos anteriores, por lo que valores como marcas de tiempo o SHAs de commits quedan obsoletos. Los hooks `SessionStart` se ejecutan de nuevo al reanudar con `source` establecido en `"resume"`, o en `"fork"` si agregaste `--fork-session`, por lo que pueden actualizar su contexto.

1080 1080 

1081<h4 id="decision-control">1081<h4 id="decision-control">

1082 Control de decisión1082 Control de decisión

1083</h4>1083</h4>

1084 1084 

1085No todos los eventos admiten bloqueo o control de comportamiento a través de JSON. Los eventos que lo hacen cada uno usan un conjunto diferente de campos para expresar esa decisión. Use esta tabla como referencia rápida antes de escribir un hook:1085No todos los eventos admiten bloquear o controlar el comportamiento mediante JSON. Los que sí lo admiten usan cada uno un conjunto distinto de campos para expresar esa decisión. Usa esta tabla como referencia rápida antes de escribir un hook:

1086 1086 

1087| Eventos | Patrón de decisión | Campos clave |1087| Eventos | Patrón de decisión | Campos clave |

1088| :- | :- | :- |1088| :- | :- | :- |

1089| UserPromptSubmit, UserPromptExpansion, PostToolUse, PostToolUseFailure, PostToolBatch, Stop, SubagentStop, ConfigChange, PreCompact | `decision` de nivel superior | `decision: "block"`, `reason`. Stop y SubagentStop también aceptan `hookSpecificOutput.additionalContext` para [retroalimentación sin error que continúa la conversación](#stop-decision-control) |1089| UserPromptSubmit, UserPromptExpansion, PostToolUse, PostToolUseFailure, PostToolBatch, Stop, SubagentStop, ConfigChange, PreCompact | `decision` de nivel superior | `decision: "block"`, `reason`. Stop y SubagentStop también aceptan `hookSpecificOutput.additionalContext` para [retroalimentación sin error que continúa la conversación](#stop-decision-control) |

1090| TeammateIdle, TaskCompleted | Código de salida o `continue: false` | El código de salida 2 bloquea la acción con retroalimentación de stderr. JSON `{"continue": false, "stopReason": "..."}` también detiene al compañero completamente, coincidiendo con el comportamiento del hook `Stop`; [TaskCompleted lo ignora cuando la herramienta `TaskUpdate` activó el evento](#taskcompleted-decision-control) |1090| TeammateIdle, TaskCompleted | Código de salida o `continue: false` | El código de salida 2 bloquea la acción con retroalimentación de stderr. JSON `{"continue": false, "stopReason": "..."}` también detiene al compañero por completo, igual que el comportamiento del hook `Stop`; [TaskCompleted lo ignora cuando la herramienta `TaskUpdate` activó el evento](#taskcompleted-decision-control) |

1091| TaskCreated | Código de salida o `decision` de nivel superior | El código de salida 2 o `decision: "block"` [cancela la tarea](#taskcreated-decision-control) y devuelve el mensaje a Claude. `continue: false` se ignora |1091| TaskCreated | Código de salida o `decision` de nivel superior | El código de salida 2 o `decision: "block"` [cancela la tarea](#taskcreated-decision-control) y devuelve el mensaje a Claude. `continue: false` se ignora |

1092| PreToolUse | `hookSpecificOutput` | `permissionDecision` (allow/deny/ask/defer), `permissionDecisionReason` |1092| PreToolUse | `hookSpecificOutput` | `permissionDecision` (allow/deny/ask/defer), `permissionDecisionReason` |

1093| PreModelSwitch | `hookSpecificOutput` o `decision` de nivel superior | `permissionDecision` (allow/deny/ask), `permissionDecisionReason`. `decision: "block"` también [cancela el cambio](#premodelswitch-decision-control) |1093| PreModelSwitch | `hookSpecificOutput` o `decision` de nivel superior | `permissionDecision` (allow/deny/ask), `permissionDecisionReason`. `decision: "block"` también [cancela el cambio](#premodelswitch-decision-control) |

1094| PermissionRequest | `hookSpecificOutput` | `decision.behavior` (allow/deny) |1094| PermissionRequest | `hookSpecificOutput` | `decision.behavior` (allow/deny) |

1095| PermissionDenied | `hookSpecificOutput` | `retry: true` le dice al modelo que puede reintentar la llamada a herramienta denegada; Claude Code ignora `retry: true` para [denegaciones sin veredicto](#permissiondenied-decision-control) |1095| PermissionDenied | `hookSpecificOutput` | `retry: true` le indica al modelo que puede reintentar la llamada a herramienta denegada; Claude Code lo ignora para [denegaciones sin veredicto](#permissiondenied-decision-control) |

1096| WorktreeCreate | ruta return | El hook de comando imprime la ruta en stdout; el hook HTTP devuelve `hookSpecificOutput.worktreePath`. El fallo del hook o la ruta faltante falla la creación |1096| WorktreeCreate | devolución de ruta | El hook de comando imprime la ruta en stdout; el hook HTTP devuelve `hookSpecificOutput.worktreePath`. Un fallo del hook o la falta de ruta hace fallar la creación |

1097| WorktreeRemove | Código de salida | Cualquier código de salida distinto de cero hace que la eliminación falle si el directorio aún existe después. La salida JSON se descarta |1097| WorktreeRemove | Código de salida | Cualquier código de salida distinto de cero hace que la eliminación falle si el directorio sigue existiendo después. La salida JSON se descarta |

1098| Elicitation | `hookSpecificOutput` | `action` (accept/decline/cancel), `content` (valores de campo de formulario para accept) |1098| Elicitation, ElicitationResult | `hookSpecificOutput` o `decision` de nivel superior | `action` (accept/decline/cancel), `content` (valores de los campos del formulario). `decision: "block"` también [rechaza](#other-ways-to-decline-an-elicitation) |

1099| ElicitationResult | `hookSpecificOutput` | `action` (accept/decline/cancel), `content` (valores de campo de formulario override) |1099| MessageDisplay | `hookSpecificOutput` | `displayContent` reemplaza el texto mostrado en pantalla. Solo afecta a la visualización: la transcripción y lo que Claude ve conservan el original |

1100| MessageDisplay | `hookSpecificOutput` | `displayContent` reemplaza el texto mostrado en pantalla. Solo visualización: la transcripción y lo que Claude ve mantienen el original |1100| SessionStart, SubagentStart, PostModelSwitch | Solo contexto | `hookSpecificOutput.additionalContext` agrega contexto para Claude. SessionStart también acepta [`initialUserMessage`, `watchPaths`, `sessionTitle` y `reloadSkills`](#sessionstart-decision-control). Sin bloqueo ni control de decisión |

1101| SessionStart, SubagentStart, PostModelSwitch | Solo contexto | `hookSpecificOutput.additionalContext` agrega contexto para Claude. SessionStart también acepta [`initialUserMessage`, `watchPaths`, `sessionTitle` y `reloadSkills`](#sessionstart-decision-control). Sin bloqueo o control de decisión |1101| Setup, Notification, SessionEnd, PostCompact, InstructionsLoaded, StopFailure, CwdChanged, DirectoryAdded, FileChanged | Ninguno | Sin control de decisión. Se usan para efectos secundarios como registro o limpieza |

1102| Setup, Notification, SessionEnd, PostCompact, InstructionsLoaded, StopFailure, CwdChanged, DirectoryAdded, FileChanged | Ninguno | Sin control de decisión. Se usa para efectos secundarios como registro o limpieza |1102 

1103 1103Algunos eventos también pueden reescribir contenido en lugar de solo permitirlo o bloquearlo:

1104Algunos eventos también pueden reescribir contenido en lugar de solo permitir o bloquearlo:1104 

1105 1105* `PreToolUse`: `updatedInput` directamente bajo `hookSpecificOutput` reemplaza los argumentos de una herramienta antes de que se ejecute. Consulta [Control de decisión de PreToolUse](#pretooluse-decision-control)

1106* `PreToolUse`: `updatedInput` directamente bajo `hookSpecificOutput` reemplaza los argumentos de una herramienta antes de que se ejecute. Consulte [PreToolUse decision control](#pretooluse-decision-control)1106* `PermissionRequest`: `updatedInput` dentro del objeto `decision`. Consulta [Control de decisión de PermissionRequest](#permissionrequest-decision-control)

1107* `PermissionRequest`: `updatedInput` dentro del objeto `decision`. Consulte [PermissionRequest decision control](#permissionrequest-decision-control)1107* `PostToolUse`: `updatedToolOutput` reemplaza el resultado de la herramienta. Consulta [Control de decisión de PostToolUse](#posttooluse-decision-control)

1108* `PostToolUse`: `updatedToolOutput` reemplaza el resultado de la herramienta. Consulte [PostToolUse decision control](#posttooluse-decision-control)

1109* `UserPromptSubmit`: no puede reemplazar el prompt; solo inyecta `additionalContext` junto a él1108* `UserPromptSubmit`: no puede reemplazar el prompt; solo inyecta `additionalContext` junto a él

1110 1109 

1111Para casos de uso de redacción o transformación, intercepte en `PreToolUse` para entradas de herramientas salientes y `PostToolUse` para resultados de herramientas entrantes.1110Para casos de uso de redacción o transformación, intercepta en `PreToolUse` las entradas salientes de herramientas y en `PostToolUse` los resultados entrantes de herramientas.

1112 1111 

1113Aquí hay ejemplos de cada patrón en acción:1112Aquí hay ejemplos de cada patrón en acción:

1114 1113 

1115<Tabs>1114<Tabs>

1116 <Tab title="Decisión de nivel superior">1115 <Tab title="Decisión de nivel superior">

1117 El único valor para `decision` es `"block"`. Para permitir que la acción continúe, omita `decision` de su JSON, o salga 0 sin ningún JSON en absoluto:1116 El único valor para `decision` es `"block"`. Para permitir que la acción continúe, omite `decision` de tu JSON, o sal con 0 sin ningún JSON:

1118 1117 

1119 ```json theme={null}1118 ```json theme={null}

1120 {1119 {


1125 </Tab>1124 </Tab>

1126 1125 

1127 <Tab title="PreToolUse">1126 <Tab title="PreToolUse">

1128 Usa `hookSpecificOutput` para control más rico: permitir, denegar, o escalar al usuario. También puede modificar la entrada de la herramienta antes de que se ejecute o inyectar contexto adicional para Claude. Consulte [PreToolUse decision control](#pretooluse-decision-control) para el conjunto completo de opciones.1127 Usa `hookSpecificOutput` para un control más rico: permitir, denegar o escalar al usuario. También puedes modificar la entrada de la herramienta antes de que se ejecute o inyectar contexto adicional para Claude. Consulta [Control de decisión de PreToolUse](#pretooluse-decision-control) para ver el conjunto completo de opciones.

1129 1128 

1130 ```json theme={null}1129 ```json theme={null}

1131 {1130 {


1139 </Tab>1138 </Tab>

1140 1139 

1141 <Tab title="PermissionRequest">1140 <Tab title="PermissionRequest">

1142 Usa `hookSpecificOutput` para permitir o denegar una solicitud de permiso en nombre del usuario. Al permitir, también puede modificar la entrada de la herramienta o aplicar reglas de permiso para que el usuario no sea solicitado nuevamente. Consulte [PermissionRequest decision control](#permissionrequest-decision-control) para el conjunto completo de opciones.1141 Usa `hookSpecificOutput` para permitir o denegar una solicitud de permiso en nombre del usuario. Al permitir, también puedes modificar la entrada de la herramienta o aplicar reglas de permisos para que no se le vuelva a preguntar al usuario. Consulta [Control de decisión de PermissionRequest](#permissionrequest-decision-control) para ver el conjunto completo de opciones.

1143 1142 

1144 ```json theme={null}1143 ```json theme={null}

1145 {1144 {


1157 </Tab>1156 </Tab>

1158</Tabs>1157</Tabs>

1159 1158 

1160Para ejemplos extendidos incluyendo validación de comandos Bash, filtrado de prompts y scripts de aprobación automática, consulte [What you can automate](/docs/es/hooks-guide#what-you-can-automate) en la guía y la [implementación de referencia del validador de comandos Bash](https://github.com/anthropics/claude-code/blob/main/examples/hooks/bash_command_validator_example.py).1159Para ejemplos más extensos, incluidos la validación de comandos Bash, el filtrado de prompts y scripts de aprobación automática, consulta [Qué puedes automatizar](/docs/es/hooks-guide#what-you-can-automate) en la guía y la [implementación de referencia del validador de comandos Bash](https://github.com/anthropics/claude-code/blob/main/examples/hooks/bash_command_validator_example.py).

1161 1160 

1162<h2 id="hook-events">1161<h2 id="hook-events">

1163 Eventos de hooks1162 Eventos de hooks

1164</h2>1163</h2>

1165 1164 

1166Cada evento corresponde a un punto del ciclo de vida de Claude Code en el que pueden ejecutarse hooks. Las secciones siguientes están ordenadas según el ciclo de vida: desde la configuración de la sesión, pasando por el bucle agéntico, hasta el final de la sesión. Cada sección describe cuándo se dispara el evento, qué matchers admite, la entrada JSON que recibe y cómo controlar el comportamiento mediante la salida.1165Cada evento corresponde a un punto del ciclo de vida de Claude Code en el que pueden ejecutarse hooks. Las secciones siguientes están ordenadas según el ciclo de vida: desde la configuración de la sesión, pasando por el bucle agéntico, hasta el final de la sesión. Cada sección describe cuándo se activa el evento, qué matchers admite, la entrada JSON que recibe y cómo controlar el comportamiento mediante la salida.

1167 1166 

1168<h3 id="sessionstart">1167<h3 id="sessionstart">

1169 SessionStart1168 SessionStart


1171 1170 

1172Se ejecuta cuando Claude Code inicia una sesión nueva o reanuda una sesión existente. Es útil para cargar contexto de desarrollo, como issues existentes o cambios recientes en tu base de código, o para configurar variables de entorno. Para contexto estático que no requiere un script, usa [CLAUDE.md](/docs/es/memory) en su lugar.1171Se ejecuta cuando Claude Code inicia una sesión nueva o reanuda una sesión existente. Es útil para cargar contexto de desarrollo, como issues existentes o cambios recientes en tu base de código, o para configurar variables de entorno. Para contexto estático que no requiere un script, usa [CLAUDE.md](/docs/es/memory) en su lugar.

1173 1172 

1174SessionStart se ejecuta en cada sesión, así que mantén estos hooks rápidos. Solo se admiten hooks `type: "command"` y `type: "mcp_tool"`. Consulta [Campos de hooks de herramientas MCP](#mcp-tool-hook-fields) para saber cuándo se ejecutan los hooks `mcp_tool`.1173SessionStart se ejecuta en cada sesión, así que mantén estos hooks rápidos. Solo se admiten hooks `type: "command"` y `type: "mcp_tool"`. Consulta [campos de hooks de herramientas MCP](#mcp-tool-hook-fields) para saber cuándo se ejecutan los hooks `mcp_tool`.

1175 1174 

1176El valor del matcher corresponde a cómo se inició la sesión:1175El valor del matcher corresponde a cómo se inició la sesión:

1177 1176 

1178| Matcher | Cuándo se dispara |1177| Matcher | Cuándo se activa |

1179| :- | :- |1178| :- | :- |

1180| `startup` | Sesión nueva |1179| `startup` | Sesión nueva |

1181| `resume` | `--resume`, `--continue` o `/resume` |1180| `resume` | `--resume`, `--continue` o `/resume` |

1182| `clear` | `/clear` |1181| `clear` | `/clear` |

1183| `compact` | Compactación automática o manual |1182| `compact` | Compactación automática o manual |

1184| `fork` | Una sesión nueva bifurcada de una existente: `--fork-session` con `--resume` o `--continue`, la copia en segundo plano de `/fork`, `/branch` o una conversación que [mueves al segundo plano](/docs/es/agent-view#from-inside-a-session) |1183| `fork` | Una sesión nueva bifurcada de una existente: `--fork-session` con `--resume` o `--continue`, la copia en segundo plano de `/fork`, `/branch`, o una conversación que [mueves a segundo plano](/docs/es/agent-view#from-inside-a-session) |

1185 1184 

1186Antes de la v2.1.214, las sesiones bifurcadas informaban el origen `"resume"`.1185Antes de la v2.1.214, las sesiones bifurcadas informaban el origen `"resume"`.

1187 1186 


1191 1190 

1192La misma espera se aplica al arrancar, incluida una sesión reanudada: un prompt que envías mientras los hooks SessionStart todavía se están ejecutando no llega a Claude hasta que terminan.1191La misma espera se aplica al arrancar, incluida una sesión reanudada: un prompt que envías mientras los hooks SessionStart todavía se están ejecutando no llega a Claude hasta que terminan.

1193 1192 

1194Durante cualquiera de las dos esperas, presiona `Esc` para devolver el prompt a la entrada sin enviarlo. Los hooks siguen ejecutándose.1193Durante cualquiera de las dos esperas, presiona `Esc` para devolver el prompt al campo de entrada sin enviarlo. Los hooks siguen ejecutándose.

1195 1194 

1196<h4 id="sessionstart-input">1195<h4 id="sessionstart-input">

1197 Entrada de SessionStart1196 Entrada de SessionStart


1201 1200 

1202| Campo | Descripción |1201| Campo | Descripción |

1203| :- | :- |1202| :- | :- |

1204| `source` | Cómo se inició la sesión: `"startup"` para sesiones nuevas, `"resume"` para sesiones reanudadas, `"clear"` después de `/clear`, `"compact"` después de la compactación o `"fork"` para una sesión nueva bifurcada de una existente |1203| `source` | Cómo se inició la sesión: `"startup"` para sesiones nuevas, `"resume"` para sesiones reanudadas, `"clear"` después de `/clear`, `"compact"` después de la compactación, o `"fork"` para una sesión nueva bifurcada de una existente |

1205| `model` | El identificador del modelo activo. Puede omitirse, por ejemplo después de `/clear` o cuando una sesión se restaura mediante la recuperación de conversaciones, así que comprueba que el campo exista antes de leerlo |1204| `model` | El identificador del modelo activo. Puede omitirse, por ejemplo después de `/clear` o cuando una sesión se restaura mediante la recuperación de conversaciones, así que verifica que el campo exista antes de leerlo |

1206| `agent_type` | El nombre del agente, presente cuando inicias Claude Code con `claude --agent <name>` |1205| `agent_type` | El nombre del agente, presente cuando inicias Claude Code con `claude --agent <name>` |

1207| `session_title` | El título personalizado de la sesión, presente cuando hay uno definido, por ejemplo con `--name`, `/rename`, la salida `sessionTitle` de un hook o `renameSession()` del Agent SDK. Un hook que emite `sessionTitle` puede comprobar primero este campo para evitar sobrescribir un título personalizado existente |1206| `session_title` | El título personalizado de la sesión, presente cuando hay uno establecido, por ejemplo con `--name`, `/rename`, la salida `sessionTitle` de un hook o `renameSession()` del Agent SDK. Un hook que emite `sessionTitle` puede revisar primero este campo para evitar sobrescribir un título personalizado existente |

1208 1207 

1209Una sesión a la que no le has puesto nombre puede tener igualmente un [título generado](/docs/es/sessions#name-your-sessions). Ese título no es un título personalizado y no aparece en `session_title`.1208Una sesión a la que no le has puesto nombre puede tener igualmente un [título generado](/docs/es/sessions#name-your-sessions). Ese título no es un título personalizado y no aparece en `session_title`.

1210 1209 


1212 1211 

1213| Campo | Descripción |1212| Campo | Descripción |

1214| :- | :- |1213| :- | :- |

1215| `seconds_since_last_response` | Segundos de tiempo real desde la última respuesta en la transcripción reanudada |1214| `seconds_since_last_response` | Segundos de tiempo real transcurridos desde la última respuesta en la transcripción reanudada |

1216| `context_tokens` | Tokens que la primera solicitud de la sesión reanudada vuelve a enviar como su prompt |1215| `context_tokens` | Tokens que la primera solicitud de la sesión reanudada vuelve a enviar como su prompt |

1217| `prompt_cache_likely_expired` | `true` cuando la última respuesta es más antigua que la [vida útil de la caché de prompts](/docs/es/prompt-caching#cache-lifetime) de la sesión o una compactación posterior reemplazó la conversación almacenada en caché |1216| `prompt_cache_likely_expired` | `true` cuando la última respuesta es más antigua que la [duración de la caché de prompts](/docs/es/prompt-caching#cache-lifetime) de la sesión o cuando una compactación posterior reemplazó la conversación almacenada en caché |

1218| `estimated_cache_write_usd` | Costo estimado en dólares estadounidenses de escribir `context_tokens` en la caché de prompts con el modelo de la sesión, sin incluir la respuesta |1217| `estimated_cache_write_usd` | Costo estimado en dólares estadounidenses de escribir `context_tokens` en la caché de prompts con el modelo de la sesión, sin incluir la respuesta |

1219 1218 

1220Este ejemplo muestra la entrada de una sesión reanudada 90 minutos después de su última respuesta:1219Este ejemplo muestra la entrada de una sesión reanudada 90 minutos después de su última respuesta:


1242 1241 

1243| Campo | Descripción |1242| Campo | Descripción |

1244| :- | :- |1243| :- | :- |

1245| `additionalContext` | Cadena agregada al contexto de Claude al inicio de la conversación, antes del primer prompt. Consulta [Agregar contexto para Claude](#add-context-for-claude) para saber cómo se entrega el texto y qué poner en él |1244| `additionalContext` | Cadena agregada al contexto de Claude al inicio de la conversación, antes del primer prompt. Consulta [Agregar contexto para Claude](#add-context-for-claude) para saber cómo se entrega el texto y qué incluir en él |

1246| `initialUserMessage` | Cadena usada como primer mensaje de usuario de la sesión. Se aplica en [modo no interactivo](/docs/es/headless) con el flag `-p`, donde se convierte en el primer turno incluso si no se proporciona ningún prompt. Si se proporciona un prompt, este sigue como el siguiente turno. A diferencia de `additionalContext`, que se adjunta a un turno existente, esto crea el turno |1245| `initialUserMessage` | Cadena usada como el primer mensaje del usuario de la sesión. Se aplica en el [modo no interactivo](/docs/es/headless) con el flag `-p`, donde se convierte en el primer turno aunque no se proporcione ningún prompt. Si se proporciona un prompt, este sigue como el siguiente turno. A diferencia de `additionalContext`, que se adjunta a un turno existente, este crea el turno |

1247| `sessionTitle` | Establece el título de la sesión, con el mismo efecto que `/rename`. Úsalo para nombrar sesiones automáticamente a partir de la carpeta de inicio, la rama de git o el nombre del worktree. Se aplica cuando `source` es `"startup"`, `"resume"` o `"fork"`; se ignora con `"clear"` y `"compact"` |1246| `sessionTitle` | Establece el título de la sesión, con el mismo efecto que `/rename`. Úsalo para nombrar sesiones automáticamente a partir de la carpeta de inicio, la rama de git o el nombre del worktree. Se aplica cuando `source` es `"startup"`, `"resume"` o `"fork"`; se ignora en `"clear"` y `"compact"` |

1248| `watchPaths` | Array de rutas absolutas que se vigilan para eventos [FileChanged](#filechanged) durante esta sesión |1247| `watchPaths` | Array de rutas absolutas que se vigilarán para eventos [FileChanged](#filechanged) durante esta sesión |

1249| `reloadSkills` | Booleano. Cuando es `true`, Claude Code vuelve a examinar los directorios de [skills](/docs/es/skills) y comandos después de que terminan los hooks SessionStart, de modo que los skills que instaló el hook están disponibles en la misma sesión, a partir del primer prompt |1248| `reloadSkills` | Booleano. Cuando es `true`, Claude Code vuelve a escanear los directorios de [skills](/docs/es/skills) y de comandos después de que terminan los hooks SessionStart, de modo que los skills que instaló el hook estén disponibles en la misma sesión, a partir del primer prompt |

1250 1249 

1251```json theme={null}1250```json theme={null}

1252{1251{


1258}1257}

1259```1258```

1260 1259 

1261Como la stdout en texto plano ya llega a Claude para este evento, un hook que solo carga contexto puede imprimir directamente en stdout sin construir JSON. Usa la forma JSON cuando necesites combinar contexto con otros campos, como `sessionTitle`.1260Como la stdout en texto plano ya llega a Claude en este evento, un hook que solo carga contexto puede imprimir directamente en stdout sin construir JSON. Usa el formato JSON cuando necesites combinar contexto con otros campos como `sessionTitle`.

1262 1261 

1263Usa `reloadSkills` cuando un hook SessionStart instala o actualiza skills. El descubrimiento de skills normalmente se ejecuta antes de que terminen los hooks SessionStart, por lo que los archivos que el hook escribe en `~/.claude/skills/` o `.claude/skills/` solo aparecerían en la siguiente sesión. Este ejemplo sincroniza un repositorio compartido de skills y solicita el nuevo examen:1262Usa `reloadSkills` cuando un hook SessionStart instala o actualiza skills. El descubrimiento de skills normalmente se ejecuta antes de que terminen los hooks SessionStart, así que los archivos que el hook escribe en `~/.claude/skills/` o `.claude/skills/` de otro modo solo aparecerían en la siguiente sesión. Este ejemplo sincroniza un repositorio compartido de skills y solicita el nuevo escaneo:

1264 1263 

1265```bash theme={null}1264```bash theme={null}

1266#!/bin/bash1265#!/bin/bash


1271echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'1270echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'

1272```1271```

1273 1272 

1274La URL del repositorio es un marcador de posición; reemplázala por tu propio repositorio de skills. Con el marcador de posición, el clon falla e imprime un mensaje `fatal:` en stderr. La stderr de un hook SessionStart que sale con 0 es solo informativa, así que la solicitud `reloadSkills` se sigue aplicando.1273La URL del repositorio es un marcador de posición; reemplázala por tu propio repositorio de skills. Con el marcador de posición, la clonación falla e imprime un mensaje `fatal:` en stderr. La stderr de un hook SessionStart que termina con 0 es solo informativa, así que la solicitud `reloadSkills` se aplica de todos modos.

1275 1274 

1276<h4 id="persist-environment-variables">1275<h4 id="persist-environment-variables">

1277 Persistir variables de entorno1276 Persistir variables de entorno


1279 1278 

1280Los hooks SessionStart tienen acceso a la variable de entorno `CLAUDE_ENV_FILE`, que proporciona una ruta de archivo donde puedes persistir variables de entorno para los comandos Bash posteriores.1279Los hooks SessionStart tienen acceso a la variable de entorno `CLAUDE_ENV_FILE`, que proporciona una ruta de archivo donde puedes persistir variables de entorno para los comandos Bash posteriores.

1281 1280 

1282Para establecer variables de entorno individuales, escribe instrucciones `export` en `CLAUDE_ENV_FILE`. Usa la anexión (`>>`) para conservar las variables establecidas por otros hooks:1281Para establecer variables de entorno individuales, escribe sentencias `export` en `CLAUDE_ENV_FILE`. Usa la adición (`>>`) para conservar las variables establecidas por otros hooks:

1283 1282 

1284```bash theme={null}1283```bash theme={null}

1285#!/bin/bash1284#!/bin/bash


1293exit 01292exit 0

1294```1293```

1295 1294 

1296Para capturar todos los cambios del entorno de los comandos de configuración, compara las variables exportadas antes y después:1295Para capturar todos los cambios de entorno de los comandos de configuración, compara las variables exportadas antes y después:

1297 1296 

1298```bash theme={null}1297```bash theme={null}

1299#!/bin/bash1298#!/bin/bash


1320 Setup1319 Setup

1321</h3>1320</h3>

1322 1321 

1323Se dispara solo cuando inicias Claude Code con `--init-only`, o con `--init` o `--maintenance` en [modo no interactivo](/docs/es/headless) con el flag `-p`. No se dispara en un inicio normal. Úsalo para la instalación única de dependencias o para limpiezas programadas que activas explícitamente desde CI o scripts, de forma separada del inicio normal de la sesión. Para la inicialización por sesión, usa [SessionStart](#sessionstart) en su lugar.1322Se activa solo cuando inicias Claude Code con `--init-only`, o con `--init` o `--maintenance` en el [modo no interactivo](/docs/es/headless) con el flag `-p`. No se activa en el inicio normal. Úsalo para la instalación de dependencias de una sola vez o para una limpieza programada que activas explícitamente desde CI o scripts, separada del inicio normal de la sesión. Para la inicialización por sesión, usa [SessionStart](#sessionstart) en su lugar.

1324 1323 

1325El valor del matcher corresponde al flag de la CLI que activó el hook:1324El valor del matcher corresponde al flag de la CLI que activó el hook:

1326 1325 

1327| Matcher | Cuándo se dispara |1326| Matcher | Cuándo se activa |

1328| :- | :- |1327| :- | :- |

1329| `init` | `claude --init-only` o `claude -p --init` |1328| `init` | `claude --init-only` o `claude -p --init` |

1330| `maintenance` | `claude -p --maintenance` |1329| `maintenance` | `claude -p --maintenance` |

1331 1330 

1332Cuando ejecutas `claude --init-only`, Claude Code ejecuta los hooks Setup y los hooks `SessionStart` con el matcher `startup`, y luego sale sin iniciar una conversación.1331Cuando ejecutas `claude --init-only`, Claude Code ejecuta los hooks Setup y los hooks `SessionStart` con el matcher `startup`, y luego sale sin iniciar una conversación.

1333 1332 

1334Cuando inicias o continúas una conversación con `-p`, también necesitas proporcionar un prompt, como argumento o mediante una canalización por stdin. Puedes omitir el prompt cuando un hook `SessionStart` proporciona [`initialUserMessage`](#sessionstart-decision-control) o cuando reanudas una sesión con una [llamada a herramienta diferida](#defer-a-tool-call-for-later).1333Cuando inicias o continúas una conversación con `-p`, también necesitas proporcionar un prompt, como argumento o canalizado por stdin. Puedes omitir el prompt cuando un hook `SessionStart` proporciona [`initialUserMessage`](#sessionstart-decision-control) o cuando reanudas una sesión con una [llamada a herramienta diferida](#defer-a-tool-call-for-later).

1335 1334 

1336Si tiene éxito, `--init-only` no imprime nada en la terminal. Para confirmar que los hooks se ejecutaron, inicia con `claude --debug-file <path> --init-only`, reemplazando `<path>` por la ubicación de un archivo de log, y revisa el registro en busca de las entradas de los hooks Setup y SessionStart.1335Si tiene éxito, `--init-only` no imprime nada en la terminal. Para confirmar que los hooks se ejecutaron, inicia con `claude --debug-file <path> --init-only`, reemplazando `<path>` por la ubicación de un archivo de log, y revisa el registro en busca de las entradas de los hooks Setup y SessionStart.

1337 1336 

1338Como Setup no se dispara en cada inicio, un plugin que necesita una dependencia instalada no puede depender solo de Setup. El patrón práctico es comprobar la dependencia en el primer uso e instalarla si falta, por ejemplo con un hook o skill que compruebe `${CLAUDE_PLUGIN_DATA}/node_modules` y ejecute `npm install` si no existe. Consulta el [directorio de datos persistentes](/docs/es/plugins/components#path-variables-and-persistent-data) para saber dónde almacenar las dependencias instaladas. Si distribuyes tu plugin a través de un marketplace, es posible que no necesites este patrón: Claude Code [instala automáticamente las dependencias de paquetes de Node.js aptas](/docs/es/plugins/loading#node-js-package-dependencies) cuando almacena el plugin en caché.1337Como Setup no se activa en cada inicio, un plugin que necesita instalar una dependencia no puede depender solo de Setup. El patrón práctico es verificar la dependencia en el primer uso e instalarla si falta, por ejemplo con un hook o skill que compruebe `${CLAUDE_PLUGIN_DATA}/node_modules` y ejecute `npm install` si no existe. Consulta el [directorio de datos persistentes](/docs/es/plugins/components#path-variables-and-persistent-data) para saber dónde almacenar las dependencias instaladas. Si distribuyes tu plugin a través de un marketplace, es posible que no necesites este patrón: Claude Code [instala automáticamente las dependencias de paquetes de Node.js elegibles](/docs/es/plugins/loading#node-js-package-dependencies) cuando almacena el plugin en caché.

1339 1338 

1340<h4 id="setup-input">1339<h4 id="setup-input">

1341 Entrada de Setup1340 Entrada de Setup


1359 1358 

1360Los hooks Setup no pueden bloquear; la ejecución continúa con cualquier código de salida. Con cualquier código de salida, Claude Code descarta los [campos de salida JSON](#json-output) de un hook Setup, como `systemMessage`, `continue` y `hookSpecificOutput.additionalContext`. Con `-p`, la stdout, la stderr y el código de salida de un hook Setup aparecen en la salida de la ejecución solo como [eventos `hook_response`](/docs/es/headless#read-session-metadata) cuando inicias con `--output-format stream-json --verbose`.1359Los hooks Setup no pueden bloquear; la ejecución continúa con cualquier código de salida. Con cualquier código de salida, Claude Code descarta los [campos de salida JSON](#json-output) de un hook Setup, como `systemMessage`, `continue` y `hookSpecificOutput.additionalContext`. Con `-p`, la stdout, la stderr y el código de salida de un hook Setup aparecen en la salida de la ejecución solo como [eventos `hook_response`](/docs/es/headless#read-session-metadata) cuando inicias con `--output-format stream-json --verbose`.

1361 1360 

1362Los hooks Setup tienen acceso a `CLAUDE_ENV_FILE`. Las variables escritas en ese archivo persisten en los comandos Bash posteriores de la sesión, como en los [hooks SessionStart](#persist-environment-variables). Solo los hooks `type: "command"` se ejecutan en `Setup`. Un hook `type: "mcp_tool"` en `Setup` siempre se omite, como se describe en [Campos de hooks de herramientas MCP](#mcp-tool-hook-fields).1361Los hooks Setup tienen acceso a `CLAUDE_ENV_FILE`. Las variables escritas en ese archivo persisten en los comandos Bash posteriores de la sesión, como en los [hooks SessionStart](#persist-environment-variables). Solo los hooks `type: "command"` se ejecutan en `Setup`. Un hook `type: "mcp_tool"` en `Setup` siempre se omite, como se describe en [campos de hooks de herramientas MCP](#mcp-tool-hook-fields).

1363 1362 

1364<h3 id="instructionsloaded">1363<h3 id="instructionsloaded">

1365 InstructionsLoaded1364 InstructionsLoaded

1366</h3>1365</h3>

1367 1366 

1368Se dispara cuando un archivo `CLAUDE.md` o `.claude/rules/*.md` se carga en el contexto. Este evento se dispara al inicio de la sesión para los archivos cargados de forma anticipada y de nuevo más adelante cuando los archivos se cargan de forma diferida, por ejemplo cuando Claude accede a un subdirectorio que contiene un `CLAUDE.md` anidado o cuando coinciden reglas condicionales con frontmatter `paths:`. El hook no admite bloqueo ni control de decisiones. Se ejecuta de forma asíncrona con fines de observabilidad.1367Se activa cuando un archivo `CLAUDE.md` o `.claude/rules/*.md` se carga en el contexto. Este evento se activa al inicio de la sesión para los archivos que se cargan de forma anticipada y otra vez más adelante cuando los archivos se cargan de forma diferida, por ejemplo cuando Claude accede a un subdirectorio que contiene un `CLAUDE.md` anidado o cuando coinciden reglas condicionales con frontmatter `paths:`. El hook no admite bloqueo ni control de decisiones. Se ejecuta de forma asíncrona con fines de observabilidad.

1369 1368 

1370Este evento no se dispara cuando Claude [lee `AGENTS.md` directamente](/docs/es/memory#agents-md) mediante el ajuste **Project instructions**. Sí se dispara cuando un `CLAUDE.md` importa tu `AGENTS.md`, con `load_reason` establecido en `include` como para cualquier otro archivo importado, y cuando `CLAUDE.md` es un enlace simbólico a él, como una carga normal de `CLAUDE.md`.1369Este evento no se activa cuando Claude [lee `AGENTS.md` directamente](/docs/es/memory#agents-md) mediante el ajuste **Project instructions**. Sí se activa cuando un `CLAUDE.md` importa tu `AGENTS.md`, con `load_reason` establecido en `include` como para cualquier otro archivo importado, y cuando `CLAUDE.md` es un enlace simbólico a él, como una carga normal de `CLAUDE.md`.

1371 1370 

1372El matcher se evalúa contra `load_reason`. Por ejemplo, usa `"matcher": "session_start"` para dispararse solo con los archivos cargados al inicio de la sesión, o `"matcher": "path_glob_match|nested_traversal"` para dispararse solo con las cargas diferidas.1371El matcher se evalúa contra `load_reason`. Por ejemplo, usa `"matcher": "session_start"` para que se active solo con los archivos cargados al inicio de la sesión, o `"matcher": "path_glob_match|nested_traversal"` para que se active solo con cargas diferidas.

1373 1372 

1374<h4 id="instructionsloaded-input">1373<h4 id="instructionsloaded-input">

1375 Entrada de InstructionsLoaded1374 Entrada de InstructionsLoaded


1381| :- | :- |1380| :- | :- |

1382| `file_path` | Ruta absoluta al archivo de instrucciones que se cargó |1381| `file_path` | Ruta absoluta al archivo de instrucciones que se cargó |

1383| `memory_type` | Alcance del archivo: `"User"`, `"Project"`, `"Local"` o `"Managed"` |1382| `memory_type` | Alcance del archivo: `"User"`, `"Project"`, `"Local"` o `"Managed"` |

1384| `load_reason` | Por qué se cargó el archivo: `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"` o `"compact"`. El valor `"compact"` se dispara cuando los archivos de instrucciones se vuelven a cargar después de un evento de compactación |1383| `load_reason` | Por qué se cargó el archivo: `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"` o `"compact"`. El valor `"compact"` se activa cuando los archivos de instrucciones se vuelven a cargar después de un evento de compactación |

1385| `globs` | Patrones glob de rutas del frontmatter `paths:` del archivo, si los hay. Presente solo en las cargas `path_glob_match` |1384| `globs` | Patrones glob de ruta del frontmatter `paths:` del archivo, si los hay. Presente solo en cargas `path_glob_match` |

1386| `trigger_file_path` | Ruta al archivo cuyo acceso activó esta carga, en las cargas diferidas |1385| `trigger_file_path` | Ruta al archivo cuyo acceso desencadenó esta carga, en cargas diferidas |

1387| `parent_file_path` | Ruta al archivo de instrucciones padre que incluyó este, en las cargas `include` |1386| `parent_file_path` | Ruta al archivo de instrucciones padre que incluyó este, en cargas `include` |

1388 1387 

1389```json theme={null}1388```json theme={null}

1390{1389{


1412agregar contexto adicional según el prompt o la conversación, validar prompts o1411agregar contexto adicional según el prompt o la conversación, validar prompts o

1413bloquear ciertos tipos de prompts.1412bloquear ciertos tipos de prompts.

1414 1413 

1415Los hooks `UserPromptSubmit` no se disparan solo con los prompts que escribes. Claude Code también los ejecuta cuando:1414Los hooks `UserPromptSubmit` no se activan solo con los prompts que escribes. Claude Code también los ejecuta cuando:

1416 1415 

1417* Se dispara una [tarea programada](/docs/es/scheduled-tasks), incluida una iteración de `/loop`1416* Se activa una [tarea programada](/docs/es/scheduled-tasks), incluida una iteración de `/loop`

1418* Un [subagente en segundo plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background) informa a la sesión que lo inició1417* Un [subagente en segundo plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background) informa a la sesión que lo inició

1419* Llega a tu conversación principal un [mensaje que envía otra sesión](/docs/es/cross-session-messaging)1418* Llega a tu conversación principal un [mensaje que envía otra sesión](/docs/es/cross-session-messaging)

1420 1419 

1421Los hooks `UserPromptSubmit` tienen un tiempo de espera predeterminado de 30 segundos para los tipos `command`, `http` y `mcp_tool`, más corto que el predeterminado de 600 segundos para esos tipos en la mayoría de los demás eventos. Como este hook se ejecuta antes de cada prompt y bloquea el procesamiento del modelo hasta que termina, un hook atascado detiene la sesión. Si tu hook necesita más tiempo, establece el campo `timeout` en la entrada del hook.1420Los hooks `UserPromptSubmit` tienen un tiempo de espera predeterminado de 30 segundos para los tipos `command`, `http` y `mcp_tool`, más corto que el valor predeterminado de 600 segundos para esos tipos en la mayoría de los demás eventos. Como este hook se ejecuta antes de cada prompt y bloquea el procesamiento del modelo hasta que termina, un hook atascado detiene la sesión. Si tu hook necesita más tiempo, establece el campo `timeout` en la entrada del hook.

1422 1421 

1423Salvo un hook de comando que ejecutas con [`async: true`](#run-hooks-in-the-background), un hook de comando, HTTP o de herramienta MCP de `UserPromptSubmit` que agota su tiempo de espera se cancela y su salida, incluido cualquier `additionalContext`, se descarta. El prompt sigue llegando a Claude sin ese contexto. La transcripción muestra un aviso que nombra el hook, el tiempo de espera que se agotó y que la salida se descartó.1422Salvo un hook de comando que ejecutes con [`async: true`](#run-hooks-in-the-background), cuando a un hook de comando, HTTP o de herramienta MCP de `UserPromptSubmit` se le agota el tiempo de espera, se cancela y su salida, incluido cualquier `additionalContext`, se descarta. El prompt llega igualmente a Claude sin ese contexto. La transcripción muestra un aviso con el nombre del hook, el tiempo de espera que se agotó y que la salida se descartó.

1424 1423 

1425Un [hook de callback del Agent SDK](/docs/es/agent-sdk/hooks) en `UserPromptSubmit` que agota su tiempo de espera bloquea el prompt con un mensaje que nombra el hook y el tiempo de espera, porque un callback ahí puede actuar como una barrera de políticas que no debe fallar en abierto. La sesión continúa. Antes de la v2.1.208, un tiempo de espera agotado de un callback en ese evento terminaba el turno con un error de ejecución.1424Cuando a un [hook de callback del Agent SDK](/docs/es/agent-sdk/hooks) en `UserPromptSubmit` se le agota el tiempo de espera, bloquea el prompt con un mensaje que nombra el hook y el tiempo de espera, porque un callback ahí puede estar actuando como una barrera de políticas que no debe fallar de forma abierta. La sesión continúa. Antes de la v2.1.208, agotar el tiempo de espera de un callback en ese evento terminaba el turno con un error de ejecución.

1426 1425 

1427<h4 id="userpromptsubmit-input">1426<h4 id="userpromptsubmit-input">

1428 Entrada de UserPromptSubmit1427 Entrada de UserPromptSubmit

1429</h4>1428</h4>

1430 1429 

1431Además de los [campos de entrada comunes](#common-input-fields), los hooks UserPromptSubmit reciben el campo `prompt` con el texto enviado. El contenido pegado que se contrajo en un marcador de posición `[Pasted text #N]` llega expandido en su lugar. En las sesiones en las que Claude Code [marca el texto pegado para Claude](/docs/es/terminal-config#how-claude-treats-pasted-text), ese contenido expandido se sitúa entre una línea `<pasted_content id="…">` y una línea `</pasted_content id="…">`, así que ten en cuenta esas líneas si tu hook analiza el prompt.1430Además de los [campos de entrada comunes](#common-input-fields), los hooks UserPromptSubmit reciben el campo `prompt` que contiene el texto enviado. El contenido pegado que se contrajo en un marcador `[Pasted text #N]` llega expandido en su lugar. En las sesiones en las que Claude Code [marca el texto pegado para Claude](/docs/es/terminal-config#how-claude-treats-pasted-text), ese contenido expandido se ubica entre una línea `<pasted_content id="…">` y una línea `</pasted_content id="…">`, así que tenlas en cuenta si tu hook analiza el prompt.

1432 1431 

1433Los hooks UserPromptSubmit también reciben `session_title` cuando la sesión tiene un título personalizado, con el mismo significado que el [campo `session_title` de SessionStart](#sessionstart-input).1432Los hooks UserPromptSubmit también reciben `session_title` cuando la sesión tiene un título personalizado, con el mismo significado que el [campo `session_title` de SessionStart](#sessionstart-input).

1434 1433 


1452Hay dos formas de agregar contexto a la conversación con el código de salida 0:1451Hay dos formas de agregar contexto a la conversación con el código de salida 0:

1453 1452 

1454* **Stdout en texto plano**: Claude Code agrega al contexto de Claude la stdout que [trata como texto plano](#exit-code-0)1453* **Stdout en texto plano**: Claude Code agrega al contexto de Claude la stdout que [trata como texto plano](#exit-code-0)

1455* **JSON con `additionalContext`**: usa el formato JSON siguiente para tener más control. El campo `additionalContext` se agrega como contexto1454* **JSON con `additionalContext`**: usa el formato JSON a continuación para tener más control. El campo `additionalContext` se agrega como contexto

1456 1455 

1457Ninguno de los dos canales produce una entrada visible en la transcripción. La stdout en texto plano y el valor de `additionalContext` se inyectan cada uno como un recordatorio del sistema que comienza con el nombre del hook; Claude lee ambos. Para confirmar la entrega, revisa el [registro de depuración](#debug-hooks).1456Ninguno de los dos canales produce una entrada visible en la transcripción. La stdout en texto plano y el valor de `additionalContext` se inyectan cada uno como un recordatorio del sistema que comienza con el nombre del hook; Claude lee ambos. Para confirmar la entrega, revisa el [registro de depuración](#debug-hooks).

1458 1457 


1464| `reason` | Se muestra al usuario cuando `decision` es `"block"`. No se agrega al contexto |1463| `reason` | Se muestra al usuario cuando `decision` es `"block"`. No se agrega al contexto |

1465| `additionalContext` | Cadena agregada al contexto de Claude junto con el prompt enviado. Consulta [Agregar contexto para Claude](#add-context-for-claude) |1464| `additionalContext` | Cadena agregada al contexto de Claude junto con el prompt enviado. Consulta [Agregar contexto para Claude](#add-context-for-claude) |

1466| `sessionTitle` | Establece el título de la sesión. Úsalo para nombrar sesiones automáticamente según el contenido del prompt |1465| `sessionTitle` | Establece el título de la sesión. Úsalo para nombrar sesiones automáticamente según el contenido del prompt |

1467| `suppressOriginalPrompt` | Si es `true` cuando el hook bloquea el prompt, deja el texto del prompt fuera del mensaje de bloqueo. Consulta [Lo que deja un prompt bloqueado](#what-a-blocked-prompt-leaves-behind) |1466| `suppressOriginalPrompt` | Si es `true` cuando el hook bloquea el prompt, deja el texto del prompt fuera del mensaje de bloqueo. Consulta [Qué deja atrás un prompt bloqueado](#what-a-blocked-prompt-leaves-behind) |

1468 1467 

1469Un hook que bloquea saliendo con 2 se encamina igual que `reason`: el mensaje de bloqueo muestra el texto de stderr al usuario y no se agrega al contexto.1468Un hook que bloquea terminando con 2 se enruta igual que `reason`: el mensaje de bloqueo muestra al usuario el texto de stderr, y no se agrega al contexto.

1470 1469 

1471```json theme={null}1470```json theme={null}

1472{1471{


1482```1481```

1483 1482 

1484<h4 id="what-a-blocked-prompt-leaves-behind">1483<h4 id="what-a-blocked-prompt-leaves-behind">

1485 Lo que deja un prompt bloqueado1484 Qué deja atrás un prompt bloqueado

1486</h4>1485</h4>

1487 1486 

1488Un prompt bloqueado nunca llega a Claude, pero su texto no se elimina de todas partes. De forma predeterminada, el mensaje de bloqueo que se muestra al usuario termina con `Original prompt:` seguido del texto enviado, y Claude Code escribe ese mensaje en el archivo de transcripción de la sesión en el disco. Para dejar el texto fuera del mensaje, imprime JSON con `"suppressOriginalPrompt": true` dentro de `hookSpecificOutput`. Esto funciona tanto si el hook bloquea con `decision: "block"` como si termina con 2.1487Un prompt bloqueado nunca llega a Claude, pero su texto no se elimina en todas partes. De forma predeterminada, el mensaje de bloqueo que se muestra al usuario termina con `Original prompt:` seguido del texto enviado, y Claude Code escribe ese mensaje en el archivo de transcripción de la sesión en el disco. Para dejar el texto fuera del mensaje, imprime JSON con `"suppressOriginalPrompt": true` dentro de `hookSpecificOutput`. Esto funciona tanto si el hook bloquea con `decision: "block"` como si lo hace terminando con 2.

1489 1488 

1490`suppressOriginalPrompt` solo cambia el mensaje de bloqueo. El texto enviado puede seguir apareciendo en archivos locales, como la transcripción de la sesión y tu historial de prompts, así que un hook de bloqueo no es una forma de mantener un secreto fuera del disco. Para limitar o eliminar esos archivos, consulta [Almacenamiento en texto plano](/docs/es/claude-directory#plaintext-storage) y [Borrar datos locales](/docs/es/claude-directory#clear-local-data).1489`suppressOriginalPrompt` solo cambia el mensaje de bloqueo. El texto enviado puede seguir apareciendo en archivos locales, como la transcripción de la sesión y tu historial de prompts, así que un hook de bloqueo no es una forma de mantener un secreto fuera del disco. Para limitar o eliminar esos archivos, consulta [Almacenamiento en texto plano](/docs/es/claude-directory#plaintext-storage) y [Borrar datos locales](/docs/es/claude-directory#clear-local-data).

1491 1490 


1493 UserPromptExpansion1492 UserPromptExpansion

1494</h3>1493</h3>

1495 1494 

1496Se ejecuta cuando un comando escrito por el usuario se expande en un prompt antes de llegar a Claude. Úsalo para impedir la invocación directa de comandos específicos, inyectar contexto para un skill en particular o registrar qué comandos invocan los usuarios. Por ejemplo, un hook que coincide con `deploy` puede bloquear `/deploy` a menos que exista un archivo de aprobación, o un hook que coincide con un skill de revisión puede anexar la lista de verificación de revisión del equipo como `additionalContext`.1495Se ejecuta cuando un comando escrito por el usuario se expande en un prompt antes de llegar a Claude. Úsalo para bloquear la invocación directa de comandos específicos, inyectar contexto para un skill en particular o registrar qué comandos invocan los usuarios. Por ejemplo, un hook que coincide con `deploy` puede bloquear `/deploy` a menos que exista un archivo de aprobación, o un hook que coincide con un skill de revisión puede agregar la lista de verificación de revisión del equipo como `additionalContext`.

1497 1496 

1498Este evento cubre la ruta que `PreToolUse` no cubre: un hook `PreToolUse` que coincide con la herramienta `Skill` se dispara solo cuando Claude llama a la herramienta, pero escribir `/skillname` directamente evita `PreToolUse`. `UserPromptExpansion` se dispara en esa ruta directa.1497Este evento cubre el camino que `PreToolUse` no cubre: un hook `PreToolUse` que coincide con la herramienta `Skill` se activa solo cuando Claude llama a la herramienta, pero escribir `/skillname` directamente omite `PreToolUse`. `UserPromptExpansion` se activa en ese camino directo.

1499 1498 

1500Coincide con `command_name`. Deja el matcher vacío para dispararse con cada comando de tipo prompt.1499Coincide con `command_name`. Deja el matcher vacío para que se active con cada comando de tipo prompt.

1501 1500 

1502<h4 id="userpromptexpansion-input">1501<h4 id="userpromptexpansion-input">

1503 Entrada de UserPromptExpansion1502 Entrada de UserPromptExpansion


1532| `reason` | Se muestra al usuario cuando `decision` es `"block"` |1531| `reason` | Se muestra al usuario cuando `decision` es `"block"` |

1533| `additionalContext` | Cadena agregada al contexto de Claude junto con el prompt expandido. Consulta [Agregar contexto para Claude](#add-context-for-claude) |1532| `additionalContext` | Cadena agregada al contexto de Claude junto con el prompt expandido. Consulta [Agregar contexto para Claude](#add-context-for-claude) |

1534 1533 

1535Un hook que bloquea saliendo con 2 se encamina igual que `reason`: el mensaje de bloqueo muestra el texto de stderr al usuario.1534Un hook que bloquea terminando con 2 se enruta igual que `reason`: el mensaje de bloqueo muestra al usuario el texto de stderr.

1536 1535 

1537```json theme={null}1536```json theme={null}

1538{1537{


1549 MessageDisplay1548 MessageDisplay

1550</h3>1549</h3>

1551 1550 

1552Se ejecuta mientras un mensaje del asistente se transmite a la pantalla. Claude Code muestra el mensaje en incrementos: cada vez que un lote de líneas recién completadas está listo para renderizarse, el hook se ejecuta una vez con esas líneas y Claude Code renderiza el texto de reemplazo del hook en su lugar. Un mensaje largo produce varias llamadas; un mensaje corto puede producir solo una.1551Se ejecuta mientras un mensaje del asistente se transmite a la pantalla. Claude Code muestra el mensaje por incrementos: cada vez que un lote de líneas recién completadas está listo para renderizarse, el hook se ejecuta una vez con esas líneas y Claude Code renderiza el texto de reemplazo del hook en su lugar. Un mensaje largo produce varias llamadas; un mensaje corto puede producir solo una.

1553 1552 

1554Usa MessageDisplay para:1553Usa MessageDisplay para:

1555 1554 


1557* transformar el texto que una aplicación del Agent SDK muestra a sus usuarios1556* transformar el texto que una aplicación del Agent SDK muestra a sus usuarios

1558* ocultar claves de API o nombres de host internos de las respuestas de Claude1557* ocultar claves de API o nombres de host internos de las respuestas de Claude

1559 1558 

1560Claude Code retiene cada lote hasta que tu hook devuelve, así que mantén el hook rápido. Si el hook falla o se agota su tiempo de espera, Claude Code muestra el texto original. El tiempo de espera predeterminado de este evento es de 10 segundos; si tu hook necesita más tiempo, establece el campo `timeout` en la entrada del hook.1559Claude Code retiene cada lote hasta que tu hook responde, así que mantén el hook rápido. Si el hook falla o se agota su tiempo de espera, Claude Code muestra el texto original. El tiempo de espera predeterminado para este evento es de 10 segundos; si tu hook necesita más tiempo, establece el campo `timeout` en la entrada del hook.

1561 1560 

1562MessageDisplay es solo de visualización: el texto de reemplazo cambia solo lo que se renderiza en pantalla. La transcripción y lo que ve Claude conservan el texto original, así que Claude nunca ve el reemplazo, y el modo detallado muestra el original. El hook recibe solo el texto de los mensajes del asistente, por lo que los resultados de herramientas y el texto que escribes se renderizan sin cambios.1561MessageDisplay es solo de visualización: el texto de reemplazo cambia únicamente lo que se renderiza en la pantalla. La transcripción y lo que ve Claude conservan el texto original, así que Claude nunca ve el reemplazo, y el modo detallado muestra el original. El hook recibe solo el texto de los mensajes del asistente, así que los resultados de herramientas y el texto que escribes se renderizan sin cambios.

1563 1562 

1564MessageDisplay no admite matchers y se dispara con cada mensaje del asistente que transmite texto; los mensajes sin texto, como las respuestas que solo contienen llamadas a herramientas, no lo activan.1563MessageDisplay no admite matchers y se activa con cada mensaje del asistente que transmite texto; los mensajes sin texto, como las respuestas que solo contienen llamadas a herramientas, no lo activan.

1565 1564 

1566En las ejecuciones no interactivas, incluidas las consultas del Agent SDK y `claude -p`, MessageDisplay se ejecuta una vez por mensaje del asistente en lugar de una vez por lote de líneas. La única llamada llega después de que el mensaje se completa y lleva el texto completo del mensaje: `index` es `0`, `final` es `true` y `delta` contiene el mensaje entero. Un hook que recopila el texto de `delta` de cada mensaje recibe el mismo texto total en ambos modos.1565En las ejecuciones no interactivas, incluidas las consultas del Agent SDK y `claude -p`, MessageDisplay se ejecuta una vez por mensaje del asistente en lugar de una vez por lote de líneas. La única llamada llega después de que el mensaje termina y contiene el texto completo del mensaje: `index` es `0`, `final` es `true` y `delta` contiene el mensaje entero. Un hook que recopila el texto `delta` de cada mensaje recibe el mismo texto total en ambos modos.

1567 1566 

1568<h4 id="messagedisplay-input">1567<h4 id="messagedisplay-input">

1569 Entrada de MessageDisplay1568 Entrada de MessageDisplay

1570</h4>1569</h4>

1571 1570 

1572Además de los [campos de entrada comunes](#common-input-fields), los hooks MessageDisplay reciben identificadores del turno y del mensaje, la posición de esta llamada dentro del mensaje y el texto nuevo en `delta`. Los límites de los lotes dependen de cómo se transmite el texto, así que usa `index` y `final` para seguir el progreso a lo largo de un mensaje en lugar de esperar que las líneas se agrupen de una forma particular.1571Además de los [campos de entrada comunes](#common-input-fields), los hooks MessageDisplay reciben identificadores del turno y del mensaje, la posición de esta llamada dentro del mensaje y el texto nuevo en `delta`. Los límites de los lotes dependen de cómo se transmite el texto, así que usa `index` y `final` para seguir el avance a través de un mensaje en lugar de esperar que las líneas se agrupen de una manera determinada.

1573 1572 

1574| Campo | Descripción |1573| Campo | Descripción |

1575| :- | :- |1574| :- | :- |

1576| `turn_id` | UUID del turno actual |1575| `turn_id` | UUID del turno actual |

1577| `message_id` | UUID del mensaje del asistente que se está mostrando. Es estable en todos los lotes del mismo mensaje. No es el id `msg_…` de la API, así que no se puede correlacionar con los ids de los mensajes de la transcripción |1576| `message_id` | UUID del mensaje del asistente que se está mostrando. Se mantiene estable en todos los lotes del mismo mensaje. No es el id `msg_…` de la API, así que no se puede correlacionar con los ids de mensajes de la transcripción |

1578| `index` | Índice, con base cero, de este lote dentro del mensaje |1577| `index` | Índice, empezando en cero, de este lote dentro del mensaje |

1579| `final` | `true` en el último lote del mensaje. Cada mensaje tiene exactamente un lote final |1578| `final` | `true` en el último lote del mensaje. Cada mensaje tiene exactamente un lote final |

1580| `delta` | Las líneas recién completadas desde el lote anterior, incluidos los saltos de línea finales. Siempre son líneas completas, excepto el lote final, que puede terminar a mitad de línea. En las ejecuciones interactivas, el delta del lote final está vacío cuando el mensaje termina en un salto de línea, así que trata `final`, y no un delta no vacío, como la señal de fin de mensaje. En las ejecuciones del Agent SDK y de `claude -p`, la única llamada lleva el mensaje completo |1579| `delta` | Las líneas recién completadas desde el lote anterior, incluidos los saltos de línea finales. Siempre son líneas completas, excepto el lote final, que puede terminar a mitad de línea. En las ejecuciones interactivas, el delta del lote final está vacío cuando el mensaje termina en un salto de línea, así que trata `final`, y no un delta no vacío, como la señal de fin de mensaje. En las ejecuciones del Agent SDK y de `claude -p`, la única llamada contiene el mensaje entero |

1581 1580 

1582```json theme={null}1581```json theme={null}

1583{1582{


1597 Salida de MessageDisplay1596 Salida de MessageDisplay

1598</h4>1597</h4>

1599 1598 

1600Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, los hooks MessageDisplay pueden devolver `displayContent` para reemplazar el delta en pantalla:1599Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, los hooks MessageDisplay pueden devolver `displayContent` para reemplazar el delta en la pantalla:

1601 1600 

1602| Campo | Descripción |1601| Campo | Descripción |

1603| :- | :- |1602| :- | :- |


1605 1604 

1606Los hooks MessageDisplay no tienen control de decisiones. No pueden bloquear el mensaje ni cambiar lo que se almacena en la transcripción o se envía a Claude. Claude Code actúa sobre `displayContent` de su salida JSON y descarta `systemMessage` y `continue`.1605Los hooks MessageDisplay no tienen control de decisiones. No pueden bloquear el mensaje ni cambiar lo que se almacena en la transcripción o se envía a Claude. Claude Code actúa sobre `displayContent` de su salida JSON y descarta `systemMessage` y `continue`.

1607 1606 

1608Este ejemplo quita el formato markdown de las respuestas de Claude para una visualización en texto plano. El script lee cada lote desde stdin, elimina los marcadores de negrita y las comillas invertidas del código en línea de `delta`, y devuelve el resultado como `displayContent`.1607Este ejemplo quita el formato markdown de las respuestas de Claude para una visualización en texto plano. El script lee cada lote desde stdin, elimina los marcadores de negrita y las comillas invertidas de código en línea de `delta`, y devuelve el resultado como `displayContent`.

1609 1608 

1610<Tabs>1609<Tabs>

1611 <Tab title="macOS/Linux">1610 <Tab title="macOS/Linux">


1664 }1663 }

1665 ```1664 ```

1666 1665 

1667 El flag `-NoProfile` omite la carga de tu perfil de PowerShell para que el hook arranque rápido, y `-ExecutionPolicy Bypass` permite que PowerShell ejecute el archivo de script local.1666 El flag `-NoProfile` omite la carga de tu perfil de PowerShell para que el hook inicie rápido, y `-ExecutionPolicy Bypass` permite que PowerShell ejecute el archivo de script local.

1668 1667 

1669 Guarda este script en `.claude/hooks/plain-display.ps1` en tu proyecto:1668 Guarda este script en `.claude/hooks/plain-display.ps1` en tu proyecto:

1670 1669 


1681 </Tab>1680 </Tab>

1682</Tabs>1681</Tabs>

1683 1682 

1684Los lotes sin markdown pasan sin cambios. Si el script falla, por ejemplo porque falta `jq`, Claude Code muestra el texto original y anota el fallo solo en la [salida de depuración](#debug-hooks), no en la sesión.1683Los lotes sin markdown pasan sin cambios. Si el script falla, por ejemplo porque falta `jq`, Claude Code muestra el texto original y registra el fallo solo en la [salida de depuración](#debug-hooks), no en la sesión.

1685 1684 

1686<h3 id="pretooluse">1685<h3 id="pretooluse">

1687 PreToolUse1686 PreToolUse


1689 1688 

1690Se ejecuta después de que Claude crea los parámetros de la herramienta y antes de procesar la llamada a herramienta. Coincide con cualquier nombre de herramienta excepto `EndConversation`: herramientas integradas como `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion` y `ExitPlanMode`, y cualquier [nombre de herramienta MCP](#match-mcp-tools).1689Se ejecuta después de que Claude crea los parámetros de la herramienta y antes de procesar la llamada a herramienta. Coincide con cualquier nombre de herramienta excepto `EndConversation`: herramientas integradas como `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion` y `ExitPlanMode`, y cualquier [nombre de herramienta MCP](#match-mcp-tools).

1691 1690 

1692Para ejecutar un hook cuando un archivo específico cambia en disco, sin importar qué lo escribió, usa [FileChanged](#filechanged) en lugar de hacer coincidir por nombre las herramientas de edición de archivos. A diferencia de PreToolUse, Claude Code ejecuta los hooks FileChanged después del cambio, y no tienen control de decisiones, así que no pueden bloquear la escritura.1691Para ejecutar un hook cuando un archivo específico cambia en el disco, sin importar qué lo escribió, usa [FileChanged](#filechanged) en lugar de hacer coincidir por nombre las herramientas de edición de archivos. A diferencia de PreToolUse, Claude Code ejecuta los hooks FileChanged después del cambio, y no tienen control de decisiones, así que no pueden bloquear la escritura.

1693 1692 

1694<Warning>1693<Warning>

1695 PreToolUse solo se ejecuta cuando Claude llama a una herramienta. Los archivos que [referencias con `@` en tu prompt](/docs/es/common-workflows#reference-files-and-directories) se agregan sin ninguna llamada a herramienta: Claude Code inserta su contenido mientras construye el prompt, así que no se dispara ningún hook PreToolUse para ellos, incluidos los hooks que coinciden con `Read`. Para bloquear rutas específicas de las referencias con `@`, usa una [regla de denegación de `Read`](/docs/es/permissions#read-and-edit) en su lugar.1694 PreToolUse solo se ejecuta cuando Claude llama a una herramienta. Los archivos que [referencias con `@` en tu prompt](/docs/es/common-workflows#reference-files-and-directories) se agregan sin ninguna llamada a herramienta: Claude Code inserta su contenido mientras construye el prompt, así que no se activa ningún hook PreToolUse para ellos, incluidos los hooks que coinciden con `Read`. Para bloquear rutas específicas en las referencias con `@`, usa una [regla de denegación de `Read`](/docs/es/permissions#read-and-edit) en su lugar.

1696 1695 

1697 PreToolUse tampoco se dispara para [`EndConversation`](/docs/es/tools-reference#endconversation-tool-behavior).1696 PreToolUse tampoco se activa para [`EndConversation`](/docs/es/tools-reference#endconversation-tool-behavior).

1698</Warning>1697</Warning>

1699 1698 

1700Usa el [control de decisiones de PreToolUse](#pretooluse-decision-control) para permitir, denegar, preguntar o diferir la llamada a herramienta.1699Usa el [control de decisiones de PreToolUse](#pretooluse-decision-control) para permitir, denegar, preguntar o diferir la llamada a herramienta.


1707 1706 

1708Además de los [campos de entrada comunes](#common-input-fields), los hooks PreToolUse reciben `tool_name`, `tool_input` y `tool_use_id`.1707Además de los [campos de entrada comunes](#common-input-fields), los hooks PreToolUse reciben `tool_name`, `tool_input` y `tool_use_id`.

1709 1708 

1710Para una [herramienta MCP](#match-mcp-tools), la entrada también lleva `mcp_server`, un objeto con el `name` del servidor y un `source` que indica de dónde proviene la definición del servidor. Los valores de `source` incluyen `plugin`, `sdk` y alcances de configuración como `user` y `project`. [`McpServerProvenance`](/docs/es/agent-sdk/typescript#mcpserverprovenance) en la referencia del Agent SDK los enumera todos e indica cómo tratar uno que no reconozcas. Basa las decisiones de confianza en `source` en lugar de en `name` o en el prefijo de nombre de herramienta `mcp__<server>__`. El campo `mcp_server` requiere Claude Code v2.1.274 o posterior.1709Para una [herramienta MCP](#match-mcp-tools), la entrada también incluye `mcp_server`, un objeto con el `name` del servidor y un `source` que indica de dónde proviene la definición del servidor. Los valores de `source` incluyen `plugin`, `sdk` y alcances de configuración como `user` y `project`. [`McpServerProvenance`](/docs/es/agent-sdk/typescript#mcpserverprovenance) en la referencia del Agent SDK los enumera todos e indica cómo tratar uno que no reconozcas. Basa las decisiones de confianza en `source` en lugar de en `name` o en el prefijo de nombre de herramienta `mcp__<server>__`. El campo `mcp_server` requiere Claude Code v2.1.274 o posterior.

1711 1710 

1712Para las herramientas de archivos `Write`, `Edit` y `Read`, `tool_input.file_path` siempre es absoluta:1711Para las herramientas de archivos `Write`, `Edit` y `Read`, `tool_input.file_path` siempre es absoluta:

1713 1712 

1714* Claude Code expande `~` y las rutas relativas antes de que se ejecuten los hooks, así que un hook que coincide con rutas no se puede eludir mediante `~` o una forma relativa de escribir la misma ruta1713* Claude Code expande `~` y las rutas relativas antes de que se ejecuten los hooks, así que un hook que hace coincidir rutas no se puede eludir mediante `~` o una forma relativa de escribir la misma ruta

1715* En Windows, la ruta llega con separadores de barra invertida, incluso cuando tu hook se ejecuta en Git Bash, donde `$PWD` se ve como `/c/project`1714* En Windows, la ruta llega con separadores de barra invertida, incluso cuando tu hook se ejecuta en Git Bash, donde `$PWD` se ve como `/c/project`

1716* Una comparación escrita con barras diagonales, como una comprobación de `/src/`, nunca coincide con una ruta con barras invertidas, y la llamada a herramienta continúa como si el hook no tuviera nada que bloquear1715* Una comparación escrita con barras normales, como una comprobación de `/src/`, nunca coincide con una ruta con barras invertidas, y la llamada a herramienta continúa como si el hook no tuviera nada que bloquear

1717* Normaliza los separadores antes de comparar: `FILE_PATH="${FILE_PATH//\\//}"` en Bash, o `file_path.replace("\\", "/")` en Python, y luego haz coincidir un segmento de ruta como `/src/` en lugar de anclar con `^`, ya que la ruta es absoluta1716* Normaliza los separadores antes de comparar: `FILE_PATH="${FILE_PATH//\\//}"` en Bash, o `file_path.replace("\\", "/")` en Python, y luego haz coincidir un segmento de ruta como `/src/` en lugar de anclar con `^`, ya que la ruta es absoluta

1718 1717 

1719Una llamada a `Write` en Windows entrega:1718Una llamada a `Write` en Windows entrega:


1738 Bash1737 Bash

1739</h5>1738</h5>

1740 1739 

1741Ejecuta comandos del shell.1740Ejecuta comandos de shell.

1742 1741 

1743| Campo | Tipo | Ejemplo | Descripción |1742| Campo | Tipo | Ejemplo | Descripción |

1744| :- | :- | :- | :- |1743| :- | :- | :- | :- |

1745| `command` | string | `"npm test"` | El comando del shell que se ejecutará |1744| `command` | string | `"npm test"` | El comando de shell que se ejecutará |

1746| `description` | string | `"Run test suite"` | Descripción opcional de lo que hace el comando |1745| `description` | string | `"Run test suite"` | Descripción opcional de lo que hace el comando |

1747| `timeout` | number | `120000` | Tiempo de espera opcional en milisegundos. Los valores por encima del [máximo](/docs/es/tools-reference#bash-tool-behavior) se reducen al máximo en lugar de rechazarse |1746| `timeout` | number | `120000` | Tiempo de espera opcional en milisegundos. Los valores por encima del [máximo](/docs/es/tools-reference#bash-tool-behavior) se reducen al máximo en lugar de rechazarse |

1748| `run_in_background` | boolean | `false` | Si el comando se ejecuta en segundo plano |1747| `run_in_background` | boolean | `false` | Si se ejecuta el comando en segundo plano |

1749 1748 

1750Cuando un comando Bash cambia archivos en un repositorio Git, Claude Code puede registrar lo que cambió. Registra los cambios en todos los modos de permisos cuando el ajuste [`bashEditDiffEnabled`](/docs/es/settings-reference#basheditdiffenabled) activa el registro; la entrada de ese ajuste indica qué archivos pueden establecerlo. De lo contrario, solo los registra en modo automático y en modo `bypassPermissions`, y solo cuando Claude Code indica a Claude que edite archivos mediante Bash. Establece `bashEditDiffEnabled` en `false` para desactivar el registro. Los comandos en segundo plano y los comandos de solo lectura no llevan diff.1749Cuando un comando Bash cambia archivos en un repositorio de Git, Claude Code puede registrar lo que cambió. Registra los cambios en todos los modos de permisos cuando el ajuste [`bashEditDiffEnabled`](/docs/es/settings-reference#basheditdiffenabled) activa el registro; la entrada de ese ajuste indica qué archivos pueden establecerlo. De lo contrario, solo los registra en el modo automático y en el modo `bypassPermissions`, y solo cuando Claude Code indica a Claude que edite archivos mediante Bash. Establece `bashEditDiffEnabled` en `false` para desactivar el registro. Los comandos en segundo plano y los comandos de solo lectura no incluyen diff.

1751 1750 

1752Tu [hook PostToolUse](#posttooluse) recibe entonces los archivos modificados en `tool_response.bashEditDiff`. La lista cubre lo que cambió dentro del repositorio mientras se ejecutaba el comando. Los archivos que Git ignora y los archivos de los submódulos no se incluyen. Requiere Claude Code v2.1.269 o posterior.1751Luego, tu [hook PostToolUse](#posttooluse) recibe los archivos cambiados en `tool_response.bashEditDiff`. La lista cubre lo que cambió dentro del repositorio mientras se ejecutaba el comando. Los archivos que Git ignora y los archivos en submódulos no se incluyen. Requiere Claude Code v2.1.269 o posterior.

1753 1752 

1754<Note>1753<Note>

1755 La lista es de mejor esfuerzo y está en beta pública. Claude Code puede pasar por alto un cambio, incluir un archivo que otro proceso cambió al mismo tiempo o detenerse en sus límites de tamaño. La forma del campo puede cambiar. Usa la lista para encontrar qué revisar, no para aplicar una política.1754 La lista se genera en la medida de lo posible y está en beta pública. Claude Code puede pasar por alto un cambio, incluir un archivo que otro proceso cambió al mismo tiempo o detenerse al alcanzar sus límites de tamaño. La forma del campo puede cambiar. Usa la lista para encontrar qué revisar, no para hacer cumplir una política.

1756</Note>1755</Note>

1757 1756 

1758`changedFiles` y `files` enumeran lo que cambió el comando; los campos restantes indican qué tan completa y qué tan fiable es esa lista.1757`changedFiles` y `files` enumeran lo que cambió el comando; los demás campos indican qué tan completa y qué tan confiable es esa lista.

1759 1758 

1760| Campo | Tipo | Ejemplo | Descripción |1759| Campo | Tipo | Ejemplo | Descripción |

1761| :- | :- | :- | :- |1760| :- | :- | :- | :- |

1762| `changedFiles` | array | `["/path/to/src/app.ts"]` | Rutas absolutas de los archivos que cambió el comando, como máximo 200. Presente siempre que `files` contenga un diff o `moreFiles` sea mayor que cero |1761| `changedFiles` | array | `["/path/to/src/app.ts"]` | Rutas absolutas de los archivos que cambió el comando, como máximo 200. Presente siempre que `files` contenga un diff o `moreFiles` sea mayor que cero |

1763| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | Diffs de hasta 5 archivos modificados, para mostrar. `created` o `deleted` es `true` para un archivo que el comando agregó o eliminó |1762| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | Diffs de hasta 5 archivos cambiados, para mostrar. `created` o `deleted` es `true` para un archivo que el comando agregó o eliminó |

1764| `moreFiles` | number | `2` | Cantidad de archivos modificados sin diff en `files` |1763| `moreFiles` | number | `2` | Cantidad de archivos cambiados sin diff en `files` |

1765| `unavailable` | boolean | `true` | Se establece cuando el diff está incompleto o no se pudo obtener |1764| `unavailable` | boolean | `true` | Se establece cuando el diff está incompleto o no se pudo obtener |

1766| `skipped` | boolean | `true` | Se establece para un comando de Git que mueve el árbol de trabajo, como `git checkout` o `git stash`, de modo que Claude Code no obtiene ningún diff |1765| `skipped` | boolean | `true` | Se establece para un comando de Git que mueve el árbol de trabajo, como `git checkout` o `git stash`, de modo que Claude Code no obtiene ningún diff |

1767| `shared` | boolean | `true` | Se establece cuando otra llamada a la herramienta Bash, como la de un subagente, se ejecutó en el mismo repositorio al mismo tiempo, por lo que algunos cambios enumerados pueden ser de ese comando |1766| `shared` | boolean | `true` | Se establece cuando otra llamada a la herramienta Bash, como la de un subagente, se ejecutó en el mismo repositorio al mismo tiempo, de modo que algunos cambios enumerados pueden ser de ese comando |

1768 1767 

1769<a id="powershell" />1768<a id="powershell" />

1770 1769 


1781| `command` | string | `"Get-ChildItem -Recurse"` | El comando de PowerShell que se ejecutará |1780| `command` | string | `"Get-ChildItem -Recurse"` | El comando de PowerShell que se ejecutará |

1782| `description` | string | `"List files recursively"` | Descripción opcional de lo que hace el comando |1781| `description` | string | `"List files recursively"` | Descripción opcional de lo que hace el comando |

1783| `timeout` | number | `120000` | Tiempo de espera opcional en milisegundos |1782| `timeout` | number | `120000` | Tiempo de espera opcional en milisegundos |

1784| `run_in_background` | boolean | `false` | Si el comando se ejecuta en segundo plano |1783| `run_in_background` | boolean | `false` | Si se ejecuta el comando en segundo plano |

1785 1784 

1786Haz coincidir `Bash|PowerShell` en los hooks que inspeccionan comandos del shell, para que cubran ambas herramientas:1785Usa `Bash|PowerShell` como matcher en los hooks que inspeccionan comandos de shell, para que cubran ambas herramientas:

1787 1786 

1788* En Windows, dondequiera que la herramienta PowerShell esté habilitada, Claude trata PowerShell como el shell principal y encamina los comandos del shell a través de él.1787* En Windows, dondequiera que la herramienta PowerShell esté habilitada, Claude trata PowerShell como el shell principal y enruta los comandos de shell a través de él.

1789* En Windows sin Git Bash, la herramienta se habilita automáticamente y Claude Code no registra la herramienta Bash en absoluto.1788* En Windows sin Git Bash, la herramienta se habilita automáticamente y Claude Code no registra la herramienta Bash en absoluto.

1790* Un hook que solo coincide con `Bash` nunca se dispara ahí.1789* Un hook que coincide solo con `Bash` nunca se activa ahí.

1791 1790 

1792<h5 id="write">1791<h5 id="write">

1793 Write1792 Write


1822| Campo | Tipo | Ejemplo | Descripción |1821| Campo | Tipo | Ejemplo | Descripción |

1823| :- | :- | :- | :- |1822| :- | :- | :- | :- |

1824| `file_path` | string | `"/path/to/file.txt"` | Ruta absoluta al archivo que se leerá |1823| `file_path` | string | `"/path/to/file.txt"` | Ruta absoluta al archivo que se leerá |

1825| `offset` | number | `10` | Número de línea opcional desde el que empezar a leer |1824| `offset` | number | `10` | Número de línea opcional desde el que se empieza a leer |

1826| `limit` | number | `50` | Número opcional de líneas que se leerán |1825| `limit` | number | `50` | Número opcional de líneas que se leerán |

1827 1826 

1828<h5 id="glob">1827<h5 id="glob">

1829 Glob1828 Glob

1830</h5>1829</h5>

1831 1830 

1832Busca archivos que coinciden con un patrón glob.1831Encuentra archivos que coinciden con un patrón glob.

1833 1832 

1834| Campo | Tipo | Ejemplo | Descripción |1833| Campo | Tipo | Ejemplo | Descripción |

1835| :- | :- | :- | :- |1834| :- | :- | :- | :- |

1836| `pattern` | string | `"**/*.ts"` | Patrón glob con el que comparar los archivos |1835| `pattern` | string | `"**/*.ts"` | Patrón glob con el que se compararán los archivos |

1837| `path` | string | `"/path/to/dir"` | Directorio opcional en el que buscar. De forma predeterminada, el directorio de trabajo actual |1836| `path` | string | `"/path/to/dir"` | Directorio opcional en el que buscar. De forma predeterminada es el directorio de trabajo actual |

1838 1837 

1839<h5 id="grep">1838<h5 id="grep">

1840 Grep1839 Grep


1847| `pattern` | string | `"TODO.*fix"` | Patrón de expresión regular que se buscará |1846| `pattern` | string | `"TODO.*fix"` | Patrón de expresión regular que se buscará |

1848| `path` | string | `"/path/to/dir"` | Archivo o directorio opcional en el que buscar |1847| `path` | string | `"/path/to/dir"` | Archivo o directorio opcional en el que buscar |

1849| `glob` | string | `"*.ts"` | Patrón glob opcional para filtrar archivos |1848| `glob` | string | `"*.ts"` | Patrón glob opcional para filtrar archivos |

1850| `output_mode` | string | `"content"` | `"content"`, `"files_with_matches"` o `"count"`. De forma predeterminada, `"files_with_matches"` |1849| `output_mode` | string | `"content"` | `"content"`, `"files_with_matches"` o `"count"`. De forma predeterminada es `"files_with_matches"` |

1851| `-i` | boolean | `true` | Búsqueda sin distinguir mayúsculas de minúsculas |1850| `-i` | boolean | `true` | Búsqueda sin distinguir mayúsculas de minúsculas |

1852| `multiline` | boolean | `false` | Habilita la coincidencia multilínea |1851| `multiline` | boolean | `false` | Habilita la coincidencia multilínea |

1853 1852 


1859 1858 

1860| Campo | Tipo | Ejemplo | Descripción |1859| Campo | Tipo | Ejemplo | Descripción |

1861| :- | :- | :- | :- |1860| :- | :- | :- | :- |

1862| `url` | string | `"https://example.com/api"` | URL de la que obtener el contenido |1861| `url` | string | `"https://example.com/api"` | URL de la que se obtendrá el contenido |

1863| `prompt` | string | `"Extract the API endpoints"` | Prompt que se ejecutará sobre el contenido obtenido |1862| `prompt` | string | `"Extract the API endpoints"` | Prompt que se ejecutará sobre el contenido obtenido |

1864 1863 

1865<h5 id="websearch">1864<h5 id="websearch">


1878 Agent1877 Agent

1879</h5>1878</h5>

1880 1879 

1881Genera un [subagente](/docs/es/sub-agents).1880Inicia un [subagente](/docs/es/sub-agents).

1882 1881 

1883| Campo | Tipo | Ejemplo | Descripción |1882| Campo | Tipo | Ejemplo | Descripción |

1884| :- | :- | :- | :- |1883| :- | :- | :- | :- |


1887| `subagent_type` | string | `"Explore"` | Tipo de agente especializado que se usará |1886| `subagent_type` | string | `"Explore"` | Tipo de agente especializado que se usará |

1888| `model` | string | `"sonnet"` | Alias de modelo opcional para sobrescribir el predeterminado |1887| `model` | string | `"sonnet"` | Alias de modelo opcional para sobrescribir el predeterminado |

1889 1888 

1890Cuando una llamada a Agent en primer plano termina, tu [hook PostToolUse](#posttooluse) recibe el resultado del subagente y la telemetría de la ejecución en `tool_response`. Lee estos campos para inspeccionar la ejecución; para totales de tokens y costos entre subagentes, usa los [contadores de tokens y costos](/docs/es/monitoring-usage#token-counter) filtrados por `query_source` `"subagent"`, ya que `totalTokens` y `usage` cubren solo la solicitud final:1889Cuando una llamada a Agent en primer plano termina, tu [hook PostToolUse](#posttooluse) recibe el resultado del subagente y la telemetría de la ejecución en `tool_response`. Lee estos campos para inspeccionar la ejecución; para los totales de tokens y costos de todos los subagentes, usa los [contadores de tokens y costos](/docs/es/monitoring-usage#token-counter) filtrados por `query_source` `"subagent"`, ya que `totalTokens` y `usage` cubren solo la solicitud final:

1891 1890 

1892| Campo | Tipo | Ejemplo | Descripción |1891| Campo | Tipo | Ejemplo | Descripción |

1893| :- | :- | :- | :- |1892| :- | :- | :- | :- |

1894| `status` | string | `"completed"` | `"completed"` para subagentes en primer plano, `"async_launched"` para subagentes en segundo plano. Los subagentes se ejecutan en segundo plano de forma predeterminada, así que una llamada a Agent que omite `run_in_background` también produce `"async_launched"` |1893| `status` | string | `"completed"` | `"completed"` para subagentes en primer plano, `"async_launched"` para subagentes en segundo plano. Los subagentes se ejecutan en segundo plano de forma predeterminada, así que una llamada a Agent que omite `run_in_background` también produce `"async_launched"` |

1895| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identificador de la ejecución del subagente |1894| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identificador de la ejecución del subagente |

1896| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Los bloques de texto finales del subagente o, para un subagente cuyo informe pasa por `SubagentHandback`, una nota breve sobre esa entrega en su lugar |1895| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Los bloques de texto finales del subagente o, en el caso de un subagente cuyo informe pasa por `SubagentHandback`, una nota breve sobre esa entrega en su lugar |

1897| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modelo con el que empezó el subagente, que puede diferir del modelo solicitado |1896| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modelo con el que empezó el subagente, que puede ser distinto del modelo solicitado |

1898| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Modelos usados en orden, con las repeticiones consecutivas contraídas; se establece solo cuando el modelo se cambió a mitad de la ejecución. Requiere Claude Code v2.1.212 o posterior |1897| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Modelos usados en orden, con las repeticiones consecutivas contraídas; se establece solo cuando el modelo se cambió a mitad de la ejecución. Requiere Claude Code v2.1.212 o posterior |

1899| `totalTokens` | number | `12450` | Cantidad de tokens de la solicitud final a la API del subagente: tokens de entrada, de salida y de caché combinados. No es un total de toda la ejecución |1898| `totalTokens` | number | `12450` | Cantidad de tokens de la solicitud final a la API del subagente: tokens de entrada, de salida y de caché combinados. No es un total de toda la ejecución |

1900| `totalDurationMs` | number | `48211` | Duración en tiempo real de la ejecución del subagente |1899| `totalDurationMs` | number | `48211` | Duración en tiempo real de la ejecución del subagente |

1901| `totalToolUseCount` | number | `7` | Cantidad de llamadas a herramientas que hizo el subagente |1900| `totalToolUseCount` | number | `7` | Cantidad de llamadas a herramientas que hizo el subagente |

1902| `usage` | object | `{"input_tokens": 8320, ...}` | Desglose de tokens por tipo de la solicitud final a la API: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |1901| `usage` | object | `{"input_tokens": 8320, ...}` | Desglose de tokens por tipo de la solicitud final a la API: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |

1903 1902 

1904En Claude Code v2.1.271 o posterior, un subagente que se ejecuta con la herramienta [`SubagentHandback`](/docs/es/tools-reference), que Claude Code proporciona en [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), entrega su informe mediante esa herramienta en lugar de devolverlo como texto. El campo `content` de su resultado `completed` lleva entonces una nota breve sobre esa entrega en lugar del informe en sí. Para leer el informe, haz coincidir un hook `PreToolUse` o `PostToolUse` con `SubagentHandback` y lee `tool_input.message`.1903En Claude Code v2.1.271 o posterior, un subagente que se ejecuta con la herramienta [`SubagentHandback`](/docs/es/tools-reference), que Claude Code proporciona en el [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), entrega su informe mediante esa herramienta en lugar de devolverlo como texto. El campo `content` de su resultado `completed` contiene entonces una nota breve sobre esa entrega en lugar del informe mismo. Para leer el informe, haz coincidir un hook `PreToolUse` o `PostToolUse` con `SubagentHandback` y lee `tool_input.message`.

1905 1904 

1906Para los subagentes en segundo plano, la herramienta devuelve cuando la tarea pasa a segundo plano, así que `tool_response` no lleva campos de uso: un inicio en segundo plano devuelve de inmediato, y una tarea en primer plano que Claude Code pasa a segundo plano a mitad de la ejecución devuelve en esa transición. Tiene `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` y `resolvedModel`.1905Para los subagentes en segundo plano, la herramienta responde cuando la tarea pasa a segundo plano, así que `tool_response` no incluye campos de uso: un inicio en segundo plano responde de inmediato, y una tarea en primer plano que Claude Code pasa a segundo plano a mitad de la ejecución responde en esa transición. Contiene `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` y `resolvedModel`.

1907 1906 

1908En una respuesta `completed`, `resolvedModel` nombra el modelo con el que empezó el subagente, que puede diferir del valor de `model` en `tool_input`, por ejemplo cuando se aplica `availableModels` u otra sobrescritura. En una respuesta `async_launched`, `resolvedModel` nombra el modelo en uso cuando el agente pasó a segundo plano, de modo que un cambio ocurrido antes de pasar a segundo plano se refleja ahí. `modelsUsed` y el comportamiento de `resolvedModel` en el momento de pasar a segundo plano requieren Claude Code v2.1.212 o posterior.1907En una respuesta `completed`, `resolvedModel` nombra el modelo con el que empezó el subagente, que puede ser distinto del valor `model` en `tool_input`, por ejemplo cuando se aplica `availableModels` u otra sobrescritura. En una respuesta `async_launched`, `resolvedModel` nombra el modelo en uso cuando el agente pasó a segundo plano, así que un cambio que ocurrió antes de pasar a segundo plano se refleja ahí. `modelsUsed` y el comportamiento de `resolvedModel` en el momento de pasar a segundo plano requieren Claude Code v2.1.212 o posterior.

1909 1908 

1910<a id="askuserquestion" />1909<a id="askuserquestion" />

1911 1910 


1918| Campo | Tipo | Ejemplo | Descripción |1917| Campo | Tipo | Ejemplo | Descripción |

1919| :- | :- | :- | :- |1918| :- | :- | :- | :- |

1920| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React", "description": "Component library"}, {"label": "Vue", "description": "Progressive framework"}], "multiSelect": false}]` | Preguntas que se presentarán, cada una con una cadena `question`, un `header` breve, un array `options` y un flag `multiSelect` opcional |1919| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React", "description": "Component library"}, {"label": "Vue", "description": "Progressive framework"}], "multiSelect": false}]` | Preguntas que se presentarán, cada una con una cadena `question`, un `header` breve, un array `options` y un flag `multiSelect` opcional |

1921| `answers` | object | `{"Which framework?": "React"}` | Opcional. Asigna el texto de la pregunta a la etiqueta de la opción seleccionada. Las respuestas de selección múltiple unen las etiquetas con comas. Claude no establece este campo; proporciónalo mediante `updatedInput` para responder de forma programática |1920| `answers` | object | `{"Which framework?": "React"}` | Opcional. Asigna el texto de la pregunta a la etiqueta de la opción seleccionada. Las respuestas de selección múltiple unen las etiquetas con comas. Claude no establece este campo; proporciónalo mediante `updatedInput` para responder mediante programación |

1922 1921 

1923<h5 id="exitplanmode">1922<h5 id="exitplanmode">

1924 ExitPlanMode1923 ExitPlanMode

1925</h5>1924</h5>

1926 1925 

1927Presenta un plan y pide al usuario que lo apruebe antes de que Claude salga del [modo plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode). Claude escribe el plan en un archivo en disco antes de llamar a la herramienta, así que el `tool_input` literal del modelo suele estar vacío. Claude Code inyecta el contenido del plan y la ruta del archivo antes de pasar la entrada a los hooks.1926Presenta un plan y pide al usuario que lo apruebe antes de que Claude salga del [modo plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode). Claude escribe el plan en un archivo en el disco antes de llamar a la herramienta, así que el `tool_input` literal del modelo suele estar vacío. Claude Code inyecta el contenido del plan y la ruta del archivo antes de pasar la entrada a los hooks.

1928 1927 

1929| Campo | Tipo | Ejemplo | Descripción |1928| Campo | Tipo | Ejemplo | Descripción |

1930| :- | :- | :- | :- |1929| :- | :- | :- | :- |

1931| `plan` | string | `"## Refactor auth\n1. Extract..."` | Contenido del plan en Markdown. Se inyecta desde el archivo del plan en disco |1930| `plan` | string | `"## Refactor auth\n1. Extract..."` | Contenido del plan en Markdown. Se inyecta desde el archivo del plan en el disco |

1932| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | Ruta al archivo del plan. Se inyecta |1931| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | Ruta al archivo del plan. Se inyecta |

1933| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | Obsoleto. Claude Code acepta el campo pero lo ignora. Antes de la v2.1.205, llevaba los permisos basados en prompts que Claude solicitaba para implementar el plan |1932| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | Obsoleto. Claude Code acepta el campo pero lo ignora. Antes de la v2.1.205, contenía los permisos basados en prompts que Claude solicitaba para implementar el plan |

1934 1933 

1935En `PostToolUse`, `tool_response` es un objeto con los campos `plan` y `filePath`, que contienen el plan aprobado, además de flags de estado internos. Lee `tool_response.plan` para obtener el contenido del plan en lugar de volver a leer el archivo desde el disco.1934En `PostToolUse`, `tool_response` es un objeto con los campos `plan` y `filePath` que contienen el plan aprobado, además de flags de estado internos. Lee `tool_response.plan` para obtener el contenido del plan en lugar de volver a leer el archivo del disco.

1936 1935 

1937<h4 id="pretooluse-decision-control">1936<h4 id="pretooluse-decision-control">

1938 Control de decisiones de PreToolUse1937 Control de decisiones de PreToolUse

1939</h4>1938</h4>

1940 1939 

1941Los hooks `PreToolUse` pueden controlar si una llamada a herramienta continúa. A diferencia de otros hooks que usan un campo `decision` de nivel superior, PreToolUse devuelve su decisión dentro de un objeto `hookSpecificOutput`. Esto le da un control más rico: cuatro resultados (permitir, denegar, preguntar o diferir) además de la capacidad de modificar la entrada de la herramienta antes de la ejecución.1940Los hooks `PreToolUse` pueden controlar si una llamada a herramienta continúa. A diferencia de otros hooks que usan un campo `decision` de nivel superior, PreToolUse devuelve su decisión dentro de un objeto `hookSpecificOutput`. Esto le da un control más completo: cuatro resultados (permitir, denegar, preguntar o diferir) más la capacidad de modificar la entrada de la herramienta antes de la ejecución.

1942 1941 

1943| Campo | Descripción |1942| Campo | Descripción |

1944| :- | :- |1943| :- | :- |

1945| `permissionDecision` | `"allow"` omite la solicitud de permiso, excepto para las [acciones que ningún modo aprueba automáticamente](/docs/es/permission-modes#actions-no-mode-auto-approves) y para `AskUserQuestion` y `ExitPlanMode`, que necesitan [`updatedInput` emparejado con él](#allow-with-updatedinput). `"deny"` impide la llamada a herramienta. `"ask"` pide al usuario que confirme. `"defer"` sale de forma controlada para que la herramienta pueda reanudarse más tarde. Las [reglas de denegación y de pregunta](/docs/es/permissions#manage-permissions) se siguen evaluando independientemente de lo que devuelva el hook |1944| `permissionDecision` | `"allow"` omite la solicitud de permiso, excepto para las [acciones que ningún modo aprueba automáticamente](/docs/es/permission-modes#actions-no-mode-auto-approves) y para `AskUserQuestion` y `ExitPlanMode`, que necesitan [`updatedInput` junto con él](#allow-with-updatedinput). `"deny"` impide la llamada a herramienta. `"ask"` pide al usuario que confirme. `"defer"` sale de forma ordenada para que la herramienta pueda reanudarse más tarde. Las [reglas de denegación y de pregunta](/docs/es/permissions#manage-permissions) se siguen evaluando sin importar lo que devuelva el hook |

1946| `permissionDecisionReason` | Para `"ask"`, se muestra al usuario en la solicitud de permiso. Cuando Claude Code [deniega la llamada](/docs/es/headless#turn-off-permission-prompts-in-unattended-runs) en una ejecución `-p` en la que nadie puede responder a esa solicitud, Claude lee el motivo en el resultado de la herramienta. Para `"deny"`, se muestra a Claude. Para `"allow"` y `"defer"`, se escribe solo en el [registro de depuración](#debug-hooks) |1945| `permissionDecisionReason` | Para `"ask"`, se muestra al usuario en la solicitud de permiso. Cuando Claude Code [deniega la llamada](/docs/es/headless#turn-off-permission-prompts-in-unattended-runs) en una ejecución con `-p` en la que nadie puede responder esa solicitud, Claude lee el motivo en el resultado de la herramienta. Para `"deny"`, se muestra a Claude. Para `"allow"` y `"defer"`, solo se escribe en el [registro de depuración](#debug-hooks) |

1947| `updatedInput` | Modifica los parámetros de entrada de la herramienta antes de la ejecución. Reemplaza todo el objeto de entrada, así que incluye los campos sin cambios junto con los modificados. Claude Code evalúa las reglas de permisos y la [aptitud para pasar automáticamente a segundo plano](/docs/es/tools-reference#foreground-commands-that-move-to-the-background) de un comando Bash contra la entrada que devuelve tu hook, no contra la entrada que envió Claude. Combínalo con `"allow"` para aprobar automáticamente, o con `"ask"` para mostrar la entrada modificada al usuario. Para `"defer"`, se ignora |1946| `updatedInput` | Modifica los parámetros de entrada de la herramienta antes de la ejecución. Reemplaza todo el objeto de entrada, así que incluye los campos sin cambios junto con los modificados. Claude Code evalúa las reglas de permisos y la [elegibilidad para pasar automáticamente a segundo plano](/docs/es/tools-reference#foreground-commands-that-move-to-the-background) de un comando Bash contra la entrada que devuelve tu hook, no contra la entrada que envió Claude. Combínalo con `"allow"` para aprobar automáticamente, o con `"ask"` para mostrar al usuario la entrada modificada. Para `"defer"`, se ignora |

1948| `additionalContext` | Cadena agregada al contexto de Claude junto con el resultado de la herramienta. Se ignora cuando `permissionDecision` es `"defer"`. Consulta [Agregar contexto para Claude](#add-context-for-claude) |1947| `additionalContext` | Cadena agregada al contexto de Claude junto con el resultado de la herramienta. Se ignora cuando `permissionDecision` es `"defer"`. Consulta [Agregar contexto para Claude](#add-context-for-claude) |

1949 1948 

1950Cuando varios hooks PreToolUse devuelven decisiones diferentes, la precedencia es `deny` > `defer` > `ask` > `allow`.1949Cuando varios hooks PreToolUse devuelven decisiones diferentes, la precedencia es `deny` > `defer` > `ask` > `allow`.

1951 1950 

1952Un hook que bloquea saliendo con 2 se encamina igual que `"deny"`: Claude ve el mensaje de stderr como el motivo de la denegación.1951Un hook que bloquea terminando con 2 se enruta igual que `"deny"`: Claude ve el mensaje de stderr como el motivo de la denegación.

1953 1952 

1954Cuando un hook devuelve `"ask"`, la solicitud de permiso que se muestra al usuario incluye una etiqueta que identifica de dónde proviene el hook: `[settings]` para un hook de cualquier archivo de configuración o del frontmatter de un agente, `[plugin:<name>]` para el hook de un plugin, o `[skill]` para un hook del frontmatter de un skill. Esto ayuda a los usuarios a entender qué fuente de configuración está solicitando la confirmación.1953Cuando un hook devuelve `"ask"`, la solicitud de permiso que se muestra al usuario incluye una etiqueta que identifica de dónde proviene el hook: `[settings]` para un hook de cualquier archivo de configuración o del frontmatter de un agente, `[plugin:<name>]` para el hook de un plugin, o `[skill]` para un hook del frontmatter de un skill. Esto ayuda a los usuarios a entender qué fuente de configuración está pidiendo confirmación.

1955 1954 

1956El `"ask"` de un hook también fuerza una solicitud de permiso en [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode): el clasificador todavía puede denegar la llamada a herramienta, pero no puede aprobarla en silencio. Antes de la v2.1.211, el clasificador podía aprobar un comando Bash que se ejecutaba fuera del [sandbox](/docs/es/sandboxing) sin mostrar la solicitud que pedía el hook; el clasificador seguía aplicando sus propias reglas de seguridad a ese comando, y un `"deny"` de un hook siempre se respetaba.1955Un `"ask"` de un hook también fuerza una solicitud de permiso en el [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode): el clasificador puede seguir denegando la llamada a herramienta, pero no puede aprobarla de forma silenciosa. Antes de la v2.1.211, el clasificador podía aprobar un comando Bash que se ejecutaba fuera del [sandbox](/docs/es/sandboxing) sin mostrar la solicitud que pedía el hook; el clasificador seguía aplicando sus propias reglas de seguridad a ese comando, y un `"deny"` de un hook siempre se respetaba.

1957 1956 

1958```json theme={null}1957```json theme={null}

1959{1958{


1970```1969```

1971 1970 

1972<Note>1971<Note>

1973 PreToolUse usaba anteriormente los campos de nivel superior `decision` y `reason`, pero están obsoletos para este evento. Usa `hookSpecificOutput.permissionDecision` y `hookSpecificOutput.permissionDecisionReason` en su lugar. Los valores obsoletos `"approve"` y `"block"` se asignan a `"allow"` y `"deny"` respectivamente. Otros eventos como PostToolUse y Stop siguen usando `decision` y `reason` de nivel superior como su formato actual.1972 PreToolUse usaba anteriormente los campos `decision` y `reason` de nivel superior, pero están obsoletos para este evento. Usa `hookSpecificOutput.permissionDecision` y `hookSpecificOutput.permissionDecisionReason` en su lugar. Los valores obsoletos `"approve"` y `"block"` se asignan a `"allow"` y `"deny"` respectivamente. Otros eventos como PostToolUse y Stop siguen usando `decision` y `reason` de nivel superior como su formato actual.

1974</Note>1973</Note>

1975 1974 

1976<h4 id="allow-with-updatedinput">1975<h4 id="allow-with-updatedinput">

1977 Herramientas que requieren interacción del usuario1976 Herramientas que requieren interacción del usuario

1978</h4>1977</h4>

1979 1978 

1980`AskUserQuestion` y `ExitPlanMode` requieren interacción del usuario. En [modo no interactivo](/docs/es/headless) con el flag `-p`, Claude Code solo las ofrece cuando la ejecución tiene un [host de permisos](/docs/es/headless#turn-off-permission-prompts-in-unattended-runs) que reciba la solicitud, como un callback `canUseTool` del Agent SDK.1979`AskUserQuestion` y `ExitPlanMode` requieren interacción del usuario. En el [modo no interactivo](/docs/es/headless) con el flag `-p`, Claude Code las ofrece solo cuando la ejecución tiene un [host de permisos](/docs/es/headless#turn-off-permission-prompts-in-unattended-runs) que reciba la solicitud, como un callback `canUseTool` del Agent SDK.

1981 1980 

1982Un hook `PreToolUse` satisface ese requisito cuando hace lo siguiente:1981Un hook `PreToolUse` cumple ese requisito cuando hace lo siguiente:

1983 1982 

19841. Lee la entrada de la herramienta desde stdin19831. Lee la entrada de la herramienta desde stdin

19852. Recopila la respuesta mediante tu propia interfaz de usuario19842. Recopila la respuesta mediante tu propia interfaz de usuario


2009}2008}

2010```2009```

2011 2010 

2012Una herramienta MCP cuyo servidor la marca con [`_meta["anthropic/requiresUserInteraction"]`](/docs/es/mcp#require-approval-for-a-specific-tool) es más estricta: un hook no puede omitir su solicitud de aprobación con `"allow"`, con o sin `updatedInput`, porque Claude Code no puede confirmar que el hook recopiló la interacción que la herramienta necesita.2011Una herramienta MCP cuyo servidor la marca con [`_meta["anthropic/requiresUserInteraction"]`](/docs/es/mcp#require-approval-for-a-specific-tool) es más estricta: un hook no puede omitir su solicitud de aprobación con `"allow"`, con o sin `updatedInput`, porque Claude Code no puede confirmar que el hook recopiló la interacción que necesita la herramienta.

2013 2012 

2014<h4 id="defer-a-tool-call-for-later">2013<h4 id="defer-a-tool-call-for-later">

2015 Diferir una llamada a herramienta para más tarde2014 Diferir una llamada a herramienta para más tarde

2016</h4>2015</h4>

2017 2016 

2018`"defer"` está pensado para integraciones que ejecutan `claude -p` como subproceso y leen su salida JSON, como una aplicación del Agent SDK o una interfaz personalizada construida sobre Claude Code. Permite que ese proceso que llama pause a Claude en una llamada a herramienta, recopile la entrada mediante su propia interfaz y reanude donde lo dejó. Claude Code respeta este valor solo en [modo no interactivo](/docs/es/headless) con el flag `-p`. En las sesiones interactivas, registra una advertencia e ignora el resultado del hook.2017`"defer"` está pensado para integraciones que ejecutan `claude -p` como subproceso y leen su salida JSON, como una aplicación del Agent SDK o una interfaz de usuario personalizada construida sobre Claude Code. Permite que ese proceso que hace la llamada pause a Claude en una llamada a herramienta, recopile entrada mediante su propia interfaz y reanude donde se quedó. Claude Code respeta este valor solo en el [modo no interactivo](/docs/es/headless) con el flag `-p`. En las sesiones interactivas, registra una advertencia e ignora el resultado del hook.

2019 2018 

2020La herramienta `AskUserQuestion` es el caso típico: Claude quiere preguntarle algo al usuario, pero no hay ninguna terminal en la que responder. Una ejecución `-p` ofrece `AskUserQuestion` solo cuando tiene un [host de permisos](/docs/es/headless#turn-off-permission-prompts-in-unattended-runs), como una herramienta MCP que pasas con `--permission-prompt-tool`, así que inicia la ejecución con uno. El recorrido completo funciona así:2019La herramienta `AskUserQuestion` es el caso típico: Claude quiere preguntarle algo al usuario, pero no hay una terminal en la que responder. Una ejecución con `-p` ofrece `AskUserQuestion` solo cuando tiene un [host de permisos](/docs/es/headless#turn-off-permission-prompts-in-unattended-runs), como una herramienta MCP que pasas con `--permission-prompt-tool`, así que inicia la ejecución con uno. El ciclo completo funciona así:

2021 2020 

20221. Claude llama a `AskUserQuestion`. Se dispara el hook `PreToolUse`.20211. Claude llama a `AskUserQuestion`. Se activa el hook `PreToolUse`.

20232. El hook devuelve `permissionDecision: "defer"`. La herramienta no se ejecuta. El proceso sale con `stop_reason: "tool_deferred"` y la llamada a herramienta pendiente queda conservada en la transcripción.20222. El hook devuelve `permissionDecision: "defer"`. La herramienta no se ejecuta. El proceso sale con `stop_reason: "tool_deferred"` y la llamada a herramienta pendiente se conserva en la transcripción.

20243. El proceso que llama lee `deferred_tool_use` del resultado del SDK, muestra la pregunta en su propia interfaz y espera una respuesta.20233. El proceso que hace la llamada lee `deferred_tool_use` del resultado del SDK, muestra la pregunta en su propia interfaz de usuario y espera una respuesta.

20254. El proceso que llama ejecuta `claude -p --resume <session-id>` con el mismo host de permisos. La misma llamada a herramienta vuelve a disparar `PreToolUse`.20244. El proceso que hace la llamada ejecuta `claude -p --resume <session-id>` con el mismo host de permisos. La misma llamada a herramienta vuelve a activar `PreToolUse`.

20265. El hook devuelve `permissionDecision: "allow"` con la respuesta en `updatedInput`. La herramienta se ejecuta y Claude continúa.20255. El hook devuelve `permissionDecision: "allow"` con la respuesta en `updatedInput`. La herramienta se ejecuta y Claude continúa.

2027 2026 

2028El campo `deferred_tool_use` lleva el `id`, el `name` y el `input` de la herramienta. El `input` son los parámetros que Claude generó para la llamada a herramienta, capturados antes de la ejecución:2027El campo `deferred_tool_use` contiene el `id`, el `name` y el `input` de la herramienta. El `input` son los parámetros que Claude generó para la llamada a herramienta, capturados antes de la ejecución:

2029 2028 

2030```json theme={null}2029```json theme={null}

2031{2030{


2041}2040}

2042```2041```

2043 2042 

2044No hay tiempo de espera ni límite de reintentos. La sesión permanece en disco hasta que la reanudas, sujeta a la limpieza de retención de [`cleanupPeriodDays`](/docs/es/settings-reference#cleanupperioddays), que elimina los archivos de sesión después de 30 días de forma predeterminada, según las [reglas de limpieza de retención](/docs/es/claude-directory#cleaned-up-automatically). Si la respuesta no está lista cuando reanudas, el hook puede devolver `"defer"` de nuevo y el proceso sale de la misma forma. El proceso que llama controla cuándo romper el bucle devolviendo finalmente `"allow"` o `"deny"` desde el hook.2043No hay tiempo de espera ni límite de reintentos. La sesión permanece en el disco hasta que la reanudes, sujeta a la limpieza por retención de [`cleanupPeriodDays`](/docs/es/settings-reference#cleanupperioddays), que elimina los archivos de sesión después de 30 días de forma predeterminada, según las [reglas de limpieza por retención](/docs/es/claude-directory#cleaned-up-automatically). Si la respuesta no está lista cuando reanudas, el hook puede volver a devolver `"defer"` y el proceso sale de la misma manera. El proceso que hace la llamada controla cuándo romper el ciclo devolviendo finalmente `"allow"` o `"deny"` desde el hook.

2045 2044 

2046`"defer"` solo funciona cuando Claude hace una única llamada a herramienta en el turno. Si Claude hace varias llamadas a herramientas a la vez, `"defer"` se ignora con una advertencia y la herramienta continúa por el flujo de permisos normal. La restricción existe porque la reanudación solo puede volver a ejecutar una herramienta: no hay forma de diferir una llamada de un lote sin dejar las demás sin resolver.2045`"defer"` solo funciona cuando Claude hace una sola llamada a herramienta en el turno. Si Claude hace varias llamadas a herramientas a la vez, `"defer"` se ignora con una advertencia y la herramienta continúa por el flujo de permisos normal. La restricción existe porque la reanudación solo puede volver a ejecutar una herramienta: no hay forma de diferir una llamada de un lote sin dejar las demás sin resolver.

2047 2046 

2048Si la herramienta diferida ya no está disponible cuando reanudas, el proceso sale con `stop_reason: "tool_deferred_unavailable"` e `is_error: true` antes de que se dispare el hook. Esto ocurre cuando un servidor MCP que proporcionaba la herramienta no está conectado en la sesión reanudada. El payload `deferred_tool_use` se sigue incluyendo para que puedas identificar qué herramienta desapareció.2047Si la herramienta diferida ya no está disponible cuando reanudas, el proceso sale con `stop_reason: "tool_deferred_unavailable"` e `is_error: true` antes de que se active el hook. Esto ocurre cuando un servidor MCP que proporcionaba la herramienta no está conectado en la sesión reanudada. El payload `deferred_tool_use` se incluye de todos modos para que puedas identificar qué herramienta falta.

2049 2048 

2050<Note>2049<Note>

2051 Para reanudar una sesión diferida en modo plan, pasa [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags) junto con `--resume` para que Claude Code pueda presentar el plan para su aprobación. Si pasas ciertos otros flags de inicio, la ejecución reanudada no vuelve al modo plan; consulta [Reanudar en modo plan con `-p`](/docs/es/sessions#resume-in-plan-mode-with-p). Requiere Claude Code v2.1.246 o posterior.2050 Para reanudar una sesión diferida en modo plan, pasa [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags) junto con `--resume` para que Claude Code pueda presentar el plan para su aprobación. Si pasas ciertos otros flags de inicio, la ejecución reanudada no vuelve al modo plan; consulta [Reanudar en modo plan con `-p`](/docs/es/sessions#resume-in-plan-mode-with-p). Requiere Claude Code v2.1.246 o posterior.

2052 2051 

2053 Cuando reanudas con `-p`, Claude Code no restaura ningún otro modo de permisos almacenado. Inicia la ejecución en el modo de permisos en el que se iniciaría una nueva ejecución `claude -p`, así que vuelve a pasar `--permission-mode` o `--dangerously-skip-permissions` si la sesión diferida usaba alguno. Cuando reanudas con `claude --resume <session-id>` sin `-p`, Claude Code restaura el modo de permisos almacenado, con las excepciones enumeradas en [modo de permisos al reanudar](/docs/es/sessions#permission-mode-on-resume).2052 Cuando reanudas con `-p`, Claude Code no restaura ningún otro modo de permisos almacenado. Inicia la ejecución en el modo de permisos en el que empezaría una nueva ejecución de `claude -p`, así que vuelve a pasar `--permission-mode` o `--dangerously-skip-permissions` si la sesión diferida usaba alguno. Cuando reanudas con `claude --resume <session-id>` sin `-p`, Claude Code restaura el modo de permisos almacenado, con las excepciones enumeradas en [modo de permisos al reanudar](/docs/es/sessions#permission-mode-on-resume).

2054</Note>2053</Note>

2055 2054 

2056<h3 id="permissionrequest">2055<h3 id="permissionrequest">

2057 PermissionRequest2056 PermissionRequest

2058</h3>2057</h3>

2059 2058 

2060Se ejecuta cuando Claude Code está a punto de pedirte permiso para usar una herramienta. En las sesiones que no pueden mostrar una solicitud, como los subagentes en segundo plano en [modo no interactivo](/docs/es/headless), Claude Code sigue ejecutando estos hooks y, si ningún hook devuelve una decisión, deniega la llamada a herramienta. Para una llamada que llega a un `--permission-prompt-tool` o al [callback `canUseTool`](/docs/es/agent-sdk/permissions) del Agent SDK, los hooks se ejecutan junto con tu host, y se aplica la decisión del que decida primero.2059Se ejecuta cuando Claude Code está a punto de pedirte permiso para usar una herramienta. En las sesiones que no pueden mostrar una solicitud, como los subagentes en segundo plano en el [modo no interactivo](/docs/es/headless), Claude Code sigue ejecutando estos hooks y, si ningún hook devuelve una decisión, deniega la llamada a herramienta. En una llamada que llega a un `--permission-prompt-tool` o al [callback `canUseTool`](/docs/es/agent-sdk/permissions) del Agent SDK, los hooks se ejecutan junto con tu host, y se aplica el que decida primero.

2061Usa el [control de decisiones de PermissionRequest](#permissionrequest-decision-control) para permitir o denegar en nombre del usuario.2060Usa el [control de decisiones de PermissionRequest](#permissionrequest-decision-control) para permitir o denegar en nombre del usuario.

2062 2061 

2063Usa este evento cuando necesites una señal en el momento en que Claude pide permiso para usar una herramienta. Claude Code ejecuta un hook [Notification](#notification) con el tipo `permission_prompt` solo después de que la solicitud ha esperado unos seis segundos.2062Usa este evento cuando necesites una señal en el momento en que Claude pide permiso para usar una herramienta. Claude Code ejecuta un hook [Notification](#notification) con el tipo `permission_prompt` solo después de que la solicitud lleva esperando unos seis segundos.

2064 2063 

2065Claude Code no ejecuta hooks PermissionRequest para la [solicitud de red](/docs/es/sandboxing#network-isolation) de un comando en el sandbox. Para obtener una señal de esa solicitud, usa el tipo de notificación `permission_prompt`.2064Claude Code no ejecuta hooks PermissionRequest para la [solicitud de red](/docs/es/sandboxing#network-isolation) de un comando en el sandbox. Para obtener una señal de esa solicitud de permiso, usa el tipo de notificación `permission_prompt`.

2066 2065 

2067Coincide con el nombre de la herramienta, con los mismos valores que PreToolUse.2066Coincide con el nombre de la herramienta, con los mismos valores que PreToolUse.

2068 2067 


2072 2071 

2073Los hooks PermissionRequest reciben los campos `tool_name` y `tool_input` como los hooks PreToolUse, pero sin `tool_use_id`. Para una herramienta MCP, también reciben el objeto [`mcp_server`](#pretooluse-input). Un array opcional `permission_suggestions` contiene las [actualizaciones de permisos](#permission-update-entries) que Claude Code sugiere para esta solicitud, como agregar una regla de permiso o cambiar el modo de permisos.2072Los hooks PermissionRequest reciben los campos `tool_name` y `tool_input` como los hooks PreToolUse, pero sin `tool_use_id`. Para una herramienta MCP, también reciben el objeto [`mcp_server`](#pretooluse-input). Un array opcional `permission_suggestions` contiene las [actualizaciones de permisos](#permission-update-entries) que Claude Code sugiere para esta solicitud, como agregar una regla de permiso o cambiar el modo de permisos.

2074 2073 

2075El array `permission_suggestions` no es una lista exacta de las opciones que ves, porque cada diálogo de permisos construye sus propias opciones. Algunos diálogos, como el de las ediciones de archivos, no leen el array en absoluto y derivan sus opciones de la propia solicitud. Un diálogo que sí lo lee puede seguir ocultando una opción cuya sugerencia permanece en el array, por ejemplo cuando [`allowManagedPermissionRulesOnly`](/docs/es/settings-reference#allowmanagedpermissionrulesonly) oculta las opciones para guardar reglas. También puede ofrecer opciones que no tienen ninguna entrada de sugerencia, como [**Yes, and switch to auto mode**](/docs/es/permission-modes#switch-permission-modes), que cambia el modo de permisos directamente en lugar de hacerlo mediante una actualización de permisos.2074El array `permission_suggestions` no es una lista exacta de las opciones que ves, porque cada cuadro de diálogo de permisos construye sus propias opciones. Algunos cuadros de diálogo, como el de las ediciones de archivos, no leen el array en absoluto y derivan sus opciones de la propia solicitud. Un cuadro de diálogo que sí lo lee puede aun así ocultar una opción cuya sugerencia permanece en el array, por ejemplo cuando [`allowManagedPermissionRulesOnly`](/docs/es/settings-reference#allowmanagedpermissionrulesonly) oculta las opciones para guardar reglas. También puede ofrecer opciones que no tienen una entrada de sugerencia, como [**Yes, and switch to auto mode**](/docs/es/permission-modes#switch-permission-modes), que cambia el modo de permisos directamente en lugar de hacerlo mediante una actualización de permisos.

2076 2075 

2077Los hooks PreToolUse se ejecutan antes de cada llamada a herramienta, necesite o no permiso. Los hooks PermissionRequest se ejecutan solo cuando Claude Code está a punto de pedirte permiso, o cuando de otro modo denegaría automáticamente una llamada que no puede mostrar una solicitud. Ninguno de los dos eventos se dispara para [`EndConversation`](/docs/es/tools-reference#endconversation-tool-behavior).2076Los hooks PreToolUse se ejecutan antes de cada llamada a herramienta, necesite permiso o no. Los hooks PermissionRequest se ejecutan solo cuando Claude Code está a punto de pedirte permiso, o cuando de otro modo denegaría automáticamente una llamada que no puede mostrar una solicitud. Ninguno de los dos eventos se activa para [`EndConversation`](/docs/es/tools-reference#endconversation-tool-behavior).

2078 2077 

2079```json theme={null}2078```json theme={null}

2080{2079{


2110| `behavior` | `"allow"` concede el permiso, `"deny"` lo deniega. Las [reglas de denegación y de pregunta](/docs/es/permissions#manage-permissions) se siguen evaluando, así que un hook que devuelve `"allow"` no sobrescribe una regla de denegación que coincida |2109| `behavior` | `"allow"` concede el permiso, `"deny"` lo deniega. Las [reglas de denegación y de pregunta](/docs/es/permissions#manage-permissions) se siguen evaluando, así que un hook que devuelve `"allow"` no sobrescribe una regla de denegación que coincida |

2111| `updatedInput` | Solo para `"allow"`: modifica los parámetros de entrada de la herramienta antes de la ejecución. Reemplaza todo el objeto de entrada, así que incluye los campos sin cambios junto con los modificados. La entrada modificada se vuelve a evaluar contra las reglas de denegación y de pregunta |2110| `updatedInput` | Solo para `"allow"`: modifica los parámetros de entrada de la herramienta antes de la ejecución. Reemplaza todo el objeto de entrada, así que incluye los campos sin cambios junto con los modificados. La entrada modificada se vuelve a evaluar contra las reglas de denegación y de pregunta |

2112| `updatedPermissions` | Solo para `"allow"`: array de [entradas de actualización de permisos](#permission-update-entries) que se aplicarán, como agregar una regla de permiso o cambiar el modo de permisos de la sesión |2111| `updatedPermissions` | Solo para `"allow"`: array de [entradas de actualización de permisos](#permission-update-entries) que se aplicarán, como agregar una regla de permiso o cambiar el modo de permisos de la sesión |

2113| `message` | Solo para `"deny"`: le dice a Claude por qué se denegó el permiso |2112| `message` | Solo para `"deny"`: le indica a Claude por qué se denegó el permiso |

2114| `interrupt` | Solo para `"deny"`: si es `true`, detiene a Claude |2113| `interrupt` | Solo para `"deny"`: si es `true`, detiene a Claude |

2115 2114 

2116Un hook que sale con 2 sin un objeto `decision` deja el flujo de permisos sin cambios, y su stderr se descarta. Solo el objeto `decision` puede conceder o denegar la solicitud.2115Un hook que termina con 2 sin un objeto `decision` deja el flujo de permisos sin cambios, y su stderr se descarta. Solo el objeto `decision` puede conceder o denegar la solicitud.

2117 2116 

2118```json theme={null}2117```json theme={null}

2119{2118{


2133 Entradas de actualización de permisos2132 Entradas de actualización de permisos

2134</h4>2133</h4>

2135 2134 

2136El campo de salida `updatedPermissions` y el [campo de entrada `permission_suggestions`](#permissionrequest-input) usan el mismo array de objetos de entrada. Cada entrada tiene un `type` que determina sus demás campos, y un `destination` que controla dónde se escribe el cambio.2135El campo de salida `updatedPermissions` y el [campo de entrada `permission_suggestions`](#permissionrequest-input) usan el mismo array de objetos de entrada. Cada entrada tiene un `type` que determina sus demás campos y un `destination` que controla dónde se escribe el cambio.

2137 2136 

2138| `type` | Campos | Efecto |2137| `type` | Campos | Efecto |

2139| :- | :- | :- |2138| :- | :- | :- |

2140| `addRules` | `rules`, `behavior`, `destination` | Agrega reglas de permisos. `rules` es un array de objetos `{toolName, ruleContent?}`. Omite `ruleContent` para coincidir con toda la herramienta. `behavior` es `"allow"`, `"deny"` o `"ask"` |2139| `addRules` | `rules`, `behavior`, `destination` | Agrega reglas de permisos. `rules` es un array de objetos `{toolName, ruleContent?}`. Omite `ruleContent` para que coincida con toda la herramienta. `behavior` es `"allow"`, `"deny"` o `"ask"` |

2141| `replaceRules` | `rules`, `behavior`, `destination` | Reemplaza todas las reglas del `behavior` indicado en el `destination` con las `rules` proporcionadas |2140| `replaceRules` | `rules`, `behavior`, `destination` | Reemplaza todas las reglas del `behavior` indicado en el `destination` con las `rules` proporcionadas |

2142| `removeRules` | `rules`, `behavior`, `destination` | Elimina las reglas que coinciden del `behavior` indicado |2141| `removeRules` | `rules`, `behavior`, `destination` | Elimina las reglas coincidentes del `behavior` indicado |

2143| `setMode` | `mode`, `destination` | Cambia el modo de permisos. Los modos válidos son `default`, `auto`, `acceptEdits`, `dontAsk`, `bypassPermissions`, `plan` y `manual` como alias de `default` |2142| `setMode` | `mode`, `destination` | Cambia el modo de permisos. Los modos válidos son `default`, `auto`, `acceptEdits`, `dontAsk`, `bypassPermissions`, `plan` y `manual` como alias de `default` |

2144| `addDirectories` | `directories`, `destination` | Agrega directorios de trabajo. `directories` es un array de cadenas de rutas |2143| `addDirectories` | `directories`, `destination` | Agrega directorios de trabajo. `directories` es un array de cadenas de rutas |

2145| `removeDirectories` | `directories`, `destination` | Elimina directorios de trabajo |2144| `removeDirectories` | `directories`, `destination` | Elimina directorios de trabajo |

2146 2145 

2147<Note>2146<Note>

2148 `setMode` con `bypassPermissions` solo surte efecto si iniciaste la sesión con el modo bypass ya disponible: `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions` o `permissions.defaultMode: "bypassPermissions"` en la [configuración de usuario, de `--settings` o administrada](/docs/es/settings-reference#permissions-defaultmode). De lo contrario, la actualización no tiene efecto. La actualización tampoco tiene efecto cuando [`permissions.disableBypassPermissionsMode`](/docs/es/permissions#managed-settings) deshabilita el modo, o cuando la sesión se inicia en [modo restringido](/docs/es/cli-reference#cli-flags).2147 `setMode` con `bypassPermissions` solo tiene efecto si iniciaste la sesión con el modo bypass ya disponible: `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions` o `permissions.defaultMode: "bypassPermissions"` en [la configuración de usuario, `--settings` o la configuración administrada](/docs/es/settings-reference#permissions-defaultmode). De lo contrario, la actualización no tiene efecto. La actualización tampoco tiene efecto cuando [`permissions.disableBypassPermissionsMode`](/docs/es/permissions#managed-settings) desactiva el modo, o cuando la sesión se inicia en [modo restringido](/docs/es/cli-reference#cli-flags).

2149 2148 

2150 `bypassPermissions` nunca se persiste como `defaultMode`, independientemente de `destination`.2149 `bypassPermissions` nunca se guarda como `defaultMode`, independientemente de `destination`.

2151</Note>2150</Note>

2152 2151 

2153El campo `destination` de cada entrada determina si el cambio permanece en memoria o se persiste en un archivo de configuración.2152El campo `destination` de cada entrada determina si el cambio se queda en memoria o se guarda en un archivo de configuración.

2154 2153 

2155| `destination` | Escribe en |2154| `destination` | Escribe en |

2156| :- | :- |2155| :- | :- |


2167 2166 

2168Se ejecuta inmediatamente después de que una herramienta se completa correctamente.2167Se ejecuta inmediatamente después de que una herramienta se completa correctamente.

2169 2168 

2170Coincide con el nombre de la herramienta, con los mismos valores que PreToolUse.2169Hace coincidencia por nombre de herramienta, con los mismos valores que PreToolUse.

2171 2170 

2172Usa una coincidencia más amplia cuando el nombre de la herramienta no sea el filtro adecuado:2171Haz coincidencias más amplias cuando el nombre de la herramienta no sea el filtro adecuado:

2173 2172 

2174* Para ejecutar un hook después de que cualquier herramienta se complete correctamente, omite el `matcher` o establécelo en `"*"`. Tu hook puede entonces descubrir por sí mismo qué cambió, por ejemplo ejecutando `git status --porcelain`, que también lista los archivos sin seguimiento que `git diff` no muestra. Para las llamadas a herramientas que fallan, agrega el mismo hook en [PostToolUseFailure](#posttoolusefailure).2173* Para ejecutar un hook después de que cualquier herramienta se complete correctamente, omite el `matcher` o establécelo en `"*"`. Así, tu hook puede descubrir por sí mismo qué cambió, por ejemplo ejecutando `git status --porcelain`, que también lista los archivos sin seguimiento que `git diff` pasa por alto. Para las llamadas a herramientas que fallan, agrega el mismo hook en [PostToolUseFailure](#posttoolusefailure).

2175* Para ejecutar un hook cuando un archivo específico cambia en disco, sin importar qué lo escribió, usa [FileChanged](#filechanged). Claude Code no ejecuta un hook `PostToolUse` que coincide con `Edit|Write` cuando un comando `Bash` o un proceso fuera de Claude Code reescribe el mismo archivo.2174* Para ejecutar un hook cuando un archivo específico cambia en el disco, sin importar qué lo escribió, usa [FileChanged](#filechanged). Claude Code no ejecuta un hook `PostToolUse` que coincida con `Edit|Write` cuando un comando `Bash` o un proceso fuera de Claude Code reescribe el mismo archivo.

2176 2175 

2177<h4 id="posttooluse-input">2176<h4 id="posttooluse-input">

2178 Entrada de PostToolUse2177 Entrada de PostToolUse


2216| `decision` | `"block"` agrega el `reason` junto al resultado de la herramienta. Claude sigue viendo la salida original; para reemplazarla, usa `updatedToolOutput` |2215| `decision` | `"block"` agrega el `reason` junto al resultado de la herramienta. Claude sigue viendo la salida original; para reemplazarla, usa `updatedToolOutput` |

2217| `reason` | Explicación que se muestra a Claude cuando `decision` es `"block"` |2216| `reason` | Explicación que se muestra a Claude cuando `decision` es `"block"` |

2218| `additionalContext` | Cadena que se agrega al contexto de Claude junto con el resultado de la herramienta. Consulta [Agregar contexto para Claude](#add-context-for-claude) |2217| `additionalContext` | Cadena que se agrega al contexto de Claude junto con el resultado de la herramienta. Consulta [Agregar contexto para Claude](#add-context-for-claude) |

2219| `classifierContext` | Nota breve sobre el resultado de esta llamada destinada al clasificador del [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) en lugar de a Claude. Consulta [Anotar un resultado para el clasificador del modo automático](#annotate-a-result-for-the-auto-mode-classifier). Requiere Claude Code v2.1.236 o posterior |2218| `classifierContext` | Nota breve sobre el resultado de esta llamada destinada al clasificador del [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) y no a Claude. Consulta [Anotar un resultado para el clasificador del modo automático](#annotate-a-result-for-the-auto-mode-classifier). Requiere Claude Code v2.1.236 o posterior |

2220| `updatedToolOutput` | Reemplaza la salida de la herramienta con el valor proporcionado antes de enviarla a Claude. El valor debe coincidir con la forma de salida de la herramienta |2219| `updatedToolOutput` | Reemplaza la salida de la herramienta con el valor proporcionado antes de enviarla a Claude. El valor debe coincidir con la forma de salida de la herramienta |

2221| `updatedMCPToolOutput` | Reemplaza la salida solo para [herramientas MCP](#match-mcp-tools). Es preferible `updatedToolOutput`, que funciona para todas las herramientas |2220| `updatedMCPToolOutput` | Reemplaza la salida solo para [herramientas MCP](#match-mcp-tools). Es preferible usar `updatedToolOutput`, que funciona para todas las herramientas |

2222 2221 

2223El siguiente ejemplo reemplaza la salida de una llamada a `Bash`. El valor de reemplazo coincide con la forma de salida de la herramienta `Bash`:2222El siguiente ejemplo reemplaza la salida de una llamada a `Bash`. El valor de reemplazo coincide con la forma de salida de la herramienta `Bash`:

2224 2223 


2238```2237```

2239 2238 

2240<Warning>2239<Warning>

2241 `updatedToolOutput` solo cambia lo que ve Claude. La herramienta ya se ejecutó cuando se activa el hook, por lo que cualquier archivo escrito, comando ejecutado o solicitud de red enviada ya surtió efecto. La telemetría, como los spans de herramientas de OpenTelemetry y los eventos de análisis, también captura la salida original antes de que se ejecute el hook. Para impedir o modificar una llamada a herramienta antes de que se ejecute, usa en su lugar un hook [PreToolUse](#pretooluse).2240 `updatedToolOutput` solo cambia lo que Claude ve. La herramienta ya se ejecutó cuando se activa el hook, por lo que cualquier archivo escrito, comando ejecutado o solicitud de red enviada ya tuvo efecto. La telemetría, como los spans de herramientas de OpenTelemetry y los eventos de analítica, también captura la salida original antes de que se ejecute el hook. Para impedir o modificar una llamada a herramienta antes de que se ejecute, usa en su lugar un hook [PreToolUse](#pretooluse).

2242 2241 

2243 El valor de reemplazo debe coincidir con la forma de salida de la herramienta. Las herramientas integradas devuelven objetos estructurados en lugar de cadenas simples. Por ejemplo, `Bash` devuelve un objeto con los campos `stdout`, `stderr`, `interrupted` e `isImage`. Para las herramientas integradas, un valor que no coincide con el esquema de salida de la herramienta se ignora y se usa la salida original. La salida de las herramientas MCP se pasa sin validación de esquema. Eliminar detalles de errores que Claude necesita puede hacer que proceda con una suposición falsa.2242 El valor de reemplazo debe coincidir con la forma de salida de la herramienta. Las herramientas integradas devuelven objetos estructurados en lugar de cadenas simples. Por ejemplo, `Bash` devuelve un objeto con los campos `stdout`, `stderr`, `interrupted` e `isImage`. Para las herramientas integradas, un valor que no coincide con el esquema de salida de la herramienta se ignora y se usa la salida original. La salida de las herramientas MCP se transmite sin validación de esquema. Eliminar detalles de error que Claude necesita puede hacer que continúe basándose en una suposición falsa.

2244</Warning>2243</Warning>

2245 2244 

2246<h4 id="annotate-a-result-for-the-auto-mode-classifier">2245<h4 id="annotate-a-result-for-the-auto-mode-classifier">

2247 Anotar un resultado para el clasificador del modo automático2246 Anotar un resultado para el clasificador del modo automático

2248</h4>2247</h4>

2249 2248 

2250Devuelve `classifierContext` para enviar una nota breve sobre el resultado de la llamada a herramienta al clasificador del [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) en lugar de a Claude. El clasificador [nunca recibe los resultados de las herramientas en sí](/docs/es/permission-modes#how-the-classifier-evaluates-actions), por lo que este campo es la forma admitida de comunicarle algo sobre lo que devolvió una llamada antes de que revise acciones posteriores. El campo requiere Claude Code v2.1.236 o posterior.2249Devuelve `classifierContext` para enviar una nota breve sobre el resultado de la llamada a herramienta al clasificador del [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) en lugar de a Claude. El clasificador [nunca recibe los resultados de las herramientas en sí](/docs/es/permission-modes#how-the-classifier-evaluates-actions), así que este campo es la forma admitida de indicarle algo sobre lo que devolvió una llamada antes de que revise acciones posteriores. El campo requiere Claude Code v2.1.236 o posterior.

2251 2250 

2252El siguiente ejemplo le indica al clasificador de dónde provino la salida de una consulta:2251El siguiente ejemplo le indica al clasificador de dónde provino la salida de una consulta:

2253 2252 


2262 2261 

2263El peso que el clasificador le da a la nota depende de dónde configuraste el hook:2262El peso que el clasificador le da a la nota depende de dónde configuraste el hook:

2264 2263 

2265* **Hooks configurados en Claude Code**: para los hooks de archivos de configuración, plugins, skills y frontmatter de agentes, el clasificador trata la nota como contexto no verificado proporcionado por la aplicación. La nota nunca establece la intención del usuario y, si afirma que aprobaste o solicitaste algo, el clasificador contrasta esa afirmación con tus propios mensajes en la conversación2264* **Hooks configurados en Claude Code**: para los hooks de archivos de configuración, plugins, skills y frontmatter de agentes, el clasificador trata la nota como contexto no verificado proporcionado por la aplicación. La nota nunca establece la intención del usuario, y si afirma que aprobaste o solicitaste algo, el clasificador verifica esa afirmación contra tus propios mensajes en la conversación

2266* **Callbacks del Agent SDK en proceso**: cuando una aplicación que integra Claude Code registra el hook como un [callback del SDK de TypeScript](/docs/es/agent-sdk/hooks) y devuelve la nota durante la sesión en vivo, el clasificador puede considerar como intención del usuario una declaración del usuario transmitida en la nota. Esa declaración puede satisfacer un requisito de consentimiento que el clasificador aceptaría de un mensaje que envíes, pero nunca levanta un bloqueo que tu propio mensaje tampoco podría levantar. Después de que se reanuda una sesión, Claude Code trata las notas restauradas como contexto no verificado. Cuando hooks de ambos grupos anotan la misma llamada, el clasificador trata la nota combinada como no verificada2265* **Callbacks en proceso del Agent SDK**: cuando una aplicación que integra Claude Code registra el hook como un [callback del SDK de TypeScript](/docs/es/agent-sdk/hooks) y devuelve la nota durante la sesión activa, el clasificador puede considerar como intención del usuario una declaración del usuario transmitida en la nota. Dicha declaración puede satisfacer un requisito de consentimiento que el clasificador aceptaría de un mensaje que tú envías, pero nunca levanta un bloqueo que tu propio mensaje tampoco podría levantar. Después de que una sesión se reanuda, Claude Code trata las notas restauradas como contexto no verificado. Cuando hooks de ambos grupos anotan la misma llamada, el clasificador trata la nota combinada como no verificada

2267 2266 

2268Claude Code aplica estos límites al entregar la nota:2267Claude Code aplica estos límites al entregar la nota:

2269 2268 

2270* **Longitud**: Claude Code limita las notas de una llamada a herramienta a 2000 caracteres y trunca el resto. El límite se comparte entre todos los hooks que responden a esa llamada2269* **Longitud**: Claude Code limita las notas de una llamada a herramienta a 2,000 caracteres y trunca el resto. El límite se comparte entre todos los hooks que responden a esa llamada

2271* **Solo respuestas síncronas**: Claude Code ignora el campo en la respuesta de un hook que [se ejecuta en segundo plano](#run-hooks-in-the-background), porque esa respuesta llega después de que Claude Code registra el resultado de la herramienta2270* **Solo respuestas síncronas**: Claude Code ignora el campo en la respuesta de un hook que [se ejecuta en segundo plano](#run-hooks-in-the-background), porque esa respuesta llega después de que Claude Code registra el resultado de la herramienta

2272* **Llamadas que el clasificador no registra**: la transcripción del clasificador omite las consultas de solo lectura, como las lecturas de archivos y las búsquedas. Claude Code descarta una nota adjunta a una de esas llamadas2271* **Llamadas que el clasificador no registra**: la transcripción del clasificador omite las consultas de solo lectura, como lecturas de archivos y búsquedas. Claude Code descarta una nota adjunta a una de esas llamadas

2273* **Interacción con reescrituras**: cuando la nota describe una salida que estás reemplazando con `updatedToolOutput`, devuelve ambos campos en la misma respuesta del hook. Claude Code descarta la nota si esa reescritura se rechaza o si la reescritura de otro hook la reemplaza. Claude Code entrega una nota que devuelves sin reescritura incluso cuando otro hook reescribe la salida2272* **Interacción con reescrituras**: cuando la nota describe una salida que estás reemplazando con `updatedToolOutput`, devuelve ambos campos en la misma respuesta del hook. Claude Code descarta la nota si esa reescritura se rechaza o si la reescritura de otro hook la reemplaza. Claude Code entrega una nota que devuelves sin una reescritura incluso cuando otro hook reescribe la salida

2274 2273 

2275<Warning>2274<Warning>

2276 El clasificador lee el contenido que colocas en `classifierContext` como información de la aplicación que aloja la sesión, así que no copies en él salida de herramientas no confiable ni texto de terceros. Limita la nota a una afirmación breve sobre esta única llamada, como un dato sobre su origen o una declaración del usuario al respecto; no uses el campo para entregar mensajes no relacionados ni un flujo de eventos.2275 El clasificador lee el contenido que colocas en `classifierContext` como información de la aplicación que aloja la sesión, así que no copies en él salidas de herramientas no confiables ni texto de terceros. Limita la nota a una afirmación breve sobre esta única llamada, como un dato sobre su origen o una declaración del usuario al respecto; no uses el campo para entregar mensajes no relacionados ni un flujo de eventos.

2277</Warning>2276</Warning>

2278 2277 

2279<h3 id="posttoolusefailure">2278<h3 id="posttoolusefailure">

2280 PostToolUseFailure2279 PostToolUseFailure

2281</h3>2280</h3>

2282 2281 

2283Se ejecuta cuando falla una herramienta que comenzó a ejecutarse: la herramienta lanzó un error o una herramienta MCP devolvió un resultado de error. Úsalo para registrar fallas, enviar alertas o proporcionar retroalimentación correctiva a Claude.2282Se ejecuta cuando falla una herramienta que comenzó a ejecutarse: la herramienta lanzó un error o una herramienta MCP devolvió un resultado de error. Úsalo para registrar fallos, enviar alertas o proporcionar retroalimentación correctiva a Claude.

2284 2283 

2285Coincide con el nombre de la herramienta, con los mismos valores que PreToolUse.2284Hace coincidencia por nombre de herramienta, con los mismos valores que PreToolUse.

2286 2285 

2287<Note>2286<Note>

2288 Este evento no se activa para llamadas a herramientas rechazadas antes de la ejecución: un nombre de herramienta desconocido, una entrada que no supera la validación de esquema o la validación específica de la herramienta, o una denegación de permiso. Los rechazos de validación se devuelven como resultados `tool_use_error` y ocurren antes de que se ejecuten los hooks, por lo que no activan ni `PreToolUse` ni `PostToolUseFailure`. Las denegaciones de permiso activan `PreToolUse` pero no este evento; consulta [PermissionDenied](#permissiondenied).2287 Este evento no se activa para las llamadas a herramientas rechazadas antes de la ejecución: un nombre de herramienta desconocido, una entrada que no supera la validación del esquema o la validación específica de la herramienta, o una denegación de permiso. Los rechazos por validación se devuelven como resultados `tool_use_error` y ocurren antes de que se ejecuten los hooks, por lo que no activan ni `PreToolUse` ni `PostToolUseFailure`. Las denegaciones de permiso activan `PreToolUse` pero no este evento; consulta [PermissionDenied](#permissiondenied).

2289</Note>2288</Note>

2290 2289 

2291<h4 id="posttoolusefailure-input">2290<h4 id="posttoolusefailure-input">


2316| Campo | Descripción |2315| Campo | Descripción |

2317| :- | :- |2316| :- | :- |

2318| `error` | Cadena que describe qué salió mal. El formato depende de la herramienta que falló |2317| `error` | Cadena que describe qué salió mal. El formato depende de la herramienta que falló |

2319| `is_interrupt` | Booleano opcional. Es verdadero cuando la falla llegó a Claude Code como una cancelación en lugar de como un error informado por la herramienta. Cancelar una herramienta en ejecución no activa este hook; en su lugar, el resultado de la herramienta contiene el mensaje de interrupción |2318| `is_interrupt` | Booleano opcional. Es true cuando el fallo llegó a Claude Code como una cancelación y no como un error informado por la herramienta. Cancelar una herramienta en ejecución no activa este hook; en su lugar, el resultado de la herramienta incluye el mensaje de interrupción |

2320| `duration_ms` | Opcional. Tiempo de ejecución de la herramienta en milisegundos. Excluye el tiempo dedicado a solicitudes de permiso y a hooks PreToolUse |2319| `duration_ms` | Opcional. Tiempo de ejecución de la herramienta en milisegundos. Excluye el tiempo dedicado a solicitudes de permiso y a hooks PreToolUse |

2321 2320 

2322La cadena `error` es generalmente el mismo texto que Claude recibe como resultado de la herramienta fallida. Su formato varía según la herramienta y la falla. Basa tu hook en `tool_name`, `is_interrupt` y la primera línea `Exit code N`; trata el resto de la cadena como texto para mostrar, no como un formato estable.2321La cadena `error` suele ser el mismo texto que Claude recibe como resultado de la herramienta fallida. Su formato varía según la herramienta y el fallo. Basa tu hook en `tool_name`, `is_interrupt` y la primera línea `Exit code N`; trata el resto de la cadena como texto para mostrar, no como un formato estable.

2323 2322 

2324* Para Bash y PowerShell, un comando que se ejecutó y terminó produce una primera línea `Exit code N`, seguida de cualquier salida que haya producido el comando como un solo bloque con stdout y stderr intercalados2323* Para Bash y PowerShell, un comando que se ejecutó y terminó produce una primera línea `Exit code N`, seguida de cualquier salida que haya producido el comando como un solo bloque con stdout y stderr intercalados

2325* Un payload también puede contener un mensaje de falla simple sin línea de código de salida, cuando Claude Code no pudo iniciar el proceso del shell2324* Un payload también puede contener un mensaje de fallo simple sin línea de código de salida, cuando Claude Code no pudo iniciar el proceso del shell en sí

2326* Claude Code trunca por el medio las cadenas largas alrededor de un marcador `... [N characters truncated] ...` y puede insertar líneas propias, como `Command timed out after 2m 0s`2325* Claude Code trunca por la mitad las cadenas largas alrededor de un marcador `... [N characters truncated] ...` y puede insertar líneas propias, como `Command timed out after 2m 0s`

2327 2326 

2328<h4 id="posttoolusefailure-decision-control">2327<h4 id="posttoolusefailure-decision-control">

2329 Control de decisiones de PostToolUseFailure2328 Control de decisiones de PostToolUseFailure

2330</h4>2329</h4>

2331 2330 

2332Los hooks `PostToolUseFailure` pueden proporcionar contexto a Claude después de una falla de herramienta. Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, tu script de hook puede devolver estos campos específicos del evento:2331Los hooks `PostToolUseFailure` pueden proporcionar contexto a Claude después de un fallo de herramienta. Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, tu script de hook puede devolver estos campos específicos del evento:

2333 2332 

2334| Campo | Descripción |2333| Campo | Descripción |

2335| :- | :- |2334| :- | :- |


2348 PostToolBatch2347 PostToolBatch

2349</h3>2348</h3>

2350 2349 

2351Se ejecuta una vez después de que se haya resuelto cada llamada a herramienta de un lote, antes de que Claude Code envíe la siguiente solicitud al modelo. `PostToolUse` se activa una vez por herramienta, lo que significa que se activa de forma concurrente cuando Claude hace llamadas a herramientas en paralelo. `PostToolBatch` se activa exactamente una vez con el lote completo, por lo que es el lugar adecuado para inyectar contexto que depende del conjunto de herramientas que se ejecutaron en lugar de una sola herramienta. No hay matcher para este evento.2350Se ejecuta una vez después de que se resuelven todas las llamadas a herramientas de un lote, antes de que Claude Code envíe la siguiente solicitud al modelo. `PostToolUse` se activa una vez por herramienta, lo que significa que se activa de forma concurrente cuando Claude hace llamadas a herramientas en paralelo. `PostToolBatch` se activa exactamente una vez con el lote completo, por lo que es el lugar adecuado para inyectar contexto que depende del conjunto de herramientas que se ejecutaron y no de una sola herramienta. No hay matcher para este evento.

2352 2351 

2353<h4 id="posttoolbatch-input">2352<h4 id="posttoolbatch-input">

2354 Entrada de PostToolBatch2353 Entrada de PostToolBatch

2355</h4>2354</h4>

2356 2355 

2357Además de los [campos de entrada comunes](#common-input-fields), los hooks PostToolBatch reciben `tool_calls`, un arreglo que describe cada llamada a herramienta del lote:2356Además de los [campos de entrada comunes](#common-input-fields), los hooks PostToolBatch reciben `tool_calls`, un array que describe cada llamada a herramienta del lote:

2358 2357 

2359```json theme={null}2358```json theme={null}

2360{2359{


2380}2379}

2381```2380```

2382 2381 

2383`tool_response` contiene el mismo contenido que el modelo recibe en el bloque `tool_result` correspondiente. El valor es una cadena serializada o un arreglo de bloques de contenido, exactamente como lo emitió la herramienta. Para `Read`, eso significa texto con prefijo de número de línea en lugar del contenido sin procesar del archivo. Las respuestas pueden ser grandes, así que analiza solo los campos que necesitas.2382`tool_response` contiene el mismo contenido que el modelo recibe en el bloque `tool_result` correspondiente. El valor es una cadena serializada o un array de bloques de contenido, exactamente como lo emitió la herramienta. Para `Read`, eso significa texto con prefijo de número de línea en lugar del contenido sin procesar del archivo. Las respuestas pueden ser grandes, así que analiza solo los campos que necesites.

2384 2383 

2385<Note>2384<Note>

2386 La forma de `tool_response` difiere de la de `PostToolUse`. `PostToolUse` pasa el objeto `Output` estructurado de la herramienta, como `{filePath: "...", type: "create"}` para `Write`; `PostToolBatch` pasa el contenido serializado de `tool_result` que ve el modelo.2385 La forma de `tool_response` difiere de la de `PostToolUse`. `PostToolUse` pasa el objeto `Output` estructurado de la herramienta, como `{filePath: "...", type: "create"}` para `Write`; `PostToolBatch` pasa el contenido serializado de `tool_result` que ve el modelo.


2394 2393 

2395| Campo | Descripción |2394| Campo | Descripción |

2396| :- | :- |2395| :- | :- |

2397| `additionalContext` | Cadena de contexto inyectada una vez antes de la siguiente llamada al modelo. Consulta [Agregar contexto para Claude](#add-context-for-claude) para conocer los detalles de entrega, qué incluir y cómo las sesiones reanudadas manejan los valores anteriores |2396| `additionalContext` | Cadena de contexto que se inyecta una vez antes de la siguiente llamada al modelo. Consulta [Agregar contexto para Claude](#add-context-for-claude) para ver detalles de entrega, qué incluir y cómo las sesiones reanudadas manejan los valores anteriores |

2398 2397 

2399```json theme={null}2398```json theme={null}

2400{2399{


2405}2404}

2406```2405```

2407 2406 

2408Devolver `decision: "block"` o `continue: false` detiene el bucle agéntico antes de la siguiente llamada al modelo. El mensaje de bloqueo proviene del `reason` o `stopReason` del JSON, o de stderr con el código de salida 2. Lo ves como una advertencia en la transcripción y permanece en la conversación, por lo que Claude lo ve cuando la conversación continúa.2407Devolver `decision: "block"` o `continue: false` detiene el bucle agéntico antes de la siguiente llamada al modelo. El mensaje de bloqueo proviene del `reason` o `stopReason` del JSON, o de stderr con el código de salida 2. Lo ves como una advertencia en la transcripción, y permanece en la conversación, por lo que Claude lo ve cuando la conversación continúa.

2409 2408 

2410<h3 id="permissiondenied">2409<h3 id="permissiondenied">

2411 PermissionDenied2410 PermissionDenied

2412</h3>2411</h3>

2413 2412 

2414Se ejecuta cuando el [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) deniega una llamada a herramienta, incluso cuando la deniega sin un veredicto del clasificador porque [una verificación de seguridad independiente del modo automático rechazó la propia solicitud del clasificador](/docs/es/errors#auto-mode-cannot-determine-the-safety-of-an-action) o su respuesta no se pudo analizar. Este hook solo se activa en modo automático: no se ejecuta cuando deniegas manualmente un cuadro de diálogo de permisos, cuando un hook `PreToolUse` bloquea una llamada ni cuando coincide una regla `deny`. Úsalo para registrar denegaciones, ajustar la configuración o indicarle al modelo que puede reintentar la llamada a herramienta.2413Se ejecuta cuando el [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) deniega una llamada a herramienta, incluso cuando la deniega sin un veredicto del clasificador porque [una verificación de seguridad independiente del modo automático rechazó la propia solicitud del clasificador](/docs/es/errors#auto-mode-cannot-determine-the-safety-of-an-action) o su respuesta no se pudo analizar. Este hook solo se activa en modo automático: no se ejecuta cuando deniegas manualmente un diálogo de permisos, cuando un hook `PreToolUse` bloquea una llamada ni cuando coincide una regla `deny`. Úsalo para registrar denegaciones, ajustar la configuración o indicarle al modelo que puede reintentar la llamada a herramienta.

2415 2414 

2416Coincide con el nombre de la herramienta, con los mismos valores que PreToolUse.2415Hace coincidencia por nombre de herramienta, con los mismos valores que PreToolUse.

2417 2416 

2418<h4 id="permissiondenied-input">2417<h4 id="permissiondenied-input">

2419 Entrada de PermissionDenied2418 Entrada de PermissionDenied


2440 2439 

2441| Campo | Descripción |2440| Campo | Descripción |

2442| :- | :- |2441| :- | :- |

2443| `reason` | El motivo de la denegación. Para un veredicto del clasificador, en la mayoría de las sesiones nombra la regla que coincidió entre corchetes, como `[Data Exfiltration]`; consulta [Revisar denegaciones](/docs/es/auto-mode-config#review-denials) para ver las otras formas. Para una [denegación sin veredicto](#permissiondenied-decision-control), comienza con `Auto mode could not evaluate this action and is blocking it for safety`. Para una denegación porque el modelo clasificador no estaba disponible, es el texto fijo `Classifier unavailable` |2442| `reason` | El motivo de la denegación. Para un veredicto del clasificador, en la mayoría de las sesiones nombra la regla coincidente entre corchetes, como `[Data Exfiltration]`; consulta [Revisar denegaciones](/docs/es/auto-mode-config#review-denials) para ver las demás formas. Para una [denegación sin veredicto](#permissiondenied-decision-control), comienza con `Auto mode could not evaluate this action and is blocking it for safety`. Para una denegación porque el modelo del clasificador no estaba disponible, es el texto fijo `Classifier unavailable` |

2444 2443 

2445<h4 id="permissiondenied-decision-control">2444<h4 id="permissiondenied-decision-control">

2446 Control de decisiones de PermissionDenied2445 Control de decisiones de PermissionDenied


2459 2458 

2460Cuando `retry` es `true`, Claude Code agrega un mensaje a la conversación que le indica al modelo que puede reintentar la llamada a herramienta. Claude Code no revierte la denegación en sí. Si tu hook no devuelve JSON, o devuelve `retry: false`, la denegación se mantiene y el modelo recibe el mensaje de rechazo original.2459Cuando `retry` es `true`, Claude Code agrega un mensaje a la conversación que le indica al modelo que puede reintentar la llamada a herramienta. Claude Code no revierte la denegación en sí. Si tu hook no devuelve JSON, o devuelve `retry: false`, la denegación se mantiene y el modelo recibe el mensaje de rechazo original.

2461 2460 

2462Claude Code ignora `retry: true` cuando el clasificador no produjo [ningún veredicto sobre la acción](/docs/es/errors#auto-mode-cannot-determine-the-safety-of-an-action): su respuesta no se pudo analizar, o una verificación de seguridad independiente del modo automático rechazó la propia solicitud del clasificador. Para esas denegaciones, Claude Code ya le indica al modelo en el mensaje de rechazo si debe reintentar más tarde o continuar.2461Claude Code ignora `retry: true` cuando el clasificador no produjo [ningún veredicto sobre la acción](/docs/es/errors#auto-mode-cannot-determine-the-safety-of-an-action): su respuesta no se pudo analizar, o una verificación de seguridad independiente del modo automático rechazó la propia solicitud del clasificador. Para esas denegaciones, Claude Code ya le indica al modelo en el mensaje de rechazo si debe reintentar más tarde o continuar con otra cosa.

2463 2462 

2464<h3 id="notification">2463<h3 id="notification">

2465 Notification2464 Notification

2466</h3>2465</h3>

2467 2466 

2468Se ejecuta cuando Claude Code envía notificaciones. Coincide con el tipo de notificación. Omite el matcher para ejecutar hooks para todos los tipos de notificación.2467Se ejecuta cuando Claude Code envía notificaciones. Hace coincidencia por tipo de notificación. Omite el matcher para ejecutar hooks para todos los tipos de notificación.

2469 2468 

2470Recibes estos eventos de hook incluso con las notificaciones de escritorio desactivadas: el ajuste `preferredNotifChannel`, incluido `notifications_disabled`, solo cambia cómo se te alerta, no si tu hook se ejecuta.2469Recibes estos eventos de hook incluso con las notificaciones de escritorio desactivadas: el ajuste `preferredNotifChannel`, incluido `notifications_disabled`, solo cambia cómo se te avisa, no si tu hook se ejecuta.

2471 2470 

2472| Matcher | Cuándo se activa |2471| Matcher | Cuándo se activa |

2473| :- | :- |2472| :- | :- |

2474| `permission_prompt` | Claude necesita que apruebes el uso de una herramienta o la [solicitud de red](/docs/es/sandboxing#network-isolation) de un comando en el sandbox, y la solicitud lleva esperando unos seis segundos |2473| `permission_prompt` | Claude necesita que apruebes el uso de una herramienta o la [solicitud de red](/docs/es/sandboxing#network-isolation) de un comando en el sandbox, y la solicitud lleva unos seis segundos esperando |

2475| `idle_prompt` | Claude terminó de responder hace unos 60 segundos y no has escrito nada desde entonces |2474| `idle_prompt` | Claude terminó de responder hace unos 60 segundos y no has escrito nada desde entonces |

2476| `auth_success` | Se completa la autenticación |2475| `auth_success` | Se completa la autenticación |

2477| `elicitation_dialog` | Un servidor MCP abre un formulario de elicitación y no has escrito nada durante unos seis segundos |2476| `elicitation_dialog` | Un servidor MCP abre un formulario de elicitación y no has escrito durante unos seis segundos |

2478| `elicitation_url_dialog` | Un servidor MCP te pide abrir una URL en el navegador y no has escrito nada durante unos seis segundos |2477| `elicitation_url_dialog` | Un servidor MCP te pide abrir una URL en el navegador y no has escrito durante unos seis segundos |

2479| `elicitation_complete` | Un servidor MCP informa que una [elicitación en modo URL](#elicitation-input) está completa |2478| `elicitation_complete` | Un servidor MCP informa que una [elicitación en modo URL](#elicitation-input) se completó |

2480| `elicitation_response` | Se envía una respuesta de elicitación MCP de vuelta al servidor |2479| `elicitation_response` | Se envía una respuesta de elicitación MCP de vuelta al servidor |

2481| `agent_needs_input` | Una sesión en segundo plano comienza a esperar tu entrada mientras la [vista de agentes](/docs/es/agent-view) está abierta en una terminal. También se activa cuando una sesión de terminal te muestra una [pregunta de configuración de terminal de un compañero de un equipo de agentes](/docs/es/agent-teams#choose-a-display-mode) o el aviso del modo automático sobre [cargos por solicitudes del clasificador](/docs/es/auto-mode-classifier-billing) y no has escrito nada durante unos seis segundos |2480| `agent_needs_input` | Una sesión en segundo plano empieza a esperar tu entrada mientras la [vista de agentes](/docs/es/agent-view) está abierta en una terminal. También se activa cuando una sesión de terminal te muestra la [pregunta de configuración de terminal de un compañero de un equipo de agentes](/docs/es/agent-teams#choose-a-display-mode) o el aviso del modo automático sobre los [cargos por solicitudes del clasificador](/docs/es/auto-mode-classifier-billing) y no has escrito durante unos seis segundos |

2482| `agent_completed` | Una sesión en segundo plano termina o falla. Se activa solo mientras la [vista de agentes](/docs/es/agent-view) está abierta en una terminal |2481| `agent_completed` | Una sesión en segundo plano termina o falla. Solo se activa mientras la [vista de agentes](/docs/es/agent-view) está abierta en una terminal |

2483| `quota_auto_resume_fired` | Claude Code continúa tu tarea después de que un límite de uso de claude.ai la pausó: en el restablecimiento, o antes cuando algo que haces en Claude Code durante la espera, como agregar créditos de uso, mejorar tu plan o cambiar de modelo, vuelve a habilitar el uso, con la [excepción del ajuste de modelo](/docs/es/interactive-mode#wait-for-a-usage-limit-to-reset) |2482| `quota_auto_resume_fired` | Claude Code continúa tu tarea después de que un límite de uso de claude.ai la pausara: en el restablecimiento, o antes cuando algo que haces en Claude Code durante la espera, como agregar créditos de uso, mejorar tu plan o cambiar de modelo, vuelve a hacer disponible el uso, con la [excepción del ajuste de modelo](/docs/es/interactive-mode#wait-for-a-usage-limit-to-reset) |

2484| `quota_auto_resume_stale` | Un límite de uso de claude.ai se restableció mientras tu computadora estuvo suspendida durante más de unos 30 minutos. Claude Code espera a que presiones `Enter` en lugar de continuar. Después de una suspensión más corta, continúa y activa `quota_auto_resume_fired` en su lugar |2483| `quota_auto_resume_stale` | Un límite de uso de claude.ai se restableció mientras tu computadora estuvo suspendida durante más de unos 30 minutos. Claude Code espera a que presiones `Enter` en lugar de continuar. Después de una suspensión más corta, continúa y activa `quota_auto_resume_fired` en su lugar |

2485| `quota_auto_resume_disabled` | Claude Code termina su espera por un límite de uso de claude.ai sin continuar tu tarea: se desactivó [`autoContinueAtUsageLimit`](/docs/es/settings-reference#autocontinueatusagelimit) o el restablecimiento se alejó más de 24 horas durante una espera que Claude Code inició por su cuenta, la tarea continuada siguió alcanzando el límite, o la continuación se bloqueó antes de llegar al modelo. No se activa cuando presionas `Esc` o `Ctrl+C`, ni cuando eliges **Don't continue automatically** |2484| `quota_auto_resume_disabled` | Claude Code termina su espera por un límite de uso de claude.ai sin continuar tu tarea: [`autoContinueAtUsageLimit`](/docs/es/settings-reference#autocontinueatusagelimit) se desactivó o el restablecimiento se movió a más de 24 horas durante una espera que Claude Code inició por su cuenta, la tarea continuada siguió alcanzando el límite, o la continuación se bloqueó antes de llegar al modelo. No se activa cuando presionas `Esc` o `Ctrl+C`, ni cuando eliges **Don't continue automatically** |

2486 2485 

2487Los tipos `quota_auto_resume_fired`, `quota_auto_resume_stale` y `quota_auto_resume_disabled` requieren Claude Code v2.1.234 o posterior.2486Los tipos `quota_auto_resume_fired`, `quota_auto_resume_stale` y `quota_auto_resume_disabled` requieren Claude Code v2.1.234 o posterior.

2488 2487 


2491`agent_needs_input` para la pregunta de configuración de terminal de un compañero requiere Claude Code v2.1.248 o posterior.2490`agent_needs_input` para la pregunta de configuración de terminal de un compañero requiere Claude Code v2.1.248 o posterior.

2492 2491 

2493<Note>2492<Note>

2494 Los tipos `permission_prompt`, `idle_prompt`, `elicitation_dialog` y `elicitation_url_dialog` comparten su temporización con las notificaciones de escritorio, por lo que en las sesiones de terminal solo los ves cuando parece que estás lejos de la terminal:2493 Los tipos `permission_prompt`, `idle_prompt`, `elicitation_dialog` y `elicitation_url_dialog` comparten su temporización con las notificaciones de escritorio, por lo que en sesiones de terminal solo los ves cuando parece que estás lejos de la terminal:

2495 2494 

2496 * Espera `permission_prompt` una vez que no hayas escrito nada durante unos seis segundos. El temporizador comienza cuando aparece la solicitud de permiso, y cada pulsación de tecla lo aplaza. Para ejecutar un hook inmediatamente cuando Claude pide permiso para usar una herramienta, usa [PermissionRequest](#permissionrequest) en su lugar.2495 * Espera `permission_prompt` una vez que no hayas escrito durante unos seis segundos. El temporizador comienza cuando aparece la solicitud de permiso, y cada pulsación de tecla lo pospone. Para ejecutar un hook inmediatamente cuando Claude pide permiso para usar una herramienta, usa [PermissionRequest](#permissionrequest) en su lugar.

2497 * Espera `idle_prompt` unos 60 segundos después de que Claude termine de responder, y solo si no has escrito nada desde entonces y ningún agente en segundo plano, como un [subagente](/docs/es/sub-agents) en segundo plano, sigue en ejecución. Claude Code no envía `idle_prompt` mientras espera a que se restablezca un límite de uso de claude.ai. Cuando la espera termina por sí sola, se activa en su lugar uno de los tipos `quota_auto_resume_*`.2496 * Espera `idle_prompt` unos 60 segundos después de que Claude termine de responder, y solo si no has escrito desde entonces y ningún agente en segundo plano, como un [subagente](/docs/es/sub-agents) en segundo plano, sigue ejecutándose. Claude Code no envía `idle_prompt` mientras espera que se restablezca un límite de uso de claude.ai. Cuando la espera termina por sí sola, se activa en su lugar uno de los tipos `quota_auto_resume_*`.

2498 * Espera `elicitation_dialog` para un formulario de elicitación, o `elicitation_url_dialog` para una solicitud de URL del navegador, una vez que no hayas escrito nada durante unos seis segundos. Ambos comparten el mismo umbral de seis segundos que `permission_prompt`: el temporizador comienza cuando aparece el cuadro de diálogo, y cada pulsación de tecla lo aplaza.2497 * Espera `elicitation_dialog` para un formulario de elicitación, o `elicitation_url_dialog` para una solicitud de URL en el navegador, una vez que no hayas escrito durante unos seis segundos. Ambos comparten la misma espera de seis segundos que `permission_prompt`: el temporizador comienza cuando aparece el diálogo, y cada pulsación de tecla lo pospone.

2499 2498 

2500 Una solicitud de permiso o elicitación que llega mientras otro cuadro de diálogo está en pantalla mantiene el mismo umbral de seis segundos, contado desde que llega la solicitud. Su notificación puede llegarte mientras la solicitud sigue esperando detrás del cuadro de diálogo abierto.2499 Una solicitud de permiso o una elicitación que llega mientras otro diálogo está en pantalla mantiene la misma espera de seis segundos, contada desde que llega la solicitud. Su notificación puede llegarte mientras la solicitud sigue esperando detrás del diálogo abierto.

2501</Note>2500</Note>

2502 2501 

2503Claude Code temporiza `permission_prompt` de forma diferente en las sesiones en las que envía solicitudes de permiso al [callback `canUseTool`](/docs/es/agent-sdk/user-input) del Agent SDK, que es como Claude Desktop y la extensión de VS Code alojan Claude Code:2502Claude Code temporiza `permission_prompt` de forma diferente en las sesiones donde envía las solicitudes de permiso al [callback `canUseTool`](/docs/es/agent-sdk/user-input) del Agent SDK, que es como Claude Desktop y la extensión de VS Code alojan Claude Code:

2504 2503 

2505* Espera `permission_prompt` unos seis segundos después de que Claude pida permiso. Claude Code no lo aplaza mientras escribes.2504* Espera `permission_prompt` unos seis segundos después de que Claude pida permiso. Claude Code no lo pospone mientras escribes.

2506* Si tú o un hook [PermissionRequest](#permissionrequest) responden antes, Claude Code no ejecuta `permission_prompt`.2505* Si tú o un hook [PermissionRequest](#permissionrequest) responden antes, Claude Code no ejecuta `permission_prompt`.

2507* Establece [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/es/env-vars) en `1` para desactivar `permission_prompt` en estas sesiones.2506* Establece [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/es/env-vars) en `1` para desactivar `permission_prompt` en estas sesiones.

2508 2507 

2509Antes de v2.1.233, `permission_prompt` no se activaba en estas sesiones.2508Antes de v2.1.233, `permission_prompt` no se activaba en estas sesiones.

2510 2509 

2511Usa matchers separados para ejecutar distintos manejadores según el tipo de notificación. Esta configuración activa un script de alerta específico de permisos cuando Claude necesita aprobación de permisos y una notificación diferente cuando Claude ha estado inactivo:2510Usa matchers separados para ejecutar distintos controladores según el tipo de notificación. Esta configuración activa un script de alerta específico de permisos cuando Claude necesita aprobación de permisos y una notificación diferente cuando Claude ha estado inactivo:

2512 2511 

2513```json theme={null}2512```json theme={null}

2514{2513{


2561 SubagentStart2560 SubagentStart

2562</h3>2561</h3>

2563 2562 

2564Se ejecuta cuando Claude genera un subagente con la herramienta Agent, cuando Claude [reanuda un subagente](/docs/es/sub-agents#resume-subagents) y cada vez que un compañero en proceso de un [equipo de agentes](/docs/es/agent-teams) maneja un mensaje nuevo. Admite matchers para filtrar por nombre de tipo de agente. Para los agentes integrados, es el nombre del agente, como `general-purpose`, `Explore` o `Plan`. Para los [subagentes personalizados](/docs/es/sub-agents), es el campo `name` del frontmatter del agente, no el nombre del archivo.2563Se ejecuta cuando Claude genera un subagente con la herramienta Agent, cuando Claude [reanuda un subagente](/docs/es/sub-agents#resume-subagents) y cada vez que un compañero en proceso de un [equipo de agentes](/docs/es/agent-teams) gestiona un mensaje nuevo. Admite matchers para filtrar por nombre de tipo de agente. Para los agentes integrados, es el nombre del agente, como `general-purpose`, `Explore` o `Plan`. Para los [subagentes personalizados](/docs/es/sub-agents), es el campo `name` del frontmatter del agente, no el nombre del archivo.

2565 2564 

2566Para los subagentes incluidos en un [plugin](/docs/es/plugins/overview), el tipo de agente es el identificador con ámbito del plugin, como `my-plugin:reviewer`, no el nombre simple del frontmatter. Los dos puntos colocan un nombre con ámbito de plugin en la ruta de expresión regular, así que ancla el matcher con `^` y `$` para una coincidencia exacta: `^my-plugin:reviewer$`.2565Para los subagentes incluidos en un [plugin](/docs/es/plugins/overview), el tipo de agente es el identificador con ámbito de plugin, como `my-plugin:reviewer`, no el nombre simple del frontmatter. Los dos puntos hacen que un nombre con ámbito de plugin se evalúe como expresión regular, así que ancla el matcher con `^` y `$` para una coincidencia exacta: `^my-plugin:reviewer$`.

2567 2566 

2568<h4 id="subagentstart-input">2567<h4 id="subagentstart-input">

2569 Entrada de SubagentStart2568 Entrada de SubagentStart


2586 2585 

2587| Campo | Descripción |2586| Campo | Descripción |

2588| :- | :- |2587| :- | :- |

2589| `additionalContext` | Cadena que se agrega al contexto del subagente al comienzo de su conversación, antes de su primer prompt. Consulta [Agregar contexto para Claude](#add-context-for-claude) |2588| `additionalContext` | Cadena que se agrega al contexto del subagente al inicio de su conversación, antes de su primer prompt. Consulta [Agregar contexto para Claude](#add-context-for-claude) |

2590 2589 

2591```json theme={null}2590```json theme={null}

2592{2591{


2603 SubagentStop2602 SubagentStop

2604</h3>2603</h3>

2605 2604 

2606Se ejecuta cuando un subagente de Claude Code terminó de responder. Coincide con el tipo de agente, con los mismos valores que SubagentStart.2605Se ejecuta cuando un subagente de Claude Code terminó de responder. Hace coincidencia por tipo de agente, con los mismos valores que SubagentStart.

2607 2606 

2608<h4 id="subagentstop-input">2607<h4 id="subagentstop-input">

2609 Entrada de SubagentStop2608 Entrada de SubagentStop


2615 2614 

2616Un `matcher` que nombra tipos de agente no coincide con un `agent_type` vacío. Un hook cuyo matcher se omite, es `""` o `"*"`, o es una expresión regular que coincide con una cadena vacía, también se ejecuta para eventos con un `agent_type` vacío.2615Un `matcher` que nombra tipos de agente no coincide con un `agent_type` vacío. Un hook cuyo matcher se omite, es `""` o `"*"`, o es una expresión regular que coincide con una cadena vacía, también se ejecuta para eventos con un `agent_type` vacío.

2617 2616 

2618En Claude Code v2.1.271 o posterior, un subagente que se ejecuta con la herramienta [`SubagentHandback`](/docs/es/tools-reference) entrega su informe a través de esa herramienta antes de detenerse. El campo `last_assistant_message` contiene entonces el texto de cierre del subagente, si lo hay, que no es el informe entregado. El informe es la entrada `message` de esa llamada, que un hook `PreToolUse` o `PostToolUse` que coincide con `SubagentHandback` recibe como `tool_input.message`.2617En Claude Code v2.1.271 o posterior, un subagente que se ejecuta con la herramienta [`SubagentHandback`](/docs/es/tools-reference) entrega su informe a través de esa herramienta antes de detenerse. En ese caso, el campo `last_assistant_message` contiene el texto de cierre del subagente, si lo hay, que no es el informe entregado. El informe es la entrada `message` de esa llamada, que un hook `PreToolUse` o `PostToolUse` con coincidencia en `SubagentHandback` recibe como `tool_input.message`.

2619 2618 

2620Los hooks SubagentStop también reciben los arreglos `background_tasks` y `session_crons` descritos en [Entrada de Stop](#stop-input). Ambos arreglos tienen como ámbito la sesión principal, no el subagente.2619Los hooks SubagentStop también reciben los arrays `background_tasks` y `session_crons` descritos en [Entrada de Stop](#stop-input). Ambos arrays tienen como ámbito la sesión principal, no el subagente.

2621 2620 

2622```json theme={null}2621```json theme={null}

2623{2622{


2636}2635}

2637```2636```

2638 2637 

2639Los hooks SubagentStop usan el mismo formato de control de decisiones que los [hooks Stop](#stop-decision-control), incluido `hookSpecificOutput.additionalContext` con `hookEventName` establecido en `"SubagentStop"`, para retroalimentación que no es de error y que mantiene al subagente en ejecución. Devolver `decision: "block"` con un `reason` mantiene al subagente en ejecución y le entrega `reason` como su siguiente instrucción. Un hook que bloquea al terminar con código 2 entrega su mensaje de stderr de la misma manera. Para inyectar contexto en la sesión principal después de que un subagente regresa, usa en su lugar un hook [`PostToolUse`](#posttooluse) sobre la herramienta `Agent`.2638Los hooks SubagentStop usan el mismo formato de control de decisiones que los [hooks Stop](#stop-decision-control), incluido `hookSpecificOutput.additionalContext` con `hookEventName` establecido en `"SubagentStop"`, para retroalimentación que no es de error y que mantiene al subagente en ejecución. Devolver `decision: "block"` con un `reason` mantiene al subagente en ejecución y le entrega `reason` al subagente como su siguiente instrucción. Un hook que bloquea saliendo con código 2 entrega su mensaje de stderr de la misma forma. Para inyectar contexto en la sesión principal después de que un subagente regrese, usa en su lugar un hook [`PostToolUse`](#posttooluse) sobre la herramienta `Agent`.

2640 2639 

2641<h3 id="taskcreated">2640<h3 id="taskcreated">

2642 TaskCreated2641 TaskCreated

2643</h3>2642</h3>

2644 2643 

2645Se ejecuta cuando se está creando una tarea mediante la herramienta `TaskCreate`. Úsalo para aplicar convenciones de nomenclatura, exigir descripciones de tareas o impedir que se creen ciertas tareas. En una [sesión sin las herramientas Task](/docs/es/tools-reference#task-tool-availability), este evento no se activa.2644Se ejecuta cuando se está creando una tarea mediante la herramienta `TaskCreate`. Úsalo para aplicar convenciones de nombres, exigir descripciones de tareas o impedir que se creen ciertas tareas. En una [sesión sin las herramientas Task](/docs/es/tools-reference#task-tool-availability), este evento no se activa.

2646 2645 

2647Los hooks TaskCreated no admiten matchers y se activan en cada ocurrencia.2646Los hooks TaskCreated no admiten matchers y se activan en cada ocurrencia.

2648 2647 


2670| :- | :- |2669| :- | :- |

2671| `task_id` | Identificador de la tarea que se está creando |2670| `task_id` | Identificador de la tarea que se está creando |

2672| `task_subject` | Título de la tarea |2671| `task_subject` | Título de la tarea |

2673| `task_description` | Descripción detallada de la tarea. Puede no estar presente |2672| `task_description` | Descripción detallada de la tarea. Puede estar ausente |

2674| `teammate_name` | Nombre del compañero que crea la tarea. Puede no estar presente |2673| `teammate_name` | Nombre del compañero que crea la tarea. Puede estar ausente |

2675| `team_name` | Obsoleto. Nombre del equipo derivado de la sesión; se eliminará en una versión futura |2674| `team_name` | Obsoleto. Nombre del equipo derivado de la sesión; se eliminará en una versión futura |

2675| `agent_id` | En este evento, el [campo de entrada común](#common-input-fields) identifica al subagente o al [compañero en proceso](/docs/es/agent-teams#choose-a-display-mode) que crea la tarea. Puede estar ausente. Requiere Claude Code v2.1.290 o posterior |

2676 2676 

2677<h4 id="taskcreated-decision-control">2677<h4 id="taskcreated-decision-control">

2678 Control de decisiones de TaskCreated2678 Control de decisiones de TaskCreated

2679</h4>2679</h4>

2680 2680 

2681Un hook TaskCreated puede bloquear la creación de dos maneras. En cualquier caso, Claude Code elimina la tarea y devuelve tu mensaje a Claude como el error de la herramienta. Claude Code ignora `continue: false` de este evento y Claude sigue trabajando.2681Un hook TaskCreated puede bloquear la creación de dos maneras. En ambos casos, Claude Code elimina la tarea y devuelve tu mensaje a Claude como el error de la herramienta. Claude Code ignora `continue: false` de este evento y Claude sigue trabajando.

2682 2682 

2683* **Código de salida 2**: Claude Code devuelve el texto de stderr como mensaje.2683* **Código de salida 2**: Claude Code devuelve el texto de stderr como mensaje.

2684* **JSON `{"decision": "block", "reason": "..."}`**: Claude Code devuelve `reason` como mensaje.2684* **JSON `{"decision": "block", "reason": "..."}`**: Claude Code devuelve `reason` como mensaje.


2702 TaskCompleted2702 TaskCompleted

2703</h3>2703</h3>

2704 2704 

2705Se ejecuta cuando una tarea se está marcando como completada. Se activa en dos situaciones: cuando cualquier agente marca explícitamente una tarea como completada mediante la herramienta TaskUpdate, o cuando un compañero de un [equipo de agentes](/docs/es/agent-teams) termina su turno con tareas en curso. Úsalo para aplicar criterios de finalización, como exigir que pasen las pruebas o las verificaciones de lint antes de que una tarea pueda cerrarse.2705Se ejecuta cuando una tarea se está marcando como completada. Se activa en dos situaciones: cuando cualquier agente marca explícitamente una tarea como completada mediante la herramienta TaskUpdate, o cuando un compañero de un [equipo de agentes](/docs/es/agent-teams) termina su turno con tareas en curso. Úsalo para aplicar criterios de finalización, como que pasen las pruebas o las verificaciones de lint, antes de que una tarea pueda cerrarse.

2706 2706 

2707Los hooks TaskCompleted no admiten matchers y se activan en cada ocurrencia.2707Los hooks TaskCompleted no admiten matchers y se activan en cada ocurrencia.

2708 2708 


2731| :- | :- |2731| :- | :- |

2732| `task_id` | Identificador de la tarea que se está completando |2732| `task_id` | Identificador de la tarea que se está completando |

2733| `task_subject` | Título de la tarea |2733| `task_subject` | Título de la tarea |

2734| `task_description` | Descripción detallada de la tarea. Puede no estar presente |2734| `task_description` | Descripción detallada de la tarea. Puede estar ausente |

2735| `teammate_name` | Nombre del compañero que completa la tarea. Puede no estar presente |2735| `teammate_name` | Nombre del compañero que completa la tarea. Puede estar ausente |

2736| `team_name` | Obsoleto. Nombre del equipo derivado de la sesión; se eliminará en una versión futura |2736| `team_name` | Obsoleto. Nombre del equipo derivado de la sesión; se eliminará en una versión futura |

2737| `agent_id` | En este evento, el [campo de entrada común](#common-input-fields) identifica al subagente o al [compañero en proceso](/docs/es/agent-teams#choose-a-display-mode) que completa la tarea. Puede estar ausente. Requiere Claude Code v2.1.290 o posterior |

2737 2738 

2738<h4 id="taskcompleted-decision-control">2739<h4 id="taskcompleted-decision-control">

2739 Control de decisiones de TaskCompleted2740 Control de decisiones de TaskCompleted


2742Los hooks TaskCompleted admiten dos formas de controlar la finalización de tareas:2743Los hooks TaskCompleted admiten dos formas de controlar la finalización de tareas:

2743 2744 

2744* **Código de salida 2**: la tarea no se marca como completada y el mensaje de stderr se devuelve al modelo como retroalimentación.2745* **Código de salida 2**: la tarea no se marca como completada y el mensaje de stderr se devuelve al modelo como retroalimentación.

2745* **JSON `{"continue": false, "stopReason": "..."}`**: cuando el evento lo activó un compañero que terminaba su turno, detiene al compañero por completo, igual que el comportamiento del hook `Stop`. El `stopReason` se muestra al usuario. Cuando el evento lo activó la herramienta `TaskUpdate`, Claude Code ignora `continue: false`; el código de salida 2 sigue bloqueando la finalización.2746* **JSON `{"continue": false, "stopReason": "..."}`**: cuando el evento lo activó un compañero que terminaba su turno, detiene por completo al compañero, igual que el comportamiento del hook `Stop`. El `stopReason` se muestra al usuario. Cuando el evento lo activó la herramienta `TaskUpdate`, Claude Code ignora `continue: false`; el código de salida 2 sigue bloqueando la finalización.

2746 2747 

2747Este ejemplo ejecuta pruebas y bloquea la finalización de la tarea si fallan:2748Este ejemplo ejecuta pruebas y bloquea la finalización de la tarea si fallan:

2748 2749 


2765</h3>2766</h3>

2766 2767 

2767Se ejecuta cuando el agente principal de Claude Code terminó de responder. No se ejecuta si2768Se ejecuta cuando el agente principal de Claude Code terminó de responder. No se ejecuta si

2768la detención se produjo por una interrupción del usuario. Los errores de la API activan2769la detención se produjo por una interrupción del usuario. Los errores de API activan

2769[StopFailure](#stopfailure) en su lugar.2770[StopFailure](#stopfailure) en su lugar.

2770 2771 

2771<Tip>2772<Tip>


2776 Entrada de Stop2777 Entrada de Stop

2777</h4>2778</h4>

2778 2779 

2779Además de los [campos de entrada comunes](#common-input-fields), los hooks Stop reciben `stop_hook_active`, `last_assistant_message`, `background_tasks` y `session_crons`. El campo `stop_hook_active` es `true` cuando Claude Code ya está continuando como resultado de un hook de detención. Comprueba este valor o procesa la transcripción para evitar bloquear por una condición que nunca se resolverá.2780Además de los [campos de entrada comunes](#common-input-fields), los hooks Stop reciben `stop_hook_active`, `last_assistant_message`, `background_tasks` y `session_crons`. El campo `stop_hook_active` es `true` cuando Claude Code ya está continuando como resultado de un hook Stop. Comprueba este valor o procesa la transcripción para evitar bloquear en una condición que nunca se resolverá.

2780 2781 

2781Claude Code aplica un límite de 8 continuaciones consecutivas: después de que los hooks de detención hayan continuado el turno ocho veces seguidas, Claude Code sobrescribe el siguiente bloqueo y termina el turno. El conteo de continuaciones consecutivas se reinicia cada vez que Claude llama a una herramienta. Para aumentar el límite, establece [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/es/env-vars).2782Claude Code aplica un límite de 8 continuaciones consecutivas: después de que los hooks Stop hayan continuado el turno ocho veces seguidas, Claude Code sobrescribe el siguiente bloqueo y termina el turno. El conteo de continuaciones consecutivas se reinicia cada vez que Claude llama a una herramienta. Para aumentar el límite, establece [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/es/env-vars).

2782 2783 

2783El campo `last_assistant_message` contiene el contenido de texto de la respuesta final de Claude, para que los hooks puedan acceder a él sin analizar el archivo de transcripción. Para los hooks que actúan sobre el turno recién completado, como los hooks de lectura en voz alta o de notificación, usa este campo en lugar de leer `transcript_path`: no se garantiza que el archivo de transcripción incluya el mensaje final en el momento de Stop en todas las versiones.2784El campo `last_assistant_message` contiene el contenido de texto de la respuesta final de Claude, para que los hooks puedan acceder a él sin analizar el archivo de transcripción. Para los hooks que actúan sobre el turno recién completado, como los hooks de lectura en voz alta o de notificación, usa este campo en lugar de leer `transcript_path`: no se garantiza que el archivo de transcripción incluya el mensaje final en el momento de Stop en todas las versiones.

2784 2785 

2785Los arreglos `background_tasks` y `session_crons` permiten a los hooks distinguir entre "la sesión terminó" y "la sesión está en pausa esperando que un trabajo en segundo plano la reactive". Ambos arreglos están presentes cuando el registro de tareas es accesible y están vacíos cuando no hay nada en curso ni programado.2786Los arrays `background_tasks` y `session_crons` permiten a los hooks distinguir entre "la sesión terminó" y "la sesión está en pausa esperando a que un trabajo en segundo plano la reactive". Ambos arrays están presentes cuando el registro de tareas es accesible y están vacíos cuando no hay nada en curso ni programado.

2786 2787 

2787Cada entrada de `background_tasks` describe una tarea en curso y usa estos campos:2788Cada entrada de `background_tasks` describe una tarea en curso y usa estos campos:

2788 2789 

2789| Campo | Descripción |2790| Campo | Descripción |

2790| :- | :- |2791| :- | :- |

2791| `id` | Identificador de la tarea |2792| `id` | Identificador de la tarea |

2792| `type` | Etiqueta legible del tipo de tarea, como `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session` o `MCP task`. Cada etiqueta identifica qué función de Claude Code creó la tarea. Recurre al discriminante sin procesar para tipos no reconocidos |2793| `type` | Etiqueta legible del tipo de tarea, como `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session` o `MCP task`. Cada etiqueta identifica qué función de Claude Code creó la tarea. Recurre al discriminante sin procesar para los tipos no reconocidos |

2793| `status` | Estado actual de la tarea |2794| `status` | Estado actual de la tarea |

2794| `description` | Descripción de texto libre, limitada a 1000 caracteres con un marcador `… [+N chars]` dentro de la cadena cuando se recorta |2795| `description` | Descripción en texto libre, limitada a 1000 caracteres con un marcador `… [+N chars]` dentro de la cadena cuando se recorta |

2795| `command` | Línea de comando del shell, limitada a 1000 caracteres. Presente solo para tareas `shell` |2796| `command` | Línea de comando del shell, limitada a 1000 caracteres. Solo está presente para tareas `shell` |

2796| `agent_type` | Nombre del tipo de subagente. Presente solo para tareas `subagent` |2797| `agent_type` | Nombre del tipo de subagente. Solo está presente para tareas `subagent` |

2797| `server` | Nombre del servidor MCP. Presente solo para tareas `monitor` y `MCP task` |2798| `server` | Nombre del servidor MCP. Solo está presente para tareas `monitor` y `MCP task` |

2798| `tool` | Nombre de la herramienta MCP. Presente solo para tareas `monitor` y `MCP task` |2799| `tool` | Nombre de la herramienta MCP. Solo está presente para tareas `monitor` y `MCP task` |

2799| `name` | Nombre del workflow. Presente solo para tareas `workflow` |2800| `name` | Nombre del workflow. Solo está presente para tareas `workflow` |

2800 2801 

2801Cada entrada de `session_crons` describe una reactivación programada con ámbito de sesión, procedente de `CronCreate`, `ScheduleWakeup` y `/loop`:2802Cada entrada de `session_crons` describe una reactivación programada con ámbito de sesión, proveniente de `CronCreate`, `ScheduleWakeup` y `/loop`:

2802 2803 

2803| Campo | Descripción |2804| Campo | Descripción |

2804| :- | :- |2805| :- | :- |

2805| `id` | Identificador de la tarea cron |2806| `id` | Identificador de la tarea cron |

2806| `schedule` | Expresión cron, por ejemplo `0 9 * * 1-5` |2807| `schedule` | Expresión cron, por ejemplo `0 9 * * 1-5` |

2807| `recurring` | `false` para reactivaciones únicas cuya programación codifica un solo momento de activación, `true` para tareas que se vuelven a activar en cada coincidencia |2808| `recurring` | `false` para reactivaciones únicas cuya programación codifica una sola hora de activación, `true` para tareas que se vuelven a activar en cada coincidencia |

2808| `prompt` | Prompt enviado cuando se activa el cron, limitado a 1000 caracteres con el mismo marcador `… [+N chars]` |2809| `prompt` | Prompt que se envía cuando se activa el cron, limitado a 1000 caracteres con el mismo marcador `… [+N chars]` |

2809 2810 

2810Este ejemplo muestra una entrada de Stop con una tarea de shell en curso y un cron recurrente:2811Este ejemplo muestra una entrada de Stop con una tarea de shell en curso y un cron recurrente:

2811 2812 


2848| :- | :- |2849| :- | :- |

2849| `decision` | `"block"` impide que Claude se detenga. Omítelo para permitir que Claude se detenga |2850| `decision` | `"block"` impide que Claude se detenga. Omítelo para permitir que Claude se detenga |

2850| `reason` | Obligatorio cuando `decision` es `"block"`. Le indica a Claude por qué debe continuar |2851| `reason` | Obligatorio cuando `decision` es `"block"`. Le indica a Claude por qué debe continuar |

2851| `hookSpecificOutput.additionalContext` | Retroalimentación para Claude que no es de error. La conversación continúa para que Claude pueda actuar en consecuencia, pero a diferencia de `decision: "block"` se muestra en la transcripción como retroalimentación del hook en lugar de como un error del hook |2852| `hookSpecificOutput.additionalContext` | Retroalimentación para Claude que no es de error. La conversación continúa para que Claude pueda actuar en consecuencia, pero, a diferencia de `decision: "block"`, se muestra en la transcripción como retroalimentación del hook y no como un error del hook |

2852 2853 

2853Un hook que bloquea al terminar con código 2 se enruta igual que `reason`: Claude recibe el mensaje de stderr como la explicación de por qué debe continuar.2854Un hook que bloquea saliendo con código 2 se enruta de la misma forma que `reason`: Claude recibe el mensaje de stderr como la explicación de por qué debe continuar.

2854 2855 

2855```json theme={null}2856```json theme={null}

2856{2857{


2859}2860}

2860```2861```

2861 2862 

2862Usa `additionalContext` cuando el hook funciona según lo previsto y le da orientación a Claude, como "ejecuta el conjunto de pruebas antes de terminar". Mantiene la conversación en marcha a través de las mismas protecciones contra bucles que `decision: "block"`, es decir, la entrada `stop_hook_active` y el límite de 8 continuaciones consecutivas, pero la transcripción lo etiqueta como `Stop hook feedback` y no se muestra ninguna notificación de error del hook:2863Usa `additionalContext` cuando el hook funciona según lo diseñado y le da orientación a Claude, como "ejecuta el conjunto de pruebas antes de terminar". Mantiene la conversación en marcha a través de las mismas protecciones contra bucles que `decision: "block"`, es decir, la entrada `stop_hook_active` y el límite de 8 continuaciones consecutivas, pero la transcripción lo etiqueta como `Stop hook feedback` y no se muestra ninguna notificación de error del hook:

2863 2864 

2864```json theme={null}2865```json theme={null}

2865{2866{


2874 StopFailure2875 StopFailure

2875</h3>2876</h3>

2876 2877 

2877Se ejecuta en lugar de [Stop](#stop) cuando el turno termina debido a un error de la API. Claude Code ignora la salida y el código de salida del hook, excepto [`terminalSequence`](#emit-terminal-notifications). Úsalo para registrar fallas, enviar alertas o tomar medidas de recuperación cuando Claude no puede completar una respuesta debido a rate limits, problemas de autenticación u otros errores de la API.2878Se ejecuta en lugar de [Stop](#stop) cuando el turno termina debido a un error de API. Claude Code ignora la salida y el código de salida del hook, salvo [`terminalSequence`](#emit-terminal-notifications). Úsalo para registrar fallos, enviar alertas o tomar acciones de recuperación cuando Claude no puede completar una respuesta debido a rate limits, problemas de autenticación u otros errores de API.

2878 2879 

2879<h4 id="stopfailure-input">2880<h4 id="stopfailure-input">

2880 Entrada de StopFailure2881 Entrada de StopFailure


2906 TeammateIdle2907 TeammateIdle

2907</h3>2908</h3>

2908 2909 

2909Se ejecuta cuando un compañero de un [equipo de agentes](/docs/es/agent-teams) está a punto de quedar inactivo después de terminar su turno. Úsalo para aplicar controles de calidad antes de que un compañero deje de trabajar, como exigir que pasen las verificaciones de lint o verificar que existan los archivos de salida.2910Se ejecuta cuando un compañero de un [equipo de agentes](/docs/es/agent-teams) está a punto de quedar inactivo después de terminar su turno. Úsalo para aplicar controles de calidad antes de que un compañero deje de trabajar, como exigir que pasen las verificaciones de lint o comprobar que existan los archivos de salida.

2910 2911 

2911Los hooks TeammateIdle no admiten matchers y se activan en cada ocurrencia.2912Los hooks TeammateIdle no admiten matchers y se activan en cada ocurrencia.

2912 2913 


2932| :- | :- |2933| :- | :- |

2933| `teammate_name` | Nombre del compañero que está a punto de quedar inactivo |2934| `teammate_name` | Nombre del compañero que está a punto de quedar inactivo |

2934| `team_name` | Obsoleto. Nombre del equipo derivado de la sesión; se eliminará en una versión futura |2935| `team_name` | Obsoleto. Nombre del equipo derivado de la sesión; se eliminará en una versión futura |

2936| `agent_id` | En este evento, el [campo de entrada común](#common-input-fields) identifica al [compañero en proceso](/docs/es/agent-teams#choose-a-display-mode) que está a punto de quedar inactivo. Puede estar ausente. Requiere Claude Code v2.1.290 o posterior |

2935 2937 

2936<h4 id="teammateidle-decision-control">2938<h4 id="teammateidle-decision-control">

2937 Control de decisiones de TeammateIdle2939 Control de decisiones de TeammateIdle


2940Los hooks TeammateIdle admiten dos formas de controlar el comportamiento del compañero:2942Los hooks TeammateIdle admiten dos formas de controlar el comportamiento del compañero:

2941 2943 

2942* **Código de salida 2**: el compañero recibe el mensaje de stderr como retroalimentación y sigue trabajando en lugar de quedar inactivo.2944* **Código de salida 2**: el compañero recibe el mensaje de stderr como retroalimentación y sigue trabajando en lugar de quedar inactivo.

2943* **JSON `{"continue": false, "stopReason": "..."}`**: detiene al compañero por completo, igual que el comportamiento del hook `Stop`. El `stopReason` se muestra al usuario.2945* **JSON `{"continue": false, "stopReason": "..."}`**: detiene por completo al compañero, igual que el comportamiento del hook `Stop`. El `stopReason` se muestra al usuario.

2944 2946 

2945Este ejemplo verifica que exista un artefacto de compilación antes de permitir que un compañero quede inactivo:2947Este ejemplo comprueba que exista un artefacto de compilación antes de permitir que un compañero quede inactivo:

2946 2948 

2947```bash theme={null}2949```bash theme={null}

2948#!/bin/bash2950#!/bin/bash


2959 ConfigChange2961 ConfigChange

2960</h3>2962</h3>

2961 2963 

2962Se ejecuta cuando un archivo de configuración cambia durante una sesión. Úsalo para auditar cambios de configuración, aplicar políticas de seguridad o bloquear modificaciones no autorizadas a los archivos de configuración.2964Se ejecuta cuando un archivo de configuración cambia durante una sesión. Úsalo para auditar cambios de configuración, aplicar políticas de seguridad o bloquear modificaciones no autorizadas de los archivos de configuración.

2963 2965 

2964Claude Code ejecuta los hooks ConfigChange cuando cambia un archivo de configuración, un archivo de política administrada o un archivo de skill. Para la política administrada, solo los ejecuta cuando cambia `managed-settings.json` o un archivo en `managed-settings.d/`. Aplica la [configuración administrada por el servidor](/docs/es/server-managed-settings) y los cambios en las preferencias administradas de macOS o en la política del registro de Windows sin ejecutarlos. En WSL con [`wslInheritsWindowsSettings`](/docs/es/settings-reference#wslinheritswindowssettings), también aplica un archivo de configuración administrada del lado de Windows que cambió en su sondeo de políticas sin ejecutarlos.2966Claude Code ejecuta los hooks ConfigChange cuando cambia un archivo de configuración, un archivo de política administrada o un archivo de skill. Para la política administrada, solo los ejecuta cuando cambia `managed-settings.json` o un archivo en `managed-settings.d/`. Aplica la [configuración administrada por el servidor](/docs/es/server-managed-settings) y los cambios en las preferencias administradas de macOS o en la política del registro de Windows sin ejecutarlos. En WSL con [`wslInheritsWindowsSettings`](/docs/es/settings-reference#wslinheritswindowssettings), también aplica un archivo de configuración administrada del lado de Windows que haya cambiado en su sondeo de políticas sin ejecutarlos.

2965 2967 

2966El matcher filtra según el origen de la configuración:2968El matcher filtra por el origen de la configuración:

2967 2969 

2968| Matcher | Cuándo se activa |2970| Matcher | Cuándo se activa |

2969| :- | :- |2971| :- | :- |


2973| `policy_settings` | Cambia `managed-settings.json` o un archivo en `managed-settings.d/` |2975| `policy_settings` | Cambia `managed-settings.json` o un archivo en `managed-settings.d/` |

2974| `skills` | Cambia un archivo de skill en `.claude/skills/` |2976| `skills` | Cambia un archivo de skill en `.claude/skills/` |

2975 2977 

2976Este ejemplo registra todos los cambios de configuración para auditorías de seguridad:2978Este ejemplo registra todos los cambios de configuración para auditoría de seguridad:

2977 2979 

2978```json theme={null}2980```json theme={null}

2979{2981{


2997 Entrada de ConfigChange2999 Entrada de ConfigChange

2998</h4>3000</h4>

2999 3001 

3000Además de los [campos de entrada comunes](#common-input-fields), los hooks ConfigChange reciben `source` y, opcionalmente, `file_path`. El campo `source` indica qué tipo de configuración cambió, y `file_path` proporciona la ruta del archivo específico que se modificó.3002Además de los [campos de entrada comunes](#common-input-fields), los hooks ConfigChange reciben `source` y, opcionalmente, `file_path`. El campo `source` indica qué tipo de configuración cambió, y `file_path` proporciona la ruta al archivo específico que se modificó.

3001 3003 

3002```json theme={null}3004```json theme={null}

3003{3005{


3030 3032 

3031Los cambios de `policy_settings` no se pueden bloquear. Los hooks siguen activándose para los orígenes `policy_settings` cuando cambia un archivo de configuración administrada en la máquina, así que puedes usarlos para registrar esas ediciones, pero cualquier decisión de bloqueo se ignora. Esto garantiza que la configuración administrada por la empresa siempre surta efecto. Claude Code no ejecuta hooks `ConfigChange` cuando llega o se actualiza la [configuración administrada por el servidor](/docs/es/server-managed-settings).3033Los cambios de `policy_settings` no se pueden bloquear. Los hooks siguen activándose para los orígenes `policy_settings` cuando cambia un archivo de configuración administrada en la máquina, así que puedes usarlos para registrar esas ediciones, pero cualquier decisión de bloqueo se ignora. Esto garantiza que la configuración administrada por la empresa siempre surta efecto. Claude Code no ejecuta hooks `ConfigChange` cuando llega o se actualiza la [configuración administrada por el servidor](/docs/es/server-managed-settings).

3032 3034 

3033Claude Code actúa según la decisión de bloqueo de la salida JSON de un hook ConfigChange y descarta `systemMessage` y `continue`. Un cambio bloqueado no muestra ningún mensaje ni a ti ni a Claude, ya sea que bloquees con `reason` o con stderr y código de salida 2. Claude Code solo escribe una línea en el registro de depuración.3035Claude Code actúa según la decisión de bloqueo de la salida JSON de un hook ConfigChange y descarta `systemMessage` y `continue`. Un cambio bloqueado no muestra ningún mensaje ni a ti ni a Claude, ya sea que bloquees con `reason` o con stderr y el código de salida 2. Claude Code solo escribe una línea en el registro de depuración.

3034 3036 

3035<h3 id="cwdchanged">3037<h3 id="cwdchanged">

3036 CwdChanged3038 CwdChanged

3037</h3>3039</h3>

3038 3040 

3039Se ejecuta cuando un comando de shell en la conversación principal cambia el directorio de trabajo, por ejemplo cuando Claude ejecuta un comando `cd`. Úsalo para reaccionar a los cambios de directorio: recargar variables de entorno, activar cadenas de herramientas específicas del proyecto o ejecutar scripts de configuración automáticamente. Se combina con [FileChanged](#filechanged) para herramientas como [direnv](https://direnv.net/) que administran el entorno por directorio.3041Se ejecuta cuando un comando de shell en la conversación principal cambia el directorio de trabajo, por ejemplo cuando Claude ejecuta un comando `cd`. Úsalo para reaccionar a los cambios de directorio: recargar variables de entorno, activar toolchains específicas del proyecto o ejecutar scripts de configuración automáticamente. Se complementa con [FileChanged](#filechanged) para herramientas como [direnv](https://direnv.net/) que gestionan el entorno por directorio.

3040 3042 

3041Los hooks CwdChanged tienen acceso a [`CLAUDE_ENV_FILE`](#persist-environment-variables). Las variables escritas en ese archivo persisten en los comandos Bash posteriores hasta el siguiente evento CwdChanged, cuando Claude Code las borra.3043Los hooks CwdChanged tienen acceso a [`CLAUDE_ENV_FILE`](#persist-environment-variables). Las variables escritas en ese archivo persisten en los comandos Bash posteriores hasta el siguiente evento CwdChanged, cuando Claude Code las borra.

3042 3044 


3067 3069 

3068| Campo | Descripción |3070| Campo | Descripción |

3069| :- | :- |3071| :- | :- |

3070| `watchPaths` | Arreglo de rutas absolutas. Reemplaza la lista de vigilancia dinámica actual. Las rutas de tu configuración de `matcher` siempre se vigilan. Devolver un arreglo vacío borra la lista dinámica, lo cual es habitual al entrar en un directorio nuevo |3072| `watchPaths` | Array de rutas absolutas. Reemplaza la lista de vigilancia dinámica actual. Las rutas de tu configuración de `matcher` siempre se vigilan. Devolver un array vacío borra la lista dinámica, lo que es típico al entrar en un directorio nuevo |

3071 3073 

3072Los hooks CwdChanged no tienen control de decisiones. No pueden bloquear el cambio de directorio.3074Los hooks CwdChanged no tienen control de decisiones. No pueden bloquear el cambio de directorio.

3073 3075 


3085* Agregas un directorio en la pestaña Workspace de `/permissions`3087* Agregas un directorio en la pestaña Workspace de `/permissions`

3086* Agregas un directorio que ya es un directorio de trabajo o que está dentro de uno3088* Agregas un directorio que ya es un directorio de trabajo o que está dentro de uno

3087 3089 

3088Claude Code activa DirectoryAdded después de actualizar el estado del sandbox y de los permisos, por lo que las herramientas en el sandbox ya ven el nuevo directorio cuando se ejecuta tu hook. Los comandos de los hooks en sí se ejecutan fuera del sandbox.3090Claude Code activa DirectoryAdded después de actualizar el estado del sandbox y de los permisos, por lo que las herramientas en el sandbox ya ven el nuevo directorio cuando se ejecuta tu hook. Los propios comandos del hook se ejecutan fuera del sandbox.

3089 3091 

3090Claude Code no espera al hook: la adición se completa inmediatamente y el hook se ejecuta en segundo plano con el tiempo de espera predeterminado de 600 segundos.3092Claude Code no espera al hook: la adición se completa inmediatamente y el hook se ejecuta en segundo plano con el tiempo de espera predeterminado de 600 segundos.

3091 3093 


3118}3120}

3119```3121```

3120 3122 

3121Los hooks DirectoryAdded no tienen control de decisiones. No pueden bloquear la adición, que ya se completó cuando se ejecuta el hook. Claude Code descarta el campo `continue` de su salida JSON y presenta el resto de forma diferente según el origen:3123Los hooks DirectoryAdded no tienen control de decisiones. No pueden bloquear la adición, que ya se completó cuando se ejecuta el hook. Claude Code descarta el campo `continue` de su salida JSON y muestra el resto de forma diferente según el origen:

3122 3124 

3123* `slash_command`: Claude Code entrega el `systemMessage` del hook a Claude como contexto en el siguiente turno de la conversación, en lugar de mostrártelo a ti. En la transcripción aparece un recuento de hooks fallidos. La salida completa de las fallas va al registro de depuración3125* `slash_command`: Claude Code entrega el `systemMessage` del hook a Claude como contexto en el siguiente turno de la conversación, en lugar de mostrártelo a ti. En la transcripción aparece un recuento de los hooks fallidos. La salida completa del fallo va al registro de depuración

3124* `register_repo_root`: Claude Code escribe la salida de `systemMessage` y la salida de las fallas solo en el registro de depuración3126* `register_repo_root`: Claude Code escribe la salida de `systemMessage` y la salida de fallos solo en el registro de depuración

3125 3127 

3126<h3 id="filechanged">3128<h3 id="filechanged">

3127 FileChanged3129 FileChanged

3128</h3>3130</h3>

3129 3131 

3130Se ejecuta cuando un archivo vigilado cambia en disco. Claude Code detecta los cambios con un observador del sistema de archivos, no inspeccionando las llamadas a herramientas, por lo que ejecuta el hook sin importar qué cambió el archivo: una llamada a la herramienta `Edit` o `Write`, un script que Claude ejecuta con `Bash` o un proceso completamente ajeno a Claude Code. Un uso común es recargar variables de entorno cuando cambian los archivos de configuración del proyecto.3132Se ejecuta cuando un archivo vigilado cambia en el disco. Claude Code detecta los cambios con un observador del sistema de archivos, no inspeccionando las llamadas a herramientas, así que ejecuta el hook sin importar qué cambió el archivo: una llamada a las herramientas `Edit` o `Write`, un script que Claude ejecuta con `Bash` o un proceso completamente ajeno a Claude Code. Un uso común es recargar variables de entorno cuando cambian los archivos de configuración del proyecto.

3131 3133 

3132El `matcher` de este evento cumple dos funciones:3134El `matcher` de este evento cumple dos funciones:

3133 3135 

3134* **Construir la lista de vigilancia**: el valor se divide por `|` y cada segmento se registra como un nombre de archivo literal en el directorio de trabajo, así que `".envrc|.env"` vigila exactamente esos dos archivos. Los patrones de expresiones regulares no sirven aquí: un valor como `^\.env` vigilaría un archivo llamado literalmente `^\.env`.3136* **Construir la lista de vigilancia**: el valor se divide por `|` y cada segmento se registra como un nombre de archivo literal en el directorio de trabajo, así que `".envrc|.env"` vigila exactamente esos dos archivos. Los patrones de expresiones regulares no son útiles aquí: un valor como `^\.env` vigilaría un archivo llamado literalmente `^\.env`.

3135* **Filtrar qué hooks se ejecutan**: cuando cambia un archivo vigilado, el mismo valor filtra qué grupos de hooks se ejecutan usando las [reglas de matcher](#matcher-patterns) estándar contra el nombre base del archivo que cambió.3137* **Filtrar qué hooks se ejecutan**: cuando un archivo vigilado cambia, el mismo valor filtra qué grupos de hooks se ejecutan usando las [reglas estándar de matcher](#matcher-patterns) contra el nombre base del archivo modificado.

3136 3138 

3137Este ejemplo normaliza los finales de línea en `data.csv` después de cualquier cambio, incluido un comando `Bash` o un script externo que reescribe el archivo:3139Este ejemplo normaliza los finales de línea en `data.csv` después de cualquier cambio, incluido un comando `Bash` o un script externo que reescriba el archivo:

3138 3140 

3139```json theme={null}3141```json theme={null}

3140{3142{


3154}3156}

3155```3157```

3156 3158 

3157El hook lee la ruta absoluta del archivo que cambió del campo `file_path` de la [entrada JSON](#filechanged-input) en stdin. Su verificación con `grep` comprueba lo mismo que elimina `perl`, un CR al final de una línea, así que la ejecución posterior a una normalización termina sin tocar el archivo. Una verificación más laxa entra en un bucle infinito, porque `perl -i` reescribe el archivo incluso cuando no sustituye nada y Claude Code vuelve a ejecutar el hook después de cada reescritura. Guarda este script en `/path/to/normalize-line-endings.sh` y hazlo ejecutable:3159El hook lee la ruta absoluta del archivo modificado desde el campo `file_path` de la [entrada JSON](#filechanged-input) en stdin. Su guarda `grep` comprueba lo mismo que elimina `perl`, un CR al final de una línea, de modo que la ejecución posterior a una normalización termina sin tocar el archivo. Una guarda más laxa entra en un bucle infinito, porque `perl -i` reescribe el archivo incluso cuando no sustituye nada y Claude Code vuelve a ejecutar el hook después de cada reescritura. Guarda este script en `/path/to/normalize-line-endings.sh` y hazlo ejecutable:

3158 3160 

3159```bash theme={null}3161```bash theme={null}

3160#!/bin/bash3162#!/bin/bash


3164fi3166fi

3165```3167```

3166 3168 

3167Para confirmar que el hook funciona, pídele a Claude que agregue una línea CRLF a `data.csv` con un comando `Bash`. Claude Code ejecuta el hook y el archivo termina con finales de línea LF.3169Para confirmar que el hook funciona, pídele a Claude que agregue una línea CRLF a `data.csv` con un comando `Bash`. Claude Code ejecuta el hook y el archivo termina con finales LF.

3168 3170 

3169Para vigilar archivos que no puedes nombrar de antemano, devuelve [`watchPaths`](#filechanged-output) desde un hook para actualizar la lista de vigilancia dinámicamente. Claude Code inicia el observador solo cuando algo nombra un archivo que vigilar, así que inicializa la lista con un grupo FileChanged cuyo matcher nombre al menos un archivo, o con un hook [SessionStart](#sessionstart-decision-control) o [CwdChanged](#cwdchanged) que devuelva `watchPaths`. El matcher sigue filtrando qué grupos de hooks se ejecutan cuando cambia un archivo vigilado, así que deja sin matcher el grupo que maneja las rutas dinámicas: así coincide con todos los archivos vigilados y no agrega nada a la lista de vigilancia. Un matcher `"*"` también coincide con todos los archivos, pero Claude Code lo registra en la lista de vigilancia como cualquier otro valor, como un archivo literal llamado `*`.3171Para vigilar archivos que no puedes nombrar de antemano, devuelve [`watchPaths`](#filechanged-output) desde un hook para actualizar la lista de vigilancia dinámicamente. Claude Code inicia el observador solo cuando algo nombra un archivo que vigilar, así que inicializa la lista con un grupo FileChanged cuyo matcher nombre al menos un archivo, o con un hook [SessionStart](#sessionstart-decision-control) o [CwdChanged](#cwdchanged) que devuelva `watchPaths`. El matcher sigue filtrando qué grupos de hooks se ejecutan cuando cambia un archivo vigilado, así que deja sin matcher el grupo que gestiona las rutas dinámicas: así coincide con todos los archivos vigilados y no agrega nada a la lista de vigilancia. Un matcher `"*"` también coincide con todos los archivos, pero Claude Code lo registra en la lista de vigilancia como cualquier otro valor, como un archivo literal llamado `*`.

3170 3172 

3171Los hooks FileChanged tienen acceso a [`CLAUDE_ENV_FILE`](#persist-environment-variables). Las variables escritas en ese archivo persisten en los comandos Bash posteriores hasta el siguiente evento [CwdChanged](#cwdchanged), cuando Claude Code las borra.3173Los hooks FileChanged tienen acceso a [`CLAUDE_ENV_FILE`](#persist-environment-variables). Las variables escritas en ese archivo persisten en los comandos Bash posteriores hasta el siguiente evento [CwdChanged](#cwdchanged), cuando Claude Code las borra.

3172 3174 


3178 3180 

3179| Campo | Descripción |3181| Campo | Descripción |

3180| :- | :- |3182| :- | :- |

3181| `file_path` | Ruta absoluta del archivo que cambió |3183| `file_path` | Ruta absoluta al archivo que cambió |

3182| `event` | Qué ocurrió: `"change"` para un archivo modificado, `"add"` para un archivo creado o `"unlink"` para un archivo eliminado |3184| `event` | Qué ocurrió: `"change"` para un archivo modificado, `"add"` para un archivo creado o `"unlink"` para un archivo eliminado |

3183 3185 

3184```json theme={null}3186```json theme={null}


3200 3202 

3201| Campo | Descripción |3203| Campo | Descripción |

3202| :- | :- |3204| :- | :- |

3203| `watchPaths` | Arreglo de rutas absolutas. Reemplaza la lista de vigilancia dinámica actual. Las rutas de tu configuración de `matcher` siempre se vigilan. Úsalo cuando tu script de hook descubra archivos adicionales que vigilar en función del archivo que cambió |3205| `watchPaths` | Array de rutas absolutas. Reemplaza la lista de vigilancia dinámica actual. Las rutas de tu configuración de `matcher` siempre se vigilan. Úsalo cuando tu script de hook descubra archivos adicionales que vigilar en función del archivo modificado |

3204 3206 

3205Los hooks FileChanged no tienen control de decisiones. No pueden impedir que se produzca el cambio del archivo.3207Los hooks FileChanged no tienen control de decisiones. No pueden impedir que se produzca el cambio del archivo.

3206 3208 


3210 WorktreeCreate3212 WorktreeCreate

3211</h3>3213</h3>

3212 3214 

3213Se ejecuta cuando se está creando un worktree, ya sea desde `claude --worktree`, desde un [subagente que usa `isolation: "worktree"`](/docs/es/sub-agents#choose-the-subagent-scope) o para una [sesión en segundo plano](/docs/es/agent-view#how-file-edits-are-isolated) que Claude Code aísla en su propio worktree. De forma predeterminada, Claude Code crea la copia de trabajo aislada con `git worktree`. Configurar un hook WorktreeCreate reemplaza ese comportamiento predeterminado de git, lo que te permite usar un sistema de control de versiones diferente, como SVN, Perforce o Mercurial.3215Se ejecuta cuando se está creando un worktree, ya sea desde `claude --worktree`, desde un [subagente que usa `isolation: "worktree"`](/docs/es/sub-agents#choose-the-subagent-scope), o para una [sesión en segundo plano](/docs/es/agent-view#how-file-edits-are-isolated) que Claude Code aísla en su propio worktree. De forma predeterminada, Claude Code crea la copia de trabajo aislada con `git worktree`. Configurar un hook WorktreeCreate reemplaza ese comportamiento predeterminado de git, lo que te permite usar un sistema de control de versiones diferente como SVN, Perforce o Mercurial.

3214 3216 

3215Como el hook reemplaza por completo el comportamiento predeterminado, [`.worktreeinclude`](/docs/es/worktrees#copy-gitignored-files-into-worktrees) no se procesa. Si necesitas copiar archivos de configuración locales como `.env` en el nuevo worktree, hazlo dentro de tu script de hook.3217Como el hook reemplaza por completo el comportamiento predeterminado, [`.worktreeinclude`](/docs/es/worktrees#copy-gitignored-files-into-worktrees) no se procesa. Si necesitas copiar archivos de configuración locales como `.env` al nuevo worktree, hazlo dentro de tu script del hook.

3216 3218 

3217El hook debe devolver la ruta del directorio del worktree creado. Claude Code usa esta ruta como directorio de trabajo para la sesión aislada. Consulta [Salida de WorktreeCreate](#worktreecreate-output) para ver cómo devuelve la ruta cada tipo de hook.3219El hook debe devolver la ruta al directorio del worktree creado. Claude Code usa esta ruta como directorio de trabajo para la sesión aislada. Consulta [Salida de WorktreeCreate](#worktreecreate-output) para ver cómo cada tipo de hook devuelve la ruta.

3218 3220 

3219Claude Code actúa según el éxito del hook y la ruta devuelta, y descarta `systemMessage` y `continue`.3221Claude Code actúa según el éxito del hook y la ruta devuelta, y descarta `systemMessage` y `continue`.

3220 3222 


3237}3239}

3238```3240```

3239 3241 

3240El hook lee el `name` del worktree de la entrada JSON en stdin, extrae una copia nueva en un directorio nuevo e imprime la ruta del directorio. El `echo` de la última línea es lo que Claude Code lee como la ruta del worktree. Redirige cualquier otra salida a stderr para que no interfiera con la ruta.3242El hook lee el `name` del worktree desde la entrada JSON en stdin, extrae una copia nueva en un directorio nuevo e imprime la ruta del directorio. El `echo` de la última línea es lo que Claude Code lee como la ruta del worktree. Redirige cualquier otra salida a stderr para que no interfiera con la ruta.

3241 3243 

3242<h4 id="worktreecreate-input">3244<h4 id="worktreecreate-input">

3243 Entrada de WorktreeCreate3245 Entrada de WorktreeCreate

3244</h4>3246</h4>

3245 3247 

3246Además de los [campos de entrada comunes](#common-input-fields), los hooks WorktreeCreate reciben el campo `name`. Es un identificador tipo slug para el nuevo worktree, especificado por el usuario o generado automáticamente, por ejemplo `bold-oak-a3f2`.3248Además de los [campos de entrada comunes](#common-input-fields), los hooks WorktreeCreate reciben el campo `name`. Es un identificador slug para el nuevo worktree, especificado por el usuario o generado automáticamente, por ejemplo `bold-oak-a3f2`.

3247 3249 

3248```json theme={null}3250```json theme={null}

3249{3251{


3259 Salida de WorktreeCreate3261 Salida de WorktreeCreate

3260</h4>3262</h4>

3261 3263 

3262Los hooks WorktreeCreate no usan el modelo estándar de decisión de permitir/bloquear. En su lugar, el éxito o el fallo del hook determina el resultado. El hook debe devolver la ruta al directorio del worktree creado:3264Los hooks WorktreeCreate no usan el modelo estándar de decisión de permitir/bloquear. En cambio, el éxito o fracaso del hook determina el resultado. El hook debe devolver la ruta al directorio del worktree creado:

3263 3265 

3264* **Hooks de comando** (`type: "command"`): imprime la ruta como la última línea no vacía de stdout. Claude Code elimina los códigos de escape ANSI antes de leer esa línea, por lo que se ignoran los banners de inicio del shell impresos antes de tu `echo`. Redirige cualquier otra salida del hook a stderr.3266* **Hooks de comando** (`type: "command"`): imprime la ruta como la última línea no vacía de stdout. Claude Code elimina los códigos de escape ANSI antes de leer esa línea, por lo que los banners de inicio del shell impresos antes de tu `echo` se ignoran. Redirige cualquier otra salida del hook a stderr.

3265* **Hooks HTTP** (`type: "http"`): devuelve `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` en el cuerpo de la respuesta.3267* **Hooks HTTP** (`type: "http"`): devuelve `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` en el cuerpo de la respuesta.

3266 3268 

3267Si el hook falla o no produce ninguna ruta, la creación del worktree falla con un error.3269Si el hook falla o no produce ninguna ruta, la creación del worktree falla con un error.

3268 3270 

3269Claude Code resuelve una ruta relativa respecto al directorio en el que se ejecutó el hook, colapsando cualquier segmento `.` o `..` que contenga. Si la ruta resultante no es un directorio al que Claude Code pueda entrar, la sesión imprime un error que indica la ruta y termina con el código 1.3271Claude Code resuelve una ruta relativa con respecto al directorio en el que se ejecutó el hook, colapsando cualquier segmento `.` o `..` que contenga. Si la ruta resultante no es un directorio al que Claude Code pueda entrar, la sesión imprime un error que nombra la ruta y termina con el código 1.

3270 3272 

3271Claude Code rechaza una ruta absoluta que contenga segmentos `.` o `..`, y cualquier ruta que pase por un enlace simbólico debajo de la raíz del repositorio, porque un enlace simbólico confirmado en el repositorio podría redirigir el worktree fuera de él. El error indica el componente rechazado. Devuelve una ruta normalizada que no pase por un enlace simbólico dentro del repositorio. Antes de v2.1.216, la creación del worktree seguía la ruta del hook sin esta verificación.3273Claude Code rechaza una ruta absoluta que contenga segmentos `.` o `..`, y cualquier ruta que pase por un enlace simbólico debajo de la raíz del repositorio, porque un enlace simbólico confirmado en el repositorio podría redirigir el worktree fuera de él. El error nombra el componente rechazado. Devuelve una ruta normalizada que no pase por un enlace simbólico dentro del repositorio. Antes de v2.1.216, la creación del worktree seguía la ruta del hook sin esta verificación.

3272 3274 

3273<h3 id="worktreeremove">3275<h3 id="worktreeremove">

3274 WorktreeRemove3276 WorktreeRemove


3277Se ejecuta cuando Claude Code limpia un worktree que creó tu hook [`WorktreeCreate`](#worktreecreate). El evento se activa cuando:3279Se ejecuta cuando Claude Code limpia un worktree que creó tu hook [`WorktreeCreate`](#worktreecreate). El evento se activa cuando:

3278 3280 

3279* Sales de una [sesión de worktree](/docs/es/worktrees#start-claude-in-a-worktree) interactiva y eliges eliminar el worktree cuando Claude Code te lo pregunta3281* Sales de una [sesión de worktree](/docs/es/worktrees#start-claude-in-a-worktree) interactiva y eliges eliminar el worktree cuando Claude Code te lo pregunta

3280* Sales de una sesión de worktree interactiva a la que no has [puesto nombre](/docs/es/sessions#name-your-sessions), Claude Code no encuentra archivos modificados ni sin seguimiento y elimina el worktree sin preguntarte3282* Sales de una sesión de worktree interactiva a la que no le has [puesto nombre](/docs/es/sessions#name-your-sessions), Claude Code no encuentra archivos modificados ni sin seguimiento, y elimina el worktree sin preguntarte

3281* Eliminas una [sesión en segundo plano](/docs/es/agent-view#what-deleting-a-session-removes) que se ejecuta en el worktree3283* Eliminas una [sesión en segundo plano](/docs/es/agent-view#what-deleting-a-session-removes) que se ejecuta en el worktree

3282 3284 

3283Claude Code usa git para buscar archivos modificados o sin seguimiento, así que no encuentra ninguno en un worktree que no sea un checkout de git ni esté dentro de uno, incluso cuando el directorio contiene trabajo sin confirmar. Comprueba si existe ese trabajo en tu hook WorktreeRemove antes de que elimine nada.3285Claude Code usa git para buscar archivos modificados o sin seguimiento, por lo que no encuentra ninguno en un worktree que no sea un checkout de git ni esté dentro de uno, incluso cuando el directorio contiene trabajo sin confirmar. Comprueba si existe ese trabajo en tu hook WorktreeRemove antes de que elimine cualquier cosa.

3284 3286 

3285Para los worktrees basados en git, Claude Code se encarga de la limpieza automáticamente con `git worktree remove`. Si configuraste un hook WorktreeCreate, combínalo con un hook WorktreeRemove para controlar la limpieza de los worktrees que crea:3287Para los worktrees basados en git, Claude Code gestiona la limpieza automáticamente con `git worktree remove`. Si configuraste un hook WorktreeCreate, combínalo con un hook WorktreeRemove para controlar la limpieza de los worktrees que crea:

3286 3288 

3287* **Sin hook WorktreeRemove**: cuando Claude Code elimina el worktree al salir de una sesión de worktree, recurre a `git worktree remove --force` sobre la ruta que devolvió tu hook WorktreeCreate, de modo que se elimina un worktree que git reconoce. Un worktree que git no reconoce, por ejemplo uno que tu hook creó con un sistema de control de versiones distinto de git, permanece en el disco. Para saber qué ocurre con un worktree creado por un hook al eliminar una [sesión en segundo plano](/docs/es/agent-view#what-deleting-a-session-removes), consulta las reglas de eliminación de la vista de agentes.3289* **Sin hook WorktreeRemove**: cuando Claude Code elimina el worktree al salir de una sesión de worktree, recurre a `git worktree remove --force` sobre la ruta que devolvió tu hook WorktreeCreate, por lo que se elimina un worktree que git reconoce. Un worktree que git no reconoce, por ejemplo uno que tu hook creó con un sistema de control de versiones que no es git, permanece en el disco. Para saber qué hace la eliminación de una [sesión en segundo plano](/docs/es/agent-view#what-deleting-a-session-removes) con un worktree creado por un hook, consulta las reglas de eliminación de la vista de agentes.

3288* **El hook termina con 0**: el worktree se considera eliminado. Claude Code no lee nada más del hook, así que asegúrate de que tu hook haya eliminado el directorio.3290* **El hook termina con 0**: el worktree se considera eliminado. Claude Code no lee nada más del hook, así que asegúrate de que tu hook haya eliminado el directorio.

3289* **El hook termina con un código distinto de cero**: la eliminación falla si el directorio en `worktree_path` sigue existiendo después, y el worktree permanece en el disco sin recurrir a git. Un hook que eliminó el directorio antes de terminar con un código distinto de cero se considera eliminado. Para saber cómo se informa el fallo, consulta [Entrada de WorktreeRemove](#worktreeremove-input).3291* **El hook termina con un código distinto de cero**: la eliminación falla si el directorio en `worktree_path` sigue existiendo después, y el worktree permanece en el disco sin recurrir a git. Un hook que eliminó el directorio antes de terminar con un código distinto de cero se considera eliminado. Para saber cómo se informa el fallo, consulta [Entrada de WorktreeRemove](#worktreeremove-input).

3290 3292 


3292 3294 

3293Claude Code descarta los [campos de salida JSON](#json-output) de un hook WorktreeRemove, como `systemMessage` y `continue`.3295Claude Code descarta los [campos de salida JSON](#json-output) de un hook WorktreeRemove, como `systemMessage` y `continue`.

3294 3296 

3295Al eliminar una sesión en segundo plano, Claude Code verifica la ruta del worktree almacenada antes de ejecutar el hook y rechaza una ruta que sea un enlace simbólico o que pase por uno debajo de la raíz del repositorio. El hook se ejecuta para un worktree que todavía contiene archivos solo cuando confirmas la eliminación en [agent view](/docs/es/agent-view#what-deleting-a-session-removes); para ese tipo de worktree, [`claude rm`](/docs/es/agent-view#manage-sessions-from-the-shell) conserva la sesión y el worktree. Antes de v2.1.216, el hook se ejecutaba sobre la ruta almacenada sin estas comprobaciones.3297Al eliminar una sesión en segundo plano, Claude Code verifica la ruta del worktree almacenada antes de ejecutar el hook y rechaza una ruta que sea un enlace simbólico o que pase por uno debajo de la raíz del repositorio. El hook se ejecuta para un worktree que todavía contiene archivos solo cuando confirmas la eliminación en la [vista de agentes](/docs/es/agent-view#what-deleting-a-session-removes); para un worktree así, [`claude rm`](/docs/es/agent-view#manage-sessions-from-the-shell) conserva la sesión y el worktree. Antes de v2.1.216, el hook se ejecutaba sobre la ruta almacenada sin estas comprobaciones.

3296 3298 

3297Claude Code pasa la ruta devuelta por WorktreeCreate como `worktree_path` en la entrada del hook. Este ejemplo lee esa ruta y elimina el directorio:3299Claude Code pasa la ruta devuelta por WorktreeCreate como `worktree_path` en la entrada del hook. Este ejemplo lee esa ruta y elimina el directorio:

3298 3300 


3332El código de salida de un hook WorktreeRemove decide el resultado. Cuando un hook termina con un código distinto de cero y el directorio en `worktree_path` sigue existiendo después, la eliminación falla:3334El código de salida de un hook WorktreeRemove decide el resultado. Cuando un hook termina con un código distinto de cero y el directorio en `worktree_path` sigue existiendo después, la eliminación falla:

3333 3335 

3334* El worktree permanece en el disco, y el comando del hook y su stderr van al [registro de depuración](#debug-hooks).3336* El worktree permanece en el disco, y el comando del hook y su stderr van al [registro de depuración](#debug-hooks).

3335* Si estabas eliminando una sesión en segundo plano, la sesión también permanece. El mensaje de rechazo en [agent view](/docs/es/agent-view#what-deleting-a-session-removes) informa cómo terminó el hook, como `exited 1`, cita el inicio de su stderr e indica si volver a eliminar la sesión elimina el directorio de todos modos.3337* Si estabas eliminando una sesión en segundo plano, la sesión también permanece. El mensaje de rechazo en la [vista de agentes](/docs/es/agent-view#what-deleting-a-session-removes) informa cómo terminó el hook, como `exited 1`, cita el inicio de su stderr e indica si volver a eliminar la sesión elimina el directorio de todos modos.

3336 3338 

3337<h3 id="precompact">3339<h3 id="precompact">

3338 PreCompact3340 PreCompact


3342 3344 

3343El valor del matcher indica si la compactación se activó de forma manual o automática:3345El valor del matcher indica si la compactación se activó de forma manual o automática:

3344 3346 

3345| Matcher | Cuándo se dispara |3347| Matcher | Cuándo se activa |

3346| :- | :- |3348| :- | :- |

3347| `manual` | `/compact` |3349| `manual` | `/compact` |

3348| `auto` | Compactación automática cuando la conversación alcanza la [ventana de compactación automática](/docs/es/model-config#set-the-auto-compact-window) |3350| `auto` | Compactación automática cuando la conversación alcanza la [ventana de compactación automática](/docs/es/model-config#set-the-auto-compact-window) |

3349 3351 

3350Termina con el código 2 para bloquear la compactación. Para un `/compact` manual, el mensaje de stderr se muestra al usuario. También puedes bloquear devolviendo JSON con `"decision": "block"`.3352Termina con el código 2 para bloquear la compactación. Para un `/compact` manual, el mensaje de stderr se muestra al usuario. También puedes bloquearla devolviendo JSON con `"decision": "block"`.

3351 3353 

3352Bloquear la compactación automática tiene efectos distintos según cuándo se dispare. Si la compactación se activó de forma proactiva antes del límite de contexto, Claude Code la omite y la conversación continúa sin compactar. Si la compactación se activó para recuperarse de un error de límite de contexto ya devuelto por la API, el error subyacente aparece y la solicitud actual falla.3354Bloquear la compactación automática tiene efectos diferentes según cuándo se active. Si la compactación se activó de forma proactiva antes del límite de contexto, Claude Code la omite y la conversación continúa sin compactar. Si la compactación se activó para recuperarse de un error de límite de contexto ya devuelto por la API, el error subyacente aparece y la solicitud actual falla.

3353 3355 

3354Claude Code descarta los campos `systemMessage` y `continue` de un hook PreCompact.3356Claude Code descarta los campos `systemMessage` y `continue` de un hook PreCompact.

3355 3357 


3378 3380 

3379Se aplican los mismos valores de matcher que para `PreCompact`:3381Se aplican los mismos valores de matcher que para `PreCompact`:

3380 3382 

3381| Matcher | Cuándo se dispara |3383| Matcher | Cuándo se activa |

3382| :- | :- |3384| :- | :- |

3383| `manual` | Después de `/compact` |3385| `manual` | Después de `/compact` |

3384| `auto` | Después de la compactación automática cuando la conversación alcanza la [ventana de compactación automática](/docs/es/model-config#set-the-auto-compact-window) |3386| `auto` | Después de la compactación automática cuando la conversación alcanza la [ventana de compactación automática](/docs/es/model-config#set-the-auto-compact-window) |


3416* Activar el [modo rápido](/docs/es/fast-mode) cuando eso cambia el modelo de la sesión3418* Activar el [modo rápido](/docs/es/fast-mode) cuando eso cambia el modelo de la sesión

3417* Una solicitud `set_model`, o un cambio de modelo en una solicitud `apply_flag_settings`, desde un host del [Agent SDK](/docs/es/agent-sdk/typescript#query-object) o desde [Remote Control](/docs/es/remote-control)3419* Una solicitud `set_model`, o un cambio de modelo en una solicitud `apply_flag_settings`, desde un host del [Agent SDK](/docs/es/agent-sdk/typescript#query-object) o desde [Remote Control](/docs/es/remote-control)

3418 3420 

3419Claude Code no ejecuta los hooks PreModelSwitch para los cambios que hace por su cuenta, como un [respaldo automático de modelo](/docs/es/model-config#automatic-model-fallback) o la restauración del modelo cuando reanudas una sesión. Esos cambios solo llegan a [PostModelSwitch](#postmodelswitch).3421Claude Code no ejecuta hooks PreModelSwitch para los cambios que realiza por su cuenta, como un [respaldo automático de modelo](/docs/es/model-config#automatic-model-fallback) o la restauración del modelo al reanudar una sesión. Esos cambios solo llegan a [PostModelSwitch](#postmodelswitch).

3420 3422 

3421Claude Code compara el matcher con el nombre canónico del modelo al que cambia la sesión, ignorando cualquier sufijo `[1m]`. Un alias como `opus`, un ID de modelo con fecha y un ID específico de un proveedor, como un ID de modelo de Amazon Bedrock, coinciden todos con el único nombre canónico al que se resuelven, por lo que `claude-opus-5` cubre todas las formas de escribir Opus 5.3423Claude Code compara el matcher con el nombre canónico del modelo al que está cambiando la sesión, ignorando cualquier sufijo `[1m]`. Un alias como `opus`, un ID de modelo con fecha y un ID específico del proveedor, como un ID de modelo de Amazon Bedrock, coinciden todos con el único nombre canónico al que se resuelven, por lo que `claude-opus-5` cubre todas las formas de escribir Opus 5.

3422 3424 

3423Cuando Claude Code no puede determinar un nombre canónico para el destino, por ejemplo un ID de modelo personalizado que solo conoce tu [gateway de LLM](/docs/es/llm-gateway), ejecuta todos los hooks PreModelSwitch sin importar el matcher. Por lo tanto, un hook que bloquea debe comprobar `to_model` en su entrada en lugar de depender solo del matcher.3425Cuando Claude Code no puede determinar un nombre canónico para el destino, por ejemplo un ID de modelo personalizado que solo conoce tu [gateway de LLM](/docs/es/llm-gateway), ejecuta todos los hooks PreModelSwitch sin importar el matcher. Por lo tanto, un hook que bloquea debe comprobar `to_model` en su entrada en lugar de depender solo del matcher.

3424 3426 

3425Escribe el matcher como un nombre exacto, una lista separada por `|` como `claude-opus-4-6|claude-opus-5`, o una expresión regular como `.*opus.*`. Este ejemplo usa un matcher de nombre exacto y además comprueba `to_model` en la entrada del hook, de modo que rechaza un cambio a Opus 4.6 terminando con el código 2 y deja pasar cualquier otro destino:3427Escribe el matcher como un nombre exacto, una lista separada por `|` como `claude-opus-4-6|claude-opus-5`, o una expresión regular como `.*opus.*`. Este ejemplo usa un matcher de nombre exacto y también comprueba `to_model` en la entrada del hook, por lo que rechaza un cambio a Opus 4.6 terminando con el código 2 y deja pasar cualquier otro destino:

3426 3428 

3427<Tabs>3429<Tabs>

3428 <Tab title="macOS/Linux">3430 <Tab title="macOS/Linux">


3448 </Tab>3450 </Tab>

3449 3451 

3450 <Tab title="Windows (PowerShell)">3452 <Tab title="Windows (PowerShell)">

3451 Registra un hook de comando que ejecute un script mediante PowerShell:3453 Registra un hook de comando que ejecute un script a través de PowerShell:

3452 3454 

3453 ```json theme={null}3455 ```json theme={null}

3454 {3456 {


3494 Entrada de PreModelSwitch3496 Entrada de PreModelSwitch

3495</h4>3497</h4>

3496 3498 

3497Además de los [campos de entrada comunes](#common-input-fields), los hooks PreModelSwitch reciben los campos de esta tabla. Los últimos cinco describen lo que cuesta volver a enviar la conversación al nuevo modelo, de modo que un hook puede mostrar esa cifra antes de que ocurra el cambio.3499Además de los [campos de entrada comunes](#common-input-fields), los hooks PreModelSwitch reciben los campos de esta tabla. Los últimos cinco describen lo que cuesta volver a enviar la conversación al nuevo modelo, para que un hook pueda mostrar esa cifra antes de que ocurra el cambio.

3498 3500 

3499| Campo | Tipo | Descripción |3501| Campo | Tipo | Descripción |

3500| :- | :- | :- |3502| :- | :- | :- |

3501| `from_model` | string | ID del modelo desde el que se cambia |3503| `from_model` | string | ID del modelo desde el que se realiza el cambio |

3502| `to_model` | string | ID del modelo al que se cambia. El matcher se compara con el nombre canónico de este modelo |3504| `to_model` | string | ID del modelo al que se realiza el cambio. El matcher se compara con el nombre canónico de este modelo |

3503| `requested_model` | string o `null` | El modelo que indicó la solicitud: un alias como `opus`, un ID de modelo completo, o `null` cuando la solicitud era para el modelo predeterminado |3505| `requested_model` | string o `null` | El modelo que nombró la solicitud: un alias como `opus`, un ID de modelo completo, o `null` cuando la solicitud era para el modelo predeterminado |

3504| `source` | string | De dónde vino la solicitud: `"command"` para `/model <name>`, el ajuste Model en `/config` o la activación del modo rápido; `"picker"` para un selector de modelo; `"sdk"` para una solicitud `set_model`, o un cambio de modelo en una solicitud `apply_flag_settings`, desde un host del Agent SDK o desde Remote Control |3506| `source` | string | De dónde vino la solicitud: `"command"` para `/model <name>`, el ajuste Model en `/config` o la activación del modo rápido; `"picker"` para un selector de modelo; `"sdk"` para una solicitud `set_model`, o un cambio de modelo en una solicitud `apply_flag_settings`, desde un host del Agent SDK o desde Remote Control |

3505| `context_tokens` | number | Tokens que la siguiente solicitud vuelve a enviar como su prompt: los tokens de entrada, de lectura de caché, de creación de caché y de salida de la última respuesta en la conversación principal, combinados. `0` antes de la primera respuesta |3507| `context_tokens` | number | Tokens que la siguiente solicitud vuelve a enviar como su prompt: la suma de los tokens de entrada, lectura de caché, creación de caché y salida de la última respuesta en la conversación principal. `0` antes de la primera respuesta |

3506| `prompt_cache_warm` | boolean | Si la caché de prompts del modelo actual probablemente sigue caliente, lo que significa que el cambio la pierde |3508| `prompt_cache_warm` | boolean | Si es probable que la caché de prompts del modelo actual siga activa, lo que significa que el cambio la pierde |

3507| `cache_ttl` | string | [Duración de la caché de prompts](/docs/es/prompt-caching#cache-lifetime) que Claude Code solicita para esta sesión: `"5m"` o `"1h"` |3509| `cache_ttl` | string | [Duración de la caché de prompts](/docs/es/prompt-caching#cache-lifetime) que Claude Code solicita para esta sesión: `"5m"` o `"1h"` |

3508| `estimated_cache_write_usd` | number | Costo estimado en dólares estadounidenses de escribir `context_tokens` en la caché de prompts de `to_model` a la tarifa de `cache_ttl`, sin incluir la siguiente respuesta. Es posible que el servidor no necesite volver a almacenar en caché todo el contexto, así que trátalo como una estimación |3510| `estimated_cache_write_usd` | number | Costo estimado en dólares estadounidenses de escribir `context_tokens` en la caché de prompts de `to_model` con la tarifa de `cache_ttl`, sin incluir la siguiente respuesta. Es posible que el servidor no necesite volver a almacenar en caché todo el contexto, así que trátalo como una estimación |

3509| `pricing` | string | Cómo calculó Claude Code el precio de `estimated_cache_write_usd`: `"configured"` con las tarifas propias de tu organización cuando las ha configurado, `"catalog"` con el precio de lista, o `"default"` cuando `to_model` no tiene un precio conocido y Claude Code asumió una tarifa predeterminada |3511| `pricing` | string | Cómo calculó Claude Code el precio de `estimated_cache_write_usd`: `"configured"` con las tarifas propias de tu organización cuando las ha configurado, `"catalog"` con el precio de lista, o `"default"` cuando `to_model` no tiene un precio conocido y Claude Code asumió una tarifa predeterminada |

3510 3512 

3511Este ejemplo muestra la entrada para `/model opus` en una sesión que usa Sonnet 5:3513Este ejemplo muestra la entrada para `/model opus` en una sesión que usa Sonnet 5:


3538 3540 

3539| Campo | Descripción |3541| Campo | Descripción |

3540| :- | :- |3542| :- | :- |

3541| `permissionDecision` | `"allow"` continúa y omite la [confirmación que Claude Code muestra mientras la caché de prompts está caliente](/docs/es/prompt-caching#switching-models). `"deny"` cancela el cambio. `"ask"` pide al usuario que lo confirme |3543| `permissionDecision` | `"allow"` continúa y omite la [confirmación que Claude Code muestra mientras la caché de prompts está activa](/docs/es/prompt-caching#switching-models). `"deny"` cancela el cambio. `"ask"` pide al usuario que lo confirme |

3542| `permissionDecisionReason` | Para `"deny"`, se muestra al usuario como el motivo por el que se bloqueó el cambio, o se devuelve como el error de una solicitud `set_model`. Para `"ask"`, se muestra en la solicitud de confirmación. Se ignora para `"allow"` |3544| `permissionDecisionReason` | Para `"deny"`, se muestra al usuario como el motivo por el que se bloqueó el cambio, o se devuelve como el error de una solicitud `set_model`. Para `"ask"`, se muestra en la solicitud de confirmación. Se ignora para `"allow"` |

3543 3545 

3544Solo `/model` en una sesión interactiva puede mostrar la solicitud de `"ask"`. En todas las demás superficies, incluido el modo no interactivo con el flag `-p`, `/config` y las solicitudes `set_model`, Claude Code trata `"ask"` como un rechazo.3546Solo `/model` en una sesión interactiva puede mostrar la solicitud de `"ask"`. En todas las demás superficies, incluido el modo no interactivo con el flag `-p`, `/config` y las solicitudes `set_model`, Claude Code trata `"ask"` como un rechazo.


3557 3559 

3558Cuando varios hooks PreModelSwitch devuelven decisiones diferentes, la precedencia es `deny` > `ask` > `allow`.3560Cuando varios hooks PreModelSwitch devuelven decisiones diferentes, la precedencia es `deny` > `ask` > `allow`.

3559 3561 

3560Claude Code muestra al usuario cualquier `systemMessage` que devuelva tu hook, independientemente de la decisión, por lo que un hook que informe del costo puede devolver `{"systemMessage": "..."}` y terminar con 0.3562Claude Code muestra al usuario cualquier `systemMessage` que devuelva tu hook, independientemente de la decisión, por lo que un hook que informa costos puede devolver `{"systemMessage": "..."}` y terminar con 0.

3561 3563 

3562Un hook PreModelSwitch que no responde antes de su tiempo de espera bloquea el cambio. En [PreToolUse](#timeouts), en cambio, un hook de comando cuyo tiempo de espera se agota deja que la llamada a herramienta continúe. El tiempo de espera predeterminado para este evento es de 30 segundos. `PreModelSwitch` solo ejecuta hooks `command`, `http` y `mcp_tool`, por lo que los valores predeterminados de `prompt` y `agent` no se aplican.3564Un hook PreModelSwitch que no responde antes de su tiempo de espera bloquea el cambio. En [PreToolUse](#timeouts), en cambio, un hook de comando cuyo tiempo de espera se agota deja que la llamada a herramienta continúe. El tiempo de espera predeterminado para este evento es de 30 segundos. `PreModelSwitch` solo ejecuta hooks `command`, `http` y `mcp_tool`, por lo que los valores predeterminados de `prompt` y `agent` no se aplican.

3563 3565 


3567 PostModelSwitch3569 PostModelSwitch

3568</h3>3570</h3>

3569 3571 

3570Se ejecuta después de que cambia el modelo de la sesión. Úsalo para dar a Claude indicaciones específicas del modelo sin editar cada CLAUDE.md, por ejemplo una instrucción para toda la organización que se aplique en ciertos modelos.3572Se ejecuta después de que cambia el modelo de la sesión. Úsalo para darle a Claude indicaciones específicas del modelo sin editar cada CLAUDE.md, por ejemplo una instrucción para toda la organización que se aplique en ciertos modelos.

3571 3573 

3572PostModelSwitch requiere Claude Code v2.1.251 o posterior. No puede bloquear, porque el modelo ya cambió. Claude Code ejecuta los hooks PostModelSwitch después de cualquiera de estos cambios:3574PostModelSwitch requiere Claude Code v2.1.251 o posterior. No puede bloquear, porque el modelo ya cambió. Claude Code ejecuta hooks PostModelSwitch después de cualquiera de estos cambios:

3573 3575 

3574* Un cambio que tú o un cliente solicitaron3576* Un cambio que tú o un cliente solicitaron

3575* Un [respaldo automático de modelo](/docs/es/model-config#automatic-model-fallback), que cambia el modelo de la sesión3577* Un [respaldo automático de modelo](/docs/es/model-config#automatic-model-fallback), que cambia el modelo de la sesión

3576* Un ajuste como [`opusplan`](/docs/es/model-config#opusplan-model-setting) al entrar o salir del modo plan3578* Un ajuste como [`opusplan`](/docs/es/model-config#opusplan-model-setting) al entrar o salir del modo plan

3577* Claude Code restaurando el modelo cuando reanudas una sesión3579* Claude Code restaurando el modelo al reanudar una sesión

3578 3580 

3579Claude Code no ejecuta los hooks PostModelSwitch cuando un modelo de una [cadena de modelos de respaldo](/docs/es/model-config#fallback-model-chains) atiende un turno, porque esa sustitución dura un turno y deja sin cambios el modelo de la sesión.3581Claude Code no ejecuta hooks PostModelSwitch cuando un modelo de una [cadena de modelos de respaldo](/docs/es/model-config#fallback-model-chains) atiende un turno, porque esa sustitución dura un turno y deja sin cambios el modelo de la sesión.

3580 3582 

3581El matcher sigue las mismas reglas que [PreModelSwitch](#premodelswitch): Claude Code lo compara con el nombre canónico del modelo al que cambió la sesión.3583El matcher sigue las mismas reglas que [PreModelSwitch](#premodelswitch): Claude Code lo compara con el nombre canónico del modelo al que cambió la sesión.

3582 3584 

3583Este ejemplo agrega indicaciones siempre que el modelo de la sesión cambia a cualquier modelo Opus:3585Este ejemplo agrega indicaciones cada vez que el modelo de la sesión cambia a cualquier modelo Opus:

3584 3586 

3585```json theme={null}3587```json theme={null}

3586{3588{


3606 Entrada de PostModelSwitch3608 Entrada de PostModelSwitch

3607</h4>3609</h4>

3608 3610 

3609Los hooks PostModelSwitch reciben los mismos campos que [PreModelSwitch](#premodelswitch-input), con `hook_event_name` establecido en `"PostModelSwitch"` y dos valores más de `source`: `"auto"` para un respaldo automático u otro cambio que Claude Code hizo por su cuenta, y `"resume"` para el modelo restaurado cuando reanudas una sesión.3611Los hooks PostModelSwitch reciben los mismos campos que [PreModelSwitch](#premodelswitch-input), con `hook_event_name` establecido en `"PostModelSwitch"` y dos valores adicionales de `source`: `"auto"` para un respaldo automático u otro cambio que Claude Code hizo por su cuenta, y `"resume"` para el modelo restaurado al reanudar una sesión.

3610 3612 

3611`requested_model` es `null` cuando `source` es `"auto"`. Cuando `source` es `"resume"`, es el ajuste de modelo guardado que restauró Claude Code.3613`requested_model` es `null` cuando `source` es `"auto"`. Cuando `source` es `"resume"`, es el ajuste de modelo guardado que Claude Code restauró.

3612 3614 

3613<h4 id="postmodelswitch-decision-control">3615<h4 id="postmodelswitch-decision-control">

3614 Control de decisión de PostModelSwitch3616 Control de decisión de PostModelSwitch

3615</h4>3617</h4>

3616 3618 

3617Claude Code toma la [salida stdout en texto plano](#exit-code-0) de tu hook al terminar con 0, o `additionalContext` de la salida JSON, y la entrega a Claude con la siguiente solicitud después del cambio. Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, puedes devolver:3619Claude Code toma el [stdout de texto plano](#exit-code-0) de tu hook al terminar con 0, o `additionalContext` de la salida JSON, y se lo entrega a Claude con la siguiente solicitud después del cambio. Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, puedes devolver:

3618 3620 

3619| Campo | Descripción |3621| Campo | Descripción |

3620| :- | :- |3622| :- | :- |

3621| `additionalContext` | Cadena agregada al contexto de Claude con la siguiente solicitud. Consulta [Agregar contexto para Claude](#add-context-for-claude) |3623| `additionalContext` | String que se agrega al contexto de Claude con la siguiente solicitud. Consulta [Agregar contexto para Claude](#add-context-for-claude) |

3622 3624 

3623Si el hook no ha terminado en los cinco segundos posteriores a que envíes el siguiente prompt, Claude Code envía esa solicitud sin la salida y la adjunta a la solicitud siguiente. Si el modelo cambia varias veces antes de la siguiente solicitud, Claude Code entrega solo la salida correspondiente al modelo de destino del último cambio.3625Si el hook no ha terminado en los cinco segundos posteriores a que envías el siguiente prompt, Claude Code envía esa solicitud sin la salida y la adjunta a la solicitud siguiente. Si el modelo cambia varias veces antes de la siguiente solicitud, Claude Code entrega solo la salida correspondiente al modelo de destino del último cambio.

3624 3626 

3625<h3 id="sessionend">3627<h3 id="sessionend">

3626 SessionEnd3628 SessionEnd


3660 3662 

3661Los hooks SessionEnd tienen un tiempo de espera predeterminado de 1.5 segundos. Se aplica cuando sales, ejecutas `/clear` o cambias de sesión con `/resume` interactivo. Puedes darle más tiempo a un hook de dos maneras:3663Los hooks SessionEnd tienen un tiempo de espera predeterminado de 1.5 segundos. Se aplica cuando sales, ejecutas `/clear` o cambias de sesión con `/resume` interactivo. Puedes darle más tiempo a un hook de dos maneras:

3662 3664 

3663* **`timeout` por hook**: establece `timeout` en la configuración de ese hook. El presupuesto total aumenta automáticamente hasta igualar el `timeout` por hook más alto de tus archivos de configuración, hasta 60 segundos. Si aumentas el presupuesto de esta manera, un hook sin su propio `timeout` sigue conservando el valor predeterminado. Los tiempos de espera establecidos en hooks proporcionados por plugins no aumentan el presupuesto.3665* **`timeout` por hook**: establece `timeout` en la configuración de ese hook. El presupuesto total aumenta automáticamente para coincidir con el `timeout` por hook más alto en tus archivos de configuración, hasta 60 segundos. Si aumentas el presupuesto de esta manera, un hook sin su propio `timeout` conserva el valor predeterminado. Los tiempos de espera establecidos en hooks proporcionados por plugins no aumentan el presupuesto.

3664* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**: establece esta variable de entorno en milisegundos para sobrescribir el presupuesto explícitamente. El valor que establezcas también se convierte en el tiempo de espera de cada hook sin su propio `timeout`.3666* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**: establece esta variable de entorno en milisegundos para sobrescribir el presupuesto de forma explícita. El valor que establezcas también se convierte en el tiempo de espera de cada hook sin su propio `timeout`.

3665 3667 

3666Este ejemplo establece el presupuesto en 5 segundos:3668Este ejemplo establece el presupuesto en 5 segundos:

3667 3669 


3675 Elicitation3677 Elicitation

3676</h3>3678</h3>

3677 3679 

3678Se ejecuta cuando un servidor MCP solicita información al usuario en mitad de una tarea. De forma predeterminada, Claude Code muestra un cuadro de diálogo interactivo para que el usuario responda. Los hooks pueden interceptar esta solicitud y responder de forma programática, omitiendo el cuadro de diálogo por completo.3680Se ejecuta cuando un servidor MCP solicita información al usuario a mitad de una tarea. De forma predeterminada, Claude Code muestra un diálogo interactivo para que el usuario responda. Los hooks pueden interceptar esta solicitud y responder mediante programación, omitiendo el diálogo por completo.

3681 

3682Para ver un hook completo con su entrada de configuración y su script, consulta [Responder una solicitud de formulario desde un script](#answer-a-form-request-from-a-script).

3679 3683 

3680El campo matcher se compara con el nombre del servidor MCP.3684El campo matcher se compara con el nombre del servidor MCP.

3681 3685 


3705}3709}

3706```3710```

3707 3711 

3708Para la elicitación en modo URL, usada para la autenticación basada en el navegador:3712Para la elicitación en modo URL, que se usa para la autenticación basada en el navegador:

3709 3713 

3710```json theme={null}3714```json theme={null}

3711{3715{


3724 Salida de Elicitation3728 Salida de Elicitation

3725</h4>3729</h4>

3726 3730 

3727Para responder de forma programática sin mostrar el cuadro de diálogo, devuelve un objeto JSON con `hookSpecificOutput`:3731Un hook Elicitation puede responder la solicitud en nombre del usuario, rechazarla o cancelarla, o dejarla al diálogo. Para responder, rechazar o cancelar, termina con 0 e imprime un objeto `hookSpecificOutput` con una `action`. El servidor recibe tu respuesta y no aparece ningún diálogo. Cada fila de esta tabla muestra qué devolver para un resultado y qué recibe el servidor MCP:

3732 

3733| Para | Devuelve | El servidor recibe |

3734| :- | :- | :- |

3735| Responder en nombre del usuario | `"action": "accept"`, con los valores de los campos del formulario en `content` | `accept` con tu `content` |

3736| Rechazar la solicitud | `"action": "decline"` | `decline` |

3737| Cancelar la solicitud | `"action": "cancel"` | `cancel` |

3738| Dejar la solicitud al usuario | Ninguna salida, con código de salida 0 | La respuesta del usuario desde el [diálogo](/docs/es/mcp#respond-to-mcp-elicitation-requests) |

3739 

3740Esta salida responde la solicitud en modo formulario que se muestra en [Entrada de Elicitation](#elicitation-input). Las claves en `content` son los nombres de las propiedades del `requested_schema` de esa solicitud:

3728 3741 

3729```json theme={null}3742```json theme={null}

3730{3743{


3738}3751}

3739```3752```

3740 3753 

3741| Campo | Valores | Descripción |3754Esta salida rechaza una solicitud:

3742| :- | :- | :- |3755 

3743| `action` | `accept`, `decline`, `cancel` | Si se acepta, rechaza o cancela la solicitud |3756```json theme={null}

3744| `content` | object | Valores de los campos del formulario que se envían. Solo se usa cuando `action` es `accept` |3757{

3758 "hookSpecificOutput": {

3759 "hookEventName": "Elicitation",

3760 "action": "decline"

3761 }

3762}

3763```

3764 

3765En el diálogo, seleccionar **Decline** envía `decline` y presionar `Esc` envía `cancel`, así que devuelve el que quieras que vea el servidor.

3766 

3767Para una solicitud en modo URL, un hook que devuelve `accept` omite el diálogo, por lo que la URL nunca se abre.

3768 

3769Claude Code descarta `reason`, `systemMessage` y `continue` de la salida JSON de un hook Elicitation, sea cual sea la `action` que devuelvas.

3770 

3771<h4 id="other-ways-to-decline-an-elicitation">

3772 Otras formas de rechazar una elicitación

3773</h4>

3774 

3775Tu hook también puede rechazar de estas formas. El servidor recibe el mismo `decline` que con `"action": "decline"`:

3776 

3777* **Termina con el código 2**: Claude Code ignora un `hookSpecificOutput` impreso por el mismo hook

3778* **Imprime un `"decision": "block"` de nivel superior**: el bloqueo sobrescribe una `action` en la misma salida

3779 

3780Cuando varios hooks coinciden con la misma solicitud, un rechazo de uno de ellos sobrescribe un `accept` o `cancel` de otro.

3781 

3782Este script rechaza las solicitudes en modo URL y deja las solicitudes de formulario al diálogo:

3783 

3784```bash theme={null}

3785#!/bin/bash

3786if [ "$(jq -r '.mode')" = "url" ]; then

3787 exit 2

3788fi

3789```

3790 

3791Ni el usuario ni el servidor ven por qué rechazó tu hook, porque Claude Code no muestra tu stderr ni tu `reason`.

3792 

3793Claude Code ignoró un `decision` de nivel superior de los hooks `Elicitation` y `ElicitationResult` desde v2.1.105 hasta la corrección en v2.1.284.

3794 

3795<h4 id="answer-a-form-request-from-a-script">

3796 Responder una solicitud de formulario desde un script

3797</h4>

3798 

3799Este ejemplo responde una pregunta recurrente en nombre del usuario. Un servidor MCP llamado `issue-tracker` pide una clave de proyecto en un formulario, y el hook completa `DOCS`. El script acepta cuando `project_key` es el único campo del formulario. Para cualquier otra solicitud no imprime nada, por lo que aparece el diálogo.

3800 

3801<Tabs>

3802 <Tab title="macOS/Linux">

3803 Registra un hook de comando para el evento en tu archivo de configuración, con el nombre del servidor como matcher:

3804 

3805 ```json theme={null}

3806 {

3807 "hooks": {

3808 "Elicitation": [

3809 {

3810 "matcher": "issue-tracker",

3811 "hooks": [

3812 {

3813 "type": "command",

3814 "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/answer-project-key.sh",

3815 "args": []

3816 }

3817 ]

3818 }

3819 ]

3820 }

3821 }

3822 ```

3823 

3824 Guarda este script en `.claude/hooks/answer-project-key.sh` en tu proyecto y hazlo ejecutable con `chmod +x`:

3825 

3826 ```bash theme={null}

3827 #!/bin/bash

3828 input=$(cat)

3829 fields=$(jq -c '.requested_schema.properties // {} | keys' <<<"$input")

3830 

3831 if [ "$fields" = '["project_key"]' ]; then

3832 jq -n '{hookSpecificOutput: {hookEventName: "Elicitation", action: "accept", content: {project_key: "DOCS"}}}'

3833 fi

3834 ```

3835 </Tab>

3836 

3837 <Tab title="Windows (PowerShell)">

3838 Registra un hook de comando que ejecute el script a través de PowerShell, con el nombre del servidor como matcher:

3839 

3840 ```json theme={null}

3841 {

3842 "hooks": {

3843 "Elicitation": [

3844 {

3845 "matcher": "issue-tracker",

3846 "hooks": [

3847 {

3848 "type": "command",

3849 "command": "powershell.exe",

3850 "args": [

3851 "-NoProfile",

3852 "-ExecutionPolicy",

3853 "Bypass",

3854 "-File",

3855 "${CLAUDE_PROJECT_DIR}/.claude/hooks/answer-project-key.ps1"

3856 ]

3857 }

3858 ]

3859 }

3860 ]

3861 }

3862 }

3863 ```

3864 

3865 Guarda este script en `.claude/hooks/answer-project-key.ps1` en tu proyecto:

3745 3866 

3746El código de salida 2 deniega la elicitación. Claude Code no muestra tu mensaje de stderr en ningún lugar.3867 ```powershell theme={null}

3868 $request = [Console]::In.ReadToEnd() | ConvertFrom-Json

3869 $fields = @($request.requested_schema.properties.PSObject.Properties.Name)

3870 

3871 if ($fields.Count -eq 1 -and $fields[0] -eq 'project_key') {

3872 @{

3873 hookSpecificOutput = @{

3874 hookEventName = "Elicitation"

3875 action = "accept"

3876 content = @{ project_key = "DOCS" }

3877 }

3878 } | ConvertTo-Json -Depth 3

3879 }

3880 ```

3881 </Tab>

3882</Tabs>

3747 3883 

3748Claude Code actúa según `hookSpecificOutput` de la salida JSON de un hook Elicitation y descarta `systemMessage` y `continue`.3884Para confirmar que el hook funciona, inicia Claude Code con `claude --debug` y dale a Claude una tarea que haga que el servidor pida la clave del proyecto. No aparece ningún diálogo, y el [registro de depuración](#debug-hooks) tiene una línea que termina con `Elicitation resolved by hook: {"action":"accept","content":{"project_key":"DOCS"}}`.

3749 3885 

3750<h3 id="elicitationresult">3886<h3 id="elicitationresult">

3751 ElicitationResult3887 ElicitationResult


3753 3889 

3754Se ejecuta después de que un usuario responde a una elicitación de MCP. Los hooks pueden observar, modificar o bloquear la respuesta antes de que se envíe de vuelta al servidor MCP.3890Se ejecuta después de que un usuario responde a una elicitación de MCP. Los hooks pueden observar, modificar o bloquear la respuesta antes de que se envíe de vuelta al servidor MCP.

3755 3891 

3892Cuando un hook [Elicitation](#elicitation) responde una solicitud, Claude Code envía esa respuesta al servidor sin ejecutar hooks ElicitationResult.

3893 

3756El campo matcher se compara con el nombre del servidor MCP.3894El campo matcher se compara con el nombre del servidor MCP.

3757 3895 

3758<h4 id="elicitationresult-input">3896<h4 id="elicitationresult-input">


3770 "mcp_server_name": "my-mcp-server",3908 "mcp_server_name": "my-mcp-server",

3771 "action": "accept",3909 "action": "accept",

3772 "content": { "username": "alice" },3910 "content": { "username": "alice" },

3773 "mode": "form",3911 "mode": "form"

3774 "elicitation_id": "elicit-123"

3775}3912}

3776```3913```

3777 3914 


3779 Salida de ElicitationResult3916 Salida de ElicitationResult

3780</h4>3917</h4>

3781 3918 

3782Para sobrescribir la respuesta del usuario, devuelve un objeto JSON con `hookSpecificOutput`:3919Un hook ElicitationResult puede dejar pasar la respuesta del usuario, cambiar sus valores o bloquearla. Para cambiar o bloquear la respuesta, termina con 0 e imprime un objeto `hookSpecificOutput` con una `action`. Cada fila de esta tabla muestra qué devolver para un resultado y qué recibe el servidor MCP:

3920 

3921| Para | Devuelve | El servidor recibe |

3922| :- | :- | :- |

3923| Dejar pasar la respuesta | Ninguna salida, con código de salida 0 | La respuesta del usuario, sin cambios |

3924| Cambiar los valores enviados | `"action": "accept"`, con los nuevos valores en `content` | `accept` con tu `content` en lugar de los valores del usuario |

3925| Bloquear la respuesta | `"action": "decline"` | `decline`, sin los valores del usuario |

3926| Cancelar la solicitud | `"action": "cancel"` | `cancel`, junto con los valores que envió el usuario. Para ocultarlos, devuelve `"decline"` |

3927 

3928Esta salida cambia la respuesta que se muestra en [Entrada de ElicitationResult](#elicitationresult-input), de modo que el servidor recibe `alice@example.com` donde el usuario envió `alice`:

3783 3929 

3784```json theme={null}3930```json theme={null}

3785{3931{

3786 "hookSpecificOutput": {3932 "hookSpecificOutput": {

3787 "hookEventName": "ElicitationResult",3933 "hookEventName": "ElicitationResult",

3788 "action": "decline",3934 "action": "accept",

3789 "content": {}3935 "content": {

3936 "username": "alice@example.com"

3937 }

3790 }3938 }

3791}3939}

3792```3940```

3793 3941 

3794| Campo | Valores | Descripción |3942Tu `content` reemplaza todo el objeto `content` del usuario, así que incluye los campos que no estás cambiando. Devuelve `action` junto con él, porque Claude Code ignora un `hookSpecificOutput` que no tiene `action`.

3795| :- | :- | :- |3943 

3796| `action` | `accept`, `decline`, `cancel` | Sobrescribe la acción del usuario |3944Los hooks ElicitationResult también se ejecutan cuando el usuario rechaza o cancela, y tu `action` reemplaza la suya. Comprueba que la `action` de la entrada sea `accept` antes de devolver `accept`, o tu hook convertirá una solicitud rechazada en una aceptada. Este script hace el mismo cambio cuando el usuario aceptó, conserva los demás campos y no imprime nada en caso contrario:

3797| `content` | object | Sobrescribe los valores de los campos del formulario. Solo tiene sentido cuando `action` es `accept` |3945 

3946```bash theme={null}

3947#!/bin/bash

3948input=$(cat)

3949 

3950if [ "$(jq -r '.action' <<<"$input")" = "accept" ]; then

3951 jq '{hookSpecificOutput: {hookEventName: "ElicitationResult", action: "accept", content: (.content + {username: (.content.username + "@example.com")})}}' <<<"$input"

3952fi

3953```

3954 

3955Esta salida bloquea la respuesta:

3956 

3957```json theme={null}

3958{

3959 "hookSpecificOutput": {

3960 "hookEventName": "ElicitationResult",

3961 "action": "decline"

3962 }

3963}

3964```

3798 3965 

3799El código de salida 2 bloquea la respuesta y cambia la acción efectiva a `decline`. Claude Code no muestra tu mensaje de stderr en ningún lugar.3966El código de salida 2 y un `"decision": "block"` de nivel superior también bloquean la respuesta. [Otras formas de rechazar una elicitación](#other-ways-to-decline-an-elicitation) explica cuál tiene efecto cuando un hook los combina, qué ve el usuario y qué versiones ignoraron `decision`.

3800 3967 

3801Claude Code actúa según `hookSpecificOutput` de la salida JSON de un hook ElicitationResult y descarta `systemMessage` y `continue`.3968Claude Code descarta `reason`, `systemMessage` y `continue` de la salida JSON de un hook ElicitationResult, sea cual sea la `action` que devuelvas.

3802 3969 

3803<h2 id="prompt-based-hooks">3970<h2 id="prompt-based-hooks">

3804 Hooks basados en prompts3971 Hooks basados en prompts


3862 4029 

3863Establezca `type` en `"prompt"` y proporcione una cadena `prompt` en lugar de un `command`. Use el marcador de posición `$ARGUMENTS` para inyectar datos de entrada JSON del hook en su texto de prompt.4030Establezca `type` en `"prompt"` y proporcione una cadena `prompt` en lugar de un `command`. Use el marcador de posición `$ARGUMENTS` para inyectar datos de entrada JSON del hook en su texto de prompt.

3864 4031 

4032En un hook de prompt o de [agente](#agent-based-hooks), puedes escribir el `prompt` como una regla sobre qué bloquear o permitir, como "Bloquea cualquier comando Bash que lea archivos `.env`", o como una condición que debe cumplirse, como "Todas las pruebas unitarias pasan".

4033 

3865Este hook `Stop` le pide al LLM que evalúe si todas las tareas están completas antes de permitir que Claude finalice:4034Este hook `Stop` le pide al LLM que evalúe si todas las tareas están completas antes de permitir que Claude finalice:

3866 4035 

3867```json theme={null}4036```json theme={null}

keybindings.md +49 −0

Details

68| `EffortSlider` | Deslizador de esfuerzo abierto por `/effort` |68| `EffortSlider` | Deslizador de esfuerzo abierto por `/effort` |

69| `Select` | Componentes genéricos de selección/lista |69| `Select` | Componentes genéricos de selección/lista |

70| `Plugin` | Diálogo de plugins (examinar, descubrir, administrar) |70| `Plugin` | Diálogo de plugins (examinar, descubrir, administrar) |

71| `AbovePrompt` | La [franja sobre el prompt](#above-prompt-actions), o un botón dentro de ella, tiene el foco del teclado |

72| `AbovePromptInput` | Un campo de entrada en la franja sobre el prompt o en el panel de un mod tiene el foco del teclado |

73| `AbovePromptSelect` | Un campo de selección en la franja sobre el prompt o en el panel de un mod tiene el foco del teclado |

71| `Pane` | Un panel dibujado por un [mod](/docs/es/plugins/mods/interface#know-which-keys-your-mod-can-receive) tiene el foco del teclado |74| `Pane` | Un panel dibujado por un [mod](/docs/es/plugins/mods/interface#know-which-keys-your-mod-can-receive) tiene el foco del teclado |

72| `PaneField` | Un campo de entrada o de selección en el panel de un mod tiene el foco del teclado |75| `PaneField` | Un campo de entrada o de selección en el panel de un mod tiene el foco del teclado |

73| `Agents` | [Vista de agentes](/docs/es/agent-view) (`claude agents`) |76| `Agents` | [Vista de agentes](/docs/es/agent-view) (`claude agents`) |


442| `plugin:install` | I | Instalar plugins seleccionados |445| `plugin:install` | I | Instalar plugins seleccionados |

443| `plugin:favorite` | F | Marcar el plugin seleccionado como favorito para que se ordene cerca de la parte superior de la pestaña Instalado |446| `plugin:favorite` | F | Marcar el plugin seleccionado como favorito para que se ordene cerca de la parte superior de la pestaña Instalado |

444 447 

448<h3 id="above-prompt-actions">

449 Acciones sobre el prompt

450</h3>

451 

452Acciones para la banda sobre el prompt, la franja compartida donde los [mods](/docs/es/plugins/mods/interface#pick-where-to-draw) dibujan botones, campos de entrada y selectores. `abovePrompt:toggle` y `abovePrompt:focus` se aplican en el contexto `Chat`. Las demás acciones se aplican en el [contexto](#contexts) de lo que tenga el foco del teclado en la banda o en un panel.

453 

454| Acción | Predeterminado | Descripción |

455| :- | :- | :- |

456| `abovePrompt:toggle` | Ctrl+X Ctrl+A | Contraer la banda a una sugerencia de una fila, o expandirla de nuevo |

457| `abovePrompt:focus` | Ctrl+X Tab | Mover el foco del teclado a la banda, luego a cada [panel](#pane-actions) abierto, y del último panel de vuelta al prompt |

458| `abovePrompt:next` | Tab | Enfocar el siguiente control |

459| `abovePrompt:previous` | Shift+Tab | Enfocar el control anterior |

460| `abovePrompt:press` | Enter | Presionar el botón enfocado, enviar el campo de entrada enfocado o elegir la opción resaltada en un selector |

461| `abovePrompt:leave` | Escape | Devolver el foco del teclado al prompt |

462| `abovePrompt:highlightNext` | Down | Resaltar la siguiente opción en un selector enfocado |

463| `abovePrompt:highlightPrevious` | Up | Resaltar la opción anterior en un selector enfocado |

464 

465Dos contextos vinculan más teclas a estas acciones de forma predeterminada:

466 

467* **`AbovePrompt`**: Right y Left también ejecutan `abovePrompt:next` y `abovePrompt:previous`, y Space también ejecuta `abovePrompt:press`

468* **`AbovePromptInput`**: Down y Up también ejecutan `abovePrompt:next` y `abovePrompt:previous`

469 

470El contexto `AbovePrompt` también vincula Up, Down, PageUp, PageDown, Home y End a las [acciones de desplazamiento del panel](#pane-actions), de `pane:scrollUp` a `pane:bottom`, así que para cambiar una de esas teclas para la banda, vincula la acción de desplazamiento en un bloque `AbovePrompt`.

471 

472<h3 id="pane-actions">

473 Acciones de panel

474</h3>

475 

476Acciones para un panel dibujado por un [mod](/docs/es/plugins/mods/interface#know-which-keys-your-mod-can-receive). Las acciones de desplazamiento, cambio de tamaño y cierre se aplican en el [contexto](#contexts) `Pane`. `pane:close` también se aplica en el contexto `PaneField`, por lo que funciona mientras uno de los campos del panel tiene el foco. `pane:next` y `pane:previous` se aplican en el contexto `Global` mientras hay más de un panel abierto.

477 

478| Acción | Predeterminado | Descripción |

479| :- | :- | :- |

480| `pane:scrollUp` | Up | Desplazar el panel hacia arriba cuando tiene más filas de las que puede mostrar |

481| `pane:scrollDown` | Down | Desplazar el panel hacia abajo cuando tiene más filas de las que puede mostrar |

482| `pane:pageUp` | PageUp | Desplazar el panel una página hacia arriba |

483| `pane:pageDown` | PageDown | Desplazar el panel una página hacia abajo |

484| `pane:top` | Home | Saltar al principio del panel |

485| `pane:bottom` | End | Saltar al final del panel |

486| `pane:grow` | Ctrl+X Left, Ctrl+X Up | Dar más espacio al panel: ancho cuando está junto a la transcripción, alto cuando está sobre el prompt |

487| `pane:shrink` | Ctrl+X Right, Ctrl+X Down | Dar menos espacio al panel: ancho cuando está junto a la transcripción, alto cuando está sobre el prompt |

488| `pane:close` | Ctrl+X X | Cerrar el panel |

489| `pane:next` | (sin asignar) | Mostrar el siguiente panel abierto |

490| `pane:previous` | (sin asignar) | Mostrar el panel abierto anterior |

491 

492El contexto `Pane` también vincula Tab, Shift+Tab, Enter y Escape a las mismas [acciones sobre el prompt](#above-prompt-actions) que la banda, y los campos de entrada y selectores de un panel usan los contextos `AbovePromptInput` y `AbovePromptSelect`. [Foco del teclado y teclas de acceso rápido](/docs/es/plugins/mods/interface#know-which-keys-your-mod-can-receive) enumera lo que hace cada tecla en un panel.

493 

445<h3 id="settings-actions">494<h3 id="settings-actions">

446 Acciones de configuración495 Acciones de configuración

447</h3>496</h3>

Details

200 200 

201| Encabezado | Qué devolver y por qué |201| Encabezado | Qué devolver y por qué |

202| :- | :- |202| :- | :- |

203| `content-type` | Devuelva `text/event-stream` en respuestas de formato Anthropic Messages transmitidas, y `application/vnd.amazon.eventstream`, sin modificar, en respuestas de formato Amazon Bedrock, donde [un tipo diferente falla la solicitud](/docs/es/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). [Streaming](#streaming) enumera qué conexiones ejecutan detección de estancamiento en estos flujos |203| `content-type` | Devuelve `text/event-stream` en respuestas de formato Anthropic Messages transmitidas, y `application/vnd.amazon.eventstream`, sin modificar, en respuestas de formato Amazon Bedrock, donde [un tipo diferente hace fallar la solicitud](/docs/es/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy) |

204| `retry-after` | Devuelva segundos enteros en lugar de una fecha HTTP. Claude Code espera al menos ese tiempo antes del siguiente [reintento automático](/docs/es/errors#automatic-retries), y fuera de sesiones [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/es/env-vars) un valor superior a 60 detiene los reintentos y muestra el error de inmediato |204| `retry-after` | Devuelva segundos enteros en lugar de una fecha HTTP. Claude Code espera al menos ese tiempo antes del siguiente [reintento automático](/docs/es/errors#automatic-retries), y fuera de sesiones [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/es/env-vars) un valor superior a 60 detiene los reintentos y muestra el error de inmediato |

205| `x-should-retry` | Pase el valor ascendente sin cambios. Claude Code lee este encabezado como una entrada cuando decide si reintentar una solicitud fallida: `true` marca la respuesta como reintentable y `false` la marca como no reintentable. Para recuentos de reintentos, retroceso y qué fallos reintenta Claude Code, consulte [reintentos automáticos](/docs/es/errors#automatic-retries) |205| `x-should-retry` | Pase el valor ascendente sin cambios. Claude Code lee este encabezado como una entrada cuando decide si reintentar una solicitud fallida: `true` marca la respuesta como reintentable y `false` la marca como no reintentable. Para recuentos de reintentos, retroceso y qué fallos reintenta Claude Code, consulte [reintentos automáticos](/docs/es/errors#automatic-retries) |

206| `anthropic-ratelimit-unified-*` | Reenvíe los valores ascendentes sin cambios en cada respuesta. Claude Code los lee en respuestas exitosas para mostrar el uso contra los límites del plan a los desarrolladores que iniciaron sesión con claude.ai, y en un `429` para distinguir un límite de plan o límite de gasto de un acelerador temporal; consulte [límites de uso](/docs/es/errors#usage-limits) |206| `anthropic-ratelimit-unified-*` | Reenvíe los valores ascendentes sin cambios en cada respuesta. Claude Code los lee en respuestas exitosas para mostrar el uso contra los límites del plan a los desarrolladores que iniciaron sesión con claude.ai, y en un `429` para distinguir un límite de plan o límite de gasto de un acelerador temporal; consulte [límites de uso](/docs/es/errors#usage-limits) |

Details

154 154 

155Claude Code comprueba las fuentes en este orden, con la máxima prioridad primero:155Claude Code comprueba las fuentes en este orden, con la máxima prioridad primero:

156 156 

1571. Configuración remota, entregada desde claude.ai como [configuración administrada por servidor](/docs/es/server-managed-settings) o por un [gateway de aplicaciones Claude](/docs/es/claude-apps-gateway). Claude Code obtiene esta fuente solo cuando la sesión se autentica en la API de Anthropic directamente con un [inicio de sesión o clave elegible](/docs/es/server-managed-settings#platform-availability), o inicia sesión en un gateway con `/login`. En otros proveedores, o cuando `ANTHROPIC_BASE_URL` apunta a algún lugar que no sea la API de Anthropic, comienza en la siguiente fuente1571. Configuración remota, entregada desde claude.ai como [configuración administrada por servidor](/docs/es/server-managed-settings) o por un [gateway de aplicaciones Claude](/docs/es/claude-apps-gateway). Claude Code obtiene esta fuente solo cuando la sesión se autentica en la API de Anthropic directamente con una [credencial elegible](/docs/es/server-managed-settings#platform-availability), o inicia sesión en un gateway con `/login`. En otros proveedores, o cuando `ANTHROPIC_BASE_URL` apunta a algún lugar que no sea la API de Anthropic, comienza en la siguiente fuente

1582. Políticas de MDM o de nivel del SO: el plist de macOS o la clave de registro HKLM1582. Políticas de MDM o de nivel del SO: el plist de macOS o la clave de registro HKLM

1593. Archivos de configuración administrada, `managed-settings.d/*.json` y `managed-settings.json` combinados1593. Archivos de configuración administrada, `managed-settings.d/*.json` y `managed-settings.json` combinados

1604. El registro HKCU, en Windows, y en WSL una vez que el registro HKLM o el archivo de configuración administrada de Windows activa [`wslInheritsWindowsSettings`](/docs/es/settings-reference#wslinheritswindowssettings) y el valor HKCU también lo establece. Claude Code lo lee solo cuando [no hay ningún documento de administrador presente por encima de él](#present-admin-documents) y ninguna [configuración principal suministrada por el host](#let-an-embedding-host-add-policy) suministra una clave restrictiva1604. El registro HKCU, en Windows, y en WSL una vez que el registro HKLM o el archivo de configuración administrada de Windows activa [`wslInheritsWindowsSettings`](/docs/es/settings-reference#wslinheritswindowssettings) y el valor HKCU también lo establece. Claude Code lo lee solo cuando [no hay ningún documento de administrador presente por encima de él](#present-admin-documents) y ninguna [configuración principal suministrada por el host](#let-an-embedding-host-add-policy) suministra una clave restrictiva

mcp.md +63 −41

Details

142```142```

143 143 

144<Note>144<Note>

145 **Importante: Separa los argumentos del servidor con `--`**

146 

147 Para servidores stdio, el `--` (doble guion) separa las opciones propias de Claude, como `--transport`, `--env`, y `--scope`, del comando y los argumentos que ejecutan el servidor. Todo lo que viene después de `--` se pasa al servidor sin cambios.145 Para servidores stdio, el `--` (doble guion) separa las opciones propias de Claude, como `--transport`, `--env`, y `--scope`, del comando y los argumentos que ejecutan el servidor. Todo lo que viene después de `--` se pasa al servidor sin cambios.

148 146 

149 Por ejemplo:147 Por ejemplo:


275* `✘ Rejected (see disabledMcpjsonServers in settings)`: un servidor `.mcp.json` que una entrada [`disabledMcpjsonServers`](/docs/es/settings-reference#disabledmcpjsonservers) rechaza. Claude Code lo muestra solo en `claude mcp get <name>`.273* `✘ Rejected (see disabledMcpjsonServers in settings)`: un servidor `.mcp.json` que una entrada [`disabledMcpjsonServers`](/docs/es/settings-reference#disabledmcpjsonservers) rechaza. Claude Code lo muestra solo en `claude mcp get <name>`.

276* `⊘ Disabled for this project (re-enable via /mcp)`: un servidor que la lista [`disabledMcpServers`](#disable-a-server-without-removing-it) del proyecto nombra. Claude Code lo muestra tanto en `claude mcp list` como en `claude mcp get <name>`. Vuelve a activar el servidor desde el panel `/mcp`.274* `⊘ Disabled for this project (re-enable via /mcp)`: un servidor que la lista [`disabledMcpServers`](#disable-a-server-without-removing-it) del proyecto nombra. Claude Code lo muestra tanto en `claude mcp list` como en `claude mcp get <name>`. Vuelve a activar el servidor desde el panel `/mcp`.

277 275 

278Los servidores WebSocket no aparecen en la salida de `claude mcp list`. Usa `claude mcp get <name>` o el panel `/mcp` para verificarlos.

279 

280<h4 id="project-server-approvals-and-workspace-trust">276<h4 id="project-server-approvals-and-workspace-trust">

281 Aprobaciones de servidores de proyecto y confianza del espacio de trabajo277 Aprobaciones de servidores de proyecto y confianza del espacio de trabajo

282</h4>278</h4>


371 367 

372En v2, Claude Code también:368En v2, Claude Code también:

373 369 

374* Pregunta a los servidores HTTP si admiten la revisión más nueva, y la utiliza con los que la admiten. En sesiones donde obtiene feature flags, también pregunta a los servidores de conectores de claude.ai, y en Claude Code v2.1.285 o posterior pregunta a los servidores stdio a medida que Anthropic despliega ese cambio. Para que pregunte a los servidores de conectores y stdio en todas las sesiones, establece [`MCP_PROTOCOL_NEGOTIATION`](/docs/es/env-vars) en `auto`. Se conecta a todos los demás servidores como lo hace v1.370* Pregunta a los servidores HTTP y stdio si admiten la revisión más nueva, y la utiliza con los que la admiten. En sesiones donde obtiene feature flags, también pregunta a los servidores de conectores de claude.ai. Se conecta a todos los demás servidores como lo hace v1.

375* Recibe notificaciones `list_changed` de servidores en la revisión más nueva a través de una [secuencia que mantiene abierta](#notification-streams-on-the-v2-runtime).371* Recibe notificaciones `list_changed` de servidores en la revisión más nueva a través de una [secuencia que mantiene abierta](#notification-streams-on-the-v2-runtime).

376* No registra un servidor de [canal](#push-messages-with-channels) que se conecta en la revisión más nueva, porque esa revisión no puede transportar mensajes de canal.372* No registra un servidor de [canal](#push-messages-with-channels) que se conecta en la revisión más nueva, porque esa revisión no puede transportar mensajes de canal.

377* Hace fallar un [inicio de sesión OAuth de MCP](#authenticate-with-remote-mcp-servers) cuya respuesta de autorización nombra un emisor inesperado.373* Hace fallar un [inicio de sesión OAuth de MCP](#authenticate-with-remote-mcp-servers) cuya respuesta de autorización nombra un emisor inesperado.


458 454 

459En el [tiempo de ejecución v2](#mcp-client-runtimes), un servidor de canal que negocia la revisión del protocolo MCP 2026-07-28 no puede entregar mensajes de canal, por lo que Claude Code no lo registra como un canal. Un servidor de canal que no admite esa revisión se conecta con el handshake anterior y se registra como antes.455En el [tiempo de ejecución v2](#mcp-client-runtimes), un servidor de canal que negocia la revisión del protocolo MCP 2026-07-28 no puede entregar mensajes de canal, por lo que Claude Code no lo registra como un canal. Un servidor de canal que no admite esa revisión se conecta con el handshake anterior y se registra como antes.

460 456 

461Claude Code pregunta a los servidores stdio por esa revisión cuando estableces [`MCP_PROTOCOL_NEGOTIATION`](/docs/es/env-vars) en `auto`. Anthropic también está activando eso de forma predeterminada, para Claude Code v2.1.285 o posterior, en sesiones donde Claude Code [obtiene feature flags](/docs/es/env-vars#features-that-need-feature-flag-fetching). Para mantener un servidor de canal stdio en el handshake anterior, establece `MCP_PROTOCOL_NEGOTIATION` en `legacy`, lo que mantiene todos los servidores en él.457Claude Code pregunta a los servidores stdio por esa revisión de forma predeterminada. Para mantener un servidor de canal stdio en el handshake anterior, establece [`MCP_PROTOCOL_NEGOTIATION`](/docs/es/env-vars) en `legacy`, lo que mantiene todos los servidores en él.

462 458 

463<Tip>459<Tip>

464 Consejos:460 Consejos:


509 Servidores MCP proporcionados por plugins505 Servidores MCP proporcionados por plugins

510</h3>506</h3>

511 507 

512[Los plugins](/docs/es/plugins/overview) pueden incluir servidores MCP que proporcionan herramientas e integraciones cuando habilitas el plugin. Los servidores MCP de plugins funcionan de manera idéntica a los servidores configurados por el usuario.508[Los plugins](/docs/es/plugins/overview) pueden incluir servidores MCP que proporcionan herramientas e integraciones cuando habilitas el plugin.

513 509 

514**Cómo funcionan los servidores MCP de plugins**:510**Cómo funcionan los servidores MCP de plugins**:

515 511 


1400 Límites de salida de MCP y advertencias1396 Límites de salida de MCP y advertencias

1401</h2>1397</h2>

1402 1398 

1403Cuando las herramientas de MCP producen salidas grandes, Claude Code ayuda a gestionar el uso de tokens para evitar sobrecargar el contexto de su conversación:1399Cuando las herramientas de MCP producen salidas grandes, Claude Code ayuda a gestionar el uso de tokens para evitar sobrecargar el contexto de tu conversación:

1404 1400 

1405* **Umbral de advertencia de salida**: Claude Code muestra una advertencia cuando la salida de cualquier herramienta de MCP excede 10,000 tokens1401* **Umbral de advertencia de salida**: Claude Code muestra una advertencia cuando la salida de cualquier herramienta de MCP excede 10,000 tokens

1406* **Límite configurable**: puede ajustar el máximo de tokens de salida de MCP permitidos usando la variable de entorno `MAX_MCP_OUTPUT_TOKENS`1402* **Límite configurable**: puedes ajustar el máximo de tokens de salida de MCP permitidos usando la variable de entorno `MAX_MCP_OUTPUT_TOKENS`

1407* **Límite predeterminado**: el máximo predeterminado es 25,000 tokens1403* **Límite predeterminado**: el máximo predeterminado es 25,000 tokens

1408* **Alcance**: la variable de entorno se aplica a herramientas que no declaran su propio límite. Las herramientas que establecen [`anthropic/maxResultSizeChars`](#raise-the-limit-for-a-specific-tool) usan ese valor en su lugar para contenido de texto, independientemente de lo que `MAX_MCP_OUTPUT_TOKENS` esté configurado. Las herramientas que devuelven datos de imagen siguen estando sujetas a `MAX_MCP_OUTPUT_TOKENS`1404* **Alcance**: la variable de entorno se aplica a herramientas que no declaran su propio límite. Las herramientas que establecen [`anthropic/maxResultSizeChars`](#raise-the-limit-for-a-specific-tool) usan ese valor en su lugar para contenido de texto, independientemente del valor en que esté configurado `MAX_MCP_OUTPUT_TOKENS`. Las herramientas que devuelven datos de imagen siguen estando sujetas a `MAX_MCP_OUTPUT_TOKENS`

1409* **Superando el límite**: cuando un resultado exitoso sin contenido de imagen excede el límite de tokens, Claude Code lo guarda en un archivo y lo reemplaza en la conversación con un mensaje que nombra la ruta del archivo, para que Claude lea el archivo cuando necesite el contenido. El archivo se encuentra en el directorio `tool-results` de la sesión bajo [`~/.claude/projects/`](/docs/es/claude-directory#cleaned-up-automatically).1405* **Superando el límite**: cuando un resultado exitoso sin contenido de imagen excede el límite de tokens, Claude Code lo guarda en un archivo y lo reemplaza en la conversación con un mensaje que nombra la ruta del archivo, para que Claude lea el archivo cuando necesite el contenido. El archivo se encuentra en el directorio `tool-results` de la sesión bajo [`~/.claude/projects/`](/docs/es/claude-directory#cleaned-up-automatically).

1406* **Tamaño de respuesta de servidores HTTP y SSE**: Claude Code deja de leer una respuesta de un servidor [HTTP](#option-1-add-a-remote-http-server) o [SSE](#option-2-add-a-remote-sse-server) una vez que un cuerpo de respuesta JSON, o un evento de un flujo de eventos, supera los 16 MB después de la descompresión. La solicitud a la que corresponde esa respuesta falla. Si mantienes el servidor, devuelve menos datos por respuesta para mantenerte por debajo del límite, por ejemplo, paginando los resultados

1410 1407 

1411Una llamada que Claude Code ha [movido a una tarea en segundo plano](#automatic-backgrounding-of-long-tool-calls) informa su resultado a través de la notificación de la tarea. Se aplican dos límites más a una llamada que se completa en primer plano:1408Una llamada que Claude Code ha [movido a una tarea en segundo plano](#automatic-backgrounding-of-long-tool-calls) informa su resultado a través de la notificación de la tarea. Se aplican dos límites más a una llamada que se completa en primer plano:

1412 1409 


1440 1437 

1441La anotación se aplica independientemente de `MAX_MCP_OUTPUT_TOKENS` para contenido de texto, por lo que los usuarios no necesitan elevar la variable de entorno para herramientas que la declaran. Las herramientas que devuelven datos de imagen siguen estando sujetas al límite de tokens.1438La anotación se aplica independientemente de `MAX_MCP_OUTPUT_TOKENS` para contenido de texto, por lo que los usuarios no necesitan elevar la variable de entorno para herramientas que la declaran. Las herramientas que devuelven datos de imagen siguen estando sujetas al límite de tokens.

1442 1439 

1443<Warning>

1444 Si frecuentemente encuentra advertencias de salida con servidores de MCP específicos que no controla, considere aumentar el límite de `MAX_MCP_OUTPUT_TOKENS`. También puede pedirle al autor del servidor que agregue la anotación `anthropic/maxResultSizeChars` o que paginen sus respuestas. La anotación no tiene efecto en herramientas que devuelven contenido de imagen; para esas, aumentar `MAX_MCP_OUTPUT_TOKENS` es la única opción.

1445</Warning>

1446 

1447<h3 id="images-in-tool-results">1440<h3 id="images-in-tool-results">

1448 Imágenes en resultados de herramientas1441 Imágenes en resultados de herramientas

1449</h3>1442</h3>

1450 1443 

1451Cuando una herramienta de MCP devuelve una imagen PNG, JPEG, GIF o WebP, Claude ve la imagen en línea en la conversación. La copia en línea puede estar reducida o comprimida para ajustarse a los límites de tamaño de imagen del modelo. Claude Code también guarda los bytes originales en un archivo en el directorio `tool-results` de la sesión bajo [`~/.claude/projects/`](/docs/es/claude-directory#cleaned-up-automatically) y le proporciona a Claude la ruta. Claude puede entonces recortar, convertir o reutilizar el archivo de resolución completa con herramientas como Bash.1444Cuando una herramienta de MCP devuelve una imagen PNG, JPEG, GIF o WebP, Claude ve la imagen en línea en la conversación. La copia en línea puede estar reducida o comprimida para ajustarse a los límites de tamaño de imagen del modelo. Claude Code también guarda los bytes originales en un archivo en el directorio `tool-results` de la sesión bajo [`~/.claude/projects/`](/docs/es/claude-directory#cleaned-up-automatically) y le proporciona a Claude la ruta. Claude puede entonces recortar, convertir o reutilizar el archivo de resolución completa con herramientas como Bash.

1452 1445 

1453Si desactiva la persistencia de sesión con [`--no-session-persistence`](/docs/es/cli-reference#cli-flags) o [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/es/env-vars), Claude Code no escribe ningún archivo de imagen y Claude recibe solo la copia en línea.1446Si desactivas la persistencia de sesión con [`--no-session-persistence`](/docs/es/cli-reference#cli-flags) o [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/es/env-vars), Claude Code no escribe ningún archivo de imagen y Claude recibe solo la copia en línea.

1454 1447 

1455Guardar resultados de imágenes de MCP en un archivo requiere Claude Code v2.1.283 o posterior.1448Guardar resultados de imágenes de MCP en un archivo requiere Claude Code v2.1.283 o posterior.

1456 1449 


1490 1483 

1491Si estás construyendo un servidor MCP, puedes marcar una herramienta como que requiere aprobación explícita en cada llamada estableciendo `_meta["anthropic/requiresUserInteraction"]` en `true` en la entrada de respuesta `tools/list` de la herramienta. El valor debe ser el booleano JSON `true`; cualquier otro valor se ignora.1484Si estás construyendo un servidor MCP, puedes marcar una herramienta como que requiere aprobación explícita en cada llamada estableciendo `_meta["anthropic/requiresUserInteraction"]` en `true` en la entrada de respuesta `tools/list` de la herramienta. El valor debe ser el booleano JSON `true`; cualquier otro valor se ignora.

1492 1485 

1493Claude Code muestra la solicitud de permiso de esa herramienta en cada llamada, incluso en los [modos de permisos](/docs/es/permissions#permission-modes) `acceptEdits`, `auto` y `bypassPermissions`, y no ofrece una opción "no volver a preguntar" para ella. Las [reglas de permisos](/docs/es/permissions#permission-rule-syntax) que coinciden con la herramienta tampoco omiten la solicitud. En modo `dontAsk`, que nunca pide confirmación, Claude Code deniega la llamada en su lugar.1486Claude Code muestra la solicitud de permiso de esa herramienta en cada llamada, incluso en los [modos de permisos](/docs/es/permissions#permission-modes) `acceptEdits`, `auto` y `bypassPermissions`, y no ofrece una opción "no volver a preguntar" para ella. Las [reglas de permitir](/docs/es/permissions#permission-rule-syntax) que coinciden con la herramienta tampoco omiten la solicitud. En modo `dontAsk`, que nunca pide confirmación, Claude Code deniega la llamada en su lugar.

1494 1487 

1495La solicitud tiene que llegar a una persona. En modo no interactivo con [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags), un resultado `allow` de la herramienta de solicitud de permisos para una herramienta marcada se convierte en una denegación con el mensaje `MCP tool requires user interaction; not supported via --permission-prompt-tool`. La [devolución de llamada `canUseTool`](/docs/es/agent-sdk/permissions) del Agent SDK sí recibe estas llamadas y puede aprobarlas, porque se espera que tu aplicación SDK se las muestre a un usuario.1488La solicitud tiene que llegar a una persona. En modo no interactivo con [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags), un resultado `allow` de la herramienta de solicitud de permisos para una herramienta marcada se convierte en una denegación con el mensaje `MCP tool requires user interaction; not supported via --permission-prompt-tool`. La [devolución de llamada `canUseTool`](/docs/es/agent-sdk/permissions) del Agent SDK sí recibe estas llamadas y puede aprobarlas, porque se espera que tu aplicación SDK se las muestre a un usuario.

1496 1489 


1582 Escalar con búsqueda de herramientas MCP1575 Escalar con búsqueda de herramientas MCP

1583</h2>1576</h2>

1584 1577 

1585La búsqueda de herramientas mantiene el uso de contexto MCP bajo al diferir las definiciones de herramientas hasta que Claude las necesita. Solo los nombres de herramientas e instrucciones del servidor se cargan al inicio de la sesión, por lo que agregar más servidores MCP tiene un impacto mínimo en su ventana de contexto. Claude Code no impone un límite fijo de herramientas por servidor; el límite práctico es su presupuesto de ventana de contexto.1578La búsqueda de herramientas mantiene bajo el uso de contexto MCP al diferir las definiciones de herramientas hasta que Claude las necesita. Solo los nombres de herramientas y las instrucciones del servidor se cargan al inicio de la sesión, por lo que agregar más servidores MCP tiene un impacto mínimo en tu ventana de contexto. Claude Code no impone un límite fijo de herramientas por servidor; el límite práctico es tu presupuesto de ventana de contexto.

1586 1579 

1587<Note>1580<Note>

1588 La búsqueda de herramientas no es compatible con Microsoft Foundry [implementaciones alojadas en Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options), que la rechazan del lado del servidor: Claude Code detecta el rechazo y carga las herramientas MCP por adelantado para esa implementación en su lugar. [`ENABLE_TOOL_SEARCH`](#configure-tool-search) no puede anular esto, ya que el rechazo proviene de la implementación misma.1581 La búsqueda de herramientas no es compatible con los [despliegues de Microsoft Foundry alojados en Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options), que la rechazan del lado del servidor: Claude Code detecta el rechazo y, en su lugar, carga las herramientas MCP por adelantado para ese despliegue. [`ENABLE_TOOL_SEARCH`](#configure-tool-search) no puede sobrescribir esto, ya que el rechazo proviene del propio despliegue.

1589</Note>1582</Note>

1590 1583 

1591<h3 id="for-mcp-server-authors">1584<h3 id="for-mcp-server-authors">

1592 Para autores de servidores MCP1585 Para autores de servidores MCP

1593</h3>1586</h3>

1594 1587 

1595Si está creando un servidor MCP, el campo de instrucciones del servidor se vuelve más útil con la búsqueda de herramientas habilitada. Las instrucciones del servidor ayudan a Claude a entender cuándo buscar sus herramientas, de manera similar a cómo funcionan las [skills](/docs/es/skills).1588Si estás creando un servidor MCP, el campo de instrucciones del servidor se vuelve más útil con la búsqueda de herramientas habilitada. Las instrucciones del servidor ayudan a Claude a entender cuándo buscar tus herramientas, de manera similar a cómo funcionan los [skills](/docs/es/skills).

1589 

1590Agrega instrucciones de servidor claras y descriptivas que expliquen:

1596 1591 

1597Agregue instrucciones de servidor claras y descriptivas que expliquen:1592* Qué categoría de tareas manejan tus herramientas

1593* Cuándo Claude debe buscar tus herramientas

1594* Capacidades clave que proporciona tu servidor

1598 1595 

1599* Qué categoría de tareas manejan sus herramientas1596Claude Code trunca cada descripción de herramienta y las instrucciones de cada servidor en 2.048 caracteres de forma predeterminada. Mantenlas concisas y coloca los detalles críticos cerca del inicio.

1600* Cuándo Claude debe buscar sus herramientas

1601* Capacidades clave que proporciona su servidor

1602 1597 

1603Claude Code trunca cada descripción de herramienta e instrucciones de cada servidor en 2.048 caracteres de forma predeterminada. Manténgalas concisas y coloque los detalles críticos cerca del inicio.1598Para cambiar el límite para cada servidor MCP en tu sesión, establece [`CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH`](/docs/es/env-vars#variables) en un número de caracteres. Esta variable requiere Claude Code v2.1.280 o posterior.

1599 

1600<h4 id="per-tool-alwaysload">

1601 Marcar una herramienta para que se cargue por adelantado o permanezca diferida

1602</h4>

1603 

1604Para controlar cómo se carga una de las herramientas de tu servidor, establece `"anthropic/alwaysLoad"` en el objeto `_meta` de esa herramienta. La persona que agrega tu servidor a Claude Code también puede establecer [`alwaysLoad`](#exempt-a-server-from-deferral) para todo el servidor en su configuración, y su ajuste puede sobrescribir el tuyo:

1605 

1606| Valor de tu herramienta | Qué sucede |

1607| :- | :- |

1608| `true` | La herramienta se carga por adelantado. El inicio no espera a tu servidor debido a este valor. La persona que configura tu servidor aún puede [diferir todas sus herramientas](#defer-a-servers-tools) |

1609| `false` | La herramienta permanece diferida cuando su configuración establece `"alwaysLoad": true`. Esto se aplica cuando tu servidor se pasa con [`--mcp-config`](/docs/es/cli-reference#cli-flags), lo proporciona una [aplicación del Agent SDK](/docs/es/agent-sdk/mcp#in-code) o lo proporciona un [plugin](#plugin-provided-mcp-servers). En otros servidores, la herramienta se carga por adelantado. Requiere Claude Code v2.1.285 o posterior |

1604 1610 

1605Para cambiar el límite para cada servidor MCP en su sesión, establezca [`CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH`](/docs/es/env-vars#variables) en un número de caracteres. Esta variable requiere Claude Code v2.1.280 o posterior.1611La siguiente entrada de `tools/list` solicita que una herramienta se cargue por adelantado:

1612 

1613```json theme={null}

1614{

1615 "name": "search_tickets",

1616 "description": "Searches the ticket tracker by keyword",

1617 "_meta": {

1618 "anthropic/alwaysLoad": true

1619 }

1620}

1621```

1606 1622 

1607<h3 id="configure-tool-search">1623<h3 id="configure-tool-search">

1608 Configurar búsqueda de herramientas1624 Configurar búsqueda de herramientas

1609</h3>1625</h3>

1610 1626 

1611La búsqueda de herramientas está habilitada de forma predeterminada: las herramientas MCP se difieren y se descubren bajo demanda. Claude Code la deshabilita cuando `ANTHROPIC_BASE_URL` apunta a un host que no es de primera parte, ya que la mayoría de los proxies no reenvían bloques `tool_reference`. Establezca `ENABLE_TOOL_SEARCH` explícitamente para anular ese comportamiento predeterminado.1627La búsqueda de herramientas está habilitada de forma predeterminada: las herramientas MCP se difieren y se descubren bajo demanda. Claude Code la deshabilita cuando `ANTHROPIC_BASE_URL` apunta a un host que no es de primera parte, ya que la mayoría de los proxies no reenvían bloques `tool_reference`. Establece `ENABLE_TOOL_SEARCH` explícitamente para sobrescribir ese comportamiento de respaldo.

1612 1628 

1613Configurar [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/es/env-vars) mantiene la búsqueda de herramientas desactivada. No puede anularla configurando `ENABLE_TOOL_SEARCH` usted mismo. Su organización puede mantener la búsqueda de herramientas activada a través de [configuración administrada](/docs/es/managed-settings), en Claude Code v2.1.227 o posterior. [Deshabilitar capacidades de pre-lanzamiento](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities) cubre dónde se aplica la anulación y qué variable elimina.1629Configurar [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/es/env-vars) mantiene la búsqueda de herramientas desactivada. No puedes sobrescribirlo configurando `ENABLE_TOOL_SEARCH` tú mismo. Tu organización puede mantener la búsqueda de herramientas activada a través de la [configuración administrada](/docs/es/managed-settings), en Claude Code v2.1.227 o posterior. [Deshabilitar capacidades de pre-lanzamiento](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities) cubre dónde se aplica la sobrescritura y qué elimina la variable.

1614 1630 

1615La búsqueda de herramientas requiere un modelo que admita bloques `tool_reference`: Claude Sonnet 4.5, Claude Haiku 4.5, Claude Opus 4.5 y modelos posteriores. Consulte [compatibilidad de modelos en la documentación de API](https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool#model-compatibility) para la lista actual.1631La búsqueda de herramientas requiere un modelo que admita bloques `tool_reference`: Claude Sonnet 4.5, Claude Haiku 4.5, Claude Opus 4.5 y modelos posteriores. Consulta [compatibilidad de modelos en la documentación de la API](https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool#model-compatibility) para ver la lista actual.

1616 1632 

1617En Agent Platform de Google Cloud, Claude Code decide por generación de modelo:1633En Agent Platform de Google Cloud, Claude Code decide según la generación del modelo:

1618 1634 

1619* **Claude Opus 4.5, Sonnet 4.5, Haiku 4.5 y posteriores**: la búsqueda de herramientas está activada de forma predeterminada, igual que en la API de Anthropic.1635* **Claude Opus 4.5, Sonnet 4.5, Haiku 4.5 y posteriores**: la búsqueda de herramientas está activada de forma predeterminada, igual que en la API de Anthropic.

1620* **Modelos anteriores de Agent Platform**: Claude Code carga todas las herramientas MCP por adelantado, porque sus pilas de servicio rechazan el encabezado beta requerido. `ENABLE_TOOL_SEARCH=true` no anula esto.1636* **Modelos anteriores de Agent Platform**: Claude Code carga todas las herramientas MCP por adelantado, porque sus pilas de servicio rechazan el encabezado beta requerido. `ENABLE_TOOL_SEARCH=true` no sobrescribe esto.

1621 1637 

1622Antes de v2.1.221, Claude Code deshabilitaba la búsqueda de herramientas para todos los modelos en Agent Platform de Google Cloud a menos que configurara `ENABLE_TOOL_SEARCH=true`.1638Antes de v2.1.221, Claude Code deshabilitaba la búsqueda de herramientas para todos los modelos en Agent Platform de Google Cloud a menos que configuraras `ENABLE_TOOL_SEARCH=true`.

1623 1639 

1624Controle el comportamiento de búsqueda de herramientas con la variable de entorno `ENABLE_TOOL_SEARCH`:1640Controla el comportamiento de la búsqueda de herramientas con la variable de entorno `ENABLE_TOOL_SEARCH`:

1625 1641 

1626| Valor | Comportamiento |1642| Valor | Comportamiento |

1627| :- | :- |1643| :- | :- |

1628| (sin establecer) | Todas las herramientas MCP diferidas y cargadas bajo demanda. Se revierte a carga por adelantado en modelos de Agent Platform de Google Cloud anteriores a la generación Claude 4.5, cuando `ANTHROPIC_BASE_URL` es un host que no es de primera parte, o en una implementación de Microsoft Foundry alojada en Azure |1644| (sin establecer) | Todas las herramientas MCP diferidas y cargadas bajo demanda. Recurre a la carga por adelantado en modelos de Agent Platform de Google Cloud anteriores a la generación Claude 4.5, cuando `ANTHROPIC_BASE_URL` es un host que no es de primera parte, o en un despliegue de Microsoft Foundry alojado en Azure |

1629| `true` | Todas las herramientas MCP diferidas, excepto en una implementación de Microsoft Foundry alojada en Azure, donde el rechazo del lado del servidor aún fuerza la carga por adelantado, y en modelos de Agent Platform de Google Cloud anteriores a la generación Claude 4.5, donde Claude Code sigue cargando herramientas por adelantado. Claude Code envía el encabezado beta a través de proxies, y las solicitudes fallan en proxies que no admiten bloques `tool_reference` |1645| `true` | Todas las herramientas MCP diferidas, excepto en un despliegue de Microsoft Foundry alojado en Azure, donde el rechazo del lado del servidor aún fuerza la carga por adelantado, y en modelos de Agent Platform de Google Cloud anteriores a la generación Claude 4.5, donde Claude Code sigue cargando las herramientas por adelantado. Claude Code envía el encabezado beta a través de proxies, y las solicitudes fallan en proxies que no admiten bloques `tool_reference` |

1630| `auto` | Modo de umbral: Claude Code carga las herramientas que de otro modo diferiría por adelantado mientras sus definiciones totalizan menos del 10% de la ventana de contexto, y difiere todas ellas una vez que las definiciones alcanzan el 10% |1646| `auto` | Modo de umbral: Claude Code carga por adelantado las herramientas que de otro modo diferiría mientras sus definiciones totalizan menos del 10% de la ventana de contexto, y las difiere todas una vez que las definiciones alcanzan el 10% |

1631| `auto:N` | Modo de umbral con un porcentaje personalizado, donde `N` es 0-100. Por ejemplo, `auto:5` para 5% |1647| `auto:N` | Modo de umbral con un porcentaje personalizado, donde `N` es 0-100. Por ejemplo, `auto:5` para 5% |

1632| `false` | Todas las herramientas MCP cargadas por adelantado, sin diferimiento |1648| `false` | Todas las herramientas MCP cargadas por adelantado, sin diferimiento |

1633 1649 


1639ENABLE_TOOL_SEARCH=false claude1655ENABLE_TOOL_SEARCH=false claude

1640```1656```

1641 1657 

1642O establezca el valor en el campo `env` de su [settings.json](/docs/es/settings-reference#env).1658O establece el valor en el [campo `env` de tu settings.json](/docs/es/settings-reference#env).

1643 1659 

1644También puede deshabilitar la herramienta `ToolSearch` específicamente:1660También puedes deshabilitar específicamente la herramienta `ToolSearch`:

1645 1661 

1646```json theme={null}1662```json theme={null}

1647{1663{


1655 Eximir un servidor del diferimiento1671 Eximir un servidor del diferimiento

1656</h3>1672</h3>

1657 1673 

1658Si las herramientas de un servidor siempre deben ser visibles para Claude sin un paso de búsqueda, establezca `alwaysLoad` en `true` en la configuración de ese servidor. Cada herramienta de ese servidor se carga en el contexto al inicio de la sesión independientemente de la configuración `ENABLE_TOOL_SEARCH`. Úselo para un pequeño número de herramientas que Claude necesita en cada turno, ya que cada herramienta por adelantado consume contexto que de otro modo estaría disponible para su conversación.1674Si las herramientas de un servidor siempre deben ser visibles para Claude sin un paso de búsqueda, establece `alwaysLoad` en `true` en la configuración de ese servidor. Las herramientas del servidor se cargan entonces en el contexto independientemente del ajuste `ENABLE_TOOL_SEARCH`. Úsalo para un pequeño número de herramientas que Claude necesita en cada turno, ya que cada herramienta cargada por adelantado consume contexto que de otro modo estaría disponible para tu conversación.

1659 1675 

1660La siguiente entrada `.mcp.json` exime un servidor HTTP mientras deja otros servidores diferidos:1676La siguiente entrada de `.mcp.json` exime un servidor HTTP mientras deja otros servidores diferidos:

1661 1677 

1662```json theme={null}1678```json theme={null}

1663{1679{


1671}1687}

1672```1688```

1673 1689 

1674El campo `alwaysLoad` está disponible en todos los tipos de servidor. Un servidor MCP también puede marcar herramientas individuales como siempre cargadas incluyendo `"anthropic/alwaysLoad": true` en el objeto `_meta` de la herramienta, que tiene el mismo efecto solo para esa herramienta.1690El campo `alwaysLoad` está disponible en todos los tipos de servidor.

1691 

1692Configurar `alwaysLoad: true` también hace que el inicio espere las herramientas del servidor, limitado al tiempo de espera de conexión estándar de 5 segundos, ya que deben estar presentes cuando se construye el primer prompt. Un servidor remoto con una [entrada `cached`](#server-status-detail) válida proporciona sus herramientas desde la caché sin conectarse, por lo que no retiene el inicio. Otros servidores se conectan en segundo plano de forma predeterminada; establece [`MCP_CONNECTION_NONBLOCKING=0`](/docs/es/env-vars) para que el inicio también los espere.

1693 

1694<h3 id="defer-a-servers-tools">

1695 Diferir las herramientas de un servidor

1696</h3>

1675 1697 

1676Configurar `alwaysLoad: true` también hace que el inicio espere las herramientas del servidor, limitado al tiempo de espera de conexión estándar de 5 segundos, ya que deben estar presentes cuando se construye el primer mensaje. Un servidor remoto con una entrada [`cached`](#server-status-detail) válida proporciona sus herramientas desde la caché sin conectarse, por lo que no retiene el inicio. Otros servidores se conectan en segundo plano de forma predeterminada; establezca [`MCP_CONNECTION_NONBLOCKING=0`](/docs/es/env-vars) para hacer que el inicio también los espere.1698Para mantener todas las herramientas de un servidor detrás de la búsqueda de herramientas, establece `"alwaysLoad": false` en la entrada de ese servidor en tu configuración MCP. Eso incluye las herramientas que el autor del servidor ha [marcado para cargarse por adelantado](#per-tool-alwaysload). Si omites `alwaysLoad`, esas herramientas marcadas se cargan por adelantado. Requiere Claude Code v2.1.287 o posterior.

1677 1699 

1678<h2 id="use-mcp-prompts-as-commands">1700<h2 id="use-mcp-prompts-as-commands">

1679 Usar prompts de MCP como comandos1701 Usar prompts de MCP como comandos

memory.md +5 −3

Details

161 161 

162Todos los archivos descubiertos se concatenan en contexto en lugar de sobrescribirse entre sí. A lo largo del árbol de directorios, el contenido se ordena desde la raíz del sistema de archivos hasta tu directorio de trabajo. En el ejemplo de `foo/bar/`, `foo/CLAUDE.md` aparece en contexto antes que `foo/bar/CLAUDE.md`, por lo que las instrucciones más cercanas a donde iniciaste Claude se leen al final. Dentro de cada directorio, `CLAUDE.local.md` se añade después de `CLAUDE.md`, por lo que tus notas personales son lo último que Claude lee en ese nivel.162Todos los archivos descubiertos se concatenan en contexto en lugar de sobrescribirse entre sí. A lo largo del árbol de directorios, el contenido se ordena desde la raíz del sistema de archivos hasta tu directorio de trabajo. En el ejemplo de `foo/bar/`, `foo/CLAUDE.md` aparece en contexto antes que `foo/bar/CLAUDE.md`, por lo que las instrucciones más cercanas a donde iniciaste Claude se leen al final. Dentro de cada directorio, `CLAUDE.local.md` se añade después de `CLAUDE.md`, por lo que tus notas personales son lo último que Claude lee en ese nivel.

163 163 

164Claude también descubre archivos `CLAUDE.md` y `CLAUDE.local.md` en subdirectorios bajo tu directorio de trabajo actual. En lugar de cargarlos al iniciar, Claude Code los incluye cuando Claude usa la herramienta [Read](/docs/es/tools-reference#read-tool-behavior), [Write](/docs/es/tools-reference#write-tool-behavior) o [Edit](/docs/es/tools-reference#edit-tool-behavior) en un archivo de esos subdirectorios. Si Claude ya usó una de esas herramientas sobre el propio `CLAUDE.md` de un subdirectorio, ese archivo no se carga de esta manera, porque Claude Code lo considera ya presente en la conversación. Para archivos dentro de un worktree bajo `.claude/worktrees/`, consulta [Aislar subagentes con worktrees](/docs/es/worktrees#isolate-subagents-with-worktrees).164Claude también descubre archivos `CLAUDE.md` y `CLAUDE.local.md` en subdirectorios bajo tu directorio de trabajo actual. En lugar de cargarlos al iniciar, Claude Code carga cada uno en cuanto Claude lee, escribe o edita otro archivo en ese subdirectorio. La lectura incluye ver el archivo con un comando de Bash que [cuenta como lectura](/docs/es/tools-reference#edit-tool-behavior), como `cat` o `head` sobre un solo archivo. Para archivos dentro de un worktree bajo `.claude/worktrees/`, consulta [Aislar subagentes con worktrees](/docs/es/worktrees#isolate-subagents-with-worktrees).

165 165 

166Si trabajas en un monorepo grande donde se recogen archivos CLAUDE.md de otros equipos, usa [`claudeMdExcludes`](#exclude-specific-claude-md-files) para omitirlos. Para ver la estructura completa de archivos CLAUDE.md raíz y por directorio y de las reglas, consulta [Monorepos y repositorios grandes](/docs/es/large-codebases).166Si trabajas en un monorepo grande donde se recogen archivos CLAUDE.md de otros equipos, usa [`claudeMdExcludes`](#exclude-specific-claude-md-files) para omitirlos. Para ver la estructura completa de archivos CLAUDE.md raíz y por directorio y de las reglas, consulta [Monorepos y repositorios grandes](/docs/es/large-codebases).

167 167 


232- Incluir comentarios de documentación OpenAPI232- Incluir comentarios de documentación OpenAPI

233```233```

234 234 

235Las reglas sin un campo `paths` se cargan incondicionalmente y se aplican a todos los archivos. Las reglas con alcance de ruta se activan cuando Claude usa la herramienta Read, Write o Edit en un archivo que coincide con el patrón, no en cada uso de herramienta. La coincidencia también funciona cuando Claude llega a un archivo a través de una ruta enlazada simbólicamente al directorio del proyecto, por ejemplo en un checkout enlazado simbólicamente.235Las reglas sin un campo `paths` se cargan incondicionalmente y se aplican a todos los archivos. Una regla con alcance de ruta se carga cuando Claude usa la herramienta Read, Write o Edit en un archivo coincidente. También se carga cuando Claude ve un archivo coincidente con un comando de Bash que [cuenta como lectura](/docs/es/tools-reference#edit-tool-behavior), como `cat` o `head` sobre un solo archivo. La coincidencia también funciona cuando Claude llega a un archivo a través de una ruta enlazada simbólicamente al directorio del proyecto, por ejemplo en un checkout enlazado simbólicamente.

236 236 

237Usa patrones glob en el campo `paths` para hacer coincidir archivos por extensión, directorio o cualquier combinación:237Usa patrones glob en el campo `paths` para hacer coincidir archivos por extensión, directorio o cualquier combinación:

238 238 


278 278 

279El directorio `.claude/rules/` admite enlaces simbólicos, por lo que puedes mantener un conjunto compartido de reglas y enlazarlas en múltiples proyectos. Los enlaces simbólicos circulares se detectan y se manejan correctamente.279El directorio `.claude/rules/` admite enlaces simbólicos, por lo que puedes mantener un conjunto compartido de reglas y enlazarlas en múltiples proyectos. Los enlaces simbólicos circulares se detectan y se manejan correctamente.

280 280 

281Claude Code trata un enlace simbólico cuyo destino está fuera de tu directorio de trabajo como una [importación externa](#import-additional-files). Las reglas enlazadas no se cargan hasta que apruebes las importaciones externas para el proyecto, y después de eso solo se cargan las que no tienen un [campo `paths`](#path-specific-rules). Claude Code solo solicita esa aprobación cuando un archivo de memoria de proyecto importa con `@path` un archivo fuera del directorio de trabajo, no por los enlaces simbólicos por sí solos. Para cargar reglas compartidas sin esa aprobación, mantenlas en [`~/.claude/rules/`](#user-level-rules), donde se aplican a cada proyecto en tu máquina.281Claude Code trata un enlace simbólico cuyo destino está fuera de tu directorio de trabajo como una [importación externa](#import-additional-files). Las reglas enlazadas no se cargan hasta que apruebes las importaciones externas para el proyecto, y después de eso solo se cargan las que no tienen un [campo `paths`](#path-specific-rules).

282 

283Claude Code solicita esa aprobación una vez por proyecto, en un diálogo al inicio de una sesión interactiva. El diálogo enumera los archivos de reglas enlazados junto con cualquier importación externa `@path`. Para cargar reglas compartidas sin esa aprobación, mantenlas en [`~/.claude/rules/`](#user-level-rules), donde se aplican a cada proyecto en tu máquina.

282 284 

283Este ejemplo enlaza tanto un directorio compartido como un archivo individual:285Este ejemplo enlaza tanto un directorio compartido como un archivo individual:

284 286 

Details

116 2) Configurar credenciales de Azure116 2) Configurar credenciales de Azure

117</h3>117</h3>

118 118 

119Claude Code admite tres métodos de autenticación para Microsoft Foundry. Elige el método que mejor se ajuste a tus requisitos de seguridad.119Claude Code admite tres métodos de autenticación para Microsoft Foundry. Elige el método que mejor se ajuste a tus requisitos de seguridad:

120 120 

121**Opción A: Autenticación por clave de API**121* [Clave de API](#use-an-api-key): copias una clave del portal de Microsoft Foundry y la estableces como `ANTHROPIC_FOUNDRY_API_KEY`

122* [Microsoft Entra ID](#use-microsoft-entra-id): Claude Code obtiene tokens a través de la cadena de credenciales predeterminada del SDK de Azure, por ejemplo, desde una sesión de `az login`, por lo que no hay ninguna clave de API que almacenar

123* [Token portador](#use-a-bearer-token): otro proceso obtiene un token de acceso de Microsoft Entra ID y tú lo pasas en `ANTHROPIC_FOUNDRY_AUTH_TOKEN`

122 124 

1231. Navega a tu recurso en el portal de Microsoft Foundry125<Note>

1242. Ve a la sección **Endpoints and keys**126 Cuando se usa Microsoft Foundry, el comando `/logout` no está disponible ya que la autenticación se maneja a través de credenciales de Azure.

127</Note>

128 

129<h4 id="use-an-api-key">

130 Usar una clave de API

131</h4>

132 

133Copia una clave del portal de Microsoft Foundry y luego establécela como variable de entorno:

134 

1351. Ve a tu recurso en el portal de Microsoft Foundry

1362. Abre la sección **Endpoints and keys**

1253. Copia **API Key**1373. Copia **API Key**

1264. Establece la variable de entorno, reemplazando `your-azure-api-key` con la clave que copiaste:1384. Establece la variable de entorno, reemplazando `your-azure-api-key` con la clave que copiaste:

127 139 


129export ANTHROPIC_FOUNDRY_API_KEY=your-azure-api-key141export ANTHROPIC_FOUNDRY_API_KEY=your-azure-api-key

130```142```

131 143 

132**Opción B: Autenticación de Microsoft Entra ID**144<h4 id="use-microsoft-entra-id">

145 Usar Microsoft Entra ID

146</h4>

133 147 

134Cuando ni `ANTHROPIC_FOUNDRY_API_KEY` ni `ANTHROPIC_FOUNDRY_AUTH_TOKEN` están configurados, Claude Code utiliza automáticamente la [cadena de credenciales predeterminada](https://learn.microsoft.com/en-us/azure/developer/javascript/sdk/authentication/credential-chains#defaultazurecredential-overview) del SDK de Azure.148Deja `ANTHROPIC_FOUNDRY_API_KEY` y `ANTHROPIC_FOUNDRY_AUTH_TOKEN` sin configurar. Así, Claude Code utiliza la [cadena de credenciales predeterminada](https://learn.microsoft.com/en-us/azure/developer/javascript/sdk/authentication/credential-chains#defaultazurecredential-overview) del SDK de Azure.

135Esto admite una variedad de métodos para autenticar cargas de trabajo locales y remotas.149Esto admite una variedad de métodos para autenticar cargas de trabajo locales y remotas.

136 150 

137En entornos locales, comúnmente puedes usar Azure CLI:151En una máquina local, inicia sesión con Azure CLI:

138 152 

139```bash theme={null}153```bash theme={null}

140az login154az login

141```155```

142 156 

143**Opción C: Autenticación por token portador**157Para conocer los roles que necesita tu identidad, consulta [Configuración de Azure RBAC](#azure-rbac-configuration).

158 

159<h4 id="use-a-bearer-token">

160 Usar un token portador

161</h4>

144 162 

145Claude Code envía el valor de `ANTHROPIC_FOUNDRY_AUTH_TOKEN` en cada solicitud como el encabezado `Authorization: Bearer`. Usa esta opción cuando otro proceso, como una aplicación host o un script de inicio de sesión, ya haya obtenido un token de acceso para ti. Requiere Claude Code v2.1.203 o posterior.163Claude Code envía el valor de `ANTHROPIC_FOUNDRY_AUTH_TOKEN` en cada solicitud como el encabezado `Authorization: Bearer`. Usa esta opción cuando otro proceso, como una aplicación host o un script de inicio de sesión, ya haya obtenido un token de acceso para ti. Requiere Claude Code v2.1.203 o posterior.

146 164 


152 170 

153`ANTHROPIC_FOUNDRY_AUTH_TOKEN` tiene prioridad sobre `ANTHROPIC_FOUNDRY_API_KEY` y sobre la cadena de credenciales predeterminada.171`ANTHROPIC_FOUNDRY_AUTH_TOKEN` tiene prioridad sobre `ANTHROPIC_FOUNDRY_API_KEY` y sobre la cadena de credenciales predeterminada.

154 172 

155<Note>

156 Cuando se usa Microsoft Foundry, el comando `/logout` no está disponible ya que la autenticación se maneja a través de credenciales de Azure.

157</Note>

158 

159<h3 id="3-configure-claude-code">173<h3 id="3-configure-claude-code">

160 3. Configurar Claude Code174 3. Configurar Claude Code

161</h3>175</h3>


240 254 

241Para más detalles, consulte la [documentación de RBAC de Microsoft Foundry](https://learn.microsoft.com/en-us/azure/ai-foundry/concepts/rbac-azure-ai-foundry).255Para más detalles, consulte la [documentación de RBAC de Microsoft Foundry](https://learn.microsoft.com/en-us/azure/ai-foundry/concepts/rbac-azure-ai-foundry).

242 256 

257<h2 id="1m-token-context-window">

258 Ventana de contexto de 1M tokens

259</h2>

260 

261En Microsoft Foundry, cuando Claude Code puede identificar qué modelo sirve tu despliegue, los modelos Fable, Sonnet 5 y posteriores, y Opus 4.7 y posteriores se ejecutan con la [ventana de contexto de 1M tokens](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) de forma predeterminada, sin necesidad del sufijo `[1m]`. Claude Code lee el modelo a partir del nombre del despliegue en tus variables de modelo. Nombra cada despliegue con su ID de modelo, como `claude-opus-4-8`, o asigna el modelo al nombre de tu despliegue con [`modelOverrides`](/docs/es/model-config#override-model-ids-per-version). Para un nombre de despliegue que no puede asociar a un modelo, Claude Code asume una ventana de 200K a menos que [declares una diferente](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id).

262 

263Esta entrada de `settings.json` le indica a Claude Code que un despliegue llamado `team-opus-prod` sirve Opus 4.8:

264 

265```json theme={null}

266{

267 "modelOverrides": {

268 "claude-opus-4-8": "team-opus-prod"

269 }

270}

271```

272 

273Para mantener en su lugar una ventana de 200K, establece [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/es/model-config#turn-off-1m-context).

274 

275Opus 4.6 y Sonnet 4.6 alcanzan la ventana de 1M cuando agregas `[1m]` al nombre del despliegue en `ANTHROPIC_DEFAULT_OPUS_MODEL` o `ANTHROPIC_DEFAULT_SONNET_MODEL`, como se describe en [Fijar modelos para despliegues de terceros](/docs/es/model-config#pin-models-for-third-party-deployments). Antes de la v2.1.287, los modelos Fable y Opus 4.7 y posteriores también necesitaban ese sufijo en Microsoft Foundry y, sin él, se ejecutaban con una ventana de 200K de forma predeterminada.

276 

243<h2 id="troubleshooting">277<h2 id="troubleshooting">

244 Solución de problemas278 Solución de problemas

245</h2>279</h2>

model-config.md +209 −199

Details

10 Modelos disponibles10 Modelos disponibles

11</h2>11</h2>

12 12 

13Para la configuración de `model` en Claude Code, puede configurar:13Para el ajuste `model` en Claude Code, puedes configurar:

14 14 

15* Un **alias de modelo**15* Un **alias de modelo**

16* Un **nombre de modelo**16* Un **nombre de modelo**

17 * API de Anthropic: un **[nombre de modelo](https://platform.claude.com/docs/en/about-claude/models/overview)** completo17 * API de Anthropic: un **[nombre de modelo](https://platform.claude.com/docs/en/about-claude/models/overview)** completo

18 * Amazon Bedrock: un ARN de perfil de inferencia18 * Amazon Bedrock: un ARN de perfil de inferencia

19 * Microsoft Foundry: un nombre de implementación19 * Microsoft Foundry: un nombre de despliegue

20 * Plataforma de agentes de Google Cloud: un nombre de versión20 * Agent Platform de Google Cloud: un nombre de versión

21 21 

22Para obtener orientación sobre qué modelo y nivel de esfuerzo se ajustan a diferentes tipos de trabajo, consulte [Elegir un modelo de Claude y nivel de esfuerzo en Claude Code](https://claude.com/blog/claude-model-and-effort-level-in-claude-code) en el blog.22Para obtener orientación sobre qué modelo y nivel de esfuerzo se ajustan a diferentes tipos de trabajo, consulta [Elegir un modelo de Claude y nivel de esfuerzo en Claude Code](https://claude.com/blog/claude-model-and-effort-level-in-claude-code) en el blog.

23 23 

24<Note>24<Note>

25 `ANTHROPIC_BASE_URL` cambia dónde se envían las solicitudes, no qué modelo las responde. Para enrutar Claude a través de una puerta de enlace LLM, consulte [Puertas de enlace LLM](/docs/es/llm-gateway).25 `ANTHROPIC_BASE_URL` cambia dónde se envían las solicitudes, no qué modelo las responde. Para enrutar Claude a través de un gateway LLM, consulta [Gateways LLM](/docs/es/llm-gateway).

26</Note>26</Note>

27 27 

28<h3 id="model-aliases">28<h3 id="model-aliases">

29 Alias de modelos29 Alias de modelos

30</h3>30</h3>

31 31 

32Use un alias de modelo para seleccionar configuraciones de modelo sin recordar números de versión exactos:32Usa un alias de modelo para seleccionar la configuración del modelo sin recordar números de versión exactos:

33 33 

34| Alias de modelo | Comportamiento |34| Alias de modelo | Comportamiento |

35| - | - |35| - | - |

36| **`default`** | Valor especial que borra cualquier anulación de modelo y revierte al [valor predeterminado en tiempo de ejecución para su cuenta](#default-model-setting). No es en sí mismo un alias de modelo |36| **`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 |

37| **`best`** | Utiliza el modelo al que se resuelve el [alias `fable`](#fable-alias-resolution) donde Fable está disponible para usted, de lo contrario el mismo modelo que `opus` |37| **`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` |

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

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

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

41| **`haiku`** | Utiliza el modelo Haiku rápido y eficiente para tareas simples |41| **`haiku`** | Utiliza el modelo Haiku rápido y eficiente para tareas simples |

42| **`sonnet[1m]`** | Utiliza Sonnet con 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. Sin efecto cuando `sonnet` ya se resuelve a Sonnet 5.5 o Sonnet 5 con su ventana nativa de 1M |42| **`sonnet[1m]`** | Utiliza Sonnet con 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. Sin efecto cuando `sonnet` ya se resuelve a Sonnet 5.5 o Sonnet 5 con su ventana nativa de 1M |

43| **`opus[1m]`** | Utiliza Opus con 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 |43| **`opus[1m]`** | Utiliza Opus con 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. Sin efecto cuando `opus` ya se resuelve a Opus 4.7 o posterior con su ventana nativa de 1M |

44| **`opusplan`** | Modo especial que utiliza `opus` durante Plan Mode, luego cambia a `sonnet` para la ejecución |44| **`opusplan`** | Modo especial que utiliza `opus` durante el modo plan y luego cambia a `sonnet` para la ejecución |

45 45 

46Los alias `opus`, `sonnet` y `haiku` se resuelven a la versión más reciente en la API de Anthropic y a una versión anterior en algunos otros proveedores:46Los alias `opus`, `sonnet` y `haiku` se resuelven a la versión más reciente en la API de Anthropic y a una versión anterior en algunos otros proveedores:

47 47 


54 54 

55<span id="fable-alias-resolution" />55<span id="fable-alias-resolution" />

56 56 

57A menos que establezca `ANTHROPIC_DEFAULT_FABLE_MODEL`, el alias `fable` se resuelve a Fable 5.1, excepto en sesiones de [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway), donde `fable` y `best` se resuelven a Fable 5.57A 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](/docs/es/claude-apps-gateway), donde `fable` y `best` se resuelven a Fable 5.

58 58 

59Una puerta de enlace que no esté configurada para servir `claude-fable-5-1` rechaza solicitudes para ese modelo. Para usar Fable 5.1 a través de una puerta de enlace que lo sirve, selecciónelo con `/model claude-fable-5-1`.59Un 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`.

60 60 

61Donde `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`.61Donde `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`.

62 62 

63Las versiones anteriores resuelven estos alias a modelos más antiguos. Para la versión en la que cada alias cambió, consulte [Historial de versiones](#version-history).63Las versiones anteriores resuelven estos alias a modelos más antiguos. Para la versión en la que cambió cada alias, consulta [Historial de versiones](#version-history).

64 64 

65Los alias apuntan a la versión recomendada para su proveedor y se actualizan con el tiempo. Para fijar una versión específica, use el nombre de modelo completo, por ejemplo `claude-opus-5-5`, o establezca la variable de entorno correspondiente como `ANTHROPIC_DEFAULT_OPUS_MODEL`.65Los alias apuntan a la versión recomendada para tu proveedor y se actualizan con el tiempo. Para fijar una versión específica, usa el nombre de modelo completo, por ejemplo `claude-opus-5-5`, o establece la variable de entorno correspondiente, como `ANTHROPIC_DEFAULT_OPUS_MODEL`.

66 66 

67<Note>67<Note>

68 Sonnet 5.5 requiere Claude Code v2.1.284 o posterior, y Opus 5.5 requiere v2.1.280 o posterior. Si una solicitud para uno de ellos desde una versión anterior falla, consulta [Claude Code no admite este modelo](/docs/es/errors#claude-code-does-not-support-this-model). Usa v2.1.293 o posterior con Haiku 5.5. Ejecuta `claude update` para actualizar.68 Sonnet 5.5 requiere Claude Code v2.1.284 o posterior, y Opus 5.5 requiere v2.1.280 o posterior. Si una solicitud para uno de ellos desde una versión anterior falla, consulta [Claude Code no admite este modelo](/docs/es/errors#claude-code-does-not-support-this-model). Usa v2.1.293 o posterior con Haiku 5.5. Ejecuta `claude update` para actualizar.


72 Trabajar con Fable72 Trabajar con Fable

73</h3>73</h3>

74 74 

75[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. 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.75[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.

76 76 

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

78 78 

79* **Fable 5.1**: ejecute `/model fable`, o inicie con `claude --model fable`. En sesiones de [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway), donde el alias se resuelve a Fable 5, ejecute `/model claude-fable-5-1` en su lugar.79* **Fable 5.1**: ejecuta `/model fable`, o inicia con `claude --model fable`. En sesiones del [gateway de aplicaciones de Claude](/docs/es/claude-apps-gateway), donde el alias se resuelve a Fable 5, ejecuta `/model claude-fable-5-1` en su lugar.

80* **Fable 5**: selecciónelo por ID de modelo. En la API de Anthropic, ejecute `/model claude-fable-5` o inicie con `claude --model claude-fable-5`. En otros proveedores, use el ID de modelo Fable 5 de su proveedor o [fíjelo](#pin-models-for-third-party-deployments) con `ANTHROPIC_DEFAULT_FABLE_MODEL`.80* **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`.

81 81 

82Si se conecta a la API de Anthropic directamente y su configuración de usuario contiene `claude-fable-5` o `claude-fable-5[1m]` como modelo, por ejemplo porque seleccionó 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 ejecuta v2.1.257 o posterior. La línea de modelo de inicio muestra `(auto-updated)` una vez. Un valor `claude-fable-5` en configuración de proyecto, local o administrada permanece como está.82Si 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á.

83 83 

84Las solicitudes que los clasificadores de seguridad del modelo Fable marcan, más a menudo en dominios de ciberseguridad y biología, activan [alternancia automática de modelo](#automatic-model-fallback).84Las 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).

85 85 

86Para aprovechar al máximo Fable:86Para aprovechar al máximo Fable:

87 87 

88* **Describa el resultado, no los pasos**: entrégale el resultado que desea y déjelo planificar el camino. Para mantenerlo trabajando hacia ese resultado, [establezca un objetivo](/docs/es/goal).88* **Describe el resultado, no los pasos**: entrégale el resultado que quieres y déjalo planificar el camino. Para mantenerlo trabajando hacia ese resultado, [establece un objetivo](/docs/es/goal).

89* **Entrégale problemas ambiguos**: investigaciones de causa raíz, depuración de interrupciones y decisiones de arquitectura son donde la investigación y verificación adicionales se pagan.89* **Entrégale problemas ambiguos**: las investigaciones de causa raíz, la depuración de interrupciones y las decisiones de arquitectura son donde la investigación y la verificación adicionales valen la pena.

90* **Omita los recordatorios de verificación**: verifica su propio trabajo con menos indicaciones, por lo que los recordatorios para probar o verificar generalmente son innecesarios.90* **Omite los recordatorios de verificación**: verifica su propio trabajo sin que tengas que pedírselo tanto, por lo que los recordatorios para probar o revisar generalmente son innecesarios.

91* **Dimensione tareas más grandes**: entrégale trabajo que normalmente dividiría en piezas. Mantiene sesiones largas sin perder el hilo.91* **Dale tareas más grandes**: entrégale trabajo que normalmente dividirías en partes. Mantiene sesiones largas sin perder el hilo.

92 92 

93<Note>93<Note>

94 Fable 5.1 requiere Claude Code v2.1.257 o posterior. Si una solicitud de una versión anterior falla, consulte [Claude Code no admite este modelo](/docs/es/errors#claude-code-does-not-support-this-model). Ejecute `claude update` para actualizar. Para disponibilidad bajo retención cero de datos, consulte [Disponibilidad de modelo bajo ZDR](/docs/es/zero-data-retention#model-availability-under-zdr).94 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](/docs/es/errors#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](/docs/es/zero-data-retention#model-availability-under-zdr).

95</Note>95</Note>

96 96 

97En la API de Anthropic, un modelo Fable aparece en el selector `/model` a menos que [`availableModels`](#restrict-model-selection) o [restricciones de modelo de organización](#organization-model-restrictions) lo excluyan. Cuando su organización no puede usar Fable en absoluto, por ejemplo bajo [retención cero de datos](/docs/es/zero-data-retention#model-availability-under-zdr), la fila permanece en el selector atenuada, con una nota sobre por qué.97En 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](/docs/es/zero-data-retention#model-availability-under-zdr), la fila permanece en el selector atenuada, con una nota que explica por qué.

98 98 

99<h4 id="fable-and-usage-credits">99<h4 id="fable-and-usage-credits">

100 Fable y créditos de uso100 Fable y créditos de uso

101</h4>101</h4>

102 102 

103Dependiendo de su plan y nivel de asiento, el uso de Fable puede facturarse a [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) en lugar de extraer de los límites incluidos de su plan. Cuando lo hace, el selector `/model` muestra "Requiere créditos de uso" en la fila Fable. Para administrar créditos de uso, consulte [Agregar créditos de uso a su suscripción](/docs/es/costs#add-usage-credits-to-your-subscription).103Dependiendo de tu plan y nivel de asiento, el uso de Fable puede facturarse a [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) en lugar de consumir los límites incluidos en tu plan. Cuando es así, el selector `/model` muestra "Requiere créditos de uso" en la fila de Fable. Para administrar los créditos de uso, consulta [Agregar créditos de uso a tu suscripción](/docs/es/costs#add-usage-credits-to-your-subscription).

104 104 

105En sesiones interactivas, Claude Code muestra un mensaje de consentimiento antes de que una solicitud de Fable facture créditos de uso. Los miembros de planes Enterprise con facturación de organización no ven el mensaje. Puede continuar en Fable usando créditos de uso o cambiar a su modelo predeterminado. También puede descartar el mensaje:105En sesiones interactivas, Claude Code muestra una solicitud de consentimiento antes de que una solicitud de Fable facture créditos de uso. Los miembros de planes Enterprise con facturación de organización no ven esta solicitud de consentimiento. Puedes continuar en Fable usando créditos de uso o cambiar a tu modelo predeterminado. También puedes descartar la solicitud de consentimiento:

106 106 

107* Cuando selecciona un modelo Fable con `/model`, mantiene su modelo actual.107* Cuando seleccionas un modelo Fable con `/model`, mantienes tu modelo actual.

108* A mitad de sesión, Claude Code continúa el turno en su modelo predeterminado.108* A mitad de sesión, Claude Code continúa el turno en tu modelo predeterminado.

109 109 

110Después de elegir continuar en Fable usando créditos de uso, Claude Code no muestra el mensaje nuevamente.110Después de que eliges continuar en Fable usando créditos de uso, Claude Code no vuelve a mostrar la solicitud de consentimiento.

111 111 

112En una sesión con [Remote Control](/docs/es/remote-control) conectado, una [sesión en segundo plano](/docs/es/agent-view), o una sesión de compañero de [equipo de agentes](/docs/es/agent-teams), es posible que nadie esté en la terminal, por lo que Claude Code mantiene el mensaje de consentimiento a mitad de sesión para el plazo de [`dialogExpiry`](/docs/es/settings-reference#dialogexpiry), cinco minutos por defecto. Si nadie ha respondido antes del plazo, Claude Code finaliza el turno sin enviar la solicitud y agrega un aviso a la transcripción, que el cliente de Remote Control también muestra. Su selección de modelo no cambia, y Claude Code solicita consentimiento nuevamente en su próximo mensaje.112En una sesión con [Remote Control](/docs/es/remote-control) conectado, una [sesión en segundo plano](/docs/es/agent-view) o la sesión de un compañero de un [equipo de agentes](/docs/es/agent-teams), es posible que nadie esté frente a la terminal, por lo que Claude Code mantiene la solicitud de consentimiento a mitad de sesión hasta el plazo de [`dialogExpiry`](/docs/es/settings-reference#dialogexpiry), cinco minutos de forma predeterminada. Si nadie ha respondido antes del plazo, Claude Code finaliza el turno sin enviar la solicitud y agrega un aviso a la transcripción, que el cliente de Remote Control también muestra. Tu selección de modelo no cambia, y Claude Code vuelve a pedir consentimiento en tu próximo mensaje.

113 113 

114Lo que puede hacer mientras el mensaje está esperando depende de la sesión:114Lo que puedes hacer mientras la solicitud de consentimiento está esperando depende de la sesión:

115 115 

116* Con Remote Control conectado o en una sesión de compañero, presione cualquier tecla en la terminal para cancelar el plazo, y Claude Code espera su respuesta.116* Con Remote Control conectado o en la sesión de un compañero, presiona cualquier tecla en la terminal para cancelar el plazo, y Claude Code espera tu respuesta.

117* En una sesión en segundo plano, responda antes del plazo.117* En una sesión en segundo plano, responde antes del plazo.

118* Si envía un nuevo mensaje desde el cliente remoto antes de que alguien escriba en la terminal, Claude Code finaliza el turno de la misma manera, y su nuevo mensaje inicia el siguiente turno. Después de que alguien escriba en la terminal, Claude Code continúa esperando la respuesta y pone en cola su nuevo mensaje detrás de ella.118* Si envías un nuevo mensaje desde el cliente remoto antes de que alguien haya escrito en la terminal, Claude Code finaliza el turno de la misma manera, y tu nuevo mensaje inicia el siguiente turno. Después de que alguien escribe en la terminal, Claude Code sigue esperando la respuesta y pone tu nuevo mensaje en cola detrás de ella.

119 119 

120En una sesión que otra aplicación aloja a través del [Agent SDK](/docs/es/agent-sdk/overview), si el mensaje aparece depende de esa aplicación. Si aparece y nadie responde antes del mismo plazo de [`dialogExpiry`](/docs/es/settings-reference#dialogexpiry), Claude Code finaliza el turno sin enviar la solicitud.120En una sesión que otra aplicación aloja a través del [Agent SDK](/docs/es/agent-sdk/overview), que aparezca o no la solicitud de consentimiento depende de esa aplicación. Si aparece y nadie responde antes del mismo plazo de [`dialogExpiry`](/docs/es/settings-reference#dialogexpiry), Claude Code finaliza el turno sin enviar la solicitud.

121 121 

122En [modo no interactivo](/docs/es/headless) con la bandera `-p`, y en una aplicación Agent SDK que no muestra el mensaje, Claude Code nunca solicita consentimiento. Cuando una solicitud de Fable allí facturase a créditos de uso, Claude Code la factura sin preguntar.122En [modo no interactivo](/docs/es/headless) con el flag `-p`, y en una aplicación del Agent SDK que no muestra la solicitud de consentimiento, Claude Code nunca pide consentimiento. Cuando una solicitud de Fable en esos casos se facturaría a créditos de uso, Claude Code la factura sin preguntar.

123 123 

124<h3 id="setting-your-model">124<h3 id="setting-your-model">

125 Configurar su modelo125 Configurar tu modelo

126</h3>126</h3>

127 127 

128Puede configurar su modelo de varias formas, enumeradas en orden de prioridad:128Puedes configurar tu modelo de varias formas, enumeradas en orden de prioridad:

129 129 

1301. **Durante la sesión**: use `/model <alias|name>` para cambiar inmediatamente, o ejecute `/model` sin argumento para abrir el selector. Consulte [cuándo Claude Code le pide que confirme el cambio](/docs/es/prompt-caching#switching-models)1301. **Durante la sesión**: usa `/model <alias|name>` para cambiar inmediatamente, o ejecuta `/model` sin argumento para abrir el selector. Consulta [cuándo Claude Code te pide que confirmes el cambio](/docs/es/prompt-caching#switching-models)

1312. **Al inicio**: inicie con `claude --model <alias|name>`1312. **Al inicio**: inicia con `claude --model <alias|name>`

1323. **Variable de entorno**: establezca `ANTHROPIC_MODEL=<alias|name>`1323. **Variable de entorno**: establece `ANTHROPIC_MODEL=<alias|name>`

1334. **Configuración**: configure permanentemente en su archivo de configuración usando el campo `model`1334. **Configuración**: configúralo de forma permanente en tu archivo de configuración usando el campo `model`

1345. **[Predeterminado para nuevas sesiones](#set-a-default-model-for-new-sessions)**: establezca `ANTHROPIC_DEFAULT_MODEL=<alias|name>`1345. **[Predeterminado para nuevas sesiones](#set-a-default-model-for-new-sessions)**: establece `ANTHROPIC_DEFAULT_MODEL=<alias|name>`

135 135 

136`/model` guarda su elección como predeterminada para nuevas sesiones escribiendo el campo `model` en su configuración de usuario. En el selector:136`/model` guarda tu elección como predeterminada para nuevas sesiones escribiendo el campo `model` en tu configuración de usuario. En el selector:

137 137 

138* `Enter`: cambiar modelo y guardar como predeterminado138* `Enter`: cambia el modelo y lo guarda como tu predeterminado

139* `s`: cambiar modelo solo para esta sesión y dejar su predeterminado sin cambios. Para usar una tecla diferente, reenlace [`modelPicker:thisSessionOnly`](/docs/es/keybindings#model-picker-actions)139* `s`: cambia el modelo solo para esta sesión y deja tu predeterminado sin cambios. Para usar una tecla diferente, reasigna [`modelPicker:thisSessionOnly`](/docs/es/keybindings#model-picker-actions)

140 140 

141Escribir `/model <name>` directamente se comporta como `Enter`. Para cambiar solo para esta sesión, abra el selector con `/model` y presione `s` en la fila del modelo.141Escribir `/model <name>` directamente se comporta como `Enter`. Para cambiar solo para esta sesión, abre el selector con `/model` y presiona `s` en la fila del modelo.

142 142 

143En un plan Enterprise, cuando inicia sesión con su cuenta de claude.ai y guarda un predeterminado con `/model`, Claude Code también registra la elección en esa cuenta. Esto requiere Claude Code v2.1.280 o posterior.143En un plan Enterprise, cuando inicias sesión con tu cuenta de claude.ai y guardas un predeterminado con `/model`, Claude Code también registra la elección en esa cuenta. Esto requiere Claude Code v2.1.280 o posterior.

144 144 

145* Cuando su administrador no ha establecido un [modelo predeterminado de organización](#organization-default-model), la [opción Predeterminado](#default-model-setting) puede resolverse al modelo registrado, y cuando lo hace, la fila Predeterminado del selector muestra el nombre de ese modelo.145* Cuando tu administrador no ha establecido un [modelo predeterminado de la organización](#organization-default-model), la [opción Default](#default-model-setting) puede resolverse al modelo registrado y, cuando lo hace, la fila Default del selector muestra el nombre de ese modelo.

146* Si las [restricciones de modelo](#restrict-model-selection) excluyen el modelo registrado o no está disponible para su cuenta, y su administrador no ha establecido un modelo predeterminado de organización, la opción Predeterminado se resuelve como si nada se hubiera registrado.146* Si las [restricciones de modelo](#restrict-model-selection) excluyen el modelo registrado o este no está disponible para tu cuenta, y tu administrador no ha establecido un modelo predeterminado de la organización, la opción Default se resuelve como si no hubiera nada registrado.

147* Si elige Predeterminado u `opusplan` en `/model`, la elección registrada no cambia.147* Si eliges Default u `opusplan` en `/model`, la elección registrada no cambia.

148 148 

149Si cambia modelos con `/model`, el cambio también llega a [subagentes que heredan el modelo de la conversación principal](/docs/es/sub-agents#choose-a-model), porque Claude Code resuelve su modelo desde el que su sesión está usando cuando Claude los inicia. Cambie a Opus antes de que Claude delegue investigación o ejecuciones de prueba a uno de ellos, y ese trabajo se ejecuta en Opus también. Para mantener un subagente personalizado en un modelo más pequeño, establezca `model` en su definición.149Si cambias de modelo con `/model`, el cambio también llega a los [subagentes que heredan el modelo de la conversación principal](/docs/es/sub-agents#choose-a-model), porque Claude Code resuelve su modelo a partir del que usa tu sesión cuando Claude los inicia. Si cambias a Opus antes de que Claude delegue investigación o ejecuciones de pruebas a uno de ellos, ese trabajo también se ejecuta en Opus. Para mantener un subagente personalizado en un modelo más pequeño, establece `model` en su definición.

150 150 

151Si establece un modelo con `/model` en [modo no interactivo](/docs/es/headless), con la bandera `-p`, su elección se aplica solo a la sesión actual y no se guarda como predeterminada; `/model` en ese modo requiere Claude Code v2.1.205 o posterior. La configuración de proyecto y administrada aún tienen prioridad y se reaplicarán en el próximo lanzamiento. Un [modelo predeterminado de organización](#organization-default-model) que su administrador ha configurado para anular la selección del usuario también se reaplicará en el próximo lanzamiento.151Si estableces un modelo con `/model` en [modo no interactivo](/docs/es/headless), con el flag `-p`, tu elección se aplica solo a la sesión actual y no se guarda como predeterminada; `/model` en ese modo requiere Claude Code v2.1.205 o posterior. La configuración de proyecto y la administrada siguen teniendo precedencia y se vuelven a aplicar en el próximo inicio. Un [modelo predeterminado de la organización](#organization-default-model) que tu administrador haya configurado para sobrescribir la selección del usuario también se vuelve a aplicar en el próximo inicio.

152 152 

153En v2.1.144 a v2.1.152, `/model` se aplicaba solo a la sesión actual y `d` en el selector guardaba un predeterminado.153De v2.1.144 a v2.1.152, `/model` se aplicaba solo a la sesión actual y `d` en el selector guardaba un predeterminado.

154 154 

155La bandera `--model` y la variable de entorno `ANTHROPIC_MODEL` se aplican solo a la sesión que inicia con ellas. Para ejecutar diferentes modelos en diferentes terminales al mismo tiempo, inicie cada uno con su propia bandera `--model` en lugar de cambiar con `/model`.155El flag `--model` y la variable de entorno `ANTHROPIC_MODEL` se aplican solo a la sesión que inicias con ellos. Para ejecutar diferentes modelos en diferentes terminales al mismo tiempo, inicia cada una con su propio flag `--model` en lugar de cambiar con `/model`.

156 156 

157Los precios en el selector `/model` aparecen cuando Claude Code habla con la API de Anthropic, directamente o a través de una [puerta de enlace LLM](/docs/es/llm-gateway) que la proxifica, y el precio en una fila es el precio del modelo que esa fila selecciona. En [proveedores de terceros](/docs/es/third-party-integrations) como Amazon Bedrock y en la [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway), su proveedor o puerta de enlace determina lo que paga, por lo que las filas del selector no muestran precio. El precio es solo una etiqueta de visualización; no afecta qué modelo selecciona una fila o qué factura su proveedor. Antes de v2.1.206, [Plataforma Claude en AWS](/docs/es/claude-platform-on-aws) y sesiones de puerta de enlace mostraban precios de lista de Anthropic, y una fila podría mostrar el precio de un modelo diferente al que seleccionaba.157Los precios en el selector `/model` aparecen cuando Claude Code se comunica con la API de Anthropic, directamente o a través de un [gateway LLM](/docs/es/llm-gateway) que actúa como proxy, y el precio de una fila es el precio del modelo que esa fila selecciona. En [proveedores de terceros](/docs/es/third-party-integrations) como Amazon Bedrock y en el [gateway de aplicaciones de Claude](/docs/es/claude-apps-gateway), tu proveedor o gateway determina lo que pagas, por lo que las filas del selector no muestran precio. El precio es solo una etiqueta de visualización; no afecta qué modelo selecciona una fila ni lo que factura tu proveedor. Antes de v2.1.206, [Claude Platform on AWS](/docs/es/claude-platform-on-aws) y las sesiones de gateway mostraban los precios de lista de Anthropic, y una fila podía mostrar el precio de un modelo distinto al que seleccionaba.

158 158 

159Las sesiones reanudadas con `claude --resume`, `--continue` o el selector `/resume` mantienen el modelo que estaban usando cuando se guardó la transcripción. Si el modelo restaurado se ha retirado o [`availableModels`](#restrict-model-selection) lo excluye, la sesión recurre al orden de prioridad normal. En proveedores que usan IDs de despliegue específicos del proveedor en lugar de IDs de modelo de Anthropic, como Amazon Bedrock, Agent Platform de Google Cloud y Microsoft Foundry, el modelo de la transcripción no se restaura en absoluto y la sesión resuelve su modelo mediante el orden de prioridad normal.159Las sesiones reanudadas con `claude --resume`, `--continue` o el selector `/resume` mantienen el modelo que estaban usando cuando se guardó la transcripción. Si el modelo restaurado se ha retirado o [`availableModels`](#restrict-model-selection) lo excluye, la sesión recurre al orden de precedencia normal. En proveedores que usan IDs de despliegue específicos del proveedor en lugar de IDs de modelo de Anthropic, como Amazon Bedrock, Agent Platform de Google Cloud y Microsoft Foundry, el modelo de la transcripción no se restaura en absoluto y la sesión resuelve su modelo mediante el orden de precedencia normal.

160 160 

161Si tu ajuste `model` es `haiku`, una sesión guardada en un modelo Haiku se reanuda en el modelo al que `haiku` se resuelve ahora. Por ejemplo, una vez que `haiku` se resuelve a Haiku 5.5, una sesión guardada en Haiku 4.5 se reanuda en Haiku 5.5.161Si tu ajuste `model` es `haiku`, una sesión guardada en un modelo Haiku se reanuda en el modelo al que `haiku` se resuelve ahora. Por ejemplo, una vez que `haiku` se resuelve a Haiku 5.5, una sesión guardada en Haiku 4.5 se reanuda en Haiku 5.5.

162 162 

163Un modelo que elige para el nuevo lanzamiento con `--model` o `ANTHROPIC_MODEL` aún tiene prioridad sobre el modelo restaurado. A partir de v2.1.195, también lo hace una variable de familia [`ANTHROPIC_DEFAULT_OPUS_MODEL`](#environment-variables). [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions) también puede, bajo las condiciones enumeradas en su sección.163Un modelo que eliges para el nuevo inicio con `--model` o `ANTHROPIC_MODEL` sigue teniendo precedencia sobre el modelo restaurado. A partir de v2.1.195, también la tiene una variable de la familia [`ANTHROPIC_DEFAULT_OPUS_MODEL`](#environment-variables). [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions) también puede tenerla, bajo las condiciones enumeradas en su sección.

164 164 

165Cuando el modelo activo al inicio proviene de configuración de proyecto o administrada en lugar de su propia selección, el encabezado de inicio muestra qué archivo de configuración lo estableció. Ejecute `/model` para anular; la configuración de proyecto o administrada se reaplicará en el próximo lanzamiento. En plataformas que incrustan Claude Code y establecen [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/es/env-vars), la configuración de modelo del host tiene prioridad sobre la configuración de modelo administrada, mientras que una lista de permitidos `availableModels` administrada permanece en vigor a menos que el host suministre la suya propia; [Excepciones a la prioridad de configuración administrada](/docs/es/settings#exceptions-to-managed-settings-precedence) dice qué claves y variables anula el host.165Cuando el modelo activo al inicio proviene de la configuración de proyecto o administrada en lugar de tu propia selección, el encabezado de inicio muestra qué archivo de configuración lo estableció. Ejecuta `/model` para sobrescribirlo; la configuración de proyecto o administrada se vuelve a aplicar en el próximo inicio. En plataformas que integran Claude Code y establecen [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/es/env-vars), la configuración de modelo del host tiene precedencia sobre la configuración de modelo administrada, mientras que una lista de modelos permitidos `availableModels` administrada sigue vigente a menos que el host proporcione la suya; [Excepciones a la precedencia de la configuración administrada](/docs/es/settings#exceptions-to-managed-settings-precedence) indica qué claves y variables sobrescribe el host.

166 166 

167Si usted u su organización configuran [hooks PreModelSwitch](/docs/es/hooks#premodelswitch), se ejecutan antes de que se aplique un cambio solicitado y pueden bloquearlo o pedirle que confirme.167Si tú o tu organización configuran [hooks PreModelSwitch](/docs/es/hooks#premodelswitch), se ejecutan antes de que se aplique un cambio solicitado y pueden bloquearlo o pedirte que lo confirmes.

168 168 

169Cuando Claude Code no puede determinar qué hooks PreModelSwitch entregan los [plugins administrados](/docs/es/settings-reference#enabledplugins) de su organización, por ejemplo porque un plugin administrado no se cargó, rechaza el cambio en lugar de aplicarlo sin verificar, y verifica nuevamente en cada nuevo intento. Consulte [El cambio de modelo fue bloqueado por un hook PreModelSwitch](/docs/es/errors#model-switch-was-blocked-by-a-premodelswitch-hook) para el mensaje y recuperación.169Cuando Claude Code no puede determinar qué hooks PreModelSwitch entregan los [plugins administrados](/docs/es/settings-reference#enabledplugins) de tu organización, por ejemplo porque un plugin administrado no se cargó, rechaza el cambio en lugar de aplicarlo sin verificar, y vuelve a verificar en cada nuevo intento. Consulta [Model switch was blocked by a PreModelSwitch hook](/docs/es/errors#model-switch-was-blocked-by-a-premodelswitch-hook) para ver el mensaje y cómo recuperarte.

170 170 

171Cuando cambia modelos a través del método [`setModel()`](/docs/es/agent-sdk/overview) del Agent SDK, a través de una aplicación como la [Aplicación de escritorio](/docs/es/desktop), o desde un dispositivo conectado a través de [Remote Control](/docs/es/remote-control), Claude Code verifica el valor en el cambio:171Cuando cambias de modelo mediante el método `setModel()` del [Agent SDK](/docs/es/agent-sdk/overview), a través de una aplicación como la [aplicación de escritorio](/docs/es/desktop), o desde un dispositivo conectado mediante [Remote Control](/docs/es/remote-control), Claude Code verifica el valor al hacer el cambio:

172 172 

173* **Agent SDK o una aplicación**: con Claude Code v2.1.268 o posterior, a menos que Claude Code acepte un ID de modelo localmente, como lo hace para su [opción de modelo personalizado](#add-a-custom-model-option), confirma el ID con su proveedor la primera vez que la sesión cambia a él. La confirmación se ejecuta en cada proveedor, y un ID que su proveedor no ofrece se rechaza en el cambio en lugar de fallar en su próxima solicitud.173* **Agent SDK o una aplicación**: con Claude Code v2.1.268 o posterior, a menos que Claude Code acepte un ID de modelo localmente, como lo hace con tu [opción de modelo personalizado](#add-a-custom-model-option), confirma el ID con tu proveedor la primera vez que la sesión cambia a él. La confirmación se ejecuta en todos los proveedores, y un ID que tu proveedor no ofrece se rechaza al hacer el cambio en lugar de fallar en tu próxima solicitud.

174* **Remote Control**: en la API de Anthropic, Claude Code verifica el valor localmente y no envía ninguna solicitud.174* **Remote Control**: en la API de Anthropic, Claude Code verifica el valor localmente y no envía ninguna solicitud.

175 175 

176Consulte [Model is not a recognized model id](/docs/es/errors#model-is-not-a-recognized-model-id) y [Model not found](/docs/es/errors#model-not-found) para los mensajes.176Consulta [Model is not a recognized model id](/docs/es/errors#model-is-not-a-recognized-model-id) y [Model not found](/docs/es/errors#model-not-found) para ver los mensajes.

177 177 

178Si establece el modelo con la bandera `--model`, la variable de entorno `ANTHROPIC_MODEL`, o la configuración `model`, Claude Code no lo verifica por adelantado, y un valor mal escrito produce [There's an issue with the selected model](/docs/es/errors#theres-an-issue-with-the-selected-model) en la primera solicitud.178Si 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](/docs/es/errors#theres-an-issue-with-the-selected-model) en la primera solicitud.

179 179 

180Cuando el modelo solicitado tiene una fecha de retiro programada o se remapea 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](/docs/es/headless) cuando se usa el formato de salida de texto predeterminado. La verificación también cubre un `model` establecido en [frontmatter de subagente](/docs/es/sub-agents). La advertencia stderr se suprime para `--output-format json` y `stream-json`; lea el modelo real del campo `modelUsage` del [mensaje de resultado](/docs/es/headless#get-structured-output) en su lugar.180Cuando 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](/docs/es/headless) 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](/docs/es/sub-agents). 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](/docs/es/headless#get-structured-output).

181 181 

182Por ejemplo, inicie una sesión en Opus:182Por ejemplo, inicia una sesión en Opus:

183 183 

184```bash theme={null}184```bash theme={null}

185claude --model opus185claude --model opus

186```186```

187 187 

188Luego cambie modelos desde dentro de la sesión:188Luego cambia de modelo desde dentro de la sesión:

189 189 

190```text theme={null}190```text theme={null}

191/model sonnet191/model sonnet


206 Establecer un modelo predeterminado para nuevas sesiones206 Establecer un modelo predeterminado para nuevas sesiones

207</h4>207</h4>

208 208 

209Establezca `ANTHROPIC_DEFAULT_MODEL=<alias|name>` para elegir el modelo en el que sus sesiones comienzan de forma predeterminada. Requiere Claude Code v2.1.236 o posterior.209Establece `ANTHROPIC_DEFAULT_MODEL=<alias|name>` para elegir el modelo con el que tus sesiones comienzan de forma predeterminada. Requiere Claude Code v2.1.236 o posterior.

210 210 

211Claude Code inicia una nueva sesión en el modelo de la variable solo cuando ninguno de estos selecciona un modelo:211Claude Code inicia una nueva sesión en el modelo de la variable solo cuando ninguno de estos selecciona un modelo:

212 212 

213* La bandera `--model`213* El flag `--model`

214* `ANTHROPIC_MODEL`214* `ANTHROPIC_MODEL`

215* Un valor `model` en cualquier archivo de configuración, incluida la elección que guarda con `/model`215* Un valor `model` en cualquier archivo de configuración, incluida la elección que guardas con `/model`

216* Un [modelo predeterminado de organización](#organization-default-model)216* Un [modelo predeterminado de la organización](#organization-default-model)

217 217 

218Una elección que guarda con `/model` tiene prioridad sobre la variable en lanzamientos posteriores también. Con `ANTHROPIC_MODEL` establecido en su lugar, Claude Code vuelve al modelo de esa variable en el próximo lanzamiento, sea lo que sea que haya guardado con `/model`.218Una elección que guardas con `/model` también tiene precedencia sobre la variable en inicios posteriores. Si en cambio estableces `ANTHROPIC_MODEL`, Claude Code vuelve al modelo de esa variable en el próximo inicio, sin importar lo que hayas guardado con `/model`.

219 219 

220Claude Code también resuelve la opción Predeterminado al modelo de la variable, a menos que se aplique un modelo predeterminado de organización. Cuando la opción Predeterminado se resuelve al modelo de la variable, la fila Predeterminado en el selector `/model` muestra la etiqueta Establecido por ANTHROPIC\_DEFAULT\_MODEL.220Claude Code también resuelve la opción Default al modelo de la variable, a menos que se aplique un modelo predeterminado de la organización. Cuando la opción Default se resuelve al modelo de la variable, la fila Default del selector `/model` muestra la etiqueta Set by ANTHROPIC\_DEFAULT\_MODEL.

221 221 

222Claude Code ignora la variable en estos casos, y la opción Predeterminado se resuelve como si no la hubiera establecido:222Claude Code ignora la variable en estos casos, y la opción Default se resuelve como si no la hubieras establecido:

223 223 

224* La establece en `default`, `inherit`, `opusplan`, o `haiku`224* La estableces en `default`, `inherit`, `opusplan` o `haiku`

225* [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) está activado225* [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) está activado

226* Las [restricciones de modelo](#restrict-model-selection) de su organización excluyen el modelo226* Las [restricciones de modelo](#restrict-model-selection) de tu organización excluyen el modelo

227* El modelo no está disponible para su cuenta227* El modelo no está disponible para tu cuenta

228 228 

229Cuando una nueva sesión comenzaría en el modelo de la variable, una sesión que reanuda con `claude --resume`, `--continue`, o el selector `/resume` comienza en ella también. Claude Code no restaura el modelo guardado en la transcripción de esa sesión. De lo contrario, Claude Code no usa la variable cuando [reanuda una sesión](#setting-your-model).229Cuando una nueva sesión comenzaría en el modelo de la variable, una sesión que reanudas con `claude --resume`, `--continue` o el selector `/resume` también comienza en él. Claude Code no restaura el modelo guardado en la transcripción de esa sesión. En los demás casos, Claude Code no usa la variable cuando [reanudas una sesión](#setting-your-model).

230 230 

231<h4 id="a-new-session-starts-on-a-different-model-than-you-picked">231<h4 id="a-new-session-starts-on-a-different-model-than-you-picked">

232 Una nueva sesión comienza en un modelo diferente al que eligió232 Una nueva sesión comienza en un modelo diferente al que elegiste

233</h4>233</h4>

234 234 

235Cuando elige un modelo con `/model` y su próxima sesión comienza en algo más, estas son las causas habituales:235Cuando eliges un modelo con `/model` y tu próxima sesión comienza en otro, estas son las causas habituales:

236 236 

237* **Lo eligió para una sesión.** Presionar `s` en el selector, iniciar con `--model`, y ejecutar `/model` en modo no interactivo se aplican solo a la sesión actual y dejan su predeterminado guardado solo.237* **Lo elegiste para una sola sesión.** Presionar `s` en el selector, iniciar con `--model` y ejecutar `/model` en modo no interactivo se aplican a la sesión actual y dejan intacto tu predeterminado guardado.

238* **Algo con mayor prioridad establece el modelo.** Un valor `model` en configuración de proyecto o administrada, `ANTHROPIC_MODEL` en su shell, o un [predeterminado de organización](#organization-default-model) que su administrador estableció para anular las elecciones del usuario se aplica nuevamente en cada lanzamiento. Su elección `/model` aún se guarda; está superada. Cuando la configuración de proyecto o administrada establece el modelo, el encabezado de inicio nombra el archivo.238* **Algo con mayor prioridad establece el modelo.** Un valor `model` en la configuración de proyecto o administrada, `ANTHROPIC_MODEL` en tu shell, o un [predeterminado de la organización](#organization-default-model) que tu administrador configuró para sobrescribir las elecciones del usuario se vuelve a aplicar en cada inicio. Tu elección de `/model` sigue guardada; simplemente tiene menor prioridad. Cuando la configuración de proyecto o administrada establece el modelo, el encabezado de inicio nombra el archivo.

239* **Claude Code no pudo guardar su elección.** `/model` escribe `model` en `~/.claude/settings.json`. Si no puede escribir en ese archivo, por ejemplo porque otra herramienta lo genera o lo vincula a una copia de solo lectura, el modelo que eligió dura para la sesión y el próximo lanzamiento lee el valor anterior. Establezca `model` en la herramienta que genera el archivo, o haga que el archivo sea escribible. Consulte [Un cambio que realizó en Claude Code se pierde en nuevas sesiones](/docs/es/settings#a-change-you-made-in-claude-code-is-lost-in-new-sessions).239* **Claude Code no pudo guardar tu elección.** `/model` escribe `model` en `~/.claude/settings.json`. Si no puedes escribir en ese archivo, por ejemplo porque otra herramienta lo genera o lo enlaza a una copia de solo lectura, el modelo que elegiste dura lo que dura la sesión y el próximo inicio lee el valor anterior. Establece `model` en la herramienta que genera el archivo, o haz que el archivo se pueda escribir. Consulta [Un cambio que hiciste en Claude Code se pierde en nuevas sesiones](/docs/es/settings#a-change-you-made-in-claude-code-is-lost-in-new-sessions).

240* **Reanudó una sesión.** Una sesión que reanuda con `claude --resume` o `--continue` generalmente [mantiene el modelo que estaba usando](#setting-your-model) en lugar de su predeterminado actual.240* **Reanudaste una sesión.** Una sesión que reanudas con `claude --resume` o `--continue` generalmente [mantiene el modelo que estaba usando](#setting-your-model) en lugar de tu predeterminado actual.

241 241 

242<h2 id="restrict-model-selection">242<h2 id="restrict-model-selection">

243 Restringir la selección de modelos243 Restringir la selección de modelos


310* [Claude Tag](https://claude.com/docs/claude-tag/overview) las sesiones se ejecutan en entornos en la nube pero no reciben configuración administrada por servidor; en un [entorno autohospedado](/docs/es/self-hosted-environments), aún leen el archivo de configuración administrada en la imagen del ejecutor. Para establecer el modelo para esas sesiones, consulte [Elegir el modelo para un alcance](https://claude.com/docs/claude-tag/admins/customize#choose-the-model-for-a-scope) en la guía de administrador de Claude Tag.310* [Claude Tag](https://claude.com/docs/claude-tag/overview) las sesiones se ejecutan en entornos en la nube pero no reciben configuración administrada por servidor; en un [entorno autohospedado](/docs/es/self-hosted-environments), aún leen el archivo de configuración administrada en la imagen del ejecutor. Para establecer el modelo para esas sesiones, consulte [Elegir el modelo para un alcance](https://claude.com/docs/claude-tag/admins/customize#choose-the-model-for-a-scope) en la guía de administrador de Claude Tag.

311* Cowork, la pestaña de trabajo agéntico en la aplicación de escritorio de Claude, ejecuta sus sesiones en Claude Code pero, por diseño, no recibe configuración administrada por servidor desde la consola de administración de claude.ai. Cuando `availableModels` en su configuración administrada por servidor no está vacío y un usuario elige un modelo fuera de él, el servidor rechaza ese modelo para una sesión remota de Cowork. Un archivo de configuración administrada se aplica a sesiones de Cowork cuando está presente donde se ejecuta la sesión; las sesiones remotas de Cowork se ejecutan en máquinas virtuales administradas por Anthropic, donde un archivo implementado en el dispositivo no está presente.311* Cowork, la pestaña de trabajo agéntico en la aplicación de escritorio de Claude, ejecuta sus sesiones en Claude Code pero, por diseño, no recibe configuración administrada por servidor desde la consola de administración de claude.ai. Cuando `availableModels` en su configuración administrada por servidor no está vacío y un usuario elige un modelo fuera de él, el servidor rechaza ese modelo para una sesión remota de Cowork. Un archivo de configuración administrada se aplica a sesiones de Cowork cuando está presente donde se ejecuta la sesión; las sesiones remotas de Cowork se ejecutan en máquinas virtuales administradas por Anthropic, donde un archivo implementado en el dispositivo no está presente.

312* Las sesiones en [proveedores de terceros](/docs/es/server-managed-settings#platform-availability) como Amazon Bedrock, Agent Platform de Google Cloud, Microsoft Foundry, y [Claude Platform en AWS](/docs/es/claude-platform-on-aws) no reciben configuración administrada por servidor, por lo que entregue la lista de permitidos a través de MDM o archivos de configuración administrada allí.312* Las sesiones en [proveedores de terceros](/docs/es/server-managed-settings#platform-availability) como Amazon Bedrock, Agent Platform de Google Cloud, Microsoft Foundry, y [Claude Platform en AWS](/docs/es/claude-platform-on-aws) no reciben configuración administrada por servidor, por lo que entregue la lista de permitidos a través de MDM o archivos de configuración administrada allí.

313* La entrega administrada por servidor también requiere que la sesión se autentique con un [inicio de sesión o clave elegible](/docs/es/server-managed-settings#platform-availability). Las flotas que generan claves solo a través de un script [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper) deben entregar la lista de permitidos a través de MDM o archivos de configuración administrada.313* La entrega desde la consola de administración también requiere que la sesión obtenga la configuración con un [inicio de sesión elegible](/docs/es/server-managed-settings#platform-availability) en tu organización o un token OAuth emitido para ella. Para flotas que se autentican con claves de API, ya sea configuradas directamente o generadas por un script [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper), entrega la lista de permitidos a través de MDM o archivos de configuración administrada.

314* La pestaña de código de escritorio también aloja [sesiones SSH](/docs/es/desktop#ssh-sessions), que leen el archivo de configuración administrada del host remoto en el que se ejecutan. Consulte [Configuración administrada de escritorio](/docs/es/desktop#managed-settings).314* La pestaña de código de escritorio también aloja [sesiones SSH](/docs/es/desktop#ssh-sessions), que leen el archivo de configuración administrada del host remoto en el que se ejecutan. Consulte [Configuración administrada de escritorio](/docs/es/desktop#managed-settings).

315* Los selectores de modelos en claude.ai y en la aplicación de escritorio ocultan o atenúan los modelos excluidos por la lista de permitidos de su organización. El estado del selector es una conveniencia para los usuarios; no aplica la lista de permitidos.315* Los selectores de modelos en claude.ai y en la aplicación de escritorio ocultan o atenúan los modelos excluidos por la lista de permitidos de su organización. El estado del selector es una conveniencia para los usuarios; no aplica la lista de permitidos.

316 316 


562 562 

563Esta sección trata el respaldo basado en contenido desde los modelos Fable, Opus 5.5, Sonnet 5.5 y Opus 5. Para el respaldo basado en disponibilidad cuando un modelo está sobrecargado o no disponible, consulta [Cadenas de modelos de respaldo](#fallback-model-chains).563Esta sección trata el respaldo basado en contenido desde los modelos Fable, Opus 5.5, Sonnet 5.5 y Opus 5. Para el respaldo basado en disponibilidad cuando un modelo está sobrecargado o no disponible, consulta [Cadenas de modelos de respaldo](#fallback-model-chains).

564 564 

565Los 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. Cuando un clasificador marca una solicitud y la categoría marcada tiene un modelo de respaldo, Claude Code vuelve a ejecutar la solicitud en ese modelo y muestra un aviso en la transcripción. Para esas dos categorías, el modelo de respaldo depende de qué modelo rechazó la solicitud:565Los 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:

566 566 

567* **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.567* **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.

568* **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.568* **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.


570 570 

571En Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, Claude Code resuelve estos destinos a través de los ID de modelo de tu despliegue. Consulta [Habilitar el respaldo en Bedrock, Agent Platform y Foundry](#enable-fallback-on-bedrock-agent-platform-and-foundry).571En Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, Claude Code resuelve estos destinos a través de los ID de modelo de tu despliegue. Consulta [Habilitar el respaldo en Bedrock, Agent Platform y Foundry](#enable-fallback-on-bedrock-agent-platform-and-foundry).

572 572 

573Cuando Claude Code cambia una solicitud marcada al modelo de respaldo de su categoría, vuelve a ejecutar la solicitud en ese modelo. En tu conversación principal, muestra un aviso en la transcripción. Para que se te pregunte primero, consulta [Preguntar antes de cambiar](#ask-before-switching).

574 

573Después de un respaldo, la sesión continúa en el modelo de respaldo. Para volver a tu modelo original, ejecuta [`/model`](#setting-your-model).575Después de un respaldo, la sesión continúa en el modelo de respaldo. Para volver a tu modelo original, ejecuta [`/model`](#setting-your-model).

574 576 

575El respaldo basado en categorías requiere Claude Code v2.1.219 o posterior. Antes de la v2.1.219, cada solicitud marcada de Fable 5 se volvía a ejecutar en el modelo Opus predeterminado de tu proveedor, y Opus 5 no era una fuente de respaldo.577El respaldo basado en categorías requiere Claude Code v2.1.219 o posterior. Antes de la v2.1.219, cada solicitud marcada de Fable 5 se volvía a ejecutar en el modelo Opus predeterminado de tu proveedor, y Opus 5 no era una fuente de respaldo.


580 Nivel de esfuerzo después de un respaldo582 Nivel de esfuerzo después de un respaldo

581</h4>583</h4>

582 584 

583Cuando Claude Code cambia tu sesión al modelo de respaldo, mantiene el nivel de esfuerzo con el que se ejecutó la solicitud marcada en lugar del esfuerzo predeterminado de ese modelo. Por ejemplo, una sesión en Opus 5.5 con su `medium` predeterminado que recurre a Opus 4.8 se mantiene en `medium`, aunque Opus 4.8 tiene `high` por defecto.585Cuando Claude Code cambia tu sesión al modelo de respaldo, mantiene el nivel de esfuerzo con el que se ejecutó la solicitud marcada. Por ejemplo, una sesión en Opus 5.5 con su `medium` predeterminado que recurre a Opus 4.8 se mantiene en `medium`, aunque Opus 4.8 tiene `high` por defecto.

584 586 

585Se aplica un nivel diferente en casos como estos:587Se aplica un nivel diferente en casos como estos:

586 588 

587* **Configuración o predeterminado de la organización**: un nivel en tu configuración que se aplica al modelo de respaldo, o un esfuerzo predeterminado que tu organización estableció para él, se aplica en su lugar.

588* **Tu propio cambio**: una vez que eliges un nivel de esfuerzo, seleccionas un modelo en `/model` o reanudas la sesión más tarde, el nivel de la solicitud marcada deja de trasladarse.589* **Tu propio cambio**: una vez que eliges un nivel de esfuerzo, seleccionas un modelo en `/model` o reanudas la sesión más tarde, el nivel de la solicitud marcada deja de trasladarse.

589* **Esfuerzo del skill**: un nivel que el frontmatter `effort` de un skill estableció para la solicitud marcada se aplica a ese turno, y los turnos posteriores se ejecutan en el nivel que el [orden de resolución de esfuerzo](#adjust-effort-level) da al modelo de respaldo.590* **Esfuerzo del skill**: un nivel que el frontmatter `effort` de un skill estableció para la solicitud marcada se aplica a ese turno, y los turnos posteriores se ejecutan en el nivel que el [orden de resolución de esfuerzo](#adjust-effort-level) da al modelo de respaldo.

590 591 

591El encabezado de la sesión muestra el nivel vigente junto al nombre del modelo. Para cambiarlo, ejecuta `/effort` en la sesión.592En la sesión, ejecuta `/effort status` para ver el nivel vigente, o `/effort` para cambiarlo.

592 593 

593<h4 id="check-what-triggered-fallback">594<h4 id="check-what-triggered-fallback">

594 Comprobar qué provocó el respaldo595 Comprobar qué provocó el respaldo


602 Preguntar antes de cambiar603 Preguntar antes de cambiar

603</h4>604</h4>

604 605 

605Para decidir qué sucede cada vez que se marca una solicitud, en lugar de cambiar automáticamente, ejecuta `/config` y desactiva **Switch models when a message is flagged**, o establece [`switchModelsOnFlag`](/docs/es/settings-reference#switchmodelsonflag) en `false` en tu archivo de configuración. Entonces, una solicitud marcada pausa la sesión con dos opciones: cambiar al modelo de respaldo, o editar el prompt y reintentar en el modelo actual.606Para decidir qué sucede cada vez que se marca una solicitud, ejecuta `/config`, selecciona **Switch models when a message is flagged** y elige **Ask each time**. También puedes establecer [`switchModelsOnFlag`](/docs/es/settings-reference#switchmodelsonflag) en `false` en tu archivo de configuración. Entonces, Claude Code se pausa ante una solicitud marcada que cambiaría de modelo y te da dos opciones: cambiar al modelo de respaldo, o editar el prompt y reintentar.

607 

608La primera vez que una solicitud marcada cambiaría de modelo en una sesión interactiva, Claude Code puede preguntarte si quieres cambiar automáticamente a partir de entonces. Solo pregunta si no has establecido `switchModelsOnFlag`, y guarda tu elección como esa clave en tu configuración de usuario.

606 609 

607Algunos casos se comportan de forma diferente:610Si eliges quedarte en el modelo actual, el valor guardado es `false`, igual que **Ask each time**. Si descartas la pregunta, Claude Code no guarda nada y vuelve a preguntar la próxima vez que una solicitud marcada cambiaría de modelo.

611 

612Cuando has elegido **Ask each time**, algunos casos se comportan de forma diferente:

608 613 

609* Cuando la categoría marcada no tiene modelo de respaldo, como una marca de biología en Opus 5 o Sonnet 5.5, Claude Code no muestra la consulta y la solicitud termina con el rechazo.614* Cuando la categoría marcada no tiene modelo de respaldo, como una marca de biología en Opus 5 o Sonnet 5.5, Claude Code no muestra la consulta y la solicitud termina con el rechazo.

610* Si ambos modelos marcan la misma solicitud, puedes editar el prompt y reintentar, o iniciar una sesión nueva.615* Si ambos modelos marcan la misma solicitud, puedes editar el prompt y reintentar, o iniciar una sesión nueva.

611* En las [sesiones en la nube](/docs/es/claude-code-on-the-web) en la app móvil, no se admite editar y reintentar. Cambia de modelo o continúa la sesión desde un navegador de escritorio o la app de escritorio.616* En las [sesiones en la nube](/docs/es/claude-code-on-the-web) en la app móvil, no se admite editar y reintentar. Cambia de modelo o continúa la sesión desde un navegador de escritorio o la app de escritorio.

612* En el [modo no interactivo](/docs/es/cli-reference#cli-flags) y en las integraciones con el SDK que no pueden mostrar la consulta, una solicitud marcada termina el turno con un rechazo.617* En el [modo no interactivo](/docs/es/cli-reference#cli-flags) y en las integraciones con el SDK que no pueden mostrar la consulta, una solicitud marcada termina el turno con un rechazo.

618* En un [subagente](/docs/es/sub-agents), Claude Code no muestra la consulta, y una solicitud marcada que cambiaría de modelo se vuelve a ejecutar en el modelo de respaldo.

613* Cuando el destino de respaldo está bloqueado por [`availableModels`](#restrict-model-selection), Claude Code no muestra la consulta. La solicitud marcada termina con el rechazo, igual que en el respaldo automático cuando el destino está bloqueado.619* Cuando el destino de respaldo está bloqueado por [`availableModels`](#restrict-model-selection), Claude Code no muestra la consulta. La solicitud marcada termina con el rechazo, igual que en el respaldo automático cuando el destino está bloqueado.

614 620 

615<h4 id="enable-fallback-on-bedrock-agent-platform-and-foundry">621<h4 id="enable-fallback-on-bedrock-agent-platform-and-foundry">


628* **Todos los modelos de origen**: establece `ANTHROPIC_DEFAULT_OPUS_MODEL` en un ID de modelo Opus para activar el respaldo y dar un destino a las categorías marcadas. Una fijación que nombra un modelo fuera de la familia Opus, o el modelo que rechazó, deja el rechazo en pie.634* **Todos los modelos de origen**: establece `ANTHROPIC_DEFAULT_OPUS_MODEL` en un ID de modelo Opus para activar el respaldo y dar un destino a las categorías marcadas. Una fijación que nombra un modelo fuera de la familia Opus, o el modelo que rechazó, deja el rechazo en pie.

629* **Sonnet 5.5**: además de la fijación de Opus, establece `ANTHROPIC_DEFAULT_SONNET_MODEL` o mantén una entrada de Sonnet 5 en la lista de modelos del proveedor para proporcionar el modelo en el que se vuelve a ejecutar la solicitud. Una fijación de Sonnet que nombra un modelo fuera de la familia Sonnet, o el propio Sonnet 5.5, deja el rechazo en pie.635* **Sonnet 5.5**: además de la fijación de Opus, establece `ANTHROPIC_DEFAULT_SONNET_MODEL` o mantén una entrada de Sonnet 5 en la lista de modelos del proveedor para proporcionar el modelo en el que se vuelve a ejecutar la solicitud. Una fijación de Sonnet que nombra un modelo fuera de la familia Sonnet, o el propio Sonnet 5.5, deja el rechazo en pie.

630 636 

637El modelo de respaldo también debe tener una ventana de contexto al menos tan grande como la de la sesión; de lo contrario, Claude Code no cambia y la solicitud marcada termina con el mismo rechazo. En estos proveedores, los modelos de origen se ejecutan con la [ventana de contexto de 1M](#extended-context) de forma predeterminada. Fija un modelo que también lo haga, como Opus 4.8 en `ANTHROPIC_DEFAULT_OPUS_MODEL` o Sonnet 5 en `ANTHROPIC_DEFAULT_SONNET_MODEL`, mediante un ID que Claude Code [pueda asociar con ese modelo](#pin-models-for-third-party-deployments).

638 

631<h4 id="security-research-and-biology-workloads">639<h4 id="security-research-and-biology-workloads">

632 Cargas de trabajo de investigación en seguridad y biología640 Cargas de trabajo de investigación en seguridad y biología

633</h4>641</h4>

634 642 

635Las 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, Claude Code mueve la sesión a Opus 5 en la primera solicitud marcada, 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.643Las 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.

636 644 

637Este 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.645Este 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.

638 646 


656 664 

6571. Una elección explícita: la variable de entorno [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/es/env-vars#variables), iniciar con `--effort`, o `/effort` en la sesión ([un `/effort` no interactivo tiene un efecto más limitado](#non-interactive-effort))6651. Una elección explícita: la variable de entorno [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/es/env-vars#variables), iniciar con `--effort`, o `/effort` en la sesión ([un `/effort` no interactivo tiene un efecto más limitado](#non-interactive-effort))

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

6593. 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`, Opus 4.7 por defecto es `xhigh`, y, cuando 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. Despué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.6673. 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`, Opus 4.7 por defecto es `xhigh`, y, cuando 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

668 

669Despué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.

660 670 

661Opus 5.5 empieza en `medium` a menos que alguna de las fuentes anteriores establezca un nivel para él, y un `effortLevel` de nivel superior en tu archivo de configuración de usuario no cuenta para Opus 5.5. Esa clave es la forma antigua que `/effort` escribía antes de que Claude Code guardara niveles por modelo: se sigue aplicando donde se aplicaba antes, en Opus 5, Fable 5.1 y modelos anteriores, mientras que Opus 5.5 y los modelos lanzados después empiezan en su propio valor predeterminado hasta que elijas un nivel para ellos con `/effort` o con el selector de `/model`. Un `effortLevel` de nivel superior en la configuración de proyecto, local o administrada, o uno pasado con `--settings`, se aplica a todos los modelos.671Opus 5.5 empieza en `medium` a menos que alguna de las fuentes anteriores establezca un nivel para él, y un `effortLevel` de nivel superior en tu archivo de configuración de usuario no cuenta para Opus 5.5. Esa clave es la forma antigua que `/effort` escribía antes de que Claude Code guardara niveles por modelo: se sigue aplicando donde se aplicaba antes, en Opus 5, Fable 5.1 y modelos anteriores, mientras que Opus 5.5 y los modelos lanzados después empiezan en su propio valor predeterminado hasta que elijas un nivel para ellos con `/effort` o con el selector de `/model`. Un `effortLevel` de nivel superior en la configuración de proyecto, local o administrada, o uno pasado con `--settings`, se aplica a todos los modelos.

662 672 


777 787 

778<a id="extended-context-with-1m" />788<a id="extended-context-with-1m" />

779 789 

790<span id="sonnet-5-5-and-sonnet-5-context-window" />

791 

780<h3 id="extended-context">792<h3 id="extended-context">

781 Contexto extendido793 Contexto extendido

782</h3>794</h3>

783 795 

784Fable 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.796Fable 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.

785 797 

786En la Anthropic API, Fable 5.1, Fable 5, Sonnet 5 y posteriores, Haiku 5.5, y Opus 4.7 y posteriores se ejecutan con la ventana de 1M en todos los planes, incluido Pro. No seleccionas una variante `[1m]` ni activas créditos de uso para la ventana de 1M en estos modelos. El uso de Fable en sí puede facturarse a créditos de uso en algunos planes; consulta [Fable y créditos de uso](#fable-and-usage-credits).798Fable 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](/docs/es/claude-apps-gateway). Para ejecutarlos con una ventana de 200K, consulta [Desactivar el contexto de 1M](#turn-off-1m-context).

787 799 

788Opus 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, 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, incluido Max.800Opus 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, 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, incluido Max.

789 801 


795 807 

796Claude Code verifica estos requisitos de plan solo cuando se conecta directamente a la Anthropic API. Si apuntas `ANTHROPIC_BASE_URL` a un [gateway de LLM](/docs/es/llm-gateway#subscriptions-and-gateways) y tu inicio de sesión guardado de claude.ai sigue siendo la credencial activa, Claude Code no verifica los créditos de uso de tu plan. Las opciones `[1m]` siguen disponibles en `/model`, y el gateway decide si la solicitud tiene éxito. Antes de la v2.1.229, Claude Code rechazaba `/model sonnet[1m]` en esa configuración cuando no podía confirmar créditos de uso en la cuenta.808Claude Code verifica estos requisitos de plan solo cuando se conecta directamente a la Anthropic API. Si apuntas `ANTHROPIC_BASE_URL` a un [gateway de LLM](/docs/es/llm-gateway#subscriptions-and-gateways) y tu inicio de sesión guardado de claude.ai sigue siendo la credencial activa, Claude Code no verifica los créditos de uso de tu plan. Las opciones `[1m]` siguen disponibles en `/model`, y el gateway decide si la solicitud tiene éxito. Antes de la v2.1.229, Claude Code rechazaba `/model sonnet[1m]` en esa configuración cuando no podía confirmar créditos de uso en la cuenta.

797 809 

798<span id="context-window-behind-a-gateway" />810En la Anthropic API, la ventana de contexto de 1M usa los precios estándar del modelo, sin recargo por los tokens más allá de 200K, excepto en Haiku 5.5, que [cuesta más en prompts de más de 100K tokens](#haiku-5-5-context-window-and-pricing). En los planes en los que el contexto extendido está incluido en tu suscripción, el uso sigue cubierto por tu suscripción. En los planes que acceden al contexto extendido mediante créditos de uso, los tokens se facturan a los créditos de uso.

799 

800Si estableces `ANTHROPIC_BASE_URL` en un [gateway de LLM](/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`](/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).

801 

802Para desactivar el contexto de 1M, establece `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`. Claude Code elimina las variantes de modelo de 1M del selector de modelos. En los modelos con una ventana nativa de 1M, como Sonnet 5 y los modelos Fable, también trata el modelo como si tuviera una ventana de contexto de 200K:

803 

804* Con la compactación automática activada, las sesiones se compactan en el límite de 200K mediante la [compactación automática](#set-the-auto-compact-window). Establecer la ventana de compactación automática por encima de 200K no levanta la restricción, porque Claude Code limita esa ventana a la ventana de contexto del modelo.

805* Con la compactación automática desactivada, las sesiones se detienen en el límite de 200K con el [error de límite de contexto](/docs/es/errors#prompt-is-too-long) en lugar de compactarse.

806 811 

807Antes de la v2.1.223, Claude Code limitaba a 200K solo las sesiones de Sonnet 5, Opus 4.8 y Opus 5. Consulta [variables de entorno](/docs/es/env-vars).812<h4 id="select-1m-context-for-opus-4-6-or-sonnet-4-6">

808 813 Seleccionar contexto de 1M para Opus 4.6 o Sonnet 4.6

809La ventana de contexto de 1M usa los precios estándar del modelo, sin recargo por los tokens más allá de 200K, excepto en Haiku 5.5, que [cuesta más en prompts de más de 100K tokens](#haiku-5-5-context-window-and-pricing). En los planes en los que el contexto extendido está incluido en tu suscripción, el uso sigue cubierto por tu suscripción. En los planes que acceden al contexto extendido mediante créditos de uso, los tokens se facturan a los créditos de uso.814</h4>

810 

811Si tu cuenta admite contexto de 1M, la opción aparece en el selector de `/model` en las versiones más recientes de Claude Code. Si no la ves, reinicia tu sesión y, en un proveedor de terceros, comprueba si tu despliegue [fijó el modelo](#pin-models-for-third-party-deployments) con una variable `ANTHROPIC_DEFAULT_*_MODEL`.

812 815 

813También puedes usar el sufijo `[1m]` con alias de modelo o nombres de modelo completos:816Para seleccionar una variante de 1M por nombre, agrega el sufijo `[1m]` a un alias de modelo o a un nombre de modelo completo:

814 817 

815```text theme={null}818```text theme={null}

816# Use the opus[1m] or sonnet[1m] alias819# Append [1m] to a full model name

817/model opus[1m]820/model claude-opus-4-6[1m]

818/model sonnet[1m]821/model claude-sonnet-4-6[1m]

819 822 

820# Or append [1m] to a full model name823# Or to an alias: the suffix applies to the model the alias resolves to

821/model claude-opus-4-8[1m]824/model opus[1m]

822```825```

823 826 

824<h4 id="sonnet-5-5-and-sonnet-5-context-window">827<span id="context-window-behind-a-gateway" />

825 Ventana de contexto de Sonnet 5.5 y Sonnet 5828 

829<h4 id="context-window-behind-an-llm-gateway">

830 Ventana de contexto detrás de un gateway de LLM

826</h4>831</h4>

827 832 

828En la Anthropic API, Sonnet 5.5 y Sonnet 5 siempre se ejecutan con la ventana de contexto de 1M. No hay variante de 200K, ni sufijo `[1m]` que seleccionar, ni se requieren créditos de uso en ningún plan. Las sesiones se compactan automáticamente antes de que se llene la ventana, a unos 967K tokens de forma predeterminada; establece [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/es/env-vars) para elegir un umbral diferente.833Si estableces `ANTHROPIC_BASE_URL` en un [gateway de LLM](/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`](/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).

829 834 

830Claude Code da a Sonnet 5.5 y Sonnet 5 la misma ventana de 1M detrás de un [gateway de LLM](/docs/es/llm-gateway) u otro `ANTHROPIC_BASE_URL` personalizado. Si tu gateway impone un límite inferior, consulta [la ventana de contexto detrás de un gateway](#context-window-behind-a-gateway).835<h4 id="turn-off-1m-context">

836 Desactivar el contexto de 1M

837</h4>

831 838 

832Este ajuste limita la ventana a 200K:839Para mantener las sesiones en una ventana de 200K, establece `CLAUDE_CODE_DISABLE_1M_CONTEXT=1` en tu shell o en un [archivo de configuración](/docs/es/env-vars#set-environment-variables). Claude Code elimina las variantes de modelo `[1m]` del selector de modelos. En los modelos que se ejecutan con la ventana de 1M de forma predeterminada, como los modelos Fable, Sonnet 5 y posteriores, y Opus 4.7 y posteriores, también trata el modelo como si tuviera una ventana de contexto de 200K:

833 840 

834* **`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`**: limita a una ventana de 200K las sesiones en todos los modelos con una ventana nativa de 1M; consulta [Contexto extendido](#extended-context) para saber cómo se impone la restricción. Útil para despliegues que necesitan limitar el contexto.841* Con la compactación automática activada, las sesiones se compactan en el límite de 200K mediante la [compactación automática](#set-the-auto-compact-window). Establecer la ventana de compactación automática por encima de 200K no levanta la restricción, porque Claude Code limita esa ventana a la ventana de contexto del modelo.

842* Con la compactación automática desactivada, las sesiones se detienen en el límite de 200K con el [error de límite de contexto](/docs/es/errors#prompt-is-too-long) en lugar de compactarse.

835 843 

836<h4 id="haiku-5-5-context-window-and-pricing">844<h4 id="haiku-5-5-context-window-and-pricing">

837 Ventana de contexto y precios de Haiku 5.5845 Ventana de contexto y precios de Haiku 5.5


844Las sesiones se compactan automáticamente a unos 967K tokens de forma predeterminada. Para compactar antes, [establece una ventana de compactación automática más pequeña](#set-the-auto-compact-window) para el modelo.852Las sesiones se compactan automáticamente a unos 967K tokens de forma predeterminada. Para compactar antes, [establece una ventana de compactación automática más pequeña](#set-the-auto-compact-window) para el modelo.

845 853 

846<h2 id="context-window-and-auto-compaction">854<h2 id="context-window-and-auto-compaction">

847 Ventana de contexto y auto-compactación855 Ventana de contexto y compactación automática

848</h2>856</h2>

849 857 

850La ventana de auto-compactación es qué tan llena puede estar la ventana de contexto antes de que Claude Code compacte la conversación. Para ver qué compactación conserva y descarta por mecanismo, consulte [Lo que sobrevive a la compactación](/docs/es/context-window#what-survives-compaction).858La ventana de compactación automática es qué tan llena puede estar la ventana de contexto antes de que Claude Code compacte la conversación. Para ver qué conserva y qué descarta la compactación según cada mecanismo, consulta [Lo que sobrevive a la compactación](/docs/es/context-window#what-survives-compaction).

851 859 

852<h3 id="set-the-auto-compact-window">860<h3 id="set-the-auto-compact-window">

853 Establecer la ventana de auto-compactación861 Establecer la ventana de compactación automática

854</h3>862</h3>

855 863 

856Puedes establecer la ventana de compactación automática en estos lugares:864Puedes establecer la ventana de compactación automática en estos lugares:

857 865 

858* **Para el modelo actual, en esta sesión y las posteriores**: ejecuta `/autocompact` con un valor, como `/autocompact 500k`. Claude Code lo guarda en tu configuración de usuario bajo el modelo actual en [`modelSettings`](/docs/es/settings-reference#modelsettings) y lo aplica a la sesión actual. Si un [alcance de configuración](/docs/es/settings#settings-precedence) de mayor prioridad, como la configuración administrada, establece su propia ventana para ese modelo o para todos los modelos, el comando guarda tu valor pero la sesión mantiene la ventana de ese alcance, y el comando lo indica. Ejecuta `/autocompact auto` para volver a la ventana ajustada para tu modelo. Antes de v2.1.288, el comando guardaba una sola ventana para todos los modelos, como el ajuste de nivel superior `autoCompactWindow`.866* **Para el modelo actual, en esta sesión y las posteriores**: ejecuta `/autocompact` con un valor, como `/autocompact 500k`. Claude Code lo guarda en tu configuración de usuario bajo el modelo actual en [`modelSettings`](/docs/es/settings-reference#modelsettings) y lo aplica a la sesión actual. Si un [alcance de configuración](/docs/es/settings#settings-precedence) de mayor prioridad, como la configuración administrada, establece su propia ventana para ese modelo o para todos los modelos, el comando guarda tu valor pero la sesión mantiene la ventana de ese alcance, y el comando lo indica. Ejecuta `/autocompact auto` para volver a la ventana ajustada para tu modelo. Antes de v2.1.288, el comando guardaba una sola ventana para todos los modelos, como el ajuste de nivel superior `autoCompactWindow`.

859* **Para todos los modelos**: establece [`autoCompactWindow`](/docs/es/settings-reference#autocompactwindow) en un archivo de configuración, como `"autoCompactWindow": 200000` en `~/.claude/settings.json`. Una ventana que hayas guardado para un modelo con `/autocompact` tiene precedencia sobre esta clave en el mismo archivo para ese modelo.867* **Para todos los modelos**: establece [`autoCompactWindow`](/docs/es/settings-reference#autocompactwindow) en un archivo de configuración, como `"autoCompactWindow": 200000` en `~/.claude/settings.json`. Una ventana que hayas guardado para un modelo con `/autocompact` tiene precedencia sobre esta clave en el mismo archivo para ese modelo.

860* **Para un lanzamiento**: pase [`--autocompact`](/docs/es/cli-reference#cli-flags) al iniciar Claude Code. La bandera anula su configuración guardada para ese lanzamiento sin cambiarla, y `claude --autocompact auto` ejecuta la sesión en la ventana ajustada incluso si su configuración guardada tiene un valor. A diferencia de `/autocompact`, la bandera no es anulada por un ámbito de configuración de mayor prioridad, como la configuración administrada.868* **Para un lanzamiento**: pasa [`--autocompact`](/docs/es/cli-reference#cli-flags) al iniciar Claude Code. El flag sobrescribe tu configuración guardada para ese lanzamiento sin cambiarla, y `claude --autocompact auto` ejecuta la sesión con la ventana ajustada incluso si tu configuración guardada tiene un valor. A diferencia de `/autocompact`, un alcance de configuración de mayor prioridad, como la configuración administrada, no se impone sobre el flag.

861* **En scripts y entornos en la nube**: establezca [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/es/env-vars). Mientras esté establecida, tiene precedencia sobre el comando, la bandera y la configuración, y `/autocompact` reporta la anulación en lugar de cambiar la ventana.869* **En scripts y entornos en la nube**: establece [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/es/env-vars). Mientras esté establecida, tiene precedencia sobre el comando, el flag y el ajuste, y `/autocompact` informa de la sobrescritura en lugar de cambiar la ventana.

862 870 

863El comando y la bandera aceptan un tamaño de ventana de 100K a 1M de tokens, en cualquiera de estas formas:871El comando y el flag aceptan un tamaño de ventana de 100K a 1M de tokens, en cualquiera de estas formas:

864 872 

865* Un recuento de tokens simple, como `200000`873* Un recuento de tokens simple, como `200000`

866* Un sufijo `k` o `M`, como `500k` o `1M`874* Un sufijo `k` o `M`, como `500k` o `1M`


869La variable de entorno acepta solo el recuento de tokens simple. Claude Code limita la ventana al tamaño de la ventana de contexto del modelo.877La variable de entorno acepta solo el recuento de tokens simple. Claude Code limita la ventana al tamaño de la ventana de contexto del modelo.

870 878 

871<h3 id="default-auto-compact-thresholds">879<h3 id="default-auto-compact-thresholds">

872 Umbrales de auto-compactación predeterminados880 Umbrales de compactación automática predeterminados

873</h3>881</h3>

874 882 

875Si no establece una ventana de auto-compactación, Claude Code compacta cuando la conversación alcanza el límite de contexto del modelo, excepto en estas sesiones:883Si no estableces una ventana de compactación automática, Claude Code compacta cuando la conversación alcanza el límite de contexto del modelo, excepto en estas sesiones:

876 884 

877* Las [sesiones en la nube](/docs/es/claude-code-on-the-web) se compactan cuando la conversación se acerca al límite del modelo885* Las [sesiones en la nube](/docs/es/claude-code-on-the-web) se compactan cuando la conversación se acerca al límite del modelo

878* Sonnet 4.6 y Opus 4.6 sin [contexto extendido](#extended-context) se compactan en el límite de 200K, y también lo hacen Opus 4.8 y posteriores cuando se ejecutan con una ventana de contexto de 200K, como en Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry886* Sonnet 4.6 y Opus 4.6 sin [contexto extendido](#extended-context) se compactan en el límite de 200K

879* Cuando establece [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/es/env-vars), los modelos con una ventana nativa de 1M, como Sonnet 5 y los modelos Fable, se compactan en el límite de 200K887* Cuando estableces [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/es/env-vars), los modelos con una ventana nativa de 1M, como Sonnet 5 y los modelos Fable, se compactan en el límite de 200K

880* Los modelos que se ejecutan con una ventana nativa de 1M se compactan antes de que la ventana se llene, a aproximadamente 967K tokens de forma predeterminada. En la API de Anthropic, estos incluyen Sonnet 5, Haiku 5.5, los modelos Fable y Opus 4.7 y posteriores. En Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, consulta [Fijar modelos para despliegues de terceros](#pin-models-for-third-party-deployments) para ver qué modelos se ejecutan con esa ventana. Detrás de un `ANTHROPIC_BASE_URL` personalizado, consulta [la ventana de contexto detrás de un gateway](#context-window-behind-a-gateway)888* Los modelos que se ejecutan con una ventana nativa de 1M se compactan antes de que la ventana se llene, a aproximadamente 967K tokens de forma predeterminada. Estos incluyen los modelos Fable, Sonnet 5 y posteriores, Haiku 5.5, y Opus 4.7 y posteriores. Detrás de un `ANTHROPIC_BASE_URL` personalizado, consulta [la ventana de contexto detrás de un gateway](#context-window-behind-a-gateway)

881* Las sesiones en un ID de modelo que Claude Code no reconoce, como un alias de [puerta de enlace LLM](/docs/es/llm-gateway), se compactan en la ventana de contexto que Claude Code asume para el ID; consulte [Corregir la ventana para una puerta de enlace o ID de modelo personalizado](#correct-the-window-for-a-gateway-or-custom-model-id)889* Las sesiones en un ID de modelo que Claude Code no reconoce, como un alias de [gateway LLM](/docs/es/llm-gateway), se compactan en la ventana de contexto que Claude Code asume para el ID; consulta [Corregir la ventana para un gateway o ID de modelo personalizado](#correct-the-window-for-a-gateway-or-custom-model-id)

882 890 

883<h3 id="correct-the-window-for-a-gateway-or-custom-model-id">891<h3 id="correct-the-window-for-a-gateway-or-custom-model-id">

884 Corregir la ventana para una puerta de enlace o ID de modelo personalizado892 Corregir la ventana para un gateway o ID de modelo personalizado

885</h3>893</h3>

886 894 

887En una [puerta de enlace LLM](/docs/es/llm-gateway) u otra implementación personalizada, 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. Establezca [`CLAUDE_CODE_MAX_CONTEXT_TOKENS`](/docs/es/env-vars) a la ventana que Claude Code debe asumir en su lugar.895En un [gateway LLM](/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`](/docs/es/env-vars) a la ventana que Claude Code debe asumir en su lugar.

888 896 

889Cómo se aplica la variable depende del ID. Claude Code trata un ID como un proveedor o una ortografía personalizada cuando no comienza con `claude-`, en cualquier caso, o cuando lleva un sufijo que Claude Code elimina al leer el ID, como la fecha `@YYYYMMDD` utilizada en Google Cloud's Agent Platform. Antes de v2.1.259, Claude Code no contaba un sufijo eliminado, por lo que un ID `claude-` no reconocido con un sufijo de fecha se trataba como un nombre `claude-` simple.897Cómo se aplica la variable depende del ID. Claude Code trata un ID como una grafía de proveedor o personalizada cuando no comienza con `claude-`, sin distinguir mayúsculas de minúsculas, o cuando lleva un sufijo que Claude Code elimina al leer el ID, como la fecha `@YYYYMMDD` utilizada en Google Cloud's Agent Platform. Antes de v2.1.259, Claude Code no contaba un sufijo eliminado, por lo que un ID `claude-` no reconocido con un sufijo de fecha se trataba como un nombre `claude-` simple.

890 898 

891Un proveedor no reconocido o una ortografía personalizada, la misma ortografía con `[1m]` y todos los demás ID son tres casos separados:899Una grafía de proveedor o personalizada no reconocida, la misma grafía con `[1m]` y todos los demás ID son tres casos separados:

892 900 

893* Si Claude Code no puede resolver un proveedor o una ortografía personalizada a un modelo que reconoce y el ID no contiene `[1m]`, la variable se aplica directamente y la compactación proactiva continúa en la ventana declarada.901* Si Claude Code no puede resolver una grafía de proveedor o personalizada a un modelo que reconoce y el ID no contiene `[1m]`, la variable se aplica directamente y la compactación proactiva continúa en la ventana declarada.

894* Si Claude Code no puede resolver un proveedor o una ortografía personalizada a un modelo que reconoce y el ID contiene `[1m]`, en cualquier caso, Claude Code asume una ventana de 1M para él y la variable no se aplica por sí sola. Para corregir la ventana mientras se mantiene la compactación proactiva, también establezca [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/es/env-vars). Con esa variable establecida, Claude Code dimensiona el ID como la misma ortografía sin `[1m]`, por lo que `CLAUDE_CODE_MAX_CONTEXT_TOKENS` se aplica cuando se aplicaría a esa ortografía sin etiquetar.902* Si Claude Code no puede resolver una grafía de proveedor o personalizada a un modelo que reconoce y el ID contiene `[1m]`, sin distinguir mayúsculas de minúsculas, Claude Code asume una ventana de 1M para él y la variable no se aplica por sí sola. Para corregir la ventana manteniendo la compactación proactiva, establece también [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/es/env-vars). Con esa variable establecida, Claude Code dimensiona el ID como la misma grafía sin `[1m]`, por lo que `CLAUDE_CODE_MAX_CONTEXT_TOKENS` se aplica cuando se aplicaría a esa grafía sin etiquetar.

895 903 

896 Con una ventana declarada superior a 200K, Claude Code muestra una [advertencia de inicio](/docs/es/errors#the-200k-limit-isnt-enforced) de que el límite de 200K no se aplica. La advertencia es esperada en esta configuración.904 Con una ventana declarada superior a 200K, Claude Code muestra entonces una [advertencia de inicio](/docs/es/errors#the-200k-limit-isnt-enforced) de que el límite de 200K no se aplica. La advertencia es esperada en esta configuración.

897* Si el ID se resuelve a un modelo que Claude Code reconoce, o el ID es un nombre `claude-` simple sin sufijo para que Claude Code elimine, en cualquier caso, la variable tiene efecto solo cuando también establece [`DISABLE_COMPACT`](/docs/es/env-vars), que desactiva toda compactación.905* Si el ID se resuelve a un modelo que Claude Code reconoce, o el ID es un nombre `claude-` simple sin sufijo que Claude Code deba eliminar, sin distinguir mayúsculas de minúsculas, la variable tiene efecto solo cuando también estableces [`DISABLE_COMPACT`](/docs/es/env-vars), que desactiva toda compactación.

898 906 

899 Por ejemplo, un ID que contiene un nombre de modelo Claude que Claude Code conoce, como `anthropic/claude-opus-4-8`, `us.anthropic.claude-…-v1:0`, o el fechado `claude-sonnet-4-5@20250929`, se resuelve a ese modelo. Esto incluye IDs que también contienen `[1m]`: Claude Code resuelve `claude-opus-4-8[1m]` a Opus 4.8 incluso con `CLAUDE_CODE_DISABLE_1M_CONTEXT` establecida.907 Por ejemplo, un ID que contiene un nombre de modelo Claude que Claude Code conoce, como `anthropic/claude-opus-4-8`, `us.anthropic.claude-…-v1:0`, o el fechado `claude-sonnet-4-5@20250929`, se resuelve a ese modelo. Esto incluye IDs que también contienen `[1m]`: Claude Code resuelve `claude-opus-4-8[1m]` a Opus 4.8 incluso con `CLAUDE_CODE_DISABLE_1M_CONTEXT` establecida.

900 908 

901Para un ID de modelo que Claude Code no reconoce, establezca [`CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1`](/docs/es/env-vars) para que Claude Code compacte solo después de que la API rechace la conversación con un [error demasiado largo que Claude Code reconoce](/docs/es/errors#prompt-is-too-long). Claude Code no ejecuta esa recuperación cuando una puerta de enlace [reescribe el error](/docs/es/llm-gateway-connect#troubleshoot-gateway-errors) a una redacción que Claude Code no reconoce.909Para un ID de modelo que Claude Code no reconoce, establece [`CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1`](/docs/es/env-vars) para que Claude Code compacte solo después de que la API rechace la conversación con un [error de longitud excesiva que Claude Code reconoce](/docs/es/errors#prompt-is-too-long). Claude Code no ejecuta esa recuperación cuando un gateway [reescribe el error](/docs/es/llm-gateway-connect#troubleshoot-gateway-errors) con una redacción que Claude Code no reconoce.

902 910 

903<h2 id="checking-your-current-model">911<h2 id="checking-your-current-model">

904 Verificar su modelo actual912 Verificar su modelo actual


942 Variables de entorno950 Variables de entorno

943</h2>951</h2>

944 952 

945Utilice las siguientes variables de entorno para controlar los nombres de modelo a los que se asignan los alias. Cada valor debe ser un nombre de modelo completo, o el identificador equivalente para su proveedor de API. Para elegir el modelo en el que comienzan sus sesiones, establezca [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions), que esta tabla omite.953Usa las siguientes variables de entorno para controlar los nombres de modelo a los que se asignan los alias. Cada valor debe ser un nombre de modelo completo, o el identificador equivalente para tu proveedor de API. Para elegir el modelo con el que comienzan tus sesiones, establece [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions), que esta tabla omite.

946 954 

947| Variable de entorno | Descripción |955| Variable de entorno | Descripción |

948| - | - |956| - | - |

949| `ANTHROPIC_DEFAULT_FABLE_MODEL` | El modelo a utilizar para `fable`, y el ID de modelo que Claude Code reconoce como modelo Fable para [alternancia automática de modelo](#automatic-model-fallback) en proveedores de terceros |957| `ANTHROPIC_DEFAULT_FABLE_MODEL` | El modelo a utilizar para `fable`, y el ID de modelo que Claude Code reconoce como modelo Fable para el [respaldo automático de modelo](#automatic-model-fallback) en proveedores de terceros |

950| `ANTHROPIC_DEFAULT_OPUS_MODEL` | El modelo a utilizar para `opus`, o para `opusplan` cuando Plan Mode está activo. |958| `ANTHROPIC_DEFAULT_OPUS_MODEL` | El modelo a utilizar para `opus`, o para `opusplan` cuando Plan Mode está activo. |

951| `ANTHROPIC_DEFAULT_SONNET_MODEL` | El modelo a utilizar para `sonnet`, o para `opusplan` cuando Plan Mode no está activo. |959| `ANTHROPIC_DEFAULT_SONNET_MODEL` | El modelo a utilizar para `sonnet`, o para `opusplan` cuando Plan Mode no está activo. |

952| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | El modelo a utilizar para `haiku`, o [funcionalidad de fondo](/docs/es/costs#background-token-usage) |960| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | El modelo a utilizar para `haiku`, o [funcionalidad en segundo plano](/docs/es/costs#background-token-usage) |

953| `CLAUDE_CODE_SUBAGENT_MODEL` | El modelo predeterminado para [subagentes](/docs/es/sub-agents#choose-a-model), compañeros de [equipo de agentes](/docs/es/agent-teams#specify-teammates-and-models) y agentes de [workflow](/docs/es/workflows) que no tienen asignado un modelo de otra manera. Acepta un alias como `haiku` o un nombre de modelo completo. Un modelo por invocación o el campo `model` de una definición, incluido `inherit`, tiene precedencia. Para cambiar eso, establezca [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/es/sub-agents#run-every-subagent-on-one-model) |961| `CLAUDE_CODE_SUBAGENT_MODEL` | El modelo predeterminado para [subagentes](/docs/es/sub-agents#choose-a-model), compañeros de [equipo de agentes](/docs/es/agent-teams#specify-teammates-and-models) y agentes de [workflow](/docs/es/workflows) que no tienen asignado un modelo de otra manera. Acepta un alias como `haiku` o un nombre de modelo completo. Un modelo por invocación o el campo `model` de una definición, incluido `inherit`, tiene precedencia. Para cambiar eso, establece [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/es/sub-agents#run-every-subagent-on-one-model) |

954 962 

955En proveedores de terceros, [Personalizar la visualización y capacidades del modelo fijo](#customize-pinned-model-display-and-capabilities) describe lo que muestra la fila de un modelo fijo en el selector `/model`.963En proveedores de terceros, [Personalizar la visualización y capacidades del modelo fijo](#customize-pinned-model-display-and-capabilities) describe lo que muestra la fila de un modelo fijo en el selector `/model`.

956 964 

957Nota: `ANTHROPIC_SMALL_FAST_MODEL` está deprecado en favor de `ANTHROPIC_DEFAULT_HAIKU_MODEL`.965Nota: `ANTHROPIC_SMALL_FAST_MODEL` está obsoleto en favor de `ANTHROPIC_DEFAULT_HAIKU_MODEL`.

958 966 

959<h3 id="pin-models-for-third-party-deployments">967<h3 id="pin-models-for-third-party-deployments">

960 Fijar modelos para implementaciones de terceros968 Fijar modelos para despliegues de terceros

961</h3>969</h3>

962 970 

963Cuando implemente Claude Code a través de [Amazon Bedrock](/docs/es/amazon-bedrock), [Plataforma de Agentes de Google Cloud](/docs/es/google-vertex-ai), [Microsoft Foundry](/docs/es/microsoft-foundry), o [Claude Platform on AWS](/docs/es/claude-platform-on-aws), fije versiones de modelo antes de implementar para usuarios.971Cuando despliegues Claude Code a través de [Amazon Bedrock](/docs/es/amazon-bedrock), [Agent Platform de Google Cloud](/docs/es/google-vertex-ai), [Microsoft Foundry](/docs/es/microsoft-foundry) o [Claude Platform on AWS](/docs/es/claude-platform-on-aws), fija las versiones de modelo antes de desplegarlo para los usuarios.

964 972 

965Sin fijar, Claude Code utiliza alias de modelo como `fable`, `opus`, `sonnet` y `haiku` que se resuelven a un ID de modelo predeterminado integrado para cada proveedor. Ese predeterminado puede rezagarse con respecto a la versión más reciente de Anthropic, y el modelo al que apunta puede que aún no esté habilitado en la cuenta de un usuario. Cuando el predeterminado no está disponible, los usuarios de Amazon Bedrock y Plataforma de Agentes de Google Cloud ven un aviso y la sesión retrocede a una versión anterior del modelo predeterminado, o al modelo Sonnet predeterminado cuando el predeterminado es un modelo Opus y no hay versión de Opus disponible. Los usuarios de Microsoft Foundry ven errores en su lugar, porque Microsoft Foundry no tiene ninguna verificación de inicio equivalente.973Sin fijar, Claude Code utiliza alias de modelo como `fable`, `opus`, `sonnet` y `haiku` que se resuelven a un ID de modelo predeterminado integrado para cada proveedor. Ese predeterminado puede rezagarse con respecto a la versión más reciente de Anthropic, y el modelo al que apunta puede que aún no esté habilitado en la cuenta de un usuario. Cuando el predeterminado no está disponible, los usuarios de Amazon Bedrock y Agent Platform de Google Cloud ven un aviso y la sesión recurre a una versión anterior del modelo predeterminado, o al modelo Sonnet predeterminado cuando el predeterminado es un modelo Opus y no hay ninguna versión de Opus disponible. Los usuarios de Microsoft Foundry ven errores en su lugar, porque Microsoft Foundry no tiene ninguna verificación de inicio equivalente.

966 974 

967En Amazon Bedrock y Plataforma de Agentes de Google Cloud, un usuario que inicia la sesión en una versión específica de Sonnet u Opus, por ejemplo con `--model`, `ANTHROPIC_MODEL`, o la configuración `model`, fija esa versión como el predeterminado de la sesión para el alias coincidente: la verificación de inicio omite el predeterminado integrado que reemplaza y no muestra ningún aviso de alternancia. Antes de v2.1.211, la verificación se ejecutaba y podía mostrar un aviso incluso cuando un modelo de sesión estaba configurado explícitamente.975En Amazon Bedrock y Agent Platform de Google Cloud, un usuario que inicia la sesión en una versión específica de Sonnet u Opus, por ejemplo con `--model`, `ANTHROPIC_MODEL` o el ajuste `model`, fija esa versión como el predeterminado de la sesión para el alias coincidente: la verificación de inicio omite el predeterminado integrado que reemplaza y no muestra ningún aviso de respaldo. Antes de v2.1.211, la verificación se ejecutaba y podía mostrar un aviso incluso cuando un modelo de sesión estaba configurado explícitamente.

968 976 

969<Warning>977<Warning>

970 Establezca las variables de entorno de modelo en IDs de versión específicos como parte de su configuración inicial. Fijar le permite controlar cuándo sus usuarios se mueven a un nuevo modelo.978 Establece las variables de entorno de modelo en IDs de versión específicos como parte de tu configuración inicial. Fijar te permite controlar cuándo tus usuarios pasan a un nuevo modelo.

971</Warning>979</Warning>

972 980 

973Utilice las siguientes variables de entorno con IDs de modelo específicos de versión para su proveedor:981Usa las siguientes variables de entorno con IDs de modelo específicos de versión para tu proveedor:

974 982 

975| Proveedor | Ejemplo |983| Proveedor | Ejemplo |

976| :- | :- |984| :- | :- |

977| Amazon Bedrock | `export ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-8'` |985| Amazon Bedrock | `export ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-8'` |

978| Plataforma de Agentes de Google Cloud | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |986| Agent Platform de Google Cloud | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |

979| Microsoft Foundry | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |987| Microsoft Foundry | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |

980 988 

981Aplique el mismo patrón para `ANTHROPIC_DEFAULT_FABLE_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL` y `ANTHROPIC_DEFAULT_HAIKU_MODEL`. Para IDs de modelo actuales y heredados en todos los proveedores, consulte [Descripción general de modelos](https://platform.claude.com/docs/en/about-claude/models/overview). Para actualizar usuarios a una nueva versión de modelo, actualice estas variables de entorno e implemente nuevamente.989Aplica el mismo patrón para `ANTHROPIC_DEFAULT_FABLE_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL` y `ANTHROPIC_DEFAULT_HAIKU_MODEL`. Para IDs de modelo actuales y heredados en todos los proveedores, consulta [Descripción general de modelos](https://platform.claude.com/docs/en/about-claude/models/overview). Para actualizar a tus usuarios a una nueva versión de modelo, actualiza estas variables de entorno y vuelve a desplegar.

990 

991Un modelo fijo con una ventana nativa de 1M, como Opus 4.8 o Sonnet 5, se ejecuta con la [ventana de contexto de 1M](#extended-context) sin ningún sufijo cuando Claude Code puede hacer coincidir el ID fijo con ese modelo. El ID coincide cuando contiene el ID de API de Anthropic del modelo, como `us.anthropic.claude-opus-4-8` contiene `claude-opus-4-8`, o cuando una entrada de [`modelOverrides`](#override-model-ids-per-version) asigna el modelo a ese ID. Con un ID fijo que Claude Code no puede hacer coincidir con un modelo, las sesiones se ejecutan con una ventana de 200K de forma predeterminada, a menos que el ID lleve el sufijo `[1m]`.

982 992 

983Para habilitar [contexto extendido](#extended-context) para un modelo fijo, añada `[1m]` al ID de modelo en `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL`, o `ANTHROPIC_DEFAULT_FABLE_MODEL`:993Para un modelo que alcanza 1M a través de su variante `[1m]`, como Opus 4.6 o Sonnet 4.6, habilita el contexto extendido añadiendo `[1m]` al ID de modelo en `ANTHROPIC_DEFAULT_OPUS_MODEL` o `ANTHROPIC_DEFAULT_SONNET_MODEL`:

984 994 

985```bash theme={null}995```bash theme={null}

986export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8[1m]'996export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-6[1m]'

987```997```

988 998 

989Con el sufijo `[1m]`, la ventana de contexto de 1M se aplica a todo el uso del alias fijo, incluida la fase Opus de modo de plan de [`opusplan`](#opusplan-model-setting) y [subagentes](/docs/es/sub-agents#choose-a-model) cuyo frontmatter `model` nombra el alias.999Con el sufijo `[1m]`, la ventana de contexto de 1M se aplica a todo el uso del alias fijo, incluida la fase Opus en modo plan de [`opusplan`](#opusplan-model-setting) y los [subagentes](/docs/es/sub-agents#choose-a-model) cuyo frontmatter `model` nombra el alias.

990 1000 

991* Claude Code elimina el sufijo antes de enviar el ID de modelo a su proveedor.1001* Claude Code elimina el sufijo antes de enviar el ID de modelo a tu proveedor.

992* Solo añada `[1m]` cuando el modelo subyacente [admita contexto de 1M](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model).1002* Solo añade `[1m]` cuando el modelo subyacente [admita contexto de 1M](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model).

993* El sufijo se lee por variable, no por modelo. En Amazon Bedrock, Plataforma de Agentes de Google Cloud y Microsoft Foundry, un ID de modelo sin `[1m]` en una variable utiliza contexto de 200K incluso si otra variable establece el mismo modelo con el sufijo. Sonnet 5 siempre se ejecuta con la ventana de 1M en estos proveedores y nunca necesita el sufijo.1003* El sufijo se lee por variable, no por modelo. En Amazon Bedrock, Agent Platform de Google Cloud y Microsoft Foundry, un ID de Opus 4.6 o Sonnet 4.6 sin `[1m]` en una variable utiliza contexto de 200K incluso si otra variable establece el mismo modelo con el sufijo.

994 1004 

995Cuando establece una variable `ANTHROPIC_DEFAULT_*_MODEL`, el selector `/model` muestra una fila para ese modelo en lugar de las filas integradas de la familia, incluidas las filas de contexto de 1M. Para alcanzar la ventana de 1M sin añadir el sufijo a esa variable, sus usuarios ejecutan `/model opus[1m]`, y Claude Code aplica el sufijo al modelo que la variable nombra. `/model sonnet[1m]` funciona de la misma manera.1005Cuando estableces una variable `ANTHROPIC_DEFAULT_*_MODEL`, el selector `/model` muestra una fila para ese modelo en lugar de las filas integradas de la familia, incluidas las filas de contexto de 1M. Para alcanzar la ventana de 1M sin añadir el sufijo a esa variable, tus usuarios ejecutan `/model opus[1m]`, y Claude Code aplica el sufijo al modelo que la variable nombra. `/model sonnet[1m]` funciona de la misma manera.

996 1006 

997<Note>1007<Note>

998 Una lista de permitidos `availableModels` entregada a través de [MDM o un archivo de configuración administrado](/docs/es/managed-settings#delivery-mechanisms) aún se aplica cuando se utilizan proveedores de terceros; [la configuración administrada por servidor no se entrega allí](/docs/es/server-managed-settings#platform-availability).1008 Una lista de permitidos `availableModels` entregada a través de [MDM o un archivo de configuración administrada](/docs/es/managed-settings#delivery-mechanisms) aún se aplica cuando se utilizan proveedores de terceros; [la configuración administrada por servidor no se entrega allí](/docs/es/server-managed-settings#platform-availability).

999 1009 

1000 El filtrado coincide con un alias de modelo como `opus`, un prefijo de versión como `claude-opus-4-8`, o el ID de modelo completo en forma de proveedor. Los prefijos específicos del proveedor como `us.anthropic.` no se eliminan, por lo que para permitir un modelo específico, enumere su ID completo en forma de proveedor, o asígnelo a través de [`modelOverrides`](#override-model-ids-per-version). Para un modelo fijo, ese ID es el valor que establece en su variable `ANTHROPIC_DEFAULT_*_MODEL`. Cualquier sufijo `[1m]` se elimina tanto de la entrada de la lista de permitidos como del modelo solicitado antes de coincidir.1010 El filtrado coincide con un alias de modelo como `opus`, un prefijo de versión como `claude-opus-4-8` o el ID de modelo completo en forma de proveedor. Los prefijos específicos del proveedor como `us.anthropic.` no se eliminan, por lo que para permitir un modelo específico, enumera su ID completo en forma de proveedor, o asígnalo a través de [`modelOverrides`](#override-model-ids-per-version). Para un modelo fijo, ese ID es el valor que estableces en su variable `ANTHROPIC_DEFAULT_*_MODEL`. Cualquier sufijo `[1m]` se elimina tanto de la entrada de la lista de permitidos como del modelo solicitado antes de la comparación.

1001</Note>1011</Note>

1002 1012 

1003<h3 id="customize-pinned-model-display-and-capabilities">1013<h3 id="customize-pinned-model-display-and-capabilities">

1004 Personalizar la visualización y capacidades del modelo fijo1014 Personalizar la visualización y capacidades del modelo fijo

1005</h3>1015</h3>

1006 1016 

1007Cuando fija un modelo en un proveedor de terceros, su fila en el selector `/model` muestra el nombre del modelo de forma predeterminada si Claude Code reconoce el ID fijo, y el ID sin procesar en caso contrario:1017Cuando fijas un modelo en un proveedor de terceros, su fila en el selector `/model` muestra el nombre del modelo de forma predeterminada si Claude Code reconoce el ID fijo, y el ID sin procesar en caso contrario:

1008 1018 

1009* **Reconocido**: el ID exacto de un modelo que Claude Code conoce, como su ID de API de Anthropic o la forma de su proveedor o puerta de enlace, con o sin el sufijo `[1m]`. Fije `us.anthropic.claude-sonnet-4-5-20250929-v1:0` y la fila lee `Sonnet 4.5`.1019* **Reconocido**: el ID exacto de un modelo que Claude Code conoce, como su ID de API de Anthropic o la forma que le da tu proveedor o gateway, con o sin el sufijo `[1m]`. Fija `us.anthropic.claude-sonnet-4-5-20250929-v1:0` y la fila dice `Sonnet 4.5`.

1010* **No reconocido**: cualquier otro ID, como un ARN de perfil de inferencia de aplicación o una versión de modelo que Claude Code no conoce, a menos que una entrada de [`modelOverrides`](#override-model-ids-per-version) asigne un modelo a esa cadena exacta. En Microsoft Foundry, los nombres de implementación están definidos por el usuario, por lo que Claude Code nunca reconoce un ID fijo allí, asignado o no, y la fila muestra el nombre de implementación de forma predeterminada.1020* **No reconocido**: cualquier otro ID, como un ARN de perfil de inferencia de aplicación o una versión de modelo que Claude Code no conoce, a menos que una entrada de [`modelOverrides`](#override-model-ids-per-version) asigne un modelo a esa cadena exacta. En Microsoft Foundry, los nombres de despliegue están definidos por el usuario, por lo que Claude Code nunca reconoce un ID fijo allí, esté asignado o no, y la fila muestra el nombre del despliegue de forma predeterminada.

1011 1021 

1012Cuando una fila muestra el nombre del modelo, su descripción predeterminada incluye el ID fijo para que aún pueda ver qué ID está fijo.1022Cuando una fila muestra el nombre del modelo, su descripción predeterminada incluye el ID fijo para que aún puedas ver qué ID está fijado.

1013 1023 

1014Claude Code también puede no reconocer qué características admite un modelo fijo. Puede establecer el nombre de visualización y la descripción usted mismo y declarar capacidades con variables de entorno complementarias para cada modelo fijo.1024Es posible que Claude Code tampoco reconozca qué características admite un modelo fijo. Puedes establecer el nombre de visualización y la descripción tú mismo y declarar capacidades con variables de entorno complementarias para cada modelo fijo.

1015 1025 

1016Estas variables tienen efecto en proveedores de terceros como Amazon Bedrock, Plataforma de Agentes de Google Cloud y Microsoft Foundry. Las variables `_NAME` y `_DESCRIPTION` también tienen efecto cuando `ANTHROPIC_BASE_URL` apunta a una [puerta de enlace LLM](/docs/es/llm-gateway). No tienen efecto cuando se conecta directamente a `api.anthropic.com`.1026Estas variables tienen efecto en proveedores de terceros como Amazon Bedrock, Agent Platform de Google Cloud y Microsoft Foundry. Las variables `_NAME` y `_DESCRIPTION` también tienen efecto cuando `ANTHROPIC_BASE_URL` apunta a un [gateway de LLM](/docs/es/llm-gateway). No tienen efecto cuando te conectas directamente a `api.anthropic.com`.

1017 1027 

1018| Variable de entorno | Descripción |1028| Variable de entorno | Descripción |

1019| - | - |1029| - | - |

1020| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | Nombre de visualización para el modelo Opus fijo en el selector `/model`. Cuando no está configurado, la fila muestra el nombre del modelo si Claude Code reconoce el ID fijo, y el ID fijo en caso contrario |1030| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | Nombre de visualización para el modelo Opus fijo en el selector `/model`. Cuando no está configurada, la fila muestra el nombre del modelo si Claude Code reconoce el ID fijo, y el ID fijo en caso contrario |

1021| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | Descripción de visualización para el modelo Opus fijo en el selector `/model`. Cuando no está configurado, la fila muestra una descripción predeterminada que comienza con `Custom Opus model` |1031| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | Descripción de visualización para el modelo Opus fijo en el selector `/model`. Cuando no está configurada, la fila muestra una descripción predeterminada que comienza con `Custom Opus model` |

1022| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | Lista separada por comas de capacidades que admite el modelo Opus fijo |1032| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | Lista separada por comas de capacidades que admite el modelo Opus fijo |

1023 1033 

1024Los mismos sufijos `_NAME`, `_DESCRIPTION` y `_SUPPORTED_CAPABILITIES` están disponibles para `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL`, `ANTHROPIC_DEFAULT_FABLE_MODEL` y `ANTHROPIC_CUSTOM_MODEL_OPTION`.1034Los mismos sufijos `_NAME`, `_DESCRIPTION` y `_SUPPORTED_CAPABILITIES` están disponibles para `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL`, `ANTHROPIC_DEFAULT_FABLE_MODEL` y `ANTHROPIC_CUSTOM_MODEL_OPTION`.

1025 1035 

1026Claude Code habilita características como [niveles de esfuerzo](#adjust-effort-level) y [pensamiento extendido](#extended-thinking) haciendo coincidir el ID de modelo con patrones conocidos. Los IDs específicos del proveedor como ARNs de Amazon Bedrock o nombres de implementación personalizados a menudo no coinciden con estos patrones, dejando las características compatibles deshabilitadas. Establezca `_SUPPORTED_CAPABILITIES` para indicar a Claude Code qué características admite realmente el modelo:1036Claude Code habilita características como los [niveles de esfuerzo](#adjust-effort-level) y el [pensamiento extendido](#extended-thinking) haciendo coincidir el ID de modelo con patrones conocidos. Los IDs específicos del proveedor, como los ARNs de Amazon Bedrock o los nombres de despliegue personalizados, a menudo no coinciden con estos patrones, lo que deja deshabilitadas características compatibles. Establece `_SUPPORTED_CAPABILITIES` para indicarle a Claude Code qué características admite realmente el modelo:

1027 1037 

1028| Valor de capacidad | Habilita |1038| Valor de capacidad | Habilita |

1029| - | - |1039| - | - |


1031| `xhigh_effort` | El nivel de esfuerzo `xhigh` |1041| `xhigh_effort` | El nivel de esfuerzo `xhigh` |

1032| `max_effort` | El nivel de esfuerzo `max` |1042| `max_effort` | El nivel de esfuerzo `max` |

1033| `thinking` | [Pensamiento extendido](#extended-thinking) |1043| `thinking` | [Pensamiento extendido](#extended-thinking) |

1034| `adaptive_thinking` | Razonamiento adaptativo que asigna dinámicamente el pensamiento basado en la complejidad de la tarea |1044| `adaptive_thinking` | Razonamiento adaptativo que asigna dinámicamente el pensamiento según la complejidad de la tarea |

1035| `interleaved_thinking` | Pensamiento entre llamadas de herramientas |1045| `interleaved_thinking` | Pensamiento entre llamadas a herramientas |

1036 1046 

1037Cuando se establece `_SUPPORTED_CAPABILITIES`, las capacidades enumeradas se habilitan y las capacidades no enumeradas se deshabilitan para el modelo fijo coincidente. Cuando la variable no está configurada, Claude Code vuelve a la detección integrada basada en el ID de modelo.1047Cuando se establece `_SUPPORTED_CAPABILITIES`, Claude Code habilita las capacidades enumeradas y deshabilita las no enumeradas para el modelo fijo coincidente. Cuando la variable no está configurada, Claude Code recurre a la detección integrada basada en el ID de modelo.

1038 1048 

1039Este ejemplo fija Opus a un ARN de modelo personalizado de Amazon Bedrock, establece un nombre amigable y declara sus capacidades:1049Este ejemplo fija Opus a un ARN de modelo personalizado de Amazon Bedrock, establece un nombre descriptivo y declara sus capacidades:

1040 1050 

1041```bash theme={null}1051```bash theme={null}

1042export ANTHROPIC_DEFAULT_OPUS_MODEL='arn:aws:bedrock:us-east-1:123456789012:custom-model/abc'1052export ANTHROPIC_DEFAULT_OPUS_MODEL='arn:aws:bedrock:us-east-1:123456789012:custom-model/abc'


1046```1056```

1047 1057 

1048<h3 id="override-model-ids-per-version">1058<h3 id="override-model-ids-per-version">

1049 Anular IDs de modelo por versión1059 Sobrescribir IDs de modelo por versión

1050</h3>1060</h3>

1051 1061 

1052En plataformas que integran Claude Code y establecen [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/es/env-vars), la configuración de modelo del host tiene precedencia sobre la configuración de modelo 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](/docs/es/settings#exceptions-to-managed-settings-precedence) dice qué claves y variables anula el host.1062En plataformas que integran Claude Code y establecen [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/es/env-vars), la configuración de modelo del host tiene precedencia sobre los ajustes de modelo administrados, 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 la configuración administrada](/docs/es/settings#exceptions-to-managed-settings-precedence) indica qué claves y variables sobrescribe el host.

1053 1063 

1054Las variables de entorno a nivel de familia anteriores configuran un ID de modelo por alias de familia. Si necesita asignar varias versiones dentro de la misma familia a IDs de proveedor distintos, utilice la configuración `modelOverrides` en su lugar.1064Las variables de entorno a nivel de familia anteriores configuran un ID de modelo por alias de familia. Si necesitas asignar varias versiones dentro de la misma familia a IDs de proveedor distintos, usa el ajuste `modelOverrides` en su lugar.

1055 1065 

1056`modelOverrides` asigna IDs de modelo individuales de Anthropic a las cadenas específicas del proveedor que Claude Code envía a la API de su proveedor. Cuando un usuario selecciona un modelo asignado en el selector `/model`, Claude Code utiliza su valor configurado en lugar del predeterminado integrado.1066`modelOverrides` asigna IDs de modelo individuales de Anthropic a las cadenas específicas del proveedor que Claude Code envía a la API de tu proveedor. Cuando un usuario selecciona un modelo asignado en el selector `/model`, Claude Code utiliza tu valor configurado en lugar del predeterminado integrado.

1057 1067 

1058Esto permite a los administradores empresariales enrutar cada versión de modelo a un ARN de perfil de inferencia de Amazon Bedrock específico, nombre de versión de Plataforma de Agentes de Google Cloud o nombre de implementación de Microsoft Foundry para gobernanza, asignación de costos o enrutamiento regional.1068Esto permite a los administradores empresariales enrutar cada versión de modelo a un ARN de perfil de inferencia de Amazon Bedrock específico, un nombre de versión de Agent Platform de Google Cloud o un nombre de despliegue de Microsoft Foundry para gobernanza, asignación de costos o enrutamiento regional.

1059 1069 

1060Establezca `modelOverrides` en su [archivo de configuración](/docs/es/settings#where-settings-live):1070Establece `modelOverrides` en tu [archivo de configuración](/docs/es/settings#where-settings-live):

1061 1071 

1062```json theme={null}1072```json theme={null}

1063{1073{


1069}1079}

1070```1080```

1071 1081 

1072Las claves deben ser IDs de modelo de Anthropic como se enumeran en la [Descripción general de modelos](https://platform.claude.com/docs/en/about-claude/models/overview). Para IDs de modelo con fecha, incluya el sufijo de fecha exactamente como aparece allí. Las claves desconocidas se ignoran.1082Las claves deben ser IDs de modelo de Anthropic como se enumeran en la [Descripción general de modelos](https://platform.claude.com/docs/en/about-claude/models/overview). Para IDs de modelo con fecha, incluye el sufijo de fecha exactamente como aparece allí. Las claves desconocidas se ignoran.

1073 1083 

1074Para detener la [línea de diagnóstico](/docs/es/errors#unrecognized-model-id-on-a-request) `[claude-code:unrecognized_model]` para un ID como un alias de puerta de enlace, añada una entrada con ese ID como su valor.1084Para detener la [línea de diagnóstico](/docs/es/errors#unrecognized-model-id-on-a-request) `[claude-code:unrecognized_model]` para un ID como un alias de gateway, añade una entrada con ese ID como valor.

1075 1085 

1076Las anulaciones reemplazan los IDs de modelo integrados que respaldan cada entrada en el selector `/model`. En Amazon Bedrock, las entradas de `modelOverrides` tienen precedencia sobre cualquier perfil de inferencia que Claude Code descubra automáticamente al inicio. Claude Code pasa valores que ya son específicos del proveedor, como ARNs de perfil de inferencia de Amazon Bedrock o nombres de implementación de Microsoft Foundry, al proveedor tal como están.1086Las sobrescrituras reemplazan los IDs de modelo integrados que respaldan cada entrada en el selector `/model`. En Amazon Bedrock, las entradas de `modelOverrides` tienen precedencia sobre cualquier perfil de inferencia que Claude Code descubra automáticamente al inicio. Claude Code pasa al proveedor tal como están los valores que ya son nativos del proveedor, como los ARNs de perfil de inferencia de Amazon Bedrock o los nombres de despliegue de Microsoft Foundry.

1077 1087 

1078Las anulaciones también se aplican cuando pasa un ID de modelo de Anthropic directamente a través de `--model`, la variable de entorno `ANTHROPIC_MODEL`, o una variable de entorno `ANTHROPIC_DEFAULT_*_MODEL`. En Amazon Bedrock, Plataforma de Agentes de Google Cloud y [Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint), un ID de modelo de Anthropic sin entrada de `modelOverrides` se resuelve al mismo ID específico del proveedor que la fila del selector `/model` para esa versión, cuando el proveedor admite esa versión. Mantle admite un subconjunto de versiones. Para un ID de modelo de Anthropic fuera de ese subconjunto, Claude Code envía el ID sin procesar a Mantle sin asignarlo, a menos que una entrada de `modelOverrides` lo cubra. Antes de v2.1.200, `--model` y los valores de variable de entorno llegaban al proveedor tal como estaban sin pasar por el mapa de anulación.1088Las sobrescrituras también se aplican cuando pasas un ID de modelo de Anthropic directamente a través de `--model`, la variable de entorno `ANTHROPIC_MODEL` o una variable de entorno `ANTHROPIC_DEFAULT_*_MODEL`. En Amazon Bedrock, Agent Platform de Google Cloud y [Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint), un ID de modelo de Anthropic sin entrada de `modelOverrides` se resuelve al mismo ID específico del proveedor que la fila del selector `/model` para esa versión, cuando el proveedor admite esa versión. Mantle admite un subconjunto de versiones. Para un ID de modelo de Anthropic fuera de ese subconjunto, Claude Code envía el ID sin procesar a Mantle sin asignarlo, a menos que una entrada de `modelOverrides` lo cubra. Antes de v2.1.200, `--model` y los valores de las variables de entorno llegaban al proveedor tal como estaban, sin pasar por el mapa de sobrescrituras.

1079 1089 

1080`modelOverrides` funciona junto con `availableModels`. La lista de permitidos se evalúa contra el ID de modelo de Anthropic, no el valor de anulación, por lo que una entrada como `"opus"` en `availableModels` continúa coincidiendo incluso cuando las versiones de Opus se asignan a ARNs. Cuando `enforceAvailableModels` se establece en configuración administrada, el Predeterminado aplicado se resuelve a través de `modelOverrides` desde [configuración administrada](/docs/es/managed-settings#how-claude-code-combines-managed-sources) únicamente. La asignación de un administrador, como una versión fijada a un ARN de perfil de inferencia, se respeta en el Predeterminado aplicado. Las anulaciones de configuración de usuario o proyecto no la afectan.1090`modelOverrides` funciona junto con `availableModels`. La lista de permitidos se evalúa contra el ID de modelo de Anthropic, no contra el valor de sobrescritura, por lo que una entrada como `"opus"` en `availableModels` sigue coincidiendo incluso cuando las versiones de Opus se asignan a ARNs. Cuando `enforceAvailableModels` se establece en la configuración administrada, el Predeterminado aplicado se resuelve a través de `modelOverrides` únicamente desde la [configuración administrada](/docs/es/managed-settings#how-claude-code-combines-managed-sources). La asignación de un administrador, como una versión fijada a un ARN de perfil de inferencia, se respeta en el Predeterminado aplicado. Las sobrescrituras de la configuración de usuario o de proyecto no lo afectan.

1081 1091 

1082Cuando `availableModels` se establece en [configuración administrada](/docs/es/managed-settings), solo `modelOverrides` de configuración administrada se aplican a un ID de modelo de Anthropic pasado directamente a través de `--model` o las variables de entorno anteriores. Claude Code ignora las anulaciones en configuración de usuario o proyecto para esos IDs, y nunca resuelve un ID que la lista administrada excluye a través de `modelOverrides` de ninguna fuente de configuración. Esta restricción de fuente administrada requiere Claude Code v2.1.200 o posterior. Consulte [Restringir la selección de modelo](#restrict-model-selection) para saber cómo se manejan los IDs bloqueados.1092Cuando `availableModels` se establece en la [configuración administrada](/docs/es/managed-settings), solo los `modelOverrides` de la configuración administrada se aplican a un ID de modelo de Anthropic pasado directamente a través de `--model` o de las variables de entorno anteriores. Claude Code ignora las sobrescrituras de la configuración de usuario o de proyecto para esos IDs, y nunca resuelve a través de `modelOverrides` de ninguna fuente de configuración un ID que la lista administrada excluye. Esta restricción de fuente administrada requiere Claude Code v2.1.200 o posterior. Consulta [Restringir la selección de modelo](#restrict-model-selection) para saber cómo se manejan los IDs bloqueados.

1083 1093 

1084<h3 id="prompt-caching-configuration">1094<h3 id="prompt-caching-configuration">

1085 Configuración de almacenamiento en caché de indicaciones1095 Configuración de la caché de prompts

1086</h3>1096</h3>

1087 1097 

1088Claude Code utiliza automáticamente [almacenamiento en caché de indicaciones](/docs/es/prompt-caching) para optimizar el rendimiento y reducir costos. Puede desactivar el almacenamiento en caché de indicaciones globalmente o para niveles de modelo específicos:1098Claude Code utiliza automáticamente la [caché de prompts](/docs/es/prompt-caching) para optimizar el rendimiento y reducir costos. Puedes desactivar la caché de prompts globalmente o para niveles de modelo específicos:

1089 1099 

1090| Variable de entorno | Descripción |1100| Variable de entorno | Descripción |

1091| - | - |1101| - | - |

1092| `DISABLE_PROMPT_CACHING` | Establezca en `1` para desactivar el almacenamiento en caché de indicaciones para todos los modelos. Tiene precedencia sobre la configuración por modelo |1102| `DISABLE_PROMPT_CACHING` | Establécela en `1` para desactivar la caché de prompts para todos los modelos. Tiene precedencia sobre los ajustes por modelo |

1093| `DISABLE_PROMPT_CACHING_HAIKU` | Establezca en `1` para desactivar el almacenamiento en caché de indicaciones para el [modelo Haiku predeterminado](/docs/es/prompt-caching#disable-prompt-caching) |1103| `DISABLE_PROMPT_CACHING_HAIKU` | Establécela en `1` para desactivar la caché de prompts para el [modelo Haiku predeterminado](/docs/es/prompt-caching#disable-prompt-caching) |

1094| `DISABLE_PROMPT_CACHING_SONNET` | Establezca en `1` para desactivar el almacenamiento en caché de indicaciones para el [modelo Sonnet predeterminado](/docs/es/prompt-caching#disable-prompt-caching) |1104| `DISABLE_PROMPT_CACHING_SONNET` | Establécela en `1` para desactivar la caché de prompts para el [modelo Sonnet predeterminado](/docs/es/prompt-caching#disable-prompt-caching) |

1095| `DISABLE_PROMPT_CACHING_OPUS` | Establezca en `1` para desactivar el almacenamiento en caché de indicaciones para el [modelo Opus predeterminado](/docs/es/prompt-caching#disable-prompt-caching) |1105| `DISABLE_PROMPT_CACHING_OPUS` | Establécela en `1` para desactivar la caché de prompts para el [modelo Opus predeterminado](/docs/es/prompt-caching#disable-prompt-caching) |

1096| `DISABLE_PROMPT_CACHING_FABLE` | Establezca en `1` para desactivar el almacenamiento en caché de indicaciones solo para modelos Fable |1106| `DISABLE_PROMPT_CACHING_FABLE` | Establécela en `1` para desactivar la caché de prompts solo para los modelos Fable |

1097 1107 

1098Para elegir el TTL de caché para la conversación principal y para subagentes por separado, consulte [elegir el TTL usted mismo](/docs/es/prompt-caching#choose-the-ttl-yourself). Para saber qué desencadena un error de caché, consulte [Cómo Claude Code utiliza el almacenamiento en caché de indicaciones](/docs/es/prompt-caching).1108Para elegir el TTL de la caché para la conversación principal y para los subagentes por separado, consulta [elegir el TTL tú mismo](/docs/es/prompt-caching#choose-the-ttl-yourself). Para saber qué provoca un fallo de caché, consulta [Cómo Claude Code utiliza la caché de prompts](/docs/es/prompt-caching).

1099 1109 

1100<h2 id="version-history">1110<h2 id="version-history">

1101 Historial de versiones1111 Historial de versiones

Details

551* **Configuración administrada por el servidor**: agréguelas al bloque `env` de la [configuración administrada por el servidor](/docs/es/server-managed-settings) de su organización. Claude Code obtiene esa configuración al iniciarse dondequiera que [se aplique la configuración administrada por el servidor](/docs/es/model-config#surface-coverage), lo que incluye las máquinas de sus usuarios y las sesiones en la nube que no sean sesiones del canal Claude Tag. Las sesiones de Claude Tag no reciben su configuración administrada por el servidor, por lo que esta ruta no las configura.551* **Configuración administrada por el servidor**: agréguelas al bloque `env` de la [configuración administrada por el servidor](/docs/es/server-managed-settings) de su organización. Claude Code obtiene esa configuración al iniciarse dondequiera que [se aplique la configuración administrada por el servidor](/docs/es/model-config#surface-coverage), lo que incluye las máquinas de sus usuarios y las sesiones en la nube que no sean sesiones del canal Claude Tag. Las sesiones de Claude Tag no reciben su configuración administrada por el servidor, por lo que esta ruta no las configura.

552* **Las variables del entorno**: agréguelas a las [variables de entorno](/docs/es/cloud-environments#set-environment-variables) de un entorno en la nube para configurar solo las sesiones que se ejecutan en ese entorno. Esta es la ruta que llega a las sesiones de Claude Tag.552* **Las variables del entorno**: agréguelas a las [variables de entorno](/docs/es/cloud-environments#set-environment-variables) de un entorno en la nube para configurar solo las sesiones que se ejecutan en ese entorno. Esta es la ruta que llega a las sesiones de Claude Tag.

553 553 

554Cualquiera que use un entorno puede leer sus variables, así que no coloques una credencial allí, como un token de recopilador en `OTEL_EXPORTER_OTLP_HEADERS`. Un [secreto de red](/docs/es/cloud-environments#add-api-credentials) en el entorno tampoco ayuda, porque la exportación de telemetría propia de Claude Code es una de las [solicitudes que nunca obtienen el secreto](/docs/es/cloud-environments#requests-that-never-get-the-credential). Si tu recopilador requiere una credencial, configura toda la exportación a través de la configuración administrada por el servidor en su lugar, porque cuando estableces una credencial allí, [Claude Code elimina las variables de endpoint establecidas fuera de la configuración administrada](#how-managed-settings-lock-the-otlp-destination).554Cualquiera que use un entorno puede leer sus variables, así que no coloques una credencial allí, como un token de recopilador en `OTEL_EXPORTER_OTLP_HEADERS`. Un [secreto de red](/docs/es/cloud-environments#add-network-secrets) en el entorno tampoco ayuda, porque la exportación de telemetría propia de Claude Code es una de las [solicitudes que nunca obtienen el secreto](/docs/es/cloud-environments#requests-that-never-get-the-credential). Si tu recopilador requiere una credencial, configura toda la exportación a través de la configuración administrada por el servidor en su lugar, porque cuando estableces una credencial allí, [Claude Code elimina las variables de endpoint establecidas fuera de la configuración administrada](#how-managed-settings-lock-the-otlp-destination).

555 555 

556Tenga en cuenta estas restricciones cuando configure la telemetría para sesiones en la nube:556Tenga en cuenta estas restricciones cuando configure la telemetría para sesiones en la nube:

557 557 


1314* `event.sequence`: Contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)1314* `event.sequence`: Contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

1315* `plugin_id`: identificador del plugin en forma `<name>@<marketplace>`1315* `plugin_id`: identificador del plugin en forma `<name>@<marketplace>`

1316* `hook_event`: tipo de evento hook que emitió las métricas1316* `hook_event`: tipo de evento hook que emitió las métricas

1317* Hasta 20 claves de métrica emitidas por el plugin. Los nombres coinciden con `^[a-z][a-z0-9_]{0,39}$`. Los valores son booleanos o números.1317* Hasta 20 claves de métricas emitidas por el plugin. Los nombres coinciden con `^[a-z][a-z0-9_]{0,39}$`. Los valores son booleanos o numéricos.

1318 1318 

1319<h4 id="compaction-event">1319<h4 id="compaction-event">

1320 Evento de compactación1320 Evento de compactación


1382* `appearance_id`: ID único que vincula los eventos emitidos para una instancia de encuesta1382* `appearance_id`: ID único que vincula los eventos emitidos para una instancia de encuesta

1383* `survey_type`: Qué encuesta produjo el evento. `"session"` es el mensaje de calificación "¿Cómo está Claude?"1383* `survey_type`: Qué encuesta produjo el evento. `"session"` es el mensaje de calificación "¿Cómo está Claude?"

1384* `response`: La selección del usuario en eventos `responded`1384* `response`: La selección del usuario en eventos `responded`

1385* `enabled_via_override`: `true` cuando [`CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL`](/docs/es/env-vars) está establecido. Se emite como booleano, no como cadena. Presente en eventos de encuesta `session`. Filtre en este atributo para confirmar que la anulación se aplica en toda una flota1385* `enabled_via_override`: `true` cuando se establece [`CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL`](/docs/es/env-vars). Se emite como booleano, no como cadena. Presente en los eventos de encuesta `session`. Filtra por este atributo para confirmar que la sobrescritura se aplica en toda una flota

1386 1386 

1387<h4 id="retention-sweep-event">1387<h4 id="retention-sweep-event">

1388 Evento de barrido de retención1388 Evento de barrido de retención


1473 Por ejemplo, configuración gestionada con `apiKeyHelper`, dos variables `env`, y una regla de denegar se exporta como `{"apiKeyHelper":"[REDACTED]","env":{"HTTPS_PROXY":"[REDACTED]","CLAUDE_CODE_ENABLE_TELEMETRY":"[REDACTED]"},"permissions":{"deny":["Read([REDACTED])"]}}`.1473 Por ejemplo, configuración gestionada con `apiKeyHelper`, dos variables `env`, y una regla de denegar se exporta como `{"apiKeyHelper":"[REDACTED]","env":{"HTTPS_PROXY":"[REDACTED]","CLAUDE_CODE_ENABLE_TELEMETRY":"[REDACTED]"},"permissions":{"deny":["Read([REDACTED])"]}}`.

1474 1474 

1475 Claude Code corta el valor en 8 KB de UTF-8, y el valor cortado no es JSON válido1475 Claude Code corta el valor en 8 KB de UTF-8, y el valor cortado no es JSON válido

1476* `managed_settings.settings_truncated` (cuando `managed_settings.settings` está presente): `true` cuando Claude Code cortó `managed_settings.settings` en 8 KB, `false` de lo contrario. Se emite como booleano, no como cadena1476* `managed_settings.settings_truncated` (cuando `managed_settings.settings` está presente): `true` cuando Claude Code cortó `managed_settings.settings` en 8 KB, `false` en caso contrario. Se emite como booleano, no como cadena

1477 1477 

1478<h2 id="interpret-metrics-and-events-data">1478<h2 id="interpret-metrics-and-events-data">

1479 Interpretar datos de métricas y eventos1479 Interpretar datos de métricas y eventos

Details

209| :- | :- | :- | :- |209| :- | :- | :- | :- |

210| Plazo de primer byte | No llegan encabezados de respuesta después de que Claude Code envía la solicitud | API de Anthropic directa y [Claude Platform on AWS](/docs/es/claude-platform-on-aws), incluyendo a través de un proxy HTTPS, pero no cuando `ANTHROPIC_BASE_URL` o `ANTHROPIC_AWS_BASE_URL` los enrutan a través de una [gateway](/docs/es/gateways). Opt-in en Amazon Bedrock con `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`; no se ejecuta en Agent Platform de Google Cloud o Microsoft Foundry | 180 segundos en la API de Anthropic directa, 300 segundos en otros lugares, más un segundo por cada 32KB del cuerpo de la solicitud |210| Plazo de primer byte | No llegan encabezados de respuesta después de que Claude Code envía la solicitud | API de Anthropic directa y [Claude Platform on AWS](/docs/es/claude-platform-on-aws), incluyendo a través de un proxy HTTPS, pero no cuando `ANTHROPIC_BASE_URL` o `ANTHROPIC_AWS_BASE_URL` los enrutan a través de una [gateway](/docs/es/gateways). Opt-in en Amazon Bedrock con `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`; no se ejecuta en Agent Platform de Google Cloud o Microsoft Foundry | 180 segundos en la API de Anthropic directa, 300 segundos en otros lugares, más un segundo por cada 32KB del cuerpo de la solicitud |

211| Perro guardián a nivel de evento | No se analizan eventos de respuesta. En conexiones donde se ejecuta el perro guardián a nivel de byte, los bytes que llegan, incluyendo pings de keep-alive, también reinician este perro guardián, durante aproximadamente cinco minutos sin un evento analizado | Cada proveedor | 300 segundos |211| Perro guardián a nivel de evento | No se analizan eventos de respuesta. En conexiones donde se ejecuta el perro guardián a nivel de byte, los bytes que llegan, incluyendo pings de keep-alive, también reinician este perro guardián, durante aproximadamente cinco minutos sin un evento analizado | Cada proveedor | 300 segundos |

212| Perro guardián a nivel de byte | No llegan bytes en el cable, incluyendo pings de keep-alive de SSE | API de Anthropic directa, [Claude Platform on AWS](/docs/es/claude-platform-on-aws), y conexiones de [gateway](/docs/es/gateways), incluyendo un `ANTHROPIC_BASE_URL` personalizado. Opt-in en respuestas `vnd.amazon.eventstream` de Amazon Bedrock con `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`; no se ejecuta en Agent Platform de Google Cloud o Microsoft Foundry | 180 segundos en la API de Anthropic directa, 300 segundos en otros lugares |212| Perro guardián a nivel de byte | No llegan bytes en el cable, incluyendo pings de keep-alive de SSE | API de Anthropic directa, [Claude Platform on AWS](/docs/es/claude-platform-on-aws), y conexiones de [gateway](/docs/es/gateways), incluyendo un `ANTHROPIC_BASE_URL` personalizado. Opt-in en respuestas `vnd.amazon.eventstream` de Amazon Bedrock con `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`; no se ejecuta en Agent Platform de Google Cloud o Microsoft Foundry | 180 segundos en la API de Anthropic directa. A través de un `ANTHROPIC_BASE_URL` personalizado, 180 segundos cuando Claude Code ha [obtenido los feature flags](/docs/es/env-vars#features-that-need-feature-flag-fetching) y 300 segundos cuando no los ha obtenido. 300 segundos en otros lugares |

213| Tiempo de espera de inactividad del cuerpo | No llegan bytes durante 5 minutos | Proveedores distintos de la API de Anthropic directa, Claude Platform on AWS, y Amazon Bedrock con `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` establecido, a menos que [`API_FORCE_IDLE_TIMEOUT`](/docs/es/env-vars) cambie eso | 5 minutos |213| Tiempo de espera de inactividad del cuerpo | No llegan bytes durante 5 minutos | Proveedores distintos de la API de Anthropic directa, Claude Platform on AWS, y Amazon Bedrock con `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` establecido, a menos que [`API_FORCE_IDLE_TIMEOUT`](/docs/es/env-vars) cambie eso | 5 minutos |

214 214 

215Si establece `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`, el perro guardián a nivel de byte reemplaza el tiempo de espera de inactividad del cuerpo en Bedrock en lugar de ejecutarse junto a él. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` entonces también rige cuánto tiempo un stream de Bedrock puede permanecer en silencio antes de que Claude Code trate la conexión como muerta, dentro de los límites enumerados a continuación. Los bytes que llegan aún no reinician el perro guardián a nivel de evento en Bedrock. Con el registro de depuración activado, cada stream de Bedrock entonces registra un mensaje de depuración que comienza con `wire-heartbeat: _chunkTimes absent`.215Si establece `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`, el perro guardián a nivel de byte reemplaza el tiempo de espera de inactividad del cuerpo en Bedrock en lugar de ejecutarse junto a él. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` entonces también rige cuánto tiempo un stream de Bedrock puede permanecer en silencio antes de que Claude Code trate la conexión como muerta, dentro de los límites enumerados a continuación. Los bytes que llegan aún no reinician el perro guardián a nivel de evento en Bedrock. Con el registro de depuración activado, cada stream de Bedrock entonces registra un mensaje de depuración que comienza con `wire-heartbeat: _chunkTimes absent`.

Details

183| :- | :- | :- |183| :- | :- | :- |

184| `name` | No | Nombre del estilo de salida, mostrado en el selector `/config`. Predeterminado: el nombre del archivo |184| `name` | No | Nombre del estilo de salida, mostrado en el selector `/config`. Predeterminado: el nombre del archivo |

185| `description` | No | Descripción del estilo de salida, mostrada en el selector `/config` |185| `description` | No | Descripción del estilo de salida, mostrada en el selector `/config` |

186| `keep-coding-instructions` | No | Establezca en `true` para mantener las instrucciones integradas de ingeniería de software de Claude Code junto con su estilo. Predeterminado: `false` |186| `keep-coding-instructions` | No | Establece en `true` para mantener la sección de instrucciones integradas de ingeniería de software de Claude Code, que solo incluye el prompt del sistema completo, junto con tu estilo. Consulta [Cómo funcionan los estilos de salida](#how-output-styles-work). Predeterminado: `false` |

187| `force-for-plugin` | No | Solo estilos de salida de plugins. Establezca en `true` para aplicar este estilo automáticamente siempre que el plugin esté habilitado, sin requerir que los usuarios lo seleccionen. Anula la configuración `outputStyle` del usuario. Si varios plugins habilitados establecen esto, Claude Code utiliza el primero cargado. Predeterminado: `false` |187| `force-for-plugin` | No | Solo estilos de salida de plugins. Establezca en `true` para aplicar este estilo automáticamente siempre que el plugin esté habilitado, sin requerir que los usuarios lo seleccionen. Anula la configuración `outputStyle` del usuario. Si varios plugins habilitados establecen esto, Claude Code utiliza el primero cargado. Predeterminado: `false` |

188 188 

189<span id="comparisons-to-related-features" />189<span id="comparisons-to-related-features" />


214Un estilo de salida cambia las instrucciones que Claude Code le da a Claude.214Un estilo de salida cambia las instrucciones que Claude Code le da a Claude.

215 215 

216* Claude Code envía las instrucciones del estilo activo con cada solicitud.216* Claude Code envía las instrucciones del estilo activo con cada solicitud.

217* Los estilos de salida personalizados omiten las instrucciones de ingeniería de software integradas de Claude Code, como cómo delimitar cambios, escribir comentarios y verificar el trabajo, a menos que `keep-coding-instructions` esté configurado en `true`.217* En el prompt del sistema completo, los estilos de salida personalizados omiten la sección de Claude Code con instrucciones de ingeniería de software integradas, como cómo limitar el alcance de los cambios, escribir comentarios y verificar el trabajo, a menos que `keep-coding-instructions` esté configurado en `true`. El prompt del sistema más corto no incluye esa sección, por lo que el campo no tiene efecto allí. Para depender del campo, configura [`CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT`](/docs/es/env-vars#variables) en `0`, lo que selecciona el prompt completo en cualquier modelo.

218 218 

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

220 220 

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

222 222 

overview.md +1 −1

Details

42 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd42 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

43 ```43 ```

44 44 

45 Cuando el instalador termine, abra una nueva ventana de terminal y ejecute `claude --version`. Una instalación que funciona correctamente imprime un número de versión. Si su shell dice que `claude` no se encuentra o no se reconoce, el directorio de instalación aún no está en su PATH: consulte [Corrija su PATH](/docs/es/troubleshoot-install#command-not-found-claude-after-installation).45 El comando de instalación no muestra ningún progreso mientras descarga Claude Code. Cuando el instalador termine, abre una nueva ventana de terminal y ejecuta `claude --version`. Una instalación que funciona correctamente imprime un número de versión. Si tu shell dice que `claude` no se encuentra o no se reconoce, el directorio de instalación aún no está en tu PATH: consulta [Corrige tu PATH](/docs/es/troubleshoot-install#command-not-found-claude-after-installation).

46 46 

47 Si ves `The token '&&' is not a valid statement separator`, estás en PowerShell, no en CMD. Si ves `'irm' is not recognized as an internal or external command`, estás en CMD, no en PowerShell.47 Si ves `The token '&&' is not a valid statement separator`, estás en PowerShell, no en CMD. Si ves `'irm' is not recognized as an internal or external command`, estás en CMD, no en PowerShell.

48 48 

plugin-evals.md +56 −33

Details

337* **Sustituciones**: inserte campos de la entrada de la llamada con `{{input.<field>}}`, y el contenido de un archivo de fixture junto al mock con `{{file:fixtures/{input.<field>}.json}}`.337* **Sustituciones**: inserte campos de la entrada de la llamada con `{{input.<field>}}`, y el contenido de un archivo de fixture junto al mock con `{{file:fixtures/{input.<field>}.json}}`.

338* **`expect:`**: el bloque `expect:` protege la entrada. Si una llamada lo viola, la ejecución se detiene con puntuación 0 y registra por qué, así que un caso puede afirmar qué pidió su plugin al servidor.338* **`expect:`**: el bloque `expect:` protege la entrada. Si una llamada lo viola, la ejecución se detiene con puntuación 0 y registra por qué, así que un caso puede afirmar qué pidió su plugin al servidor.

339* **`error: true`**: establezca `error: true` para devolver el cuerpo como un error de herramienta en su lugar.339* **`error: true`**: establezca `error: true` para devolver el cuerpo como un error de herramienta en su lugar.

340* **`type: agent`**: establece `type: agent` para que el modelo juez responda como el servidor a partir de instrucciones en el cuerpo.340* **`type: agent`**: establece `type: agent` para que el modelo juez responda como el servidor a partir de instrucciones en el cuerpo. Las llamadas a mocks de agente comparten un [presupuesto por ejecución](#mock-call-budget-exceeded) de cuatro veces el `max_turns` del caso, y una llamada que lo supere detiene la ejecución con puntuación 0.

341 341 

342La [referencia de archivo mock](#mock-files) enumera cada clave y los archivos `_server.md` y `_tools.json`.342La [referencia de archivo mock](#mock-files) enumera cada clave y los archivos `_server.md` y `_tools.json`.

343 343 


372| :- | :- |372| :- | :- |

373| Un directorio raíz de plugin, como `.` | Cada caso bajo su directorio de eval, con ese plugin cargado |373| Un directorio raíz de plugin, como `.` | Cada caso bajo su directorio de eval, con ese plugin cargado |

374| Un archivo `prompt.md` o `case.yaml` único | Ese caso, con su plugin envolvente cargado |374| Un archivo `prompt.md` o `case.yaml` único | Ese caso, con su plugin envolvente cargado |

375| Un plugin instalado por nombre, `name` o `name@marketplace` | Los casos en el directorio de eval de la copia instalada, con la copia instalada cargada. Los resultados se escriben bajo `./evals/results/` en su directorio actual, o `./<dir>/results/` con `--eval-dir` |375| Un plugin instalado por nombre, `name` o `name@marketplace` | El plugin y los casos de su directorio de eval, leídos [en su lugar o desde la copia instalada](/docs/es/plugins/loading#in-place-and-copied-plugins). Los resultados se escriben bajo `./evals/results/` en tu directorio actual, o `./<dir>/results/` con `--eval-dir` |

376| `name@skills-dir` | Lo mismo, para un [plugin de directorio de skills](/docs/es/plugins/loading#plugins-shared-through-a-repository) |376| `name@skills-dir` | Lo mismo, para un [plugin de directorio de skills](/docs/es/plugins/loading#plugins-shared-through-a-repository) |

377| Omitido | El directorio actual como una ruta |377| Omitido | El directorio actual como una ruta |

378 378 


504| `cases[].aggregates.score` | Puntuación de ejecución de brazo con promedio para el caso |504| `cases[].aggregates.score` | Puntuación de ejecución de brazo con promedio para el caso |

505| `cases[].aggregates.delta` | Puntuación de brazo con menos puntuación de brazo sin. Omitido cuando los brazos no son comparables |505| `cases[].aggregates.delta` | Puntuación de brazo con menos puntuación de brazo sin. Omitido cuando los brazos no son comparables |

506| `cases[].arms.with[].error` | `null`, o por qué una ejecución terminó anormalmente, como `timed out after 300s`. Una ejecución que comenzó pero terminó mal aún se califica en lo que produjo, así que un error no nulo no implica puntuación 0 |506| `cases[].arms.with[].error` | `null`, o por qué una ejecución terminó anormalmente, como `timed out after 300s`. Una ejecución que comenzó pero terminó mal aún se califica en lo que produjo, así que un error no nulo no implica puntuación 0 |

507| `cases[].arms.with[].aborted` | Presente cuando un [mock](#mock-mcp-servers) `expect:` o `abort_when` detuvo la ejecución, con `server`, `tool`, y `reason`. La ejecución puntúa 0 y `error` permanece `null` |507| `cases[].arms.with[].aborted` | Presente cuando un [mock](#mock-mcp-servers) detuvo la ejecución mediante `expect:`, `abort_when` o el [presupuesto de llamadas de agent-mock](#mock-call-budget-exceeded), con `server`, `tool`, y `reason`. La ejecución puntúa 0 y `error` permanece `null` |

508| `cases[].arms.with[].skippedPaidGraders` | `true` cuando el techo de costo omitió los calificadores de juez de esta ejecución, así que su puntuación no es comparable |508| `cases[].arms.with[].skippedPaidGraders` | `true` cuando el techo de costo omitió los calificadores de juez de esta ejecución, así que su puntuación no es comparable |

509| `costUsd`, `durationSeconds`, `claudeVersion` | Costo estimado a precio de lista incluyendo llamadas de juez, segundos de reloj de pared, y la versión de Claude Code que ejecutó el conjunto |509| `costUsd`, `durationSeconds`, `claudeVersion` | Costo estimado a precio de lista incluyendo llamadas de juez, segundos de reloj de pared, y la versión de Claude Code que ejecutó el conjunto |

510 510 


660| Clave | Predeterminado | Propósito |660| Clave | Predeterminado | Propósito |

661| :- | :- | :- |661| :- | :- | :- |

662| `type` | `fixed` | `fixed` devuelve el cuerpo como está escrito. `agent` trata el cuerpo como instrucciones para el [modelo juez](#command-options), que actúa como el servidor para la ejecución y ve las llamadas anteriores como historial |662| `type` | `fixed` | `fixed` devuelve el cuerpo como está escrito. `agent` trata el cuerpo como instrucciones para el [modelo juez](#command-options), que actúa como el servidor para la ejecución y ve las llamadas anteriores como historial |

663| `expect` | sin establecer | Un mapa de rutas de entrada punteadas a un nombre de tipo como `string`, `number`, `boolean`, `array`, u `object`, una `/regex/`, un literal, o una lista de literales permitidos. Una llamada que lo viola detiene la ejecución con puntuación 0 y se reporta como `aborted` con el servidor, herramienta, y razón |663| `expect` | sin establecer | Un mapa de rutas de entrada con puntos a un nombre de tipo como `string`, `number`, `boolean`, `array` u `object`, una [`/regex/`](#expect-patterns), un literal o una lista de literales permitidos. Una llamada que lo viola detiene la ejecución con puntuación 0 y se reporta como `aborted` con el servidor, la herramienta y la razón |

664| `error` | `false` | Solo `fixed`. Devuelva el cuerpo como un error de herramienta |664| `error` | `false` | Solo `fixed`. Devuelva el cuerpo como un error de herramienta |

665| `abort_when` | sin establecer | Solo `agent`. Prosa enumerando las únicas condiciones bajo las cuales el agente puede detener la ejecución |665| `abort_when` | sin establecer | Solo `agent`. Prosa enumerando las únicas condiciones bajo las cuales el agente puede detener la ejecución |

666 666 

667Dos archivos opcionales se sientan junto a los archivos de herramienta en el directorio de un servidor:667Dos archivos opcionales se sientan junto a los archivos de herramienta en el directorio de un servidor:

668 668 

669* **`_server.md`**: un único mock `type: agent` que responde varias herramientas, enumeradas en su clave frontmatter `tools:`. Un `<tool>.md` para la misma herramienta tiene precedencia. Ponga una guardia `expect:` en el `<tool>.md` individual, no aquí669* **`_server.md`**: un único mock `type: agent` que responde varias herramientas, enumeradas en su clave de frontmatter `tools:`. Un `<tool>.md` para la misma herramienta tiene precedencia. Una guardia `expect:` aquí es un error de carga a menos que `tools:` enumere una sola herramienta, así que pon la guardia en el `<tool>.md` individual

670* **`_tools.json`**: una respuesta `tools/list` guardada del servidor real, para que las herramientas simuladas lleven sus descripciones reales y esquemas de entrada en lugar de un marcador de posición permisivo670* **`_tools.json`**: una respuesta `tools/list` guardada del servidor real, para que las herramientas simuladas lleven sus descripciones reales y esquemas de entrada en lugar de un marcador de posición permisivo

671 671 

672El directorio `mocks/` propio de un caso usa el mismo diseño y anula el archivo de mocks del conjunto archivo por archivo.672El directorio `mocks/` propio de un caso usa el mismo diseño y anula el archivo de mocks del conjunto archivo por archivo.

673 673 

674<h4 id="expect-patterns">

675 Patrones regex en expect

676</h4>

677 

678Un valor `/regex/` en `expect:` usa un dialecto reducido que Claude Code verifica cuando carga el conjunto:

679 

680* Caracteres literales, `.`, escapes como `\d` y clases de caracteres como `[a-z]`

681* Los cuantificadores `*`, `+`, `?` y las formas `{m,n}`, cada uno sobre un solo carácter, escape o clase

682* Un `^` opcional al inicio y un `$` al final

683* Solo los flags `i` y `s`

684 

685Un patrón fuera del dialecto, como uno con un grupo, alternancia, una referencia hacia atrás, lookaround u otro flag, impide que el caso se cargue: el caso obtiene puntuación 0 y su error nombra el patrón. Para permitir varios valores exactos, escribe una lista de literales en lugar de una alternancia.

686 

687Cada patrón verifica valores solo hasta una longitud máxima, y un valor más largo cuenta como una violación. Los cuantificadores pueden reducir esa longitud y un `^` inicial la aumenta, así que ancla los patrones con `^` y usa pocos cuantificadores.

688 

674<h2 id="troubleshooting">689<h2 id="troubleshooting">

675 Solución de problemas690 Solución de problemas

676</h2>691</h2>

677 692 

678Estos son los problemas que los autores encuentran más a menudo, indexados en lo que ve.693Estos son los problemas que los autores encuentran más a menudo, indexados según lo que ves.

679 694 

680<h3 id="plugin-eval-is-currently-in-early-access">695<h3 id="plugin-eval-is-currently-in-early-access">

681 "plugin eval is currently in early access"696 "plugin eval is currently in early access"

682</h3>697</h3>

683 698 

684Su compilación es anterior a la disponibilidad general del comando. Ejecute `claude update`, luego ejecute el comando nuevamente en una sesión nueva.699Tu compilación es anterior a la disponibilidad general del comando. Ejecuta `claude update` y luego ejecuta el comando nuevamente en una sesión nueva.

685 700 

686<h3 id="plugin-eval-is-currently-unavailable">701<h3 id="plugin-eval-is-currently-unavailable">

687 "plugin eval is currently unavailable"702 "plugin eval is currently unavailable"

688</h3>703</h3>

689 704 

690Anthropic ha desactivado el comando del lado del servidor. Nada en su máquina lo vuelve a activar; ejecute `claude update` e intente nuevamente en una sesión nueva más tarde.705Anthropic ha desactivado el comando del lado del servidor. Nada en tu máquina lo vuelve a activar; ejecuta `claude update` e intenta nuevamente más tarde en una sesión nueva.

691 706 

692<h3 id="is-not-a-trusted-plugin-directory-and-this-run-cannot-stop-to-ask-you-about-it">707<h3 id="is-not-a-trusted-plugin-directory-and-this-run-cannot-stop-to-ask-you-about-it">

693 "is not a trusted plugin directory, and this run cannot stop to ask you about it"708 "is not a trusted plugin directory, and this run cannot stop to ask you about it"

694</h3>709</h3>

695 710 

696Esta es la primera ejecución contra un directorio que Claude Code aún no confía, y no puede preguntar porque stdin o stdout no es una terminal o pasó `--json`. Ejecute `claude plugin eval <dir>` una vez en una terminal y responda el aviso, o pase `--trust-plugin` si confía en el código y conjunto del plugin. Vea [Lo que una ejecución puede acceder](#security).711Esta es la primera ejecución contra un directorio en el que Claude Code aún no confía, y no puede preguntarte porque stdin o stdout no es una terminal o pasaste `--json`. Ejecuta `claude plugin eval <dir>` una vez en una terminal y responde a la solicitud, o pasa `--trust-plugin` si confías en el código y el conjunto del plugin. Consulta [Lo que una ejecución puede acceder](#security).

697 712 

698<h3 id="git-is-too-old-for-claude-plugin-eval">713<h3 id="git-is-too-old-for-claude-plugin-eval">

699 "is too old for claude plugin eval"714 "is too old for claude plugin eval"

700</h3>715</h3>

701 716 

702El `git` en su `PATH` es anterior a 2.31, así que `claude plugin eval` se detuvo antes de ejecutar cualquier caso y salió 1 con un mensaje que nombra su versión:717El `git` en tu `PATH` es anterior a 2.31, así que `claude plugin eval` se detuvo antes de ejecutar cualquier caso y salió con 1 con un mensaje que nombra tu versión:

703 718 

704```text theme={null}719```text theme={null}

705git 2.30 is too old for claude plugin eval: it ignores the environment configuration (GIT_CONFIG_COUNT, added in git 2.31) that switches off the repository's git hooks and helper programs for the run. Install git 2.31 or newer.720git 2.30 is too old for claude plugin eval: it ignores the environment configuration (GIT_CONFIG_COUNT, added in git 2.31) that switches off the repository's git hooks and helper programs for the run. Install git 2.31 or newer.

706```721```

707 722 

708Para cada ejecución, Claude Code desactiva los hooks de git, los asistentes de credenciales y otros programas que la configuración de git de un repositorio puede iniciar. Lo hace a través de la configuración del entorno que git lee solo desde la versión 2.31. Un git más antiguo ignora esa configuración, así que el conjunto se detiene en lugar de calificar ejecuciones donde esos programas podrían ejecutarse. Instale git 2.31 o posterior y ejecute el conjunto nuevamente.723Para cada ejecución, Claude Code desactiva los hooks de git, los asistentes de credenciales y otros programas que la configuración de git de un repositorio puede iniciar. Lo hace a través de la configuración del entorno que git lee solo desde la versión 2.31. Un git más antiguo ignora esa configuración, así que el conjunto se detiene en lugar de calificar ejecuciones donde esos programas podrían ejecutarse. Instala git 2.31 o posterior y ejecuta el conjunto nuevamente.

709 724 

710Antes de v2.1.283, `claude plugin eval` no verificaba la versión de git, y en un git más antiguo el conjunto se ejecutaba con esos programas dejados activados.725Antes de v2.1.283, `claude plugin eval` no verificaba la versión de git, y en un git más antiguo el conjunto se ejecutaba con esos programas activados.

711 726 

712<h3 id="no-eval-cases-found">727<h3 id="no-eval-cases-found">

713 "No eval cases found"728 "No eval cases found"

714</h3>729</h3>

715 730 

716No existe `<case>/prompt.md` o `<case>/case.yaml` bajo el directorio de eval en efecto, o sus filtros `--case` y `--tag` no coincidieron con ningún caso. Ejecute desde la raíz del plugin, o ejecute `claude plugin eval init` para crear un conjunto.731No existe `<case>/prompt.md` o `<case>/case.yaml` bajo el directorio de eval en uso, o tus filtros `--case` y `--tag` no coincidieron con ningún caso. Ejecuta desde la raíz del plugin, o ejecuta `claude plugin eval init` para crear un conjunto.

717 732 

718<h3 id="the-baseline-arm-shows-no-plugin-or-delta-is-zero">733<h3 id="the-baseline-arm-shows-no-plugin-or-delta-is-zero">

719 El brazo de línea base muestra sin plugin, o delta es cero734 El brazo de línea base no muestra plugin, o delta es cero

720</h3>735</h3>

721 736 

722Si el resumen no tiene columna `W/OUT`, o el caso falla con "ablation requested but no plugin resolved", la causa habitual es que no se encontró plugin para el caso. Si cada caso reanuda una transcripción a través de `context.history_file`, la columna faltante es esperada en su lugar, porque esos casos se ejecutan [un brazo por defecto](#compare-against-a-no-plugin-baseline). De lo contrario, agregue `plugins: ["../.."]` al caso, dando la ruta desde el directorio del caso al directorio del plugin.737Si el resumen no tiene columna `W/OUT`, o un caso falla con "ablation requested but no plugin resolved", la causa habitual es que no se encontró ningún plugin para el caso. Si cada caso reanuda una transcripción a través de `context.history_file`, en cambio, la columna faltante es esperada, porque esos casos ejecutan [un brazo por defecto](#compare-against-a-no-plugin-baseline). De lo contrario, agrega `plugins: ["../.."]` al caso, indicando la ruta desde el directorio del caso al directorio del plugin.

723 738 

724Si el plugin cargó y `Δ` aún está cerca de cero con su calificador `tool_used: Skill` fallando, eso es generalmente un hallazgo real, significando que la `description` del skill no se activa en la fraseología del prompt. Ajuste la descripción y re-ejecute el mismo conjunto.739Si el plugin sí cargó y `Δ` sigue cerca de cero con tu calificador `tool_used: Skill` fallando, eso suele ser un hallazgo real, lo que significa que la `description` del skill no se activa con la redacción del prompt. Ajusta la descripción y vuelve a ejecutar el mismo conjunto.

725 740 

726<h3 id="agent-type-’-’-not-found-for-one-of-your-plugin’s-agents">741<h3 id="agent-type-’-’-not-found-for-one-of-your-plugin’s-agents">

727 "Agent type '...' not found" for one of your plugin's agents742 "Agent type '...' not found" for one of your plugin's agents

728</h3>743</h3>

729 744 

730Por defecto, cada caso se ejecuta tanto con su plugin como sin él, y las ejecuciones sin él son la [línea base sin plugin](#the-no-plugin-baseline). Cuando Claude distribuye uno de los agentes de su plugin en una ejecución de línea base, la llamada de herramienta Agent falla con `Agent type '<plugin>:<agent-name>' not found. Available agents: ...`. La lista nombra solo agentes que existen sin el plugin, como los [subagentes integrados](/docs/es/sub-agents#built-in-subagents).745Por defecto, cada caso se ejecuta tanto con tu plugin como sin él, y las ejecuciones sin él son la [línea base sin plugin](#the-no-plugin-baseline). Cuando Claude despacha uno de los agentes de tu plugin en una ejecución de línea base, la llamada a herramienta Agent falla con `Agent type '<plugin>:<agent-name>' not found. Available agents: ...`. La lista nombra solo agentes que existen sin el plugin, como los [subagentes integrados](/docs/es/sub-agents#built-in-subagents).

731 746 

732El error es esperado, ya que `Δ` compara sus ejecuciones de plugin contra la línea base. En el resultado JSON, las ejecuciones de línea base están bajo `cases[].arms.without`.747El error es esperado, ya que `Δ` compara las ejecuciones de tu plugin contra la línea base. En el resultado JSON, las ejecuciones de línea base están bajo `cases[].arms.without`.

733 748 

734En ejecuciones con su plugin cargado, un caso que enumera `Agent` en `allowed_tools` puede distribuir uno de los agentes de su plugin por su nombre con espacio de nombres, como `my-plugin:code-reviewer` para el agente `code-reviewer` en un plugin llamado `my-plugin`. Para omitir las ejecuciones de línea base, pase `--ablation none`.749En ejecuciones con tu plugin cargado, un caso que incluye `Agent` en `allowed_tools` puede despachar uno de los agentes de tu plugin por su nombre con espacio de nombres, como `my-plugin:code-reviewer` para el agente `code-reviewer` en un plugin llamado `my-plugin`. Para omitir las ejecuciones de línea base, pasa `--ablation none`.

735 750 

736<h3 id="everything-scores-zero-although-the-right-files-were-produced">751<h3 id="everything-scores-zero-although-the-right-files-were-produced">

737 Todo puntúa cero aunque se produjeron los archivos correctos752 Todo puntúa cero aunque se produjeron los archivos correctos

738</h3>753</h3>

739 754 

740Sus calificadores apuntan a `files`, la lista de rutas creadas, cuando quisieron decir el contenido del archivo. Use `{ source: file, path: <path> }` como el `target` o `focus`. Separadamente, `file_exists` cuenta solo archivos creados durante la ejecución, así que un archivo que el scaffold creó o que Claude solo editó es invisible para él; califique su contenido, o use `tool_used` en `Edit`.755Tus calificadores apuntan a `files`, la lista de rutas creadas, cuando querías referirte al contenido del archivo. Usa `{ source: file, path: <path> }` como el `target` o `focus`.

756 

757Por separado, `file_exists` cuenta solo los archivos creados durante la ejecución, así que un archivo que el scaffold creó o que Claude solo editó es invisible para él; califica su contenido, o usa `tool_used` en `Edit`.

741 758 

742<h3 id="a-regex-over-the-trace-doesn’t-match-text-i-can-see">759<h3 id="a-regex-over-the-trace-doesn’t-match-text-i-can-see">

743 Una expresión regular sobre la traza no coincide con texto que puedo ver760 Una expresión regular sobre la traza no coincide con texto que puedo ver

744</h3>761</h3>

745 762 

746* **Destino incorrecto**: el `target` predeterminado es `last_message`, no la traza.763* **Destino incorrecto**: el `target` predeterminado es `last_message`, no la traza.

747* **Escape JSON**: cuando apunta a `trace`, es JSON por línea, así que las comillas aparecen como `\"`.764* **Escape JSON**: cuando sí apuntas a `trace`, es JSON por línea, así que las comillas aparecen como `\"`.

748* **Sintaxis de expresión regular**: las expresiones regulares usan sintaxis de JavaScript, así que ponga `i` en `flags` en lugar de escribir `(?i)`.765* **Sintaxis de expresión regular**: las expresiones regulares usan sintaxis de JavaScript, así que pon `i` en `flags` en lugar de escribir `(?i)`.

749 766 

750<h3 id="tools-are-denied-mcp-tools-are-missing-or-bash-won’t-run">767<h3 id="tools-are-denied-mcp-tools-are-missing-or-bash-won’t-run">

751 Las herramientas se deniegan, las herramientas MCP faltan, o Bash no se ejecutará768 Las herramientas se deniegan, faltan herramientas MCP o Bash no se ejecuta

752</h3>769</h3>

753 770 

754Cualquier cosa más allá del conjunto de solo lectura necesita su concesión, como `--allow-tools Bash Write`. Sus servidores MCP personales nunca cargan en una ejecución. Los servidores propios del plugin no se inician a menos que [opte por](#mock-mcp-servers), y sus herramientas entonces también necesitan una concesión `--allow-tools "mcp__plugin_<plugin>_<server>__*"`; una herramienta simulada no necesita ninguna.771Cualquier cosa más allá del conjunto de solo lectura necesita tu autorización, como `--allow-tools Bash Write`. Tus servidores MCP personales nunca se cargan en una ejecución. Los servidores propios del plugin no se inician a menos que [lo habilites](#mock-mcp-servers), y sus herramientas además necesitan una autorización `--allow-tools "mcp__plugin_<plugin>_<server>__*"`; una herramienta simulada no necesita ninguna de las dos.

755 772 

756<h3 id="the-run-exits-1-but-the-results-look-fine">773<h3 id="the-run-exits-1-but-the-results-look-fine">

757 La ejecución sale 1 pero los resultados se ven bien774 La ejecución sale con 1 pero los resultados se ven bien

758</h3>775</h3>

759 776 

760El `--threshold` predeterminado es 1.0, así que el comando sale 1 cuando cualquier caso puntúa por debajo de perfecto. Establezca un umbral que coincida con la puntuación que requiere. La salida 1 también cubre un archivo de caso que falló al cargar, que se reporta en stderr por encima de la tabla.777El `--threshold` predeterminado es 1.0, así que el comando sale con 1 cuando cualquier caso puntúa por debajo de perfecto. Establece un umbral que coincida con la puntuación que requieres. La salida 1 también cubre un archivo de caso que no se pudo cargar, lo cual se reporta en stderr por encima de la tabla.

761 778 

762<h3 id="json-output-path-must-end-in-json">779<h3 id="json-output-path-must-end-in-json">

763 `--json output path must end in .json`780 `--json output path must end in .json`

764</h3>781</h3>

765 782 

766Puso el destino después de `--json`, así que se leyó como la ruta de salida. Ponga el destino primero, como en `claude plugin eval . --json`, o dé a `--json` una ruta `.json` explícita.783Pusiste el destino después de `--json`, así que se leyó como la ruta de salida. Pon el destino primero, como en `claude plugin eval . --json`, o dale a `--json` una ruta `.json` explícita.

767 784 

768<h3 id="a-grader-shows-passed-false-under-a-run-that-scored-1-0">785<h3 id="a-grader-shows-passed-false-under-a-run-that-scored-1-0">

769 Un calificador muestra passed: false bajo una ejecución que puntuó 1.0786 Un calificador muestra passed: false en una ejecución que puntuó 1.0

770</h3>787</h3>

771 788 

772Ese calificador se excluye de la puntuación por diseño en una ejecución de dos brazos, y su campo `scored` es `false`. Vea [Comparar con una línea base sin plugin](#compare-against-a-no-plugin-baseline).789Ese calificador se excluye de la puntuación por diseño en una ejecución de dos brazos, y su campo `scored` es `false`. Consulta [Comparar con una línea base sin plugin](#compare-against-a-no-plugin-baseline).

773 790 

774<h3 id="runs-fail-with-a-usage-limit-or-rate-limit-error-partway-through">791<h3 id="runs-fail-with-a-usage-limit-or-rate-limit-error-partway-through">

775 Las ejecuciones fallan con un error de límite de uso o límite de velocidad a mitad de camino792 Las ejecuciones fallan a mitad de camino con un error de límite de uso o de rate limit

793</h3>

794 

795Si tu cuenta alcanza el límite de uso de tu plan o un rate limit de la API mientras se ejecuta un conjunto, cada ejecución posterior termina con ese error, se califica según lo que produjo y generalmente puntúa 0. El conjunto aun así termina y no se marca como `partial`, así que el resultado puede parecer una regresión. Revisa la columna `NOTES` o `cases[].arms.with[].error` en el JSON para ver el mensaje de límite antes de confiar en las puntuaciones, y luego vuelve a ejecutar después de que el límite se reinicie, con `--runs 1` o un filtro `--case` si necesitas mantenerte por debajo de él.

796 

797<h3 id="mock-call-budget-exceeded">

798 "mock call budget exceeded"

776</h3>799</h3>

777 800 

778Si su cuenta alcanza el límite de uso de su plan o un límite de velocidad de API mientras se ejecuta un conjunto, cada ejecución posterior termina con ese error, se califica en lo que produjo, y generalmente puntúa 0. El conjunto aún termina y no se marca `partial`, así que el resultado puede parecer una regresión. Verifique la columna `NOTES` o `cases[].arms.with[].error` en el JSON para el mensaje de límite antes de confiar en las puntuaciones, luego re-ejecute después de que el límite se reinicie, con `--runs 1` o un filtro `--case` si necesita mantenerse bajo él.801Cada [mock](#mock-mcp-servers) de `type: agent` en una ejecución consume un único presupuesto de llamadas de cuatro veces el `max_turns` del caso, que equivale a 40 llamadas con el valor predeterminado de 10. Las llamadas respondidas desde grabaciones de `.replay/` también cuentan, y la línea de progreso `mock budget` del caso muestra el presupuesto. Una llamada que lo supere aborta la ejecución con puntuación 0 y este motivo, así que aumenta `max_turns` en el caso para un skill que hace muchas llamadas a mocks de agente.

779 802 

780<h3 id="runs-time-out-or-hit-the-turn-cap">803<h3 id="runs-time-out-or-hit-the-turn-cap">

781 Las ejecuciones agotan el tiempo o alcanzan el límite de turno804 Las ejecuciones agotan el tiempo o alcanzan el límite de turnos

782</h3>805</h3>

783 806 

784Los predeterminados son 10 turnos y 300 segundos. Aumente `max_turns` y `timeout_seconds` en el caso para tareas que necesiten más, y use `--max-cost-usd` como el techo de costo en lugar de límites ajustados por ejecución.807Los valores predeterminados son 10 turnos y 300 segundos. Aumenta `max_turns` y `timeout_seconds` en el caso para tareas que necesiten más, y usa `--max-cost-usd` como techo de costo en lugar de límites estrictos por ejecución.

785 808 

786<h2 id="see-also">809<h2 id="see-also">

787 Ver también810 Ver también

Details

76 plugin install76 plugin install

77</h3>77</h3>

78 78 

79Instala un plugin desde un marketplace que hayas añadido. `i` es un alias para `install`.79Instala un plugin desde uno de tus marketplaces. `i` es un alias para `install`.

80 80 

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

82claude plugin install <plugin> [options]82claude plugin install <plugin> [options]


129 129 

130Un error de uso, como un `--scope` inválido, no imprime ninguna línea de resultado y sale con `1` con la razón en stderr.130Un error de uso, como un `--scope` inválido, no imprime ninguna línea de resultado y sale con `1` con la razón en stderr.

131 131 

132<h4 id="json-result-for-marketplace-commands">

133 Resultado JSON para comandos de marketplace

134</h4>

135 

136En `plugin marketplace add`, `plugin marketplace remove` y `plugin marketplace update`, `--json` imprime un objeto JSON en la última línea de stdout con los campos `command`, `outcome` y `message`. Lo siguiente es el resultado de `claude plugin marketplace remove your-marketplace --json`:

137 

138```json theme={null}

139{"command":"marketplace-remove","outcome":"ok","marketplace":"your-marketplace","message":"Successfully removed marketplace: your-marketplace"}

140```

141 

142El valor de `command` es `marketplace-add`, `marketplace-remove` o `marketplace-update`. Los campos a continuación aparecen solo cuando aplican:

143 

144* `marketplace`: el nombre del marketplace sobre el que actuó el comando

145* `failureCode`: un código que indica por qué falló el comando, como `invalid_source`

146 

147`plugin marketplace add` y `plugin marketplace remove` pueden no imprimir ninguna línea de resultado cuando el argumento es el [nombre reservado](/docs/es/plugins/marketplace-reference#reserved-names) `anthropic-plugin-directory`, así que verifica el código de salida para ese nombre.

148 

132<h4 id="accept-a-displayed-install-command">149<h4 id="accept-a-displayed-install-command">

133 Aceptar un comando de instalación mostrado150 Aceptar un comando de instalación mostrado

134</h4>151</h4>


672* `target`: la ruta resuelta que Claude Code validó689* `target`: la ruta resuelta que Claude Code validó

673* `manifest`: el resultado del propio manifiesto, o `null` para una ejecución sin manifiesto690* `manifest`: el resultado del propio manifiesto, o `null` para una ejecución sin manifiesto

674* `contents`: resultados por archivo, cada uno nombrando su `file` y llevando arrays `errors`, `warnings` y `notes`691* `contents`: resultados por archivo, cada uno nombrando su `file` y llevando arrays `errors`, `warnings` y `notes`

692 * `gatingHooks`: si cada hook de [mod](/docs/es/plugins/mods/overview) que puede rechazar una acción, como un hook `tool.call`, tiene un [manejador `.catch`](/docs/es/plugins/mods/events#handle-a-hook-that-fails). Cada elemento da `module`, `pattern`, `hook` y `hasCatch`. Requiere Claude Code v2.1.290 o posterior

675 693 

676En salida `2`, el comando no escribe nada a stdout. El mensaje de error va a stderr.694En salida `2`, el comando no escribe nada a stdout. El mensaje de error va a stderr.

677 695 


703| `--scope <scope>` | Archivo de configuración para declarar el marketplace en: `user`, `project` o `local`. Por defecto es `user` |721| `--scope <scope>` | Archivo de configuración para declarar el marketplace en: `user`, `project` o `local`. Por defecto es `user` |

704| `--sparse <paths...>` | Limita el checkout de git a estos directorios, para monorepos. Solo fuentes `github` y `git` |722| `--sparse <paths...>` | Limita el checkout de git a estos directorios, para monorepos. Solo fuentes `github` y `git` |

705| `--claudeai` | Lee el argumento como el nombre de un [marketplace alojado en claude.ai](/docs/es/plugins/install#add-from-claude-ai) en su lugar de una fuente. Requiere Claude Code v2.1.273 o posterior |723| `--claudeai` | Lee el argumento como el nombre de un [marketplace alojado en claude.ai](/docs/es/plugins/install#add-from-claude-ai) en su lugar de una fuente. Requiere Claude Code v2.1.273 o posterior |

724| `--json` | Imprime si el comando tuvo éxito, y su mensaje, como un objeto JSON en la última línea de stdout, en el [formato de resultado JSON](#plugin-json-result). No tiene efecto con `--claudeai`. Requiere Claude Code v2.1.287 o posterior |

706 725 

707`<source>` toma cualquiera de las formas en la tabla a continuación, y su forma decide el tipo de fuente y cómo Claude Code obtiene el marketplace. Para el objeto de fuente resultante, consulta la [referencia de marketplace](/docs/es/plugins/marketplace-reference).726`<source>` toma cualquiera de las formas en la tabla a continuación, y su forma decide el tipo de fuente y cómo Claude Code obtiene el marketplace. Para el objeto de fuente resultante, consulta la [referencia de marketplace](/docs/es/plugins/marketplace-reference).

708 727 


797| Bandera | Descripción |816| Bandera | Descripción |

798| :- | :- |817| :- | :- |

799| `--scope <scope>` | Elimina la declaración de un ámbito de configuración: `user`, `project` o `local`. Sin él, Claude Code elimina la declaración de cada ámbito |818| `--scope <scope>` | Elimina la declaración de un ámbito de configuración: `user`, `project` o `local`. Sin él, Claude Code elimina la declaración de cada ámbito |

819| `--json` | Imprime si el comando tuvo éxito, y su mensaje, como un objeto JSON en la última línea de stdout, en el [formato de resultado JSON](#plugin-json-result). Requiere Claude Code v2.1.287 o posterior |

800 820 

801Elimina un marketplace de cada ámbito:821Elimina un marketplace de cada ámbito:

802 822 


815Actualiza un marketplace, o cada marketplace, desde su fuente para obtener nuevos plugins y versiones. Un marketplace añadido con una rama o etiqueta `ref` se actualiza al último commit de esa ref, no la rama predeterminada del repositorio.835Actualiza un marketplace, o cada marketplace, desde su fuente para obtener nuevos plugins y versiones. Un marketplace añadido con una rama o etiqueta `ref` se actualiza al último commit de esa ref, no la rama predeterminada del repositorio.

816 836 

817```bash theme={null}837```bash theme={null}

818claude plugin marketplace update [name]838claude plugin marketplace update [name] [options]

819```839```

820 840 

821El comando no toma banderas más allá de `--help`.841| Bandera | Descripción |

842| :- | :- |

843| `--json` | Imprime si el comando tuvo éxito, y su mensaje, como un objeto JSON en la última línea de stdout, en el [formato de resultado JSON](#plugin-json-result). Sin un nombre, el comando rechaza `--json` y sale con `1`. Requiere Claude Code v2.1.287 o posterior |

822 844 

823Actualiza un marketplace:845Actualiza un marketplace:

824 846 


826claude plugin marketplace update your-marketplace848claude plugin marketplace update your-marketplace

827```849```

828 850 

829Claude Code imprime `Successfully updated marketplace: your-marketplace`. Cuando omites el nombre, imprime un recuento como `Successfully updated 2 marketplaces`. Sin marketplaces añadidos, imprime `No marketplaces configured` y sale con `0`.851Claude Code imprime `Successfully updated marketplace: your-marketplace`. Cuando omites el nombre, imprime un recuento como `Successfully updated 2 marketplaces`.

830 852 

831<h2 id="plugin-in-a-session">853<h2 id="plugin-in-a-session">

832 /plugin en una sesión854 /plugin en una sesión

Details

1034]1034]

1035```1035```

1036 1036 

1037El comando se ejecuta en un shell, en el directorio de trabajo en el que comenzó la sesión.1037El comando se ejecuta en un shell, en el directorio de trabajo actual de la sesión. Se ejecuta con todos tus permisos de usuario y fuera del [sandbox](/docs/es/sandboxing).

1038 1038 

1039El comando de un monitor está limitado en dónde comienza y qué puede referenciar:1039El comando de un monitor está limitado en dónde comienza y qué puede referenciar:

1040 1040 

Details

52* **Nombres que Claude Code usa para plugins que no provienen de un marketplace**: `inline` para plugins cargados con [`--plugin-dir`](/docs/es/cli-reference), `builtin` para plugins integrados, `skills-dir` para plugins cargados automáticamente desde [`.claude/skills/`](/docs/es/skills) y `synced` para plugins sincronizados desde su cuenta claude.ai. `claude-plugin-test` también está reservado. `skills-dir` también aparece como `{"source": "skills-dir"}` en `strictKnownMarketplaces` y `blockedMarketplaces`, descrito bajo [Valores de fuente válidos solo en listas de políticas](#source-values-valid-only-in-policy-lists).52* **Nombres que Claude Code usa para plugins que no provienen de un marketplace**: `inline` para plugins cargados con [`--plugin-dir`](/docs/es/cli-reference), `builtin` para plugins integrados, `skills-dir` para plugins cargados automáticamente desde [`.claude/skills/`](/docs/es/skills) y `synced` para plugins sincronizados desde su cuenta claude.ai. `claude-plugin-test` también está reservado. `skills-dir` también aparece como `{"source": "skills-dir"}` en `strictKnownMarketplaces` y `blockedMarketplaces`, descrito bajo [Valores de fuente válidos solo en listas de políticas](#source-values-valid-only-in-policy-lists).

53* **`npm`, `pip`, `uv`, `cargo`, `github` y `gh`**: reservado en cualquier mayúscula. Esta verificación requiere Claude Code v2.1.275 o posterior.53* **`npm`, `pip`, `uv`, `cargo`, `github` y `gh`**: reservado en cualquier mayúscula. Esta verificación requiere Claude Code v2.1.275 o posterior.

54* **Nombres que comienzan con `claudeai-`**: reservado para marketplaces alojados en claude.ai. `claude plugin marketplace add` rechaza cualquier otro marketplace que use uno con `Cannot add marketplace "<name>": names starting with "claudeai-" are reserved for marketplaces hosted on claude.ai`.54* **Nombres que comienzan con `claudeai-`**: reservado para marketplaces alojados en claude.ai. `claude plugin marketplace add` rechaza cualquier otro marketplace que use uno con `Cannot add marketplace "<name>": names starting with "claudeai-" are reserved for marketplaces hosted on claude.ai`.

55* **La carpeta de descarga de un marketplace de GitHub registrado, `<owner>-<repo>`**: Claude Code descarga un marketplace agregado desde una fuente `github` como `acme/x-tools` a través de una carpeta llamada `acme-x-tools`, sea cual sea el `name` propio de ese marketplace. Mientras ese marketplace esté registrado con un nombre distinto de `acme-x-tools`, `claude plugin marketplace add` rechaza un marketplace diferente llamado `acme-x-tools` después de descargarlo, e informa `Can't use the marketplace name "acme-x-tools"`. Esta verificación requiere Claude Code v2.1.290 o posterior.

55 56 

56Cuando un marketplace registrado deja de cargarse porque su nombre imita uno oficial, `claude plugin list` y `/plugin` reportan `Claude Code refuses the marketplace name "<name>"`. El mensaje le indica que elimine el marketplace. Eliminarlo también desinstala sus plugins y elimina sus datos guardados. Este mensaje de rechazo nombrado requiere Claude Code v2.1.282 o posterior.57Cuando un marketplace registrado deja de cargarse porque su nombre imita uno oficial, `claude plugin list` y `/plugin` reportan `Claude Code refuses the marketplace name "<name>"`. El mensaje le indica que elimine el marketplace. Eliminarlo también desinstala sus plugins y elimina sus datos guardados. Este mensaje de rechazo nombrado requiere Claude Code v2.1.282 o posterior.

57 58 


498| `Claude Code cannot install plugin "x". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change this entry's "name".` | Error | `plugins[i].name` |499| `Claude Code cannot install plugin "x". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change this entry's "name".` | Error | `plugins[i].name` |

499| `Duplicate plugin name "x" found in marketplace` | Error | Dos entradas comparten un `name` |500| `Duplicate plugin name "x" found in marketplace` | Error | Dos entradas comparten un `name` |

500| `plugins.i.source: Invalid input` | Error | El `source` de la entrada no coincide con ningún tipo. Consulte [Entrada inválida en una fuente](#invalid-input-on-a-source) |501| `plugins.i.source: Invalid input` | Error | El `source` de la entrada no coincide con ningún tipo. Consulte [Entrada inválida en una fuente](#invalid-input-on-a-source) |

502| `plugins.i.source: Invalid string: must start with "./"` | Error | Un `source` de ruta relativa sin el `./` inicial. Antes de v2.1.285, este error imprimía `Invalid input` en su lugar |

501| `plugins[i].source: Path contains "..": <path>` | Error | Un `source` relativo que escapa de la raíz del marketplace |503| `plugins[i].source: Path contains "..": <path>` | Error | Un `source` relativo que escapa de la raíz del marketplace |

502| `source.source: 'unsupported' is a parse-time placeholder and cannot be authored` | Error | `plugins[i].source` |504| `source.source: 'unsupported' is a parse-time placeholder and cannot be authored` | Error | `plugins[i].source` |

503| `Plugin "x" sets headersHelper but is not "strict": false` | Error | `plugins[i].headersHelper`, en una entrada `archive` |505| `Plugin "x" sets headersHelper but is not "strict": false` | Error | `plugins[i].headersHelper`, en una entrada `archive` |


524 526 

525`Invalid input` en un `source` significa que el objeto no coincidió con ningún tipo de fuente. Verifique estas causas:527`Invalid input` en un `source` significa que el objeto no coincidió con ningún tipo de fuente. Verifique estas causas:

526 528 

527* Una ruta relativa que no comienza con `./`, que no sea `"."` o un [nombre desnudo bajo `metadata.pluginRoot`](#relative-path-plugin-source)

528* Un `package` npm que contiene `..`529* Un `package` npm que contiene `..`

529* Un tipo de `source` que no es uno de las [fuentes de plugins](#plugin-sources)530* Un tipo de `source` que no es uno de las [fuentes de plugins](#plugin-sources)

530* Un tipo conocido con un campo obligatorio faltante o de tipo incorrecto, como `github` sin `repo`531* Un tipo conocido con un campo obligatorio faltante o de tipo incorrecto, como `github` sin `repo`

531 532 

533Una ruta relativa que no comienza con `./`, que no sea `"."` o un [nombre desnudo bajo `metadata.pluginRoot`](#relative-path-plugin-source), falla con `Invalid string: must start with "./"`. Antes de v2.1.285, imprimía `Invalid input` como las causas anteriores.

534 

532<h3 id="failures-that-validation-doesn’t-catch">535<h3 id="failures-that-validation-doesn’t-catch">

533 Fallos que la validación no detecta536 Fallos que la validación no detecta

534</h3>537</h3>

Details

25 Impedir que se carguen los mods instalados por los usuarios25 Impedir que se carguen los mods instalados por los usuarios

26</h2>26</h2>

27 27 

28Para evitar que se cargue cualquier mod que traigan tus usuarios, establece la opción `allowManagedModsOnly` en la [protección integrada](#know-what-happens-by-default), un mod de políticas que Claude Code carga antes que cualquier mod que instale un usuario. La opción va en la configuración administrada dentro de `pluginConfigs`, con la clave `cc-plugin-sec-default@builtin`:28Para evitar que cualquier mod que traigan tus usuarios ejecute sus hooks, establece la opción `allowManagedModsOnly` en la [protección integrada](#know-what-happens-by-default), un mod de políticas que Claude Code carga antes que cualquier mod que instale un usuario. La opción va en la configuración administrada dentro de `pluginConfigs`, con la clave `cc-plugin-sec-default@builtin`:

29 29 

30```json managed-settings.json theme={null}30```json managed-settings.json theme={null}

31{31{


41 41 

42Con la opción establecida en la configuración administrada:42Con la opción establecida en la configuración administrada:

43 43 

44* **No se carga ningún mod que traiga un usuario**: eso abarca un mod en un plugin que el usuario instaló, un mod cargado con `--plugin-dir` y un mod que [Claude escribió durante una sesión](/docs/es/plugins/mods/create#ask-claude-for-a-mod)44* **Ningún mod que traiga un usuario ejecuta sus hooks**: eso abarca un mod en un plugin que el usuario instaló, un mod cargado con `--plugin-dir` y un mod que [Claude escribió durante una sesión](/docs/es/plugins/mods/create#ask-claude-for-a-mod)

45* **Los mods de tu organización se siguen cargando**: un mod que [cuenta como de tu organización](#install-your-organizations-mods) no se revisa. Cualquier otro mod cuenta como de un usuario y no se carga. Eso incluye un mod en un plugin que habilitas desde GitHub u otro marketplace remoto, y uno que tu organización activa para sus miembros en claude.ai. Si ninguno cuenta como tuyo, no se carga ningún mod instalado.45* **Los mods de tu organización se siguen ejecutando**: un mod que [cuenta como de tu organización](#install-your-organizations-mods) no se revisa. Cualquier otro mod cuenta como de un usuario y se rechaza. Eso incluye un mod en un plugin que habilitas desde GitHub u otro marketplace remoto, y uno que tu organización activa para sus miembros en claude.ai. Si ninguno cuenta como tuyo, ningún mod instalado ejecuta sus hooks.

46* **Los usuarios no pueden revertirlo**: la protección lee la opción solo desde la configuración administrada, así que la misma entrada en un archivo de configuración de usuario, de proyecto o local, o en un archivo pasado con `--settings`, no cambia nada46* **Los usuarios no pueden revertirlo**: la protección lee la opción solo desde la configuración administrada, así que la misma entrada en un archivo de configuración de usuario, de proyecto o local, o en un archivo pasado con `--settings`, no cambia nada

47* **Un archivo o una política de MDM cubre a todos los proveedores**: cuando entregas la opción como archivo o mediante MDM, funciona igual en Amazon Bedrock, Agent Platform de Google Cloud y Microsoft Foundry. Para la entrega desde la consola de administración de claude.ai, consulta [Disponibilidad por plataforma](/docs/es/server-managed-settings#platform-availability)47* **Un archivo o una política de MDM cubre a todos los proveedores**: cuando entregas la opción como archivo o mediante MDM, funciona igual en Amazon Bedrock, Agent Platform de Google Cloud y Microsoft Foundry. Para la entrega desde la consola de administración de claude.ai, consulta [Disponibilidad por plataforma](/docs/es/server-managed-settings#platform-availability)

48* **Las demás personalizaciones de los usuarios siguen funcionando**: sus [hooks en archivos de configuración](/docs/es/hooks), sus líneas de estado y `/goal` no se ven afectados48* **Las demás personalizaciones de los usuarios siguen funcionando**: sus [hooks en archivos de configuración](/docs/es/hooks) y en el `hooks/hooks.json` de los plugins, sus líneas de estado y `/goal` no se ven afectados

49* **Los mods integrados siguen ejecutándose**: los mods integrados en Claude Code, como el soporte de `AGENTS.md`, tienen cada uno [su propio interruptor](/docs/es/plugins/mods/overview#mods-built-into-claude-code)49* **Los mods integrados siguen ejecutándose**: los mods integrados en Claude Code, como el soporte de `AGENTS.md`, tienen cada uno [su propio interruptor](/docs/es/plugins/mods/overview#mods-built-into-claude-code)

50 50 

51Para confirmar la opción en la máquina de un usuario, inicia Claude Code allí con `--plugin-dir` y la ruta de un directorio que contenga un mod, como `claude --plugin-dir ./first-mod`. Los hooks del mod no se ejecutan, y la transcripción y el registro de depuración muestran el [mensaje de la protección](/docs/es/plugins/mods/troubleshoot#messages-from-the-built-in-guard), que nombra el mod y `allowManagedModsOnly`. Si el mod se carga, consulta [Comprobar que una política está en vigor](/docs/es/managed-settings#check-that-a-policy-is-in-force) y las [reglas que deciden si una opción surte efecto](#set-options-on-the-built-in-guard).51Para confirmar la opción en la máquina de un usuario, inicia Claude Code allí con `--plugin-dir` y la ruta de un directorio que contenga un mod, como `claude --plugin-dir ./first-mod`. Los hooks del mod no se ejecutan, y la transcripción y el registro de depuración muestran el [mensaje de la protección](/docs/es/plugins/mods/troubleshoot#messages-from-the-built-in-guard), que nombra el mod y `allowManagedModsOnly`. Si el mensaje no aparece, consulta [Comprobar que una política está en vigor](/docs/es/managed-settings#check-that-a-policy-is-in-force) y las [reglas que deciden si una opción surte efecto](#set-options-on-the-built-in-guard).

52 52 

53Si estableciste `CLAUDE_CODE_ENABLE_FUNCTION_HOOKS` en `0` durante el acceso anticipado, reemplázala con esta opción. Claude Code v2.1.287 y posteriores ignoran la variable con cualquier valor, así que un `0` en ella deja los mods activados.53Si estableciste `CLAUDE_CODE_ENABLE_FUNCTION_HOOKS` en `0` durante el acceso anticipado, reemplázala con esta opción. Claude Code v2.1.287 y posteriores ignoran la variable con cualquier valor, así que un `0` en ella deja los mods activados.

54 54 


117claude plugin validate ./some-mod117claude plugin validate ./some-mod

118```118```

119 119 

120Dos líneas de la salida describen el código del mod:120Las líneas `hooks:` y `calls:` de la salida describen el código del mod:

121 121 

122```text theme={null}122```text theme={null}

123 ❯ ./register.js hooks: session.start, tool.call, ui.render{component=Pane}123 ❯ ./register.js hooks: session.start, tool.call, ui.render{component=Pane}


150 150 

151| Lo que quieres | Configuración |151| Lo que quieres | Configuración |

152| :- | :- |152| :- | :- |

153| Ningún mod instalado, sin afectar los hooks | Configura [`allowManagedModsOnly`](#set-options-on-the-built-in-guard) y no implementes ningún mod propio |153| No se ejecuta ningún mod instalado, sin afectar los hooks de configuración | Configura [`allowManagedModsOnly`](#set-options-on-the-built-in-guard) y no implementes ningún mod propio |

154| Ningún mod instalado y ningún hook en absoluto, incluidos tus hooks administrados | Establece `disableAllHooks` en `true` |154| Ningún mod instalado y ningún hook en absoluto, incluidos tus hooks administrados | Establece `disableAllHooks` en `true` |

155| Solo los mods de tu organización | Configura la [opción `allowManagedModsOnly`](#stop-user-installed-mods-from-loading) de la protección e [instala tus mods](#install-your-organizations-mods) para que cuenten como tuyos |155| Solo los mods de tu organización | Configura la [opción `allowManagedModsOnly`](#stop-user-installed-mods-from-loading) de la protección e [instala tus mods](#install-your-organizations-mods) para que cuenten como tuyos |

156| Cualquier mod de los marketplaces que apruebes | Mantén tus [restricciones de marketplaces](/docs/es/plugins/org#restrict-what-users-can-install) y establece `disableSideloadFlags` en `true` |156| Cualquier mod de los marketplaces que apruebes | Mantén tus [restricciones de marketplaces](/docs/es/plugins/org#restrict-what-users-can-install) y establece `disableSideloadFlags` en `true` |


158 158 

159Lo que hace cada ajuste:159Lo que hace cada ajuste:

160 160 

161* **`allowManagedModsOnly`**: una opción de la protección integrada. Los mods propios de los usuarios no se cargan, y sus hooks de configuración, líneas de estado y `/goal` siguen funcionando. [Impedir que se carguen los mods instalados por los usuarios](#stop-user-installed-mods-from-loading) enumera lo que abarca.161* **`allowManagedModsOnly`**: una opción de la protección integrada. Claude Code rechaza los mods propios de los usuarios, por lo que no se ejecuta ninguno de sus hooks. Los hooks de configuración, las líneas de estado y `/goal` de los usuarios siguen funcionando. [Impedir que se carguen los mods instalados por los usuarios](#stop-user-installed-mods-from-loading) enumera lo que abarca.

162* **`allowManagedHooksOnly`**: un ajuste más amplio. Solo se cargan [los mods de tu organización](#install-your-organizations-mods) y los mods integrados en Claude Code. Un mod que un usuario instaló por su cuenta no se carga. El ajuste también bloquea los hooks de los archivos de configuración propios de los usuarios. Lee [Qué se ejecuta con `allowManagedHooksOnly`](/docs/es/settings-reference#what-runs-under-allowmanagedhooksonly) antes de configurarlo.162* **`allowManagedHooksOnly`**: un ajuste más amplio. Solo se cargan [los mods de tu organización](#install-your-organizations-mods) y los mods integrados en Claude Code. Un mod que un usuario instaló por su cuenta no se carga. El ajuste también bloquea los hooks de los archivos de configuración propios de los usuarios. Lee [Qué se ejecuta con `allowManagedHooksOnly`](/docs/es/settings-reference#what-runs-under-allowmanagedhooksonly) antes de configurarlo.

163* **`disableAllHooks`**: el ajuste más amplio. En la configuración administrada, detiene los mods de todos los plugins instalados, incluidos los tuyos, y desactiva todos los hooks de los archivos de configuración, por lo que un hook `PreToolUse` en tu configuración administrada ya no bloquea nada. Las líneas de estado personalizadas y `/goal` también dejan de funcionar. Lee [`disableAllHooks`](/docs/es/settings-reference#disableallhooks) antes de configurarlo.163* **`disableAllHooks`**: el ajuste más amplio. En la configuración administrada, detiene los mods de todos los plugins instalados, incluidos los tuyos, y desactiva todos los hooks de los archivos de configuración, por lo que un hook `PreToolUse` en tu configuración administrada ya no bloquea nada. Las líneas de estado personalizadas y `/goal` también dejan de funcionar. Lee [`disableAllHooks`](/docs/es/settings-reference#disableallhooks) antes de configurarlo.

164* **`disableSideloadFlags`**: rechaza `--plugin-dir` y `--plugin-url` al iniciar, e impide que se carguen los mods que Claude escribe durante una sesión. El ajuste también rechaza `--agents` y `--mcp-config`. Lee [`disableSideloadFlags`](/docs/es/settings-reference#disablesideloadflags) antes de configurarlo.164* **`disableSideloadFlags`**: rechaza `--plugin-dir` y `--plugin-url` al iniciar, e impide que se carguen los mods que Claude escribe durante una sesión. El ajuste también rechaza `--agents` y `--mcp-config`. Lee [`disableSideloadFlags`](/docs/es/settings-reference#disablesideloadflags) antes de configurarlo.

165 165 

166Los mods integrados en Claude Code, como la compatibilidad con `AGENTS.md`, no se ven afectados por estos ajustes. Cada uno tiene [su propio interruptor](/docs/es/plugins/mods/overview#mods-built-into-claude-code).166Los mods integrados en Claude Code, como la compatibilidad con `AGENTS.md`, no se ven afectados por estos ajustes. Cada uno tiene [su propio interruptor](/docs/es/plugins/mods/overview#mods-built-into-claude-code).

167 167 

168Un usuario cuyo mod no se cargó encuentra el motivo en su registro de depuración. [Mensajes de rechazo](/docs/es/plugins/mods/troubleshoot#refusal-messages) enumera las líneas para `allowManagedHooksOnly` y `disableAllHooks`, y [Mensajes de la protección integrada](/docs/es/plugins/mods/troubleshoot#messages-from-the-built-in-guard) tiene la línea para `allowManagedModsOnly`.168Un usuario cuyo mod fue rechazado o no se cargó encuentra el motivo en su registro de depuración. [Mensajes de rechazo](/docs/es/plugins/mods/troubleshoot#refusal-messages) enumera las líneas para `allowManagedHooksOnly` y `disableAllHooks`, y [Mensajes de la protección integrada](/docs/es/plugins/mods/troubleshoot#messages-from-the-built-in-guard) tiene la línea para `allowManagedModsOnly`.

169 169 

170<h3 id="allow-only-your-organization’s-mods">170<h3 id="allow-only-your-organization’s-mods">

171 Permitir solo los mods de tu organización171 Permitir solo los mods de tu organización


228 228 

229| Opción | Sin configurar | `true` |229| Opción | Sin configurar | `true` |

230| :- | :- | :- |230| :- | :- | :- |

231| `allowManagedModsOnly` | Se cargan los mods propios de los usuarios | Solo se cargan [los mods de tu organización](#install-your-organizations-mods) y los mods integrados en Claude Code. Claude Code rechaza cualquier otro mod, incluido uno que un usuario instaló o indicó con `--plugin-dir`. |231| `allowManagedModsOnly` | Se ejecutan los mods propios de los usuarios | Solo [los mods de tu organización](#install-your-organizations-mods) y los mods integrados en Claude Code ejecutan sus hooks. Claude Code rechaza cualquier otro mod, incluido uno que un usuario instaló o indicó con `--plugin-dir`. |

232| `allowModsToOverrideDenyRules` | Las reglas de denegación tienen precedencia sobre los mods de los usuarios | Un mod de un usuario que aprueba llamadas a herramientas puede aprobar una llamada que una regla `deny` rechaza |232| `allowModsToOverrideDenyRules` | Las reglas de denegación tienen precedencia sobre los mods de los usuarios | Un mod de un usuario que aprueba llamadas a herramientas puede aprobar una llamada que una regla `deny` rechaza |

233 233 

234Estas reglas deciden si una opción surte efecto:234Estas reglas deciden si una opción surte efecto:


285}285}

286```286```

287 287 

288Un plugin que Claude Code copia en su caché cuenta como de un usuario, incluso cuando `enabledPlugins` en la configuración administrada lo habilita. Eso abarca todos los plugins de una fuente de GitHub, git, URL o npm. Su mod se ejecuta entre los mods de los usuarios, `prependPlugins` y `appendPlugins` lo omiten, y no se carga con `allowManagedModsOnly` ni con `allowManagedHooksOnly`. El registro de depuración del usuario tiene una línea que comienza con el id del plugin y `is enabled by managed settings, but`.288Un plugin que Claude Code copia en su caché cuenta como de un usuario, incluso cuando `enabledPlugins` en la configuración administrada lo habilita. Eso abarca todos los plugins de una fuente de GitHub, git, URL o npm. Su mod se ejecuta entre los mods de los usuarios, `prependPlugins` y `appendPlugins` lo omiten, `allowManagedModsOnly` lo rechaza y `allowManagedHooksOnly` impide que se cargue. El registro de depuración del usuario tiene una línea que comienza con el id del plugin y `is enabled by managed settings, but`.

289 289 

290Claude Code dispara un evento cada vez que está a punto de actuar, por ejemplo, ejecutar una herramienta, y lo pasa a cada mod por turnos. Un mod que cuenta como tuyo [se ejecuta antes que los mods de los usuarios](/docs/es/plugins/mods/events#the-order-mods-run-in) incluso cuando no lo enumeras en ningún lugar. Para establecer su posición, enumera su id en uno de dos ajustes. El id es el nombre del plugin, `@` y el nombre del marketplace, como `acme-guard@acme-tools`.290Claude Code dispara un evento cada vez que está a punto de actuar, por ejemplo, ejecutar una herramienta, y lo pasa a cada mod por turnos. Un mod que cuenta como tuyo [se ejecuta antes que los mods de los usuarios](/docs/es/plugins/mods/events#the-order-mods-run-in) incluso cuando no lo enumeras en ningún lugar. Para establecer su posición, enumera su id en uno de dos ajustes. El id es el nombre del plugin, `@` y el nombre del marketplace, como `acme-guard@acme-tools`.

291 291 

Details

71 71 

72Cuando preguntas por un ticket, Claude puede llamar a `mcp__my-mod__ticket` con su id. El segundo hook obtiene el ticket y devuelve el cuerpo de la respuesta, que Claude lee como el resultado de la herramienta. Cuando el servidor responde con un código de estado de error, Claude lee `Lookup failed with status` y el número.72Cuando preguntas por un ticket, Claude puede llamar a `mcp__my-mod__ticket` con su id. El segundo hook obtiene el ticket y devuelve el cuerpo de la respuesta, que Claude lee como el resultado de la herramienta. Cuando el servidor responde con un código de estado de error, Claude lee `Lookup failed with status` y el número.

73 73 

74<Tip>

75 Cuando [MCP Tool Search](/docs/es/mcp#scale-with-mcp-tool-search) difiere una herramienta registrada, Claude ve su nombre pero no su descripción hasta que la busca. Si Claude debe considerar la herramienta en cada turno, agrega [`isDeferred: false`](/docs/es/plugins/mods/reference#tools) al registro para [cargar la herramienta completa desde el inicio](/docs/es/mcp#exempt-a-server-from-deferral). El campo requiere Claude Code v2.1.293 o posterior, y las versiones anteriores lo ignoran.

76</Tip>

77 

74<h2 id="call-a-model">78<h2 id="call-a-model">

75 Llamar a un modelo79 Llamar a un modelo

76</h2>80</h2>


208 212 

209Cada una de estas llamadas es en sí misma un evento, nombrado según su espacio de nombres y su método sin el `$.`, como `fs.read` para `$.fs.read`. Un mod [anterior en la cadena](/docs/es/plugins/mods/events#the-order-mods-run-in) puede observar, reescribir o rechazar tu llamada, que es la forma en que una organización restringe aquello a lo que acceden los mods.213Cada una de estas llamadas es en sí misma un evento, nombrado según su espacio de nombres y su método sin el `$.`, como `fs.read` para `$.fs.read`. Un mod [anterior en la cadena](/docs/es/plugins/mods/events#the-order-mods-run-in) puede observar, reescribir o rechazar tu llamada, que es la forma en que una organización restringe aquello a lo que acceden los mods.

210 214 

215Un mod puede rechazar tu llamada a `$.process.spawn` después de que el comando haya producido salida o haya terminado, y nada de lo que hizo el comando se deshace. En ese caso, la llamada se rechaza con un mensaje que termina con una de estas cadenas y el motivo del mod que la rechazó:

216 

217* **`$.process.spawn started, and a plugin withheld its result:`**: el mod que la rechazó no había leído la salida del comando hasta el final. Claude Code detiene el comando si sigue en ejecución.

218* **`$.process.spawn ran, and a plugin withheld its result:`**: el mod que la rechazó había leído la salida del comando hasta el final, por lo que el comando ya había terminado

219 

211<h2 id="next-steps">220<h2 id="next-steps">

212 Próximos pasos221 Próximos pasos

213</h2>222</h2>

Details

316✔ Validation passed316✔ Validation passed

317```317```

318 318 

319La línea `hooks:` lista los eventos a los que se engancha tu módulo, cada uno con su filtro entre llaves. La línea `calls:` lista cada método de la API de mods que llama. Un módulo que lee o establece variables de entorno también obtiene las líneas `env reads:` y `env writes:`, y uno que usa [`$.state`](/docs/es/plugins/mods/interface#keep-state) obtiene `state reads:` y `state writes:`.319Revisa la línea `hooks:` para ver los eventos a los que se engancha tu módulo, cada uno con su filtro entre llaves, y `calls:` para ver cada método de la API de mods que llama. Si tu módulo lee o establece variables de entorno, busca también las líneas `env reads:` y `env writes:`, y `state reads:` y `state writes:` si usa [`$.state`](/docs/es/plugins/mods/interface#keep-state). También ves una línea por cada hook que puede rechazar una acción, como `gating hook without .catch: tool.call`, que indica si ese hook tiene un [controlador `.catch`](/docs/es/plugins/mods/events#handle-a-hook-that-fails).

320 320 

321Si en la primera línea falta un evento que querías manejar, Claude Code tampoco llamará a ese hook. La causa habitual es un nombre de evento mal escrito, que el comando reporta como un error como `"tool.calls" is not an event`.321Si en la primera línea falta un evento que querías manejar, Claude Code tampoco llamará a ese hook. La causa habitual es un nombre de evento mal escrito, que el comando reporta como un error como `"tool.calls" is not an event`.

322 322 

Details

245 245 

246Cuando envías un prompt como `open a PR for this change`, tu mensaje se ve igual en la transcripción, y Claude también lee una línea como `Current branch: feature/auth` después de él. Un prompt que no menciona un pull request pasa sin cambios, y `git` no se ejecuta.246Cuando envías un prompt como `open a PR for this change`, tu mensaje se ve igual en la transcripción, y Claude también lee una línea como `Current branch: feature/auth` después de él. Un prompt que no menciona un pull request pasa sin cambios, y `git` no se ejecuta.

247 247 

248Para detener un prompt, devuelve `{ drop: 'the reason' }` sin llamar a `next`. Si tu hook devuelve un `drop` después de que su llamada a `next(e)` dejó pasar el prompt, el turno se ejecuta de todos modos, y el hook [falla](#handle-a-hook-that-fails) con un mensaje que incluye `a drop after its next() was answered`.

249 

248[Otros eventos](/docs/es/plugins/mods/reference#prompts-and-what-claude-reads) cubren el resto de lo que Claude lee: `prompt.section` para cada sección del prompt del sistema, `prompt.context` para el contexto enviado con el primer mensaje y `skill.prompt` para el texto de un skill. El texto de estos hooks que cambia entre solicitudes [invalida la caché de prompts](/docs/es/prompt-caching).250[Otros eventos](/docs/es/plugins/mods/reference#prompts-and-what-claude-reads) cubren el resto de lo que Claude lee: `prompt.section` para cada sección del prompt del sistema, `prompt.context` para el contexto enviado con el primer mensaje y `skill.prompt` para el texto de un skill. El texto de estos hooks que cambia entre solicitudes [invalida la caché de prompts](/docs/es/prompt-caching).

249 251 

250<h3 id="follow-a-turn">252<h3 id="follow-a-turn">


341 343 

342Una línea indica el mod, el evento y el motivo, por ejemplo `my-mod: tool.call hook skipped: threw Error: boom`. Dónde la lees depende de la sesión, como se indica en [Averiguar por qué un mod no hace nada](/docs/es/plugins/mods/troubleshoot#find-out-why-a-mod-does-nothing). Un hook `ui.render` cuyo dibujo no se valida se informa de otra manera, como se describe en [Construir un árbol a partir de elementos](/docs/es/plugins/mods/interface#build-a-tree-from-elements).344Una línea indica el mod, el evento y el motivo, por ejemplo `my-mod: tool.call hook skipped: threw Error: boom`. Dónde la lees depende de la sesión, como se indica en [Averiguar por qué un mod no hace nada](/docs/es/plugins/mods/troubleshoot#find-out-why-a-mod-does-nothing). Un hook `ui.render` cuyo dibujo no se valida se informa de otra manera, como se describe en [Construir un árbol a partir de elementos](/docs/es/plugins/mods/interface#build-a-tree-from-elements).

343 345 

344Para que un hook que bloquea llamadas falle de forma cerrada, agrega un controlador de errores `.catch` que responda en su lugar. Aquí, `guard` es tu función de hook:346Para que un hook que bloquea llamadas falle de forma cerrada, agrega un controlador de errores `.catch` que responda en su lugar. Aquí, `guard` es tu función de hook, y el controlador comprueba [`next.called`](/docs/es/plugins/mods/reference#the-hook-function) para saber si `guard` ya había llamado a `next` cuando falló:

345 347 

346```javascript theme={null}348```javascript theme={null}

347// on returns a registration, and .catch attaches a handler to that one hook349// on returns a registration, and .catch attaches a handler to that one hook

348on('tool.call', { tool: 'Bash' }, guard).catch(async ($, e, next) => {350on('tool.call', { tool: 'Bash' }, guard).catch(async ($, e, next) => {

349 // next.error.kind is 'throw' or 'timeout', which says how guard failed351 // guard had already called next, so return what came back

352 if (next.called) return next(e)

353 // next.error.kind says why the handler was asked, such as 'throw' or 'timeout'

350 return { deny: 'The command guard failed, so this command was not run: ' + next.error.kind }354 return { deny: 'The command guard failed, so this command was not run: ' + next.error.kind }

351})355})

352```356```

353 357 

354Mientras `guard` funciona, el controlador nunca se ejecuta. Cuando `guard` lanza una excepción o agota el tiempo de espera en una llamada a Bash, Claude Code llama al controlador con el mismo evento. El controlador devuelve `{ deny }`, así que el comando no se ejecuta, y Claude lee el texto con `throw` o `timeout` al final. Sin el controlador, Claude Code omitiría `guard` y ejecutaría el comando. El controlador tiene su propio [límite de tiempo](/docs/es/plugins/mods/reference#limits), más corto.358Cuando `guard` lanza una excepción o agota el tiempo de espera en una llamada a Bash, Claude Code llama al controlador con el mismo evento:

359 

360* **`guard` falló antes de llamar a `next`**: el comando no se ejecuta, y Claude lee el texto de `deny` con el tipo al final

361* **`guard` falló después de llamar a `next`**: el `next(e)` del controlador se resuelve en el resultado que produjo la llamada de `guard` sin volver a ejecutar el comando, y Claude lee ese resultado

362 

363El controlador tiene su propio [límite de tiempo](/docs/es/plugins/mods/reference#limits), más corto. Si el propio controlador lanza una excepción o agota el tiempo de espera, Claude Code omite el hook como si no tuviera controlador. Si `guard` no había llamado a `next`, el comando continúa entonces como lo haría sin el mod.

364 

365La misma forma de controlador sirve para una protección en `prompt.submit` o `config.set`. Cuando `next.called` es false, devuelve el rechazo que la [referencia de eventos](/docs/es/plugins/mods/reference#events) indica para ese evento: `{ drop: 'the reason' }` para `prompt.submit`, `{ deny: 'the reason' }` para `config.set`.

366 

367En `tool.check` y `plugin.register`, un rechazo devuelto después de que `next` se resolvió sigue siendo válido, así que devuélvelo sin comprobar `next.called`:

368 

369* **`tool.check`**: devuelve `{ decision: 'deny', reason: 'the reason' }`

370* **`plugin.register`**: devuelve `{ refuse: 'the reason' }`, como se muestra en [Rechazar mods cuando tu comprobación falla](/docs/es/plugins/mods/admin#refuse-mods-when-your-check-fails)

355 371 

356<h2 id="next-steps">372<h2 id="next-steps">

357 Próximos pasos373 Próximos pasos

Details

443 443 

444En una sesión iniciada con `--plugin-dir`, una línea de la transcripción lo indica, por ejemplo `ui.render (Pane) refused: Text prop "bogusProp" is not allowed; the engine drew its own`. El [registro de depuración](/docs/es/plugins/mods/troubleshoot#read-the-debug-log) lo registra como `ui.render (Pane): a hook returned a tree that does not validate` con el mismo motivo. No aparece nada más en la sesión, así que cuando un dibujo no se muestre, revisa esa línea o el registro.444En una sesión iniciada con `--plugin-dir`, una línea de la transcripción lo indica, por ejemplo `ui.render (Pane) refused: Text prop "bogusProp" is not allowed; the engine drew its own`. El [registro de depuración](/docs/es/plugins/mods/troubleshoot#read-the-debug-log) lo registra como `ui.render (Pane): a hook returned a tree that does not validate` con el mismo motivo. No aparece nada más en la sesión, así que cuando un dibujo no se muestre, revisa esa línea o el registro.

445 445 

446<h3 id="link-in-the-desktop-app">

447 `Link` en la aplicación Desktop

448</h3>

449 

450En la aplicación Desktop, un `Link` se dibuja como texto sin formato a menos que su `href` cumpla estos requisitos:

451 

452* **Esquema y host**: una URL `https:`, o una URL `http://localhost` como `http://localhost:3000`

453* **Sin `@`**: escribe un `@` en la ruta o la consulta como `%40`

454* **Escritura**: lo que devuelve `new URL(href).href`, salvo por una `/` faltante después del host. Eso excluye un host en mayúsculas, un espacio y `:443` en una URL `https:`.

455 

456En la terminal, estos requisitos no se aplican.

457 

458<h3 id="when-a-client-fails">

459 Cuando un `Client` falla

460</h3>

461 

462En la terminal, cuando falla el archivo que ejecuta un `Client`, una línea atenuada como `my-mod: Client client/spinner.js: boom` ocupa el lugar del `Client`, y el resto de tu dibujo se sigue mostrando.

463 

464Si tu mod maneja [`ui.fault`](/docs/es/plugins/mods/reference#interface), Claude Code entonces [vuelve a dibujar el sitio](#when-claude-code-redraws-without-being-asked).

465 

446<h3 id="draw-a-grid-of-colored-cells">466<h3 id="draw-a-grid-of-colored-cells">

447 Dibuja una cuadrícula de celdas de colores467 Dibuja una cuadrícula de celdas de colores

448</h3>468</h3>


806Estas reglas se aplican al código:826Estas reglas se aplican al código:

807 827 

808* **Escribe `plugin` y `key` como literales de cadena**: `claude plugin validate` los lee de tu código fuente828* **Escribe `plugin` y `key` como literales de cadena**: `claude plugin validate` los lee de tu código fuente

829* **Guarda el resultado de cada llamada a `atom` en una `const`**: si declaras `count` con `let`, la validación falla con `takes a source the scan can read`

809* **Declara cada valor en el archivo de declaración de tipos**: de lo contrario, la validación falla con `hello-tabs.count is not declared`830* **Declara cada valor en el archivo de declaración de tipos**: de lo contrario, la validación falla con `hello-tabs.count is not declared`

810* **Escribe desde un callback o desde el hook de otro evento**: un hook `ui.render` puede leer el estado pero no puede escribirlo, así que escribe desde `onPress`, `onSubmit` o un hook para otro evento831* **Escribe desde un callback o desde el hook de otro evento**: un hook `ui.render` puede leer el estado pero no puede escribirlo, así que escribe desde `onPress`, `onSubmit` o un hook para otro evento

811 832 

Details

113Los mods están activados de forma predeterminada. En la terminal, usa Claude Code v2.1.287 o posterior. La app de escritorio incluye su propia copia de Claude Code, y los mods funcionan ahí a partir de v2.1.286. Comprueba la versión en el lugar donde usas los mods:113Los mods están activados de forma predeterminada. En la terminal, usa Claude Code v2.1.287 o posterior. La app de escritorio incluye su propia copia de Claude Code, y los mods funcionan ahí a partir de v2.1.286. Comprueba la versión en el lugar donde usas los mods:

114 114 

115* **Terminal**: en tu shell, ejecuta `claude --version`. Si tu versión es anterior, [actualiza Claude Code](/docs/es/setup#update-claude-code).115* **Terminal**: en tu shell, ejecuta `claude --version`. Si tu versión es anterior, [actualiza Claude Code](/docs/es/setup#update-claude-code).

116* **App de escritorio**: en una sesión local en la pestaña Code, escribe `/status` y lee la fila **Claude Code**, que muestra una versión como `2.1.286`. Si tu versión es anterior, actualiza la app de escritorio.116* **App de escritorio**: en una sesión local en la pestaña Code, escribe `/status` y lee la fila **Claude Code**, que muestra una versión como `2.1.286`. Si tu versión es anterior, [actualiza la app de escritorio](/docs/es/desktop#claude-code-version-in-the-code-tab).

117 117 

118Para desactivar los mods, elige cuántos detener y durante cuánto tiempo. Para volver a activarlos, deshaz el mismo cambio:118Para desactivar los mods, elige cuántos detener y durante cuánto tiempo. Para volver a activarlos, deshaz el mismo cambio:

119 119 

Details

43| `next.origin` | `{ plugin, tier }` de quien disparó el evento. El propio Claude Code es `{ plugin: 'engine', tier: 'core' }`. El `tier` de un mod es su grupo de prioridad en el [orden en que se ejecutan los mods](/docs/es/plugins/mods/events#the-order-mods-run-in): `prepend`, `user`, `append` o `builtin`. |43| `next.origin` | `{ plugin, tier }` de quien disparó el evento. El propio Claude Code es `{ plugin: 'engine', tier: 'core' }`. El `tier` de un mod es su grupo de prioridad en el [orden en que se ejecutan los mods](/docs/es/plugins/mods/events#the-order-mods-run-in): `prepend`, `user`, `append` o `builtin`. |

44| `next.budget` | El límite de tiempo del hook en milisegundos: `next.budget.ms` es el límite completo y `next.budget.remainingMs` es lo que queda en este momento |44| `next.budget` | El límite de tiempo del hook en milisegundos: `next.budget.ms` es el límite completo y `next.budget.remainingMs` es lo que queda en este momento |

45| `next.to(e, tier)` | Salta a un tier posterior, que es `append`, `builtin` o `core`. `next.to(e, 'append')` omite los mods que instaló un usuario. Solo un mod en `prependPlugins` o `appendPlugins` puede llamarlo. |45| `next.to(e, tier)` | Salta a un tier posterior, que es `append`, `builtin` o `core`. `next.to(e, 'append')` omite los mods que instaló un usuario. Solo un mod en `prependPlugins` o `appendPlugins` puede llamarlo. |

46| `next.error`, `next.called` | Solo en un controlador `.catch`. `next.error.kind` es `throw` o `timeout`, `next.error.message` es el texto del error y `next.called` es `true` cuando el hook que falló había llamado a `next`. |46| `next.error` | Solo en un controlador `.catch`. `kind` es `throw` o `timeout` cuando el hook falló, y `message` es el texto del error. `kind` es `re-entry` cuando el hook se omitió porque el evento provino de una de sus propias llamadas a la API de mods, y `cause` es `lent` si un método que otro mod agrega a la API de mods disparó ese evento. `re-entry` y `cause` requieren Claude Code v2.1.292 o posterior. |

47| `next.called` | Solo en un controlador `.catch`. `true` cuando el hook había llamado a `next`. |

47 48 

48<h2 id="events">49<h2 id="events">

49 Eventos50 Eventos


258| [`Box`](/docs/es/plugins/mods/interface#build-a-tree-from-elements) | `key`, diseño flex, `gap`, `padding`, `margin`, `width`, `height`, [`borderStyle`](#box-border-styles), `backgroundColor`, `position`, `hover` | ✓ | ✓ |259| [`Box`](/docs/es/plugins/mods/interface#build-a-tree-from-elements) | `key`, diseño flex, `gap`, `padding`, `margin`, `width`, `height`, [`borderStyle`](#box-border-styles), `backgroundColor`, `position`, `hover` | ✓ | ✓ |

259| [`Text`](/docs/es/plugins/mods/interface#build-a-tree-from-elements) | `color`, `backgroundColor`, `bold`, `italic`, `underline`, `dimColor`, `inverse`, `wrap` | ✓ | ✓ |260| [`Text`](/docs/es/plugins/mods/interface#build-a-tree-from-elements) | `color`, `backgroundColor`, `bold`, `italic`, `underline`, `dimColor`, `inverse`, `wrap` | ✓ | ✓ |

260| [`Button`](/docs/es/plugins/mods/interface#respond-to-presses-and-typing) | `key`, `label`, `onPress`, `hotkey`, `plain`, `dimColor`, `autoFocus`, `action` | ✓ | ✓ |261| [`Button`](/docs/es/plugins/mods/interface#respond-to-presses-and-typing) | `key`, `label`, `onPress`, `hotkey`, `plain`, `dimColor`, `autoFocus`, `action` | ✓ | ✓ |

261| `Link` | `href`, `label` | ✓ | ✓ |262| [`Link`](/docs/es/plugins/mods/interface#link-in-the-desktop-app) | `href`, `label`. Consulta [Límites](#limits). | ✓ | ✓ |

262| `Code` | El código | ✓ | ✓ |263| [`Code`](/docs/es/plugins/mods/gallery#show-code-and-changes) | `source`, `language`, `path`, `startLine`, `format`, `wrap` | ✓ | ✓ |

263| `Markdown` | `text`, `key`, `dimColor`, `onLinkPress`, `pressableLinks` | ✓ | ✓ |264| `Markdown` | `text`, `key`, `dimColor`, `onLinkPress`, `pressableLinks` | ✓ | ✓ |

264| [`Input`](/docs/es/plugins/mods/interface#take-typed-input-and-draw-a-row-for-each-item) | `key`, `label`, `placeholder`, `value`, `submitLabel`, `onSubmit`, `onInput`, `autoFocus` | ✓ | ✓ |265| [`Input`](/docs/es/plugins/mods/interface#take-typed-input-and-draw-a-row-for-each-item) | `key`, `label`, `placeholder`, `value`, `submitLabel`, `onSubmit`, `onInput`, `autoFocus` | ✓ | ✓ |

265| `Select` | `key`, `label`, `options`, `value`, `onSelect`, `autoFocus` | ✓ | ✓ |266| `Select` | `key`, `label`, `options`, `value`, `onSelect`, `autoFocus` | ✓ | ✓ |

266| `Svg` | Un documento SVG, hasta 131,072 caracteres | | ✓ |267| `Svg` | Un documento SVG, hasta 131,072 caracteres | | ✓ |

267| [`Client`](/docs/es/plugins/mods/interface#build-a-tree-from-elements) | `module`, `key` | ✓ | ✓ |268| [`Client`](/docs/es/plugins/mods/interface#build-a-tree-from-elements) | `module`, `key` | ✓ | ✓ |

268| [`Raster`](/docs/es/plugins/mods/interface#draw-a-grid-of-colored-cells) | `key`, `columns` hasta 512, `rows` hasta 256, `cells`. Consulta [Dibuja una cuadrícula de celdas de colores](/docs/es/plugins/mods/interface#draw-a-grid-of-colored-cells). | ✓ | |269| [`Raster`](/docs/es/plugins/mods/interface#draw-a-grid-of-colored-cells) | `key`, `columns` hasta 512, `rows` hasta 256, `cells`. Consulta [Dibuja una cuadrícula de celdas de colores](/docs/es/plugins/mods/interface#draw-a-grid-of-colored-cells). | ✓ | |

269| `Image` | Bytes PNG o RGBA de hasta 2 MiB, o una ruta de archivo | ✓ | |270| `Image` | Bytes PNG o RGBA de hasta 2 MiB, o una ruta de archivo, `columns` y `rows` hasta 255, y texto `alt`. | ✓ | |

270 271 

271Más reglas de `Button`: `action` nombra una de las propias [acciones de atajos de teclado](/docs/es/keybindings) de Claude Code, y el atajo del usuario para ella presiona el botón cuando ese atajo es un acorde o una tecla con modificador. Un `hotkey` de dígito en un botón de la banda también se activa cuando el usuario escribe solo ese dígito en un prompt vacío y hace una pausa. Cuando dos botones de un mismo dibujo nombran el mismo `hotkey`, el último se queda con él. `autoFocus` solo acepta `true` en cualquier control, así que omite la prop para dejarla desactivada.272Más reglas de `Button`: `action` nombra una de las propias [acciones de atajos de teclado](/docs/es/keybindings) de Claude Code, y el atajo del usuario para ella presiona el botón cuando ese atajo es un acorde o una tecla con modificador. Un `hotkey` de dígito en un botón de la banda también se activa cuando el usuario escribe solo ese dígito en un prompt vacío y hace una pausa. Cuando dos botones de un mismo dibujo nombran el mismo `hotkey`, el último se queda con él. `autoFocus` solo acepta `true` en cualquier control, así que omite la prop para dejarla desactivada.

272 273 


295 Límites296 Límites

296</h2>297</h2>

297 298 

298Las llamadas a la API de hooks y mods se ejecutan con límites de tiempo y de tamaño. Claude Code omite un hook que supera un límite de tiempo y rechaza una llamada que supera un límite de tamaño.299Las llamadas a la API de hooks y mods se ejecutan con límites de tiempo y de tamaño. Claude Code omite un hook que supera un límite de tiempo.

299 300 

300| Límite | Valor |301| Límite | Valor |

301| :- | :- |302| :- | :- |


306| `maxTokens` de `$.model.complete` | 1024 de forma predeterminada, hasta 64,000 o el límite de salida del modelo |307| `maxTokens` de `$.model.complete` | 1024 de forma predeterminada, hasta 64,000 o el límite de salida del modelo |

307| `$.fs.read` y `$.fs.write` | 4 MiB por archivo |308| `$.fs.read` y `$.fs.write` | 4 MiB por archivo |

308| Texto en un árbol | Se dibujan los primeros 100,000 caracteres |309| Texto en un árbol | Se dibujan los primeros 100,000 caracteres |

310| El `language` o `path` de un `Code`, el `value` de una opción de `Select` o el `module` de un `Client` | 10,000 caracteres. Si alguno es más largo, Claude Code [dibuja su propia versión del sitio](/docs/es/plugins/mods/interface#build-a-tree-from-elements). |

311| El `href` de un `Link` | 2,048 caracteres. Un `href` más largo impide que se dibuje todo el árbol. |

309| `$.store` | 4 MiB de JSON en total |312| `$.store` | 4 MiB de JSON en total |

310| `$.session.messages()` | Las 4,096 entradas más recientes |313| `$.session.messages()` | Las 4,096 entradas más recientes |

311| 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. |314| 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. |


325| `CLAUDE_CODE_PLUGIN_DIRS` | Entorno, o `env` en `~/.claude/settings.json` | Directorios de plugins que se cargan como lo hace `--plugin-dir`, para aplicaciones a las que no puedes pasar un flag. Rutas absolutas separadas por `:`, o por `;` en Windows. |328| `CLAUDE_CODE_PLUGIN_DIRS` | Entorno, o `env` en `~/.claude/settings.json` | Directorios de plugins que se cargan como lo hace `--plugin-dir`, para aplicaciones a las que no puedes pasar un flag. Rutas absolutas separadas por `:`, o por `;` en Windows. |

326| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | Entorno | `1` hace que una sesión no interactiva de larga duración recargue los mods de `--plugin-dir` al guardar |329| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | Entorno | `1` hace que una sesión no interactiva de larga duración recargue los mods de `--plugin-dir` al guardar |

327| `prependPlugins`, `appendPlugins` | Configuración administrada. Configuración de usuario solo en una máquina sin configuración administrada, para un usuario que no haya iniciado sesión con un plan Team o Enterprise. | Listas de ids de plugins, como `acme-guard@acme-tools`. Los mods en `prependPlugins` se ejecutan antes de cada mod que instala un usuario, y los mods en `appendPlugins` se ejecutan después, en el orden indicado. Consulta [El orden en que se ejecutan los mods](/docs/es/plugins/mods/events#the-order-mods-run-in). |330| `prependPlugins`, `appendPlugins` | Configuración administrada. Configuración de usuario solo en una máquina sin configuración administrada, para un usuario que no haya iniciado sesión con un plan Team o Enterprise. | Listas de ids de plugins, como `acme-guard@acme-tools`. Los mods en `prependPlugins` se ejecutan antes de cada mod que instala un usuario, y los mods en `appendPlugins` se ejecutan después, en el orden indicado. Consulta [El orden en que se ejecutan los mods](/docs/es/plugins/mods/events#the-order-mods-run-in). |

328| `allowManagedModsOnly` | Configuración administrada, como una [opción de la protección integrada](/docs/es/plugins/mods/admin#set-options-on-the-built-in-guard) | Solo se cargan los mods que [cuentan como de tu organización](/docs/es/plugins/mods/admin#install-your-organizations-mods) y los mods integrados en Claude Code. Los hooks de configuración de los usuarios siguen ejecutándose. |331| `allowManagedModsOnly` | Configuración administrada, como una [opción de la protección integrada](/docs/es/plugins/mods/admin#set-options-on-the-built-in-guard) | Solo los mods que [cuentan como de tu organización](/docs/es/plugins/mods/admin#install-your-organizations-mods) y los mods integrados en Claude Code ejecutan sus hooks. Los hooks de configuración de los usuarios siguen ejecutándose. |

329| `allowModsToOverrideDenyRules` | Configuración administrada, como una [opción de la protección integrada](/docs/es/plugins/mods/admin#set-options-on-the-built-in-guard) | Permite que un mod instalado por un usuario apruebe una llamada a herramienta que una regla `deny` rechaza |332| `allowModsToOverrideDenyRules` | Configuración administrada, como una [opción de la protección integrada](/docs/es/plugins/mods/admin#set-options-on-the-built-in-guard) | Permite que un mod instalado por un usuario apruebe una llamada a herramienta que una regla `deny` rechaza |

330| `allowManagedHooksOnly` | Configuración administrada | Bloquea los hooks y los mods instalados que no son de tu organización. Consulta [qué sigue ejecutándose](/docs/es/settings-reference#what-runs-under-allowmanagedhooksonly). |333| `allowManagedHooksOnly` | Configuración administrada | Bloquea los hooks y los mods instalados que no son de tu organización. Consulta [qué sigue ejecutándose](/docs/es/settings-reference#what-runs-under-allowmanagedhooksonly). |

331| `disableAllHooks` | Cualquier archivo de configuración | En la configuración administrada, no se ejecuta ningún mod ni hook de un plugin instalado. En tu propia configuración, lo que administra tu organización sigue ejecutándose. Consulta [`disableAllHooks`](/docs/es/settings-reference#disableallhooks). |334| `disableAllHooks` | Cualquier archivo de configuración | En la configuración administrada, no se ejecuta ningún mod ni hook de un plugin instalado. En tu propia configuración, lo que administra tu organización sigue ejecutándose. Consulta [`disableAllHooks`](/docs/es/settings-reference#disableallhooks). |

Details

107 107 

108Un stub para una llamada a la API de mods devuelve un objeto con un campo `value`, que contiene aquello con lo que se resuelve la llamada en tu mod: `{ value: 7 }` hace que `$.store.get` se resuelva con `7`. Un stub para uno de los eventos de Claude Code, como [`turn.step`](/docs/es/plugins/mods/reference#turns) o `tool.call`, devuelve el resultado propio de ese evento, como `{ result: 'ok' }`. `$.session.send` y `$.prompt.fill` también toman el resultado de su evento, como muestra la tabla. [Consultar lo que devuelve un stub](#look-up-what-a-stub-returns) muestra qué forma toma cada nombre común. Estos errores significan que un stub es incorrecto o falta. La salida de una prueba fallida incluye un bloque encabezado por `the engine reported:`, y cada error aparece allí:108Un stub para una llamada a la API de mods devuelve un objeto con un campo `value`, que contiene aquello con lo que se resuelve la llamada en tu mod: `{ value: 7 }` hace que `$.store.get` se resuelva con `7`. Un stub para uno de los eventos de Claude Code, como [`turn.step`](/docs/es/plugins/mods/reference#turns) o `tool.call`, devuelve el resultado propio de ese evento, como `{ result: 'ok' }`. `$.session.send` y `$.prompt.fill` también toman el resultado de su evento, como muestra la tabla. [Consultar lo que devuelve un stub](#look-up-what-a-stub-returns) muestra qué forma toma cada nombre común. Estos errores significan que un stub es incorrecto o falta. La salida de una prueba fallida incluye un bloque encabezado por `the engine reported:`, y cada error aparece allí:

109 109 

110* `returned neither { value } nor { deny }`: un stub para una llamada a la API de mods devolvió un valor sin envolver110* `returned neither { value } nor { deny }`: un stub para una llamada a la API de mods devolvió un valor sin envolver, lo que hace fallar la prueba

111* `no implementation for` seguido de un nombre: tu mod hizo esa llamada y ningún stub la responde111* `no implementation for` seguido de un nombre: tu mod hizo esa llamada y ningún stub la responde

112 112 

113El kit también exporta mocks en memoria que responden a un espacio de nombres completo por ti. `mock.clock(on)` responde a [`$.clock`](/docs/es/plugins/mods/api#run-work-in-the-background), `mock.store(on, { count: 7 })` responde a `$.store` desde un almacén que empieza con esas entradas, y `mock.env(on, { CI: 'true' })` responde a `$.env.get` desde esas variables. `mock.clock` devuelve un reloj simulado que tu prueba hace avanzar, así que una prueba de un temporizador no espera. `mock.store` no devuelve nada, así que para comprobar lo que guardó tu mod, escribe tú mismo los dos stubs de `store` como lo hace la [prueba de dibujo](#test-a-drawing).113El kit también exporta mocks en memoria que responden a un espacio de nombres completo por ti. `mock.clock(on)` responde a [`$.clock`](/docs/es/plugins/mods/api#run-work-in-the-background), `mock.store(on, { count: 7 })` responde a `$.store` desde un almacén que empieza con esas entradas, y `mock.env(on, { CI: 'true' })` responde a `$.env.get` desde esas variables. `mock.clock` devuelve un reloj simulado que tu prueba hace avanzar, así que una prueba de un temporizador no espera. `mock.store` no devuelve nada, así que para comprobar lo que guardó tu mod, escribe tú mismo los dos stubs de `store` como lo hace la [prueba de dibujo](#test-a-drawing).


198 198 

199`expect` tiene las aserciones `toBe`, `toEqual`, `toMatch`, `toMatchObject`, `toContain`, `toBeDefined`, `toBeUndefined` y `toThrow`, y `.not` antes de cualquiera de ellas.199`expect` tiene las aserciones `toBe`, `toEqual`, `toMatch`, `toMatchObject`, `toContain`, `toBeDefined`, `toBeUndefined` y `toThrow`, y `.not` antes de cualquiera de ellas.

200 200 

201Cuando un `expect` falla dentro de un stub o hook que pasaste a `on` como una función simple en lugar de un generador asíncrono, la prueba falla. El motor omite ese hook, y la salida del fallo lo nombra, como `in the test's store.set hook`.

202 

201<h2 id="test-a-timer">203<h2 id="test-a-timer">

202 Probar un temporizador204 Probar un temporizador

203</h2>205</h2>

Details

30| :- | :- |30| :- | :- |

31| `no hooks module to load` | Los mods pueden cargarse. El comando no encontró ningún mod para probar en este directorio. |31| `no hooks module to load` | Los mods pueden cargarse. El comando no encontró ningún mod para probar en este directorio. |

32| `hooks modules are turned off here` | Un ajuste está bloqueando tus mods: `disableAllHooks` en tu propia configuración, o la política de tu organización |32| `hooks modules are turned off here` | Un ajuste está bloqueando tus mods: `disableAllHooks` en tu propia configuración, o la política de tu organización |

33| `hooks modules are turned off in this process` | Anthropic ha desactivado de forma remota los mods instalados. Ningún ajuste en tu máquina los vuelve a activar. |33| `hooks modules are turned off in this process: the rollout switch served off` | Anthropic ha desactivado de forma remota los mods instalados. |

34| `hooks modules are turned off in this process: the rollout switch was saved off by an earlier session` | El comando usó un valor que guardó una sesión anterior, que puede estar desactualizado. Inicia `claude` una vez para actualizarlo y luego vuelve a ejecutar el comando. |

34 35 

35Una organización también puede establecer `allowManagedModsOnly` para permitir solo sus propios mods, algo que este comando no informa. En ese caso, un mod que instales no se carga, y [un mensaje indica el motivo](/docs/es/plugins/mods/troubleshoot#messages-from-the-built-in-guard).36Una organización también puede establecer `allowManagedModsOnly` para permitir solo sus propios mods, algo que este comando no informa. En ese caso, Claude Code rechaza un mod que instales, y [un mensaje indica el motivo](/docs/es/plugins/mods/troubleshoot#messages-from-the-built-in-guard).

36 37 

37<h2 id="the-mod-doesn’t-load">38<h2 id="the-mod-doesn’t-load">

38 El mod no se carga39 El mod no se carga


72 73 

73| El mensaje empieza con | Qué significa |74| El mensaje empieza con | Qué significa |

74| :- | :- |75| :- | :- |

75| `hooks modules are turned off for installed plugins in this process` | Anthropic desactivó de forma remota los mods instalados. Ningún ajuste en tu máquina los vuelve a activar. |76| `hooks modules are turned off for installed plugins in this process: the rollout switch served off` | Anthropic desactivó de forma remota los mods instalados. |

77| `hooks modules are turned off for installed plugins in this process: the rollout switch was saved off by an earlier session` | La sesión usó un valor que guardó una sesión anterior, que puede estar desactualizado. Inicia Claude Code de nuevo para actualizarlo. |

76| `disableAllHooks in managed settings` | Tu organización desactivó los hooks de los plugins instalados |78| `disableAllHooks in managed settings` | Tu organización desactivó los hooks de los plugins instalados |

77| `only managed plugins and built-in plugins run` | `allowManagedHooksOnly` está establecido, o `disableAllHooks` está establecido en un archivo de configuración distinto de la configuración administrada |79| `only managed plugins and built-in plugins run` | `allowManagedHooksOnly` está establecido, o `disableAllHooks` está establecido en un archivo de configuración distinto de la configuración administrada |

78| `installed plugins that are not managed load no hooks module in this mode (--bare)` | Iniciaste Claude Code con `--bare` |80| `installed plugins that are not managed load no hooks module in this mode (--bare)` | Iniciaste Claude Code con `--bare` |


86 88 

87| El mensaje contiene | Qué significa | Dónde aparece |89| El mensaje contiene | Qué significa | Dónde aparece |

88| :- | :- | :- |90| :- | :- | :- |

89| `mods are limited to your organization's by policy (allowManagedModsOnly)` | Tu organización solo permite [sus propios mods](/docs/es/plugins/mods/admin#install-your-organizations-mods), así que el tuyo no se cargó | El registro de depuración, y la transcripción en una [sesión que recarga en caliente un directorio de plugin](#find-out-why-a-mod-does-nothing) |91| `mods are limited to your organization's by policy (allowManagedModsOnly)` | Tu organización solo permite [sus propios mods](/docs/es/plugins/mods/admin#install-your-organizations-mods), así que el tuyo fue rechazado | El registro de depuración, y la transcripción en una [sesión que recarga en caliente un directorio de plugin](#find-out-why-a-mod-does-nothing) |

90| `tried to lift a deny rule in your settings` | El hook [`tool.check`](/docs/es/plugins/mods/reference#tools) de tu mod aprobó una llamada que una regla `deny` rechaza. La llamada sigue denegada. | La transcripción y el registro de depuración, una vez por cada mod en una sesión. En una ejecución de `claude -p`, solo el registro de depuración. |92| `tried to lift a deny rule in your settings` | El hook [`tool.check`](/docs/es/plugins/mods/reference#tools) de tu mod aprobó una llamada que una regla `deny` rechaza. La llamada sigue denegada. | La transcripción y el registro de depuración, una vez por cada mod en una sesión. En una ejecución de `claude -p`, solo el registro de depuración. |

91| `the deny rules in your settings could not be checked for this call, so it is refused` | La protección falló al verificar una llamada que un mod aprobó, así que rechazó la llamada | El motivo que Claude lee para la llamada denegada |93| `the deny rules in your settings could not be checked for this call, so it is refused` | La protección falló al verificar una llamada que un mod aprobó, así que rechazó la llamada | El motivo que Claude lee para la llamada denegada |

92 94 


163 165 

164Corrige el hook.166Corrige el hook.

165 167 

168<h3 id="its-session-start-ran-again-in-a-fresh-copy">

169 `its session.start ran again in a fresh copy`

170</h3>

171 

172La línea comienza con el nombre del mod y nombra una llamada a `$.prompt.submit`, `$.command.run` o `$.agent.spawn`, como en `first-mod: its session.start ran again in a fresh copy; the $.prompt.submit call it had already made was not made again`. Claude Code volvió a cargar el módulo del mod, por ejemplo después de que el hooks worker falló y fue reemplazado, y se ejecutó el hook [`session.start`](/docs/es/plugins/mods/reference#session) de la copia nueva. La llamada que nombra la línea se resolvió con el resultado de su primera ejecución en lugar de ejecutarse de nuevo, así que tu mod no envía el prompt, no ejecuta el comando ni inicia el subagente dos veces. El resto del hook se ejecutó como de costumbre.

173 

174No hay nada que corregir.

175 

176Antes de la v2.1.292, la llamada se ejecutaba una segunda vez, por lo que el prompt se enviaba, el comando se ejecutaba o el subagente se iniciaba dos veces.

177 

166<h3 id="mods-that-run-in-the-hooks-worker-are-off-for-this-session">178<h3 id="mods-that-run-in-the-hooks-worker-are-off-for-this-session">

167 `mods that run in the hooks worker are off for this session`179 `mods that run in the hooks worker are off for this session`

168</h3>180</h3>


207 219 

208Lee el motivo en esa línea. Las causas comunes son una prop que el elemento no acepta y un elemento que la app no tiene.220Lee el motivo en esa línea. Las causas comunes son una prop que el elemento no acepta y un elemento que la app no tiene.

209 221 

222<h3 id="a-ui-render-line-says-threw-while-drawn">

223 Una línea de `ui.render` dice `threw while drawn`

224</h3>

225 

226La línea nombra el [punto de renderizado](/docs/es/plugins/mods/reference#render-sites), luego dice `threw while drawn:` y el error, como en `first-mod: ui.render (ToolUse) threw while drawn: <error>; the engine drew its own`. Claude Code encontró ese error al dibujar el árbol que devolvió tu hook [`ui.render`](/docs/es/plugins/mods/reference#interface), o al dibujar el punto de renderizado a partir de las [`props` que tu hook pasó a `next`](/docs/es/plugins/mods/interface#change-what-claude-code-already-draws). El final `the engine drew its own` significa que el punto de renderizado muestra el contenido habitual de Claude Code.

227 

228Lee el error y corrige el valor de tu hook que lo causó.

229 

230Antes de v2.1.289, este error en una fila de la transcripción terminaba la sesión con [`Claude Code exited after an unrecoverable interface error`](/docs/es/errors#exited-after-an-unrecoverable-interface-error).

231 

232<h3 id="the-module-failed-without-a-message">

233 `the module failed without a message`

234</h3>

235 

236Un [`Client`](/docs/es/plugins/mods/interface#when-a-client-fails) falló con un error que no tiene mensaje, como `throw new Error()`. La línea que aparece en su lugar se ve así: `my-mod: Client client/spinner.js: the module failed without a message`.

237 

238Busca el throw en el código de tu `Client` y dale un mensaje al error. Así, la línea muestra ese mensaje.

239 

240Antes de v2.1.289, la línea mostraba `Error` como motivo.

241 

210<h3 id="$-ui-open-runs-and-no-pane-appears">242<h3 id="$-ui-open-runs-and-no-pane-appears">

211 `$.ui.open` se ejecuta y no aparece ningún panel243 `$.ui.open` se ejecuta y no aparece ningún panel

212</h3>244</h3>


285 317 

286Un dibujo que no pasó la validación cuenta como un resultado rechazado y también recibe una línea. Para escribir tus propias líneas en el registro, llama a [`$.ui.log`](/docs/es/plugins/mods/api#show-something-without-starting-a-turn) con un segundo argumento, como en `$.ui.log('message', { to: 'debug' })`. Sin el segundo argumento, `$.ui.log` agrega una línea atenuada a la transcripción.318Un dibujo que no pasó la validación cuenta como un resultado rechazado y también recibe una línea. Para escribir tus propias líneas en el registro, llama a [`$.ui.log`](/docs/es/plugins/mods/api#show-something-without-starting-a-turn) con un segundo argumento, como en `$.ui.log('message', { to: 'debug' })`. Sin el segundo argumento, `$.ui.log` agrega una línea atenuada a la transcripción.

287 319 

288Mientras editas un mod cargado con `--plugin-dir`, la transcripción muestra una línea por cada recarga que nombra el mod y enumera sus hooks. Si un guardado rompe el módulo, la línea dice `reload failed, the previous version stays loaded:` con el motivo, y la última versión que funcionaba sigue ejecutándose.320Mientras editas un mod cargado con `--plugin-dir`, la transcripción muestra una línea por cada recarga que nombra el mod y enumera sus hooks. Si un guardado rompe el módulo, la línea dice `reload failed, the previous version stays loaded:` con el motivo, y la última versión que funcionaba sigue ejecutándose hasta que Claude Code vuelva a recargar los plugins, por ejemplo cuando ejecutas `/reload-plugins`.

289 321 

290<h2 id="next-steps">322<h2 id="next-steps">

291 Próximos pasos323 Próximos pasos

plugins/org.md +1 −1

Details

212| `pluginTrustMessage` | Agrega su texto al aviso de confianza que `/plugin` muestra antes de que se instale un plugin | No cambia el texto del aviso en sí |212| `pluginTrustMessage` | Agrega su texto al aviso de confianza que `/plugin` muestra antes de que se instale un plugin | No cambia el texto del aviso en sí |

213| `allowedChannelPlugins` | Reemplaza la lista predeterminada de plugins permitidos para enviar mensajes de canal. Requiere `channelsEnabled: true` | Consulte [Restrict which channel plugins can run](/docs/es/channels#restrict-which-channel-plugins-can-run) |213| `allowedChannelPlugins` | Reemplaza la lista predeterminada de plugins permitidos para enviar mensajes de canal. Requiere `channelsEnabled: true` | Consulte [Restrict which channel plugins can run](/docs/es/channels#restrict-which-channel-plugins-can-run) |

214| [`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL=1`](/docs/es/env-vars) | Detiene las sesiones de terminal interactivas de auto-registrar el marketplace oficial | No elimina un marketplace ya registrado. La allowlist y blocklist cierran el mismo auto-registro sin él. Una máquina que comenzó una vez con él establecido no reanuda el auto-registro después de desestablecerlo |214| [`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL=1`](/docs/es/env-vars) | Detiene las sesiones de terminal interactivas de auto-registrar el marketplace oficial | No elimina un marketplace ya registrado. La allowlist y blocklist cierran el mismo auto-registro sin él. Una máquina que comenzó una vez con él establecido no reanuda el auto-registro después de desestablecerlo |

215| [`allowManagedModsOnly`](/docs/es/plugins/mods/admin#stop-user-installed-mods-from-loading) | Detiene cada [mod](/docs/es/plugins/mods/overview) instalado que no [cuenta como el de su organización](/docs/es/plugins/mods/admin#install-your-organizations-mods) de cargarse | No detiene un plugin que contiene un mod de instalar. Para eso, use las claves de marketplace en esta tabla |215| [`allowManagedModsOnly`](/docs/es/plugins/mods/admin#stop-user-installed-mods-from-loading) | Impide que cada [mod](/docs/es/plugins/mods/overview) instalado que no [cuenta como de tu organización](/docs/es/plugins/mods/admin#install-your-organizations-mods) ejecute sus hooks | No impide que se instale un plugin que contiene un mod. Para eso, usa las claves de marketplace de esta tabla |

216 216 

217Cada clave en la tabla es una configuración administrada, aparte de `enabledPlugins`, `syncClaudeAiPlugins`, `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` y `allowManagedModsOnly`:217Cada clave en la tabla es una configuración administrada, aparte de `enabledPlugins`, `syncClaudeAiPlugins`, `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` y `allowManagedModsOnly`:

218 218 

Details

29Un plugin puede contener contenido que ejecuta código en tu máquina con tus privilegios de usuario y contenido que entra en el contexto de Claude como instrucciones, así que [revisa un plugin antes de instalarlo](#review-a-plugin-before-you-install). Esto es lo que un plugin instalado puede hacer:29Un plugin puede contener contenido que ejecuta código en tu máquina con tus privilegios de usuario y contenido que entra en el contexto de Claude como instrucciones, así que [revisa un plugin antes de instalarlo](#review-a-plugin-before-you-install). Esto es lo que un plugin instalado puede hacer:

30 30 

31* **Hooks**: los [hooks](/docs/es/hooks) de un plugin se ejecutan como comandos de shell en puntos del ciclo de vida de Claude Code, como antes o después de una llamada a herramienta.31* **Hooks**: los [hooks](/docs/es/hooks) de un plugin se ejecutan como comandos de shell en puntos del ciclo de vida de Claude Code, como antes o después de una llamada a herramienta.

32* **Monitores**: los [monitores](/docs/es/plugins/components#monitors) de un plugin se ejecutan como comandos de shell en segundo plano que Claude Code inicia por su cuenta cuando comienza la sesión, cuando recargas los plugins o la primera vez que se ejecuta un skill determinado.

32* **Mods**: un [mod](/docs/es/plugins/mods/overview) de un plugin ejecuta JavaScript dentro de Claude Code con tus permisos. Para ver qué hace un mod antes de instalarlo, consulta [Decide whether to trust a mod](/docs/es/plugins/mods/overview#decide-whether-to-trust-a-mod).33* **Mods**: un [mod](/docs/es/plugins/mods/overview) de un plugin ejecuta JavaScript dentro de Claude Code con tus permisos. Para ver qué hace un mod antes de instalarlo, consulta [Decide whether to trust a mod](/docs/es/plugins/mods/overview#decide-whether-to-trust-a-mod).

33* **Servidores MCP y LSP**: Claude Code se conecta a los [servidores MCP](/docs/es/mcp) que declara un plugin habilitado y le da a Claude sus herramientas. Un servidor MCP de stdio se ejecuta como un proceso que Claude Code inicia en tu máquina. Claude Code también inicia los servidores de lenguaje que declara el plugin.34* **Servidores MCP y LSP**: Claude Code se conecta a los [servidores MCP](/docs/es/mcp) que declara un plugin habilitado y le da a Claude sus herramientas. Un servidor MCP de stdio se ejecuta como un proceso que Claude Code inicia en tu máquina. Claude Code también inicia los servidores de lenguaje que declara el plugin.

34* **Directorio `bin/`**: Claude Code añade el directorio `bin/` de cada plugin habilitado a la `PATH` del shell de la herramienta Bash, así que los comandos Bash de Claude pueden ejecutar cualquier ejecutable allí.35* **Directorio `bin/`**: Claude Code añade el directorio `bin/` de cada plugin habilitado a la `PATH` del shell de la herramienta Bash, así que los comandos Bash de Claude pueden ejecutar cualquier ejecutable allí.


37 38 

38Las [reglas de permisos](/docs/es/permissions) y [sandbox](/docs/es/sandboxing) de Claude Code cubren las llamadas a herramientas que hace Claude, no el código que ejecuta un plugin por sí solo:39Las [reglas de permisos](/docs/es/permissions) y [sandbox](/docs/es/sandboxing) de Claude Code cubren las llamadas a herramientas que hace Claude, no el código que ejecuta un plugin por sí solo:

39 40 

40* **Hooks y procesos de servidor**: los hooks de comando ejecutan comandos de shell con tus permisos de usuario completos. Claude Code ejecuta fuera del sandbox los hooks, los servidores MCP y los procesos que inicia un [mod](/docs/es/plugins/mods/overview#what-a-mod-can-reach).41* **Hooks, monitores y procesos de servidor**: los hooks de comando y los monitores son comandos de shell que se ejecutan con tus permisos de usuario completos. Claude Code ejecuta fuera del sandbox los hooks, los monitores, los servidores MCP, los servidores LSP y los procesos que inicia un [mod](/docs/es/plugins/mods/overview#what-a-mod-can-reach).

41* **Llamadas a herramientas de Claude**: una llamada a una de las herramientas MCP del plugin, y un comando Bash que ejecuta un ejecutable del `bin/` del plugin, son llamadas a herramientas, así que tus reglas de permisos se aplican a ellas. Para ver qué puede hacer un mod en una llamada a herramienta, consulta [Decide whether to trust a mod](/docs/es/plugins/mods/overview#decide-whether-to-trust-a-mod).42* **Llamadas a herramientas de Claude**: una llamada a una de las herramientas MCP del plugin, y un comando Bash que ejecuta un ejecutable del `bin/` del plugin, son llamadas a herramientas, así que tus reglas de permisos se aplican a ellas. Para ver qué puede hacer un mod en una llamada a herramienta, consulta [Decide whether to trust a mod](/docs/es/plugins/mods/overview#decide-whether-to-trust-a-mod).

42 43 

43Instalar un plugin también lo habilita, a menos que su manifiesto o entrada de marketplace establezca [`defaultEnabled: false`](/docs/es/plugins/install#choose-an-install-scope) y no lo hayas habilitado tú mismo.44Instalar un plugin también lo habilita, a menos que su manifiesto o entrada de marketplace establezca [`defaultEnabled: false`](/docs/es/plugins/install#choose-an-install-scope) y no lo hayas habilitado tú mismo.

Details

96 96 

97El [ajuste de modelo `opusplan`](/docs/es/model-config#opusplan-model-setting) se resuelve a Opus durante el modo plan y a Sonnet durante la ejecución, por lo que cada vez que activas o desactivas el modo plan es un cambio de modelo e inicia una caché nueva.97El [ajuste de modelo `opusplan`](/docs/es/model-config#opusplan-model-setting) se resuelve a Opus durante el modo plan y a Sonnet durante la ejecución, por lo que cada vez que activas o desactivas el modo plan es un cambio de modelo e inicia una caché nueva.

98 98 

99[El cambio automático al modelo de respaldo](/docs/es/model-config#automatic-model-fallback) en modelos Fable, Opus 5.5, Sonnet 5.5 y Opus 5 también es un cambio de modelo. Cuando un clasificador de seguridad marca una solicitud en una categoría que tiene un modelo de respaldo, Claude Code vuelve a ejecutar la solicitud en ese modelo y la sesión continúa allí.99[El cambio automático al modelo de respaldo](/docs/es/model-config#automatic-model-fallback) en modelos Fable, Opus 5.5, Sonnet 5.5 y Opus 5 también es un cambio de modelo. Cuando un clasificador de seguridad marca una solicitud en una categoría que tiene un modelo de respaldo y Claude Code vuelve a ejecutar la solicitud en ese modelo, la sesión continúa allí.

100 100 

101Cuando el frontmatter de un skill o comando nombra un [`model`](/docs/es/skills#frontmatter-reference) diferente del modelo actual de la sesión, ese turno también es un cambio de modelo: la siguiente solicitud lee todo el historial de conversación sin aciertos de caché. El modelo de la sesión se reanuda en tu siguiente prompt. Un skill `context: fork` establece en su lugar el [modelo del subagente bifurcado](/docs/es/skills#run-skills-in-a-subagent).101Cuando el frontmatter de un skill o comando nombra un [`model`](/docs/es/skills#frontmatter-reference) diferente del modelo actual de la sesión, ese turno también es un cambio de modelo: la siguiente solicitud lee todo el historial de conversación sin aciertos de caché. El modelo de la sesión se reanuda en tu siguiente prompt. Un skill `context: fork` establece en su lugar el [modelo del subagente bifurcado](/docs/es/skills#run-skills-in-a-subagent).

102 102 

quickstart.md +16 −14

Details

53 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd53 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

54 ```54 ```

55 55 

56 Cuando el instalador termine, abra una nueva ventana de terminal y ejecute `claude --version`. Una instalación que funciona correctamente imprime un número de versión. Si su shell dice que `claude` no se encuentra o no se reconoce, el directorio de instalación aún no está en su PATH: consulte [Corrija su PATH](/docs/es/troubleshoot-install#command-not-found-claude-after-installation).56 El comando de instalación no muestra ningún progreso mientras descarga Claude Code. Cuando el instalador termine, abre una nueva ventana de terminal y ejecuta `claude --version`. Una instalación que funciona correctamente imprime un número de versión. Si tu shell dice que `claude` no se encuentra o no se reconoce, el directorio de instalación aún no está en tu PATH: consulta [Corrige tu PATH](/docs/es/troubleshoot-install#command-not-found-claude-after-installation).

57 57 

58 Si ves `The token '&&' is not a valid statement separator`, estás en PowerShell, no en CMD. Si ves `'irm' is not recognized as an internal or external command`, estás en CMD, no en PowerShell.58 Si ves `The token '&&' is not a valid statement separator`, estás en PowerShell, no en CMD. Si ves `'irm' is not recognized as an internal or external command`, estás en CMD, no en PowerShell.

59 59 


229 Paso 7: Prueba otros flujos de trabajo comunes229 Paso 7: Prueba otros flujos de trabajo comunes

230</h2>230</h2>

231 231 

232Hay varias formas de trabajar con Claude:232Prueba algunos prompts más. Puedes pedirle a Claude que refactorice código, escriba pruebas, actualice la documentación o revise tus cambios:

233 

234**Refactorizar código**

235 233 

236```text wrap theme={null}234```text wrap theme={null}

237refactor the authentication module to use async/await instead of callbacks235refactor the authentication module to use async/await instead of callbacks

238```236```

239 237 

240**Escribir pruebas**

241 

242```text wrap theme={null}238```text wrap theme={null}

243write unit tests for the calculator functions239write unit tests for the calculator functions

244```240```

245 241 

246**Actualizar la documentación**

247 

248```text wrap theme={null}242```text wrap theme={null}

249update the README with installation instructions243update the README with installation instructions

250```244```

251 245 

252**Revisión de código**

253 

254```text wrap theme={null}246```text wrap theme={null}

255review my changes and suggest improvements247review my changes and suggest improvements

256```248```


263 Comandos esenciales255 Comandos esenciales

264</h2>256</h2>

265 257 

266Aquí están los comandos más importantes para el uso diario. Los comandos de shell se ejecutan desde su terminal para iniciar o reanudar Claude Code. Los comandos de sesión se ejecutan dentro de Claude Code después de que se inicia.258Aquí están los comandos más importantes para el uso diario, agrupados según dónde los ejecutas.

267 259 

268**Comandos de shell**260<h3 id="shell-commands">

261 Comandos de shell

262</h3>

263 

264Ejecuta estos desde tu terminal para iniciar o reanudar Claude Code.

269 265 

270| Comando | Qué hace | Ejemplo |266| Comando | Qué hace | Ejemplo |

271| - | - | - |267| - | - | - |


275| `claude -c` | Continúa la conversación más reciente en el directorio actual | `claude -c` |271| `claude -c` | Continúa la conversación más reciente en el directorio actual | `claude -c` |

276| `claude -r` | Reanuda una conversación anterior | `claude -r` |272| `claude -r` | Reanuda una conversación anterior | `claude -r` |

277 273 

278**Comandos de sesión**274Consulta la [referencia de CLI](/docs/es/cli-reference) para ver la lista completa de comandos de shell.

275 

276<h3 id="session-commands">

277 Comandos de sesión

278</h3>

279 

280Ejecuta estos dentro de Claude Code después de que se inicia.

279 281 

280| Comando | Qué hace | Ejemplo |282| Comando | Qué hace | Ejemplo |

281| - | - | - |283| - | - | - |


283| `/help` | Muestra los comandos disponibles | `/help` |285| `/help` | Muestra los comandos disponibles | `/help` |

284| `/exit` o Ctrl+D dos veces | Salir de Claude Code | `/exit` |286| `/exit` o Ctrl+D dos veces | Salir de Claude Code | `/exit` |

285 287 

286Consulte la [referencia de CLI](/docs/es/cli-reference) para obtener una lista completa de comandos de shell y la [referencia de comandos](/docs/es/commands) para obtener una lista completa de comandos de sesión.288Consulta la [referencia de comandos](/docs/es/commands) para ver la lista completa de comandos de sesión.

287 289 

288<h2 id="pro-tips-for-beginners">290<h2 id="pro-tips-for-beginners">

289 Consejos profesionales para principiantes291 Consejos profesionales para principiantes

Details

201* **`false`**: desactivar la conexión automática, aunque un `true` de [configuración administrada](/docs/es/managed-settings) lo supera, porque Claude Code guarda la opción en su configuración de usuario. Un `false` en configuración de proyecto o local (`.claude/settings.json`, `.claude/settings.local.json`) desactiva la conexión automática incluso sobre un `true` administrado.201* **`false`**: desactivar la conexión automática, aunque un `true` de [configuración administrada](/docs/es/managed-settings) lo supera, porque Claude Code guarda la opción en su configuración de usuario. Un `false` en configuración de proyecto o local (`.claude/settings.json`, `.claude/settings.local.json`) desactiva la conexión automática incluso sobre un `true` administrado.

202* **`default`**: borrar su opción y seguir el predeterminado de administrador de su organización si uno está establecido, de lo contrario el predeterminado actual de Claude Code.202* **`default`**: borrar su opción y seguir el predeterminado de administrador de su organización si uno está establecido, de lo contrario el predeterminado actual de Claude Code.

203 203 

204El mismo botón de alternancia aparece fuera de la CLI:204La extensión de VS Code y la aplicación de escritorio también tienen un interruptor de conexión automática:

205 205 

206* **Aplicación de escritorio**: **Settings > Claude Code > Connect new sessions to Remote Control**.

207* **Extensión de VS Code**: **Enable Remote Control for all sessions** en la sección Configuración del [menú de comandos](/docs/es/vs-code#use-the-prompt-box).206* **Extensión de VS Code**: **Enable Remote Control for all sessions** en la sección Configuración del [menú de comandos](/docs/es/vs-code#use-the-prompt-box).

207* **Aplicación de escritorio**: **Settings > Claude Code > Connect new sessions to Remote Control**. Consulta [Controla qué sesiones aparecen en tus otros dispositivos](/docs/es/desktop#control-which-sessions-appear-on-your-other-devices).

208 208 

209Para activar la conexión automática desde un archivo de configuración en su lugar, establezca [`remoteControlAtStartup`](/docs/es/settings-reference#remotecontrolatstartup) en `true` en su usuario `~/.claude/settings.json` o en [configuración administrada](/docs/es/managed-settings). En configuración de proyecto o local (`.claude/settings.json`, `.claude/settings.local.json`), Claude Code honra un `false` y desactiva la conexión automática para ese repositorio, pero ignora un `true`, por lo que un archivo registrado no puede activar Remote Control para todos los que abren el repositorio.209Para activar la conexión automática desde un archivo de configuración en su lugar, establezca [`remoteControlAtStartup`](/docs/es/settings-reference#remotecontrolatstartup) en `true` en su usuario `~/.claude/settings.json` o en [configuración administrada](/docs/es/managed-settings). En configuración de proyecto o local (`.claude/settings.json`, `.claude/settings.local.json`), Claude Code honra un `false` y desactiva la conexión automática para ese repositorio, pero ignora un `true`, por lo que un archivo registrado no puede activar Remote Control para todos los que abren el repositorio.

210 210 

routines.md +1 −1

Details

93 Elija un [entorno en la nube](/docs/es/cloud-environments) para la rutina. Los entornos controlan a qué tiene acceso la sesión en la nube:93 Elija un [entorno en la nube](/docs/es/cloud-environments) para la rutina. Los entornos controlan a qué tiene acceso la sesión en la nube:

94 94 

95 * **Network access**: establezca el nivel de acceso a Internet disponible durante cada ejecución95 * **Network access**: establezca el nivel de acceso a Internet disponible durante cada ejecución

96 * **Environment variables**: proporciona valores que Claude pueda usar durante cada ejecución. Son [visibles para cualquiera que use el entorno](/docs/es/cloud-environments#what-carries-over-from-your-setup), por lo que en los planes Pro y Max, almacena las claves de las API que Claude llama durante una ejecución como [secretos de red](/docs/es/cloud-environments#add-api-credentials) en su lugar. Esa sección también enumera las solicitudes que nunca reciben un secreto96 * **Environment variables**: proporciona valores que Claude pueda usar durante cada ejecución. Son [visibles para cualquiera que use el entorno](/docs/es/cloud-environments#what-carries-over-from-your-setup), por lo que en los planes Pro y Max, almacena las claves de las API que Claude llama durante una ejecución como [secretos de red](/docs/es/cloud-environments#add-network-secrets) en su lugar. Esa sección también enumera las solicitudes que nunca reciben un secreto

97 * **Setup script**: instale dependencias y herramientas que la rutina necesita. El resultado se [almacena en caché](/docs/es/cloud-environments#environment-caching), por lo que el script no se vuelve a ejecutar en cada sesión97 * **Setup script**: instale dependencias y herramientas que la rutina necesita. El resultado se [almacena en caché](/docs/es/cloud-environments#environment-caching), por lo que el script no se vuelve a ejecutar en cada sesión

98 98 

99 Se proporciona un entorno **Default** con acceso a la red **Trusted**, que permite solo el [conjunto predeterminado](/docs/es/cloud-environments#default-allowed-domains) de registros de paquetes, API de proveedores de nube, registros de contenedores y dominios de desarrollo comunes a través de la red de la sesión. Los conectores que agregue a la rutina alcanzan sus servicios a través de los servidores de Anthropic, por lo que no necesitan cambios en la lista de permitidos. Si su rutina necesita alcanzar sus propios servicios directamente o un dominio fuera de esa lista, edite el [acceso a la red](/docs/es/cloud-environments#network-access) del entorno antes de ejecutar. Para usar un entorno separado, [cree uno](/docs/es/cloud-environments#configure-your-environment) primero.99 Se proporciona un entorno **Default** con acceso a la red **Trusted**, que permite solo el [conjunto predeterminado](/docs/es/cloud-environments#default-allowed-domains) de registros de paquetes, API de proveedores de nube, registros de contenedores y dominios de desarrollo comunes a través de la red de la sesión. Los conectores que agregue a la rutina alcanzan sus servicios a través de los servidores de Anthropic, por lo que no necesitan cambios en la lista de permitidos. Si su rutina necesita alcanzar sus propios servicios directamente o un dominio fuera de esa lista, edite el [acceso a la red](/docs/es/cloud-environments#network-access) del entorno antes de ejecutar. Para usar un entorno separado, [cree uno](/docs/es/cloud-environments#configure-your-environment) primero.

Details

76 Esta opción no admite Windows nativo. En hosts Windows, use WSL2 o uno de los enfoques de contenedor o máquina virtual a continuación.76 Esta opción no admite Windows nativo. En hosts Windows, use WSL2 o uno de los enfoques de contenedor o máquina virtual a continuación.

77</Note>77</Note>

78 78 

79La herramienta Bash aislada está integrada en Claude Code. Utiliza primitivas del sistema operativo para restringir el acceso al sistema de archivos y la red de cada comando Bash, PowerShell o Monitor que ejecuta Claude.79La herramienta Bash aislada está integrada en Claude Code. Utiliza primitivas del sistema operativo para restringir el acceso al sistema de archivos y la red de los comandos de las herramientas Bash, PowerShell y Monitor que ejecuta Claude.

80 80 

81Ejecute el comando `/sandbox` para abrir el panel de sandbox y elegir un modo. La guía [Sandboxing](/docs/es/sandboxing) cubre los modos de aprobación, el límite predeterminado y cómo ampliarlo o estrecharlo.81Ejecute el comando `/sandbox` para abrir el panel de sandbox y elegir un modo. La guía [Sandboxing](/docs/es/sandboxing) cubre los modos de aprobación, el límite predeterminado y cómo ampliarlo o estrecharlo.

82 82 

83El sandbox por comando no cubre todo lo que se ejecuta en una sesión:83El sandbox por comando no cubre todo lo que se ejecuta en una sesión:

84 84 

85* Otras [herramientas integradas](/docs/es/tools-reference) como Read, Edit y WebFetch se ejecutan dentro del proceso de Claude Code y no generan código arbitrario. Las [reglas de permiso](/docs/es/permissions) para ruta o dominio las controlan en su lugar.85* Otras [herramientas integradas](/docs/es/tools-reference) como Read, Edit y WebFetch se ejecutan dentro del proceso de Claude Code y no generan código arbitrario. Las [reglas de permiso](/docs/es/permissions) para ruta o dominio las controlan en su lugar.

86* Los servidores [MCP](/docs/es/mcp) y [hooks de comando](/docs/es/hooks#command-hook-fields) son procesos separados que se ejecutan sin restricciones en el host.86* Los servidores [MCP](/docs/es/mcp), los [hooks de comando](/docs/es/hooks#command-hook-fields) y los [monitores de plugins](/docs/es/plugins/components#monitors) son procesos separados que se ejecutan sin restricciones en el host. Para otros procesos que se ejecutan de esta forma, consulta [Qué se ejecuta fuera del sandbox](/docs/es/sandboxing#what-runs-outside-the-sandbox).

87 87 

88Para poner herramientas integradas, servidores MCP y hooks todos detrás de un límite de SO, ejecute todo el proceso de Claude Code dentro del [tiempo de ejecución sandbox](#sandbox-runtime), el [contenedor de desarrollo](#dev-containers) o un [contenedor personalizado](#custom-container).88Para poner herramientas integradas, servidores MCP y hooks todos detrás de un límite de SO, ejecute todo el proceso de Claude Code dentro del [tiempo de ejecución sandbox](#sandbox-runtime), el [contenedor de desarrollo](#dev-containers) o un [contenedor personalizado](#custom-container).

89 89 

sandboxing.md +1 −1

Details

698Las reglas de permiso y el sandboxing controlan cosas diferentes:698Las reglas de permiso y el sandboxing controlan cosas diferentes:

699 699 

700* **Reglas de permiso** controlan qué herramientas puede usar Claude Code y se evalúan antes de que se ejecute cualquier herramienta. Se aplican a todas las herramientas: Bash, Read, Edit, WebFetch, MCP y otras, excepto que una regla de denegación o solicitud no puede bloquear [`EndConversation`](/docs/es/tools-reference#endconversation-tool-behavior) mientras que cualquier otra herramienta permanezca.700* **Reglas de permiso** controlan qué herramientas puede usar Claude Code y se evalúan antes de que se ejecute cualquier herramienta. Se aplican a todas las herramientas: Bash, Read, Edit, WebFetch, MCP y otras, excepto que una regla de denegación o solicitud no puede bloquear [`EndConversation`](/docs/es/tools-reference#endconversation-tool-behavior) mientras que cualquier otra herramienta permanezca.

701* **Sandboxing** proporciona aplicación a nivel del sistema operativo que restringe lo que los comandos Bash pueden acceder a nivel del sistema de archivos y la red. Se aplica solo a comandos Bash, PowerShell y [Monitor](/docs/es/tools-reference#monitor-tool) y sus procesos secundarios.701* **Sandboxing** proporciona aplicación a nivel del sistema operativo que restringe a qué pueden acceder los comandos de shell a nivel del sistema de archivos y la red. Se aplica a los comandos de las herramientas Bash, PowerShell y [Monitor](/docs/es/tools-reference#monitor-tool) y sus procesos secundarios.

702 702 

703Las dos capas también difieren en cómo se aplican. Claude Code evalúa las decisiones de permiso antes de que se ejecute un comando, basándose en la cadena de comando y, en modo automático, el juicio de un clasificador separado sobre si el comando es seguro. El sistema operativo aplica el límite del sandbox en el proceso en ejecución, por lo que se mantiene independientemente de lo que el modelo eligió ejecutar e incluso si un comando permitido hace más de lo que su nombre sugiere.703Las dos capas también difieren en cómo se aplican. Claude Code evalúa las decisiones de permiso antes de que se ejecute un comando, basándose en la cadena de comando y, en modo automático, el juicio de un clasificador separado sobre si el comando es seguro. El sistema operativo aplica el límite del sandbox en el proceso en ejecución, por lo que se mantiene independientemente de lo que el modelo eligió ejecutar e incluso si un comando permitido hace más de lo que su nombre sugiere.

704 704 

Details

348 348 

349Ni las claves devueltas por un script [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper) ni las credenciales de [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) activan la búsqueda de configuración.349Ni las claves devueltas por un script [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper) ni las credenciales de [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) activan la búsqueda de configuración.

350 350 

351Una sesión recibe la configuración administrada de la organización propietaria de la credencial con la que se autentica. Una clave de API de [Claude Console](https://platform.claude.com) pertenece a la organización de Console en la que se creó, que es una organización distinta de tu organización Team o Enterprise de claude.ai. Por lo tanto, la configuración que defines en Admin Settings de claude.ai no llega a una sesión que se autentica con esa clave, como un trabajo de CI que usa la clave de API de Console de tu empresa. Para aplicarla a ese trabajo, usa una de estas opciones. La opción de token OAuth no se aplica a un trabajo que se ejecuta con [`--bare`](/docs/es/headless#start-faster-with-bare-mode), porque el modo bare no lee `CLAUDE_CODE_OAUTH_TOKEN`.

352 

353* **Token OAuth**: genera un token con [`claude setup-token`](/docs/es/authentication#generate-a-long-lived-token), autorízalo para tu organización Team o Enterprise y establécelo como `CLAUDE_CODE_OAUTH_TOKEN` en el entorno del trabajo. Elimina de ese entorno cualquier credencial que [tenga precedencia](/docs/es/authentication#authentication-precedence) sobre el token, como `ANTHROPIC_API_KEY`.

354* **Configuración administrada por endpoint**: despliega un [archivo de configuración administrada](/docs/es/managed-settings#delivery-mechanisms) en la máquina que ejecuta el trabajo.

355 

351En una sesión de [Cowork](https://claude.com/docs/cowork/overview) en la aplicación Claude Desktop, Claude Code no obtiene la configuración administrada por servidor de la consola de administración de claude.ai, incluso cuando el usuario inicia sesión con una cuenta de Team o Enterprise. [Dónde y cuándo se aplica una política](/docs/es/managed-settings#where-and-when-a-policy-applies) cubre qué política llega a las sesiones de Cowork en la máquina del usuario y las sesiones remotas de Cowork. claude.ai sigue aplicando sus listas [`strictKnownMarketplaces`](/docs/es/settings-reference#strictknownmarketplaces) y [`blockedMarketplaces`](/docs/es/settings-reference#blockedmarketplaces) cuando un usuario de Cowork agrega un marketplace desde un repositorio git en claude.ai o desde **Customize** en la pestaña Cowork. [Cómo funcionan las restricciones](/docs/es/plugins/org#restrict-what-users-can-install) describe esa verificación.356En una sesión de [Cowork](https://claude.com/docs/cowork/overview) en la aplicación Claude Desktop, Claude Code no obtiene la configuración administrada por servidor de la consola de administración de claude.ai, incluso cuando el usuario inicia sesión con una cuenta de Team o Enterprise. [Dónde y cuándo se aplica una política](/docs/es/managed-settings#where-and-when-a-policy-applies) cubre qué política llega a las sesiones de Cowork en la máquina del usuario y las sesiones remotas de Cowork. claude.ai sigue aplicando sus listas [`strictKnownMarketplaces`](/docs/es/settings-reference#strictknownmarketplaces) y [`blockedMarketplaces`](/docs/es/settings-reference#blockedmarketplaces) cuando un usuario de Cowork agrega un marketplace desde un repositorio git en claude.ai o desde **Customize** en la pestaña Cowork. [Cómo funcionan las restricciones](/docs/es/plugins/org#restrict-what-users-can-install) describe esa verificación.

352 357 

353Si exporta una variable de proveedor `CLAUDE_CODE_USE_*` o una `ANTHROPIC_BASE_URL` no predeterminada en su shell, Claude Code omite la búsqueda de configuración para sus sesiones. [`claude doctor` y `/status` informan sobre la búsqueda omitida y su causa](#verify-settings-delivery).358Si exporta una variable de proveedor `CLAUDE_CODE_USE_*` o una `ANTHROPIC_BASE_URL` no predeterminada en su shell, Claude Code omite la búsqueda de configuración para sus sesiones. [`claude doctor` y `/status` informan sobre la búsqueda omitida y su causa](#verify-settings-delivery).


379| El usuario ejecuta un binario de Claude Code modificado | Un usuario que puede ejecutar un cliente modificado puede omitir cualquier control del lado del cliente |384| El usuario ejecuta un binario de Claude Code modificado | Un usuario que puede ejecutar un cliente modificado puede omitir cualquier control del lado del cliente |

380| El usuario ejecuta una versión anterior de Claude Code | Las versiones anteriores a la configuración administrada por servidor no obtienen ni aplican la configuración |385| El usuario ejecuta una versión anterior de Claude Code | Las versiones anteriores a la configuración administrada por servidor no obtienen ni aplican la configuración |

381| La API no está disponible | La configuración en caché se aplica si está disponible, excepto para los [valores que Claude Code retiene](#fetch-and-caching-behavior) hasta que una obtención tenga éxito. Sin una caché, Claude Code no aplica ninguna configuración administrada por servidor hasta la siguiente obtención exitosa y aún aplica cualquier [configuración administrada por endpoint](/docs/es/managed-settings#delivery-mechanisms) en el dispositivo. Con `forceRemoteSettingsRefresh: true`, la CLI se cierra en lugar de continuar, excepto para [subcomandos `claude auth`](#enforce-fail-closed-startup). Los clientes que iniciaron sesión a través de una [puerta de enlace de aplicaciones Claude](#platform-availability) se cierran al inicio sin esa configuración, con la misma excepción de `claude auth` |386| La API no está disponible | La configuración en caché se aplica si está disponible, excepto para los [valores que Claude Code retiene](#fetch-and-caching-behavior) hasta que una obtención tenga éxito. Sin una caché, Claude Code no aplica ninguna configuración administrada por servidor hasta la siguiente obtención exitosa y aún aplica cualquier [configuración administrada por endpoint](/docs/es/managed-settings#delivery-mechanisms) en el dispositivo. Con `forceRemoteSettingsRefresh: true`, la CLI se cierra en lugar de continuar, excepto para [subcomandos `claude auth`](#enforce-fail-closed-startup). Los clientes que iniciaron sesión a través de una [puerta de enlace de aplicaciones Claude](#platform-availability) se cierran al inicio sin esa configuración, con la misma excepción de `claude auth` |

382| El usuario se autentica con una organización diferente | La configuración no se entrega para cuentas fuera de la organización administrada |387| El usuario se autentica con una organización diferente | La configuración no se entrega para cuentas fuera de la organización administrada, incluida una sesión que se autentica con una [clave de API de Console](#platform-availability) |

383| El usuario configura un [proveedor de modelo de terceros](#platform-availability) | La configuración administrada por servidor se omite. Esto incluye establecer `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_MANTLE`, `CLAUDE_CODE_USE_VERTEX`, `CLAUDE_CODE_USE_FOUNDRY`, `CLAUDE_CODE_USE_ANTHROPIC_AWS`, o un `ANTHROPIC_BASE_URL` no predeterminado |388| El usuario configura un [proveedor de modelo de terceros](#platform-availability) | La configuración administrada por servidor se omite. Esto incluye establecer `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_MANTLE`, `CLAUDE_CODE_USE_VERTEX`, `CLAUDE_CODE_USE_FOUNDRY`, `CLAUDE_CODE_USE_ANTHROPIC_AWS`, o un `ANTHROPIC_BASE_URL` no predeterminado |

384| El tráfico de red se intercepta o se redirige | La validación de TLS deshabilitada o el tráfico interceptado pueden alterar la configuración que recibe el cliente |389| El tráfico de red se intercepta o se redirige | La validación de TLS deshabilitada o el tráfico interceptado pueden alterar la configuración que recibe el cliente |

385 390 

Details

1399 1399 

1400Elija qué sucede cuando un [clasificador de seguridad marca una solicitud](/docs/es/model-config#automatic-model-fallback): cambiar al modelo de respaldo y continuar, o pausar para que pueda elegir entre cambiar y editar el mensaje.1400Elija qué sucede cuando un [clasificador de seguridad marca una solicitud](/docs/es/model-config#automatic-model-fallback): cambiar al modelo de respaldo y continuar, o pausar para que pueda elegir entre cambiar y editar el mensaje.

1401 1401 

1402* **Alcance**: [`Cualquier archivo`](#scopes). Aparece en `/config` como **Cambiar modelos cuando se marca un mensaje**.1402* **Alcance**: [`Cualquier archivo`](#scopes). Aparece en `/config` como **Cambiar de modelo cuando se marca un mensaje**, con las opciones **Cambiar automáticamente** y **Preguntar cada vez**.

1403* **Tipo**: Booleano1403* **Tipo**: Booleano

1404 * `true`: Claude Code cambia al modelo de respaldo y continúa1404 * `true`: Claude Code cambia al modelo de respaldo y continúa

1405 * `false`: en una sesión interactiva Claude Code pausa para que pueda elegir entre cambiar y editar el mensaje; donde no puede mostrarse un diálogo, como una ejecución `-p`, la solicitud marcada termina como un error1405 * `false`: en una sesión interactiva Claude Code pausa para que pueda elegir entre cambiar y editar el mensaje; donde no puede mostrarse un diálogo, como una ejecución `-p`, la solicitud marcada termina como un error

1406* **Predeterminado**: `true`, cambiar automáticamente1406* **Predeterminado**: sin establecer. Claude Code cambia automáticamente, aunque puede [preguntar primero](/docs/es/model-config#ask-before-switching) en una sesión interactiva

1407 1407 

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

1409{1409{


3164 `plansDirectory`3164 `plansDirectory`

3165</h3>3165</h3>

3166 3166 

3167Elija dónde Claude Code almacena los archivos de plan que escribe en [Plan Mode](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode). Claude Code resuelve la ruta relativa a la raíz del proyecto y mantiene el predeterminado cuando la ruta se resuelve fuera de ella.3167Elige dónde Claude Code almacena los archivos de plan que escribe en [modo plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode). Claude Code resuelve la ruta de forma relativa a la raíz del proyecto.

3168 3168 

3169* **Scope**: [`Any file`](#scopes)3169* **Scope**: [`Any file`](#scopes)

3170* **Type**: string, una ruta relativa a la raíz del proyecto3170* **Type**: string, una ruta relativa a la raíz del proyecto


3176}3176}

3177```3177```

3178 3178 

3179Claude Code almacena los planes en `~/.claude/plans` en lugar del directorio que establezcas en casos como estos:

3180 

3181* **Fuera de la raíz del proyecto**: la ruta se resuelve fuera de la raíz del proyecto, como ocurre con `"../plans"`.

3182* **Barra invertida en macOS, Linux y WSL**: la ruta resuelta contiene una barra invertida, como ocurre con `"docs\\plans"` al estilo de Windows. Escribe `"docs/plans"`, que también funciona en Windows.

3183 

3179<h3 id="skilllistingbudgetfraction">3184<h3 id="skilllistingbudgetfraction">

3180 `skillListingBudgetFraction`3185 `skillListingBudgetFraction`

3181</h3>3186</h3>


5768 5773 

5769Desactive las sesiones de Code que se ejecutan en el dispositivo en la [aplicación de escritorio](/docs/es/desktop#local-sessions-on-managed-devices), para implementaciones donde los desarrolladores deben trabajar en máquinas remotas a través de SSH. En la pestaña Code, el entorno **Local** permanece en el menú desplegable de entornos pero está atenuado y no se puede seleccionar, con una información sobre herramientas que dice que su organización lo desactivó; en Windows, la entrada WSL está atenuada de la misma manera, aunque si las sesiones WSL se ejecutan en un dispositivo administrado o no se [rige por separado](/docs/es/admin-setup#wsl-sessions-in-claude-code-desktop). Las nuevas sesiones tienen como valor predeterminado la primera [conexión SSH](/docs/es/desktop#ssh-sessions) si una está configurada, y la aplicación se niega a iniciar o reanudar una sesión en el dispositivo, incluida una conexión SSH de vuelta a la misma máquina. Las sesiones SSH a otros hosts y las sesiones en la nube no se ven afectadas. La aplicación de escritorio lee esta clave; la CLI del terminal la ignora. Requiere Claude Desktop v1.37937.0 o posterior.5774Desactive las sesiones de Code que se ejecutan en el dispositivo en la [aplicación de escritorio](/docs/es/desktop#local-sessions-on-managed-devices), para implementaciones donde los desarrolladores deben trabajar en máquinas remotas a través de SSH. En la pestaña Code, el entorno **Local** permanece en el menú desplegable de entornos pero está atenuado y no se puede seleccionar, con una información sobre herramientas que dice que su organización lo desactivó; en Windows, la entrada WSL está atenuada de la misma manera, aunque si las sesiones WSL se ejecutan en un dispositivo administrado o no se [rige por separado](/docs/es/admin-setup#wsl-sessions-in-claude-code-desktop). Las nuevas sesiones tienen como valor predeterminado la primera [conexión SSH](/docs/es/desktop#ssh-sessions) si una está configurada, y la aplicación se niega a iniciar o reanudar una sesión en el dispositivo, incluida una conexión SSH de vuelta a la misma máquina. Las sesiones SSH a otros hosts y las sesiones en la nube no se ven afectadas. La aplicación de escritorio lee esta clave; la CLI del terminal la ignora. Requiere Claude Desktop v1.37937.0 o posterior.

5770 5775 

5771* **Scope**: [`Managed`](#scopes)5776* **Scope**: [`Managed`](#scopes). De forma predeterminada, la aplicación de escritorio lee la clave desde [una fuente administrada](/docs/es/managed-settings#how-claude-code-combines-managed-sources).

5772* **Type**: Boolean; solo el Boolean JSON `true` tiene efecto5777* **Type**: Boolean; solo el Boolean JSON `true` tiene efecto

5773 * `true`: la aplicación de escritorio no ofrece sesiones de Code en el dispositivo; las sesiones locales existentes permanecen listadas pero no pueden continuar5778 * `true`: la aplicación de escritorio no ofrece sesiones de Code en el dispositivo; las sesiones locales existentes permanecen listadas pero no pueden continuar

5774 * `false`: las sesiones locales permanecen disponibles5779 * `false`: las sesiones locales permanecen disponibles


5915 5920 

5916Agregue conexiones SSH al menú desplegable del entorno [Desktop](/docs/es/desktop#pre-configure-ssh-connections-for-your-team). Los administradores lo usan para distribuir conexiones compartidas a un equipo. Las conexiones que define en la configuración administrada se muestran como administradas, por lo que los usuarios pueden seleccionarlas pero no pueden editarlas ni eliminarlas en la aplicación.5921Agregue conexiones SSH al menú desplegable del entorno [Desktop](/docs/es/desktop#pre-configure-ssh-connections-for-your-team). Los administradores lo usan para distribuir conexiones compartidas a un equipo. Las conexiones que define en la configuración administrada se muestran como administradas, por lo que los usuarios pueden seleccionarlas pero no pueden editarlas ni eliminarlas en la aplicación.

5917 5922 

5918* **Scope**: [`User or managed`](#scopes). La aplicación de escritorio lee esta clave.5923* **Scope**: [`User or managed`](#scopes). La aplicación de escritorio lee esta clave. De forma predeterminada, lee las conexiones administradas desde [una fuente administrada](/docs/es/managed-settings#how-claude-code-combines-managed-sources).

5919* **Type**: matriz de objetos, cada uno con `id`, `name` y `sshHost` requeridos y `sshPort` y `sshIdentityFile` opcionales5924* **Type**: matriz de objetos, cada uno con `id`, `name` y `sshHost` requeridos y `sshPort` y `sshIdentityFile` opcionales

5920* **Default**: unset5925* **Default**: unset

5921 5926 


5939 5944 

5940Limite los hosts a los que una [sesión SSH de Desktop](/docs/es/desktop#restrict-which-ssh-hosts-users-can-connect-to) puede conectarse. Solo la aplicación de escritorio lee esta clave; la CLI no. Los patrones no distinguen mayúsculas de minúsculas: `*` coincide con cualquier host, `*.example.com` coincide con `example.com` y cada subdominio, y cualquier otra cosa es una coincidencia exacta contra el nombre de host después de la resolución de `~/.ssh/config`. Una matriz vacía desactiva las sesiones SSH.5945Limite los hosts a los que una [sesión SSH de Desktop](/docs/es/desktop#restrict-which-ssh-hosts-users-can-connect-to) puede conectarse. Solo la aplicación de escritorio lee esta clave; la CLI no. Los patrones no distinguen mayúsculas de minúsculas: `*` coincide con cualquier host, `*.example.com` coincide con `example.com` y cada subdominio, y cualquier otra cosa es una coincidencia exacta contra el nombre de host después de la resolución de `~/.ssh/config`. Una matriz vacía desactiva las sesiones SSH.

5941 5946 

5942* **Scope**: [`Managed`](#scopes)5947* **Scope**: [`Managed`](#scopes). De forma predeterminada, Desktop lee la clave desde [una fuente administrada](/docs/es/managed-settings#how-claude-code-combines-managed-sources).

5943* **Type**: matriz de patrones de nombre de host5948* **Type**: matriz de patrones de nombre de host

5944* **Default**: unset, por lo que se permite cualquier host5949* **Default**: unset, por lo que se permite cualquier host

5945 5950 


5951}5956}

5952```5957```

5953 5958 

5959Un valor que Desktop no puede leer como una lista de hosts, como `true` o un objeto, cuenta como una matriz vacía hasta que lo corrijas, excepto `null`, que cuenta como sin establecer. Requiere Claude Desktop v2.26454.0 o posterior.

5960 

5961Si estableces [`managedSourcesBehavior`](#managedsourcesbehavior) en `"merge"` en tu fuente de mayor rango, Desktop combina las listas de todas las [fuentes de administración](/docs/es/managed-settings#how-claude-code-combines-managed-sources) y permite un host que coincida con cualquiera de ellas. Si estableces una matriz vacía en una fuente, las sesiones SSH siguen activas para los hosts que enumera otra fuente.

5962 

5954<span id="authentication-and-login" />5963<span id="authentication-and-login" />

5955 5964 

5956<h2 id="authentication-and-providers">5965<h2 id="authentication-and-providers">

setup.md +12 −8

Details

63 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd63 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

64 ```64 ```

65 65 

66 Cuando el instalador termine, abra una nueva ventana de terminal y ejecute `claude --version`. Una instalación que funciona correctamente imprime un número de versión. Si su shell dice que `claude` no se encuentra o no se reconoce, el directorio de instalación aún no está en su PATH: consulte [Corrija su PATH](/docs/es/troubleshoot-install#command-not-found-claude-after-installation).66 El comando de instalación no muestra ningún progreso mientras descarga Claude Code. Cuando el instalador termine, abre una nueva ventana de terminal y ejecuta `claude --version`. Una instalación que funciona correctamente imprime un número de versión. Si tu shell dice que `claude` no se encuentra o no se reconoce, el directorio de instalación aún no está en tu PATH: consulta [Corrige tu PATH](/docs/es/troubleshoot-install#command-not-found-claude-after-installation).

67 67 

68 Si ves `The token '&&' is not a valid statement separator`, estás en PowerShell, no en CMD. Si ves `'irm' is not recognized as an internal or external command`, estás en CMD, no en PowerShell.68 Si ves `The token '&&' is not a valid statement separator`, estás en PowerShell, no en CMD. Si ves `'irm' is not recognized as an internal or external command`, estás en CMD, no en PowerShell.

69 69 


119 119 

120| Opción | Requiere | [Sandboxing](/docs/es/sandboxing) | Cuándo usar |120| Opción | Requiere | [Sandboxing](/docs/es/sandboxing) | Cuándo usar |

121| - | - | - | - |121| - | - | - | - |

122| Windows nativo | Ninguno; [Git for Windows](https://git-scm.com/downloads/win) es opcional | No compatible | Proyectos y herramientas nativas de Windows |122| [Windows nativo](#install-on-native-windows) | Ninguno; [Git for Windows](https://git-scm.com/downloads/win) es opcional | No compatible | Proyectos y herramientas nativas de Windows |

123| WSL 2 | WSL 2 habilitado | Compatible | Cadenas de herramientas de Linux o ejecución de comandos en sandbox |123| [WSL 2](#install-in-wsl) | WSL 2 habilitado | Compatible | Cadenas de herramientas de Linux o ejecución de comandos en sandbox |

124| WSL 1 | WSL 1 habilitado | No compatible | Si WSL 2 no está disponible |124| [WSL 1](#install-in-wsl) | WSL 1 habilitado | No compatible | Si WSL 2 no está disponible |

125 125 

126**Opción 1: Windows nativo**126<h4 id="install-on-native-windows">

127 Instalar en Windows nativo

128</h4>

127 129 

128Ejecuta el comando de instalación desde PowerShell o CMD. No necesitas ejecutar como Administrador. Instalar [Git for Windows](https://git-scm.com/downloads/win) es opcional. Proporciona Git Bash, que necesitan la [herramienta Bash](/docs/es/tools-reference#bash-tool-behavior) y la [herramienta Monitor](/docs/es/tools-reference#monitor-tool).130Ejecuta el [comando de instalación](#install-claude-code) desde PowerShell o CMD. No necesitas ejecutar como Administrador. Instalar [Git for Windows](https://git-scm.com/downloads/win) es opcional. Proporciona Git Bash, que necesitan la [herramienta Bash](/docs/es/tools-reference#bash-tool-behavior) y la [herramienta Monitor](/docs/es/tools-reference#monitor-tool).

129 131 

130Ya sea que instale desde PowerShell o CMD solo afecta qué comando de instalación ejecuta. Su indicador muestra `PS C:\Users\YourName>` en PowerShell y `C:\Users\YourName>` sin el `PS` en CMD. Si es nuevo en la terminal, la [guía de terminal](/docs/es/terminal-guide#windows) le guía a través de cada paso.132Ya sea que instale desde PowerShell o CMD solo afecta qué comando de instalación ejecuta. Su indicador muestra `PS C:\Users\YourName>` en PowerShell y `C:\Users\YourName>` sin el `PS` en CMD. Si es nuevo en la terminal, la [guía de terminal](/docs/es/terminal-guide#windows) le guía a través de cada paso.

131 133 


144 146 

145Cuando Git for Windows está instalado, la herramienta PowerShell está disponible junto a Bash: activada de forma predeterminada para cuentas de claude.ai y Console, y habilitada con `CLAUDE_CODE_USE_POWERSHELL_TOOL=1` en sesiones de Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry. Establézcalo en `0` para desactivar la herramienta. Consulte [herramienta PowerShell](/docs/es/tools-reference#powershell-tool) para configuración y limitaciones.147Cuando Git for Windows está instalado, la herramienta PowerShell está disponible junto a Bash: activada de forma predeterminada para cuentas de claude.ai y Console, y habilitada con `CLAUDE_CODE_USE_POWERSHELL_TOOL=1` en sesiones de Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry. Establézcalo en `0` para desactivar la herramienta. Consulte [herramienta PowerShell](/docs/es/tools-reference#powershell-tool) para configuración y limitaciones.

146 148 

147**Opción 2: WSL**149<h4 id="install-in-wsl">

150 Instalar en WSL

151</h4>

148 152 

149Abra su distribución de WSL y ejecute el instalador de Linux desde las [instrucciones de instalación](#install-claude-code) anteriores. Instala e inicia `claude` dentro del terminal de WSL, no desde PowerShell o CMD.153Abre tu distribución de WSL y ejecuta el instalador de Linux desde las [instrucciones de instalación](#install-claude-code). Instalas e inicias `claude` dentro de la terminal de WSL, no desde PowerShell o CMD.

150 154 

151<h3 id="alpine-linux-and-musl-based-distributions">155<h3 id="alpine-linux-and-musl-based-distributions">

152 Alpine Linux y distribuciones basadas en musl156 Alpine Linux y distribuciones basadas en musl

skills.md +15 −0

Details

36 36 

37Las skills incluidas se enumeran junto con los comandos integrados en la [referencia de comandos](/docs/es/commands), marcadas como **Skill** en la columna Propósito.37Las skills incluidas se enumeran junto con los comandos integrados en la [referencia de comandos](/docs/es/commands), marcadas como **Skill** en la columna Propósito.

38 38 

39<h3 id="check-your-setup-with-/doctor">

40 Revisa tu configuración con `/doctor`

41</h3>

42 

43Ejecuta `/doctor` en el prompt de Claude Code para obtener una comprobación de configuración que diagnostica problemas y puede corregirlos. Claude informa primero sus hallazgos y pide confirmación antes de cambiar nada. La comprobación abarca estas áreas:

44 

45* **Estado de la instalación**: instalaciones duplicadas o residuales, problemas de `PATH`, archivos de configuración que no se pueden analizar y si hay una versión más reciente disponible en tu [canal de versiones](/docs/es/setup#configure-release-channel)

46* **Extensiones**: skills, servidores MCP y plugins sin usar comparados con su costo de contexto, y [hooks](/docs/es/hooks) lentos

47* **Archivos `CLAUDE.md`**: archivos `CLAUDE.md` locales que duplican los que están en el repositorio, [contenido de `CLAUDE.md` en el repositorio que Claude podría derivar de la base de código](/docs/es/memory#my-claude-md-is-too-large), y la guía que siempre se carga y que queda, que Claude ofrece migrar a skills y a archivos `CLAUDE.md` anidados que se cargan bajo demanda

48* **Permisos**: una oferta para hacer del [modo automático](/docs/es/permissions#permission-modes) tu modo de permisos predeterminado y para [aprobar previamente](/docs/es/permissions) comandos de solo lectura que deniegas con frecuencia

49 

50Para obtener diagnósticos de instalación de solo lectura sin iniciar una sesión, ejecuta `claude doctor` en tu terminal.

51 

52Para auditar tus instrucciones en lugar de tu configuración, ejecuta `/doctor prompt-audit` en el prompt de Claude Code. Claude [revisa tus archivos `CLAUDE.md`, skills y otra configuración](/docs/es/memory#audit-your-instruction-files) en busca de instrucciones obsoletas o contradictorias en lugar de ejecutar la comprobación. El subcomando `prompt-audit` requiere Claude Code v2.1.283 o posterior.

53 

39<h3 id="run-and-verify-your-app">54<h3 id="run-and-verify-your-app">

40 Ejecute y verifique su aplicación55 Ejecute y verifique su aplicación

41</h3>56</h3>

statusline.md +92 −43

Details

146 Cómo funcionan las líneas de estado146 Cómo funcionan las líneas de estado

147</h2>147</h2>

148 148 

149Claude Code ejecuta su script con [datos de sesión JSON](#available-data) en stdin y muestra lo que el script imprime en stdout.149Claude Code ejecuta tu script con [datos de sesión JSON](#available-data) en stdin y muestra lo que el script imprime en stdout.

150 150 

151**Cuándo se actualiza**151<Note>La línea de estado se ejecuta localmente y no consume tokens de API. Se oculta temporalmente durante ciertas interacciones de la interfaz de usuario, incluyendo el menú de ayuda y las solicitudes de permiso.</Note>

152 152 

153Su script se ejecuta una vez cuando comienza una sesión, incluyendo cuando reanuda una. Después de eso, se ejecuta nuevamente cuando:153<h3 id="when-the-status-line-updates">

154 Cuándo se actualiza la línea de estado

155</h3>

156 

157Tu script se ejecuta una vez cuando comienza una sesión, incluyendo cuando reanudas una. Después de eso, se ejecuta nuevamente cuando:

154 158 

155* Llega un nuevo mensaje del asistente159* Llega un nuevo mensaje del asistente

156* `/compact` finaliza160* `/compact` finaliza

157* El modo de permiso cambia161* El modo de permisos cambia

158* El modo Vim se activa o desactiva162* El modo Vim se activa o desactiva

159* Cambia el `command` en su configuración de `statusLine`163* Cambias el `command` en tu configuración de `statusLine`

160* Un temporizador [`refreshInterval`](#manually-configure-a-status-line) se agota, si establece uno164* Un temporizador [`refreshInterval`](#manually-configure-a-status-line) se agota, si estableces uno

161* Una ventana de [límite de velocidad](#rate-limit-usage) en los datos que su script recibió por última vez alcanza su tiempo `resets_at`165* Una ventana de [rate limit](#rate-limit-usage) en los datos que tu script recibió por última vez alcanza su tiempo `resets_at`

162* Un [caché de prompt](#prompt-cache-fields) cálido en los datos que su script recibió por última vez alcanza su tiempo `expires_at`166* Una [caché de prompt](#prompt-cache-fields) activa en los datos que tu script recibió por última vez alcanza su tiempo `expires_at`

163 167 

164Claude Code debounce las actualizaciones a 300ms, por lo que los cambios rápidos se agrupan y su script se ejecuta una vez después de que los cambios se detienen. Un cambio en el propio `command` omite el debounce: Claude Code ejecuta el nuevo comando de inmediato. Si una nueva actualización se activa mientras su script aún se está ejecutando, Claude Code cancela el script en vuelo. Si edita su script, los cambios aparecen la próxima vez que un disparador de actualización lo vuelve a ejecutar.168Claude Code aplica debounce a las actualizaciones a 300ms, por lo que los cambios rápidos se agrupan y tu script se ejecuta una vez después de que los cambios se detienen. Un cambio en el propio `command` omite el debounce: Claude Code ejecuta el nuevo comando de inmediato. Si una nueva actualización se activa mientras tu script aún se está ejecutando, Claude Code cancela el script en curso. Si editas tu script, los cambios aparecen la próxima vez que un disparador de actualización lo vuelve a ejecutar.

165 169 

166Los disparadores impulsados por eventos pueden quedarse en silencio cuando la sesión principal está inactiva, por ejemplo mientras un coordinador espera en subagentes de fondo. Para mantener los segmentos basados en tiempo o de fuentes externas actualizados durante períodos de inactividad, establezca [`refreshInterval`](#manually-configure-a-status-line) para también volver a ejecutar el comando en un temporizador fijo.170Los disparadores impulsados por eventos pueden quedarse en silencio cuando la sesión principal está inactiva, por ejemplo mientras un coordinador espera a subagentes en segundo plano. Para mantener actualizados los segmentos basados en tiempo o de fuentes externas durante períodos de inactividad, establece [`refreshInterval`](#manually-configure-a-status-line) para también volver a ejecutar el comando con un temporizador fijo.

167 171 

168**Lo que su script puede generar**172<h3 id="what-your-script-can-output">

173 Lo que tu script puede generar

174</h3>

169 175 

170* **Múltiples líneas**: cada declaración `echo` o `print` se muestra como una fila separada. Vea el [ejemplo de múltiples líneas](#display-multiple-lines).176Tu script puede imprimir más que una sola línea de texto plano:

171* **Colores**: use [códigos de escape ANSI](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors) como `\033[32m` para verde (la terminal debe admitirlos). Vea el [ejemplo de estado de git](#git-status-with-colors).

172* **Enlaces**: use [secuencias de escape OSC 8](https://en.wikipedia.org/wiki/ANSI_escape_code#OSC) para hacer que el texto sea clickeable (Cmd+clic en macOS, Ctrl+clic en Windows/Linux). Requiere una terminal que admita hipervínculos como iTerm2, Kitty o WezTerm. Vea el [ejemplo de enlaces clickeables](#clickable-links).

173 177 

174**Ajustar el tamaño de la salida a la terminal**178* **Múltiples líneas**: cada declaración `echo` o `print` se muestra como una fila separada. Consulta el [ejemplo de múltiples líneas](#display-multiple-lines).

179* **Colores**: usa [códigos de escape ANSI](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors) como `\033[32m` para verde (la terminal debe admitirlos). Consulta el [ejemplo de estado de git](#git-status-with-colors).

180* **Enlaces**: usa [secuencias de escape OSC 8](https://en.wikipedia.org/wiki/ANSI_escape_code#OSC) para hacer que el texto sea clickeable (Cmd+clic en macOS, Ctrl+clic en Windows/Linux). Requiere una terminal que admita hipervínculos como iTerm2, Kitty o WezTerm. Consulta el [ejemplo de enlaces clickeables](#clickable-links).

175 181 

176Claude Code captura la salida de su script en lugar de conectarla directamente a la terminal, por lo que `tput cols` y la detección de ancho a nivel de lenguaje no pueden leer el tamaño de la terminal desde dentro del script. Lea las variables de entorno `COLUMNS` y `LINES` en su lugar. Claude Code establece estas en las dimensiones actuales de la terminal antes de ejecutar su script.182<h3 id="size-output-to-the-terminal">

183 Ajustar el tamaño de la salida a la terminal

184</h3>

177 185 

178<Note>La línea de estado se ejecuta localmente y no consume tokens de API. Se oculta temporalmente durante ciertas interacciones de la interfaz de usuario, incluyendo el menú de ayuda y los avisos de permisos.</Note>186Claude Code captura la salida de tu script en lugar de conectarla directamente a la terminal, por lo que `tput cols` y la detección de ancho a nivel de lenguaje no pueden leer el tamaño de la terminal desde dentro del script. Lee las variables de entorno `COLUMNS` y `LINES` en su lugar. Claude Code las establece en las dimensiones actuales de la terminal antes de ejecutar tu script.

179 187 

180<h2 id="available-data">188<h2 id="available-data">

181 Datos disponibles189 Datos disponibles


1168}1176}

1169```1177```

1170 1178 

1171El comando se ejecuta una vez por tick de actualización con todas las filas de subagentes visibles pasadas como un único objeto JSON en stdin. La entrada incluye los [campos de hook base](/docs/es/hooks#common-input-fields), un campo `columns` con el ancho de fila utilizable, y un array `tasks`. Cada tarea tiene `id`, `name`, `type`, `status`, `description`, `label`, `startTime`, `model`, `effort`, `contextWindowSize`, `tokenCount`, `tokenSamples`, y `cwd`.1179El comando se ejecuta una vez por tick de actualización y recibe todas las filas de subagentes visibles como un único objeto JSON en stdin. La entrada incluye los [campos de hook base](/docs/es/hooks#common-input-fields), un campo `columns` con el ancho de fila utilizable y un array `tasks` con una entrada por fila, descrito en [Campos de tarea](#task-fields).

1172 

1173El campo `model` por tarea es el ID de modelo resuelto en el que se ejecuta la tarea. `contextWindowSize` es la ventana de contexto de ese modelo en tokens, calculada de la misma manera que `context_window.context_window_size` de la línea de estado principal, por lo que puedes renderizar un porcentaje por fila desde `tokenCount`. Ambos campos requieren Claude Code v2.1.205 o posterior y se omiten para una tarea cuyo modelo aún no está resuelto.

1174 

1175El campo `effort` por tarea es el esfuerzo de razonamiento establecido para ese subagente, en su [frontmatter de definición](/docs/es/sub-agents#supported-frontmatter-fields) o en la invocación individual. El valor es uno de los strings de nivel de esfuerzo `low`, `medium`, `high`, `xhigh`, o `max`, o un presupuesto de tokens numérico. El campo reporta el valor configurado tal como está escrito: si el modelo no admite ese nivel, el esfuerzo que Claude Code realmente aplica puede diferir. El campo requiere Claude Code v2.1.214 o posterior y está ausente cuando no se establece ningún nivel para el subagente.

1176 1180 

1177Escribe una línea JSON a stdout por cada fila que desees anular, en la forma `{"id": "<task id>", "content": "<row body>"}`. La cadena `content` se renderiza tal cual, incluidos colores ANSI e hipervínculos OSC 8. Omite el `id` de una tarea para mantener el renderizado predeterminado para esa fila; emite una cadena `content` vacía para ocultarla.1181Escribe una línea JSON a stdout por cada fila que desees anular, en la forma `{"id": "<task id>", "content": "<row body>"}`. La cadena `content` se renderiza tal cual, incluidos colores ANSI e hipervínculos OSC 8. Omite el `id` de una tarea para mantener el renderizado predeterminado para esa fila; emite una cadena `content` vacía para ocultarla.

1178 1182 

1179Las mismas puertas de confianza, `disableAllHooks`, y [`allowManagedHooksOnly`](/docs/es/settings-reference#allowmanagedhooksonly) que se aplican a `statusLine` se aplican aquí. Los plugins pueden enviar una `subagentStatusLine` predeterminada en su [`settings.json`](/docs/es/plugins/manifest-reference#standard-layout), pero a diferencia de los hooks, los valores de plugins no se ejecutan bajo `allowManagedHooksOnly` incluso cuando el plugin está forzadamente habilitado en la configuración gestionada `enabledPlugins`.1183Las mismas puertas de confianza, `disableAllHooks`, y [`allowManagedHooksOnly`](/docs/es/settings-reference#allowmanagedhooksonly) que se aplican a `statusLine` se aplican aquí. Los plugins pueden enviar una `subagentStatusLine` predeterminada en su [`settings.json`](/docs/es/plugins/manifest-reference#standard-layout), pero a diferencia de los hooks, los valores de plugins no se ejecutan bajo `allowManagedHooksOnly` incluso cuando el plugin está forzadamente habilitado en la configuración gestionada `enabledPlugins`.

1180 1184 

1185<h3 id="task-fields">

1186 Campos de tarea

1187</h3>

1188 

1189Cada entrada del array `tasks` describe una fila de subagente con los campos siguientes. Los campos marcados como opcionales se omiten cuando no tienen valor, así que contempla su ausencia en tu script.

1190 

1191| Campo | Tipo | Descripción |

1192| :- | :- | :- |

1193| `id` | string | Identificador de la tarea. Devuélvelo como `id` en la línea que escribas para esta fila |

1194| `name` | string, opcional | Nombre con el que [se dirige](/docs/es/sub-agents#subagent-names) al subagente, cuando tiene uno |

1195| `type` | string | Tipo de tarea: `local_agent` |

1196| `agentType` | string | Tipo de subagente con el que se ejecuta la tarea, como el integrado [`Explore`](/docs/es/sub-agents#built-in-subagents) o uno personalizado `code-reviewer`. Contiene el mismo valor que los hooks reciben como [`agent_type`](/docs/es/hooks#subagentstart). Requiere Claude Code v2.1.293 o posterior |

1197| `status` | string | Estado de la tarea, como `running`, `completed`, `failed` o `killed` |

1198| `description` | string | Descripción breve de la tarea, como la que Claude dio al generar el subagente |

1199| `label` | string | Resumen breve del progreso de la tarea cuando Claude Code tiene uno; de lo contrario, el mismo texto que `description` |

1200| `startTime` | number | Momento en que comenzó la tarea, en milisegundos desde la época Unix |

1201| `model` | string, opcional | ID del modelo resuelto en el que se ejecuta la tarea. Se omite hasta que el modelo se resuelve. Requiere Claude Code v2.1.205 o posterior |

1202| `effort` | string o number, opcional | Esfuerzo de razonamiento establecido para el subagente en su [frontmatter de definición](/docs/es/sub-agents#supported-frontmatter-fields) o en la invocación individual: `low`, `medium`, `high`, `xhigh`, `max` o un presupuesto de tokens numérico. Es el valor configurado, y el esfuerzo que Claude Code aplica puede diferir cuando el modelo no admite ese nivel. Se omite cuando no se establece ningún esfuerzo. Requiere Claude Code v2.1.213 o posterior |

1203| `contextWindowSize` | number, opcional | Ventana de contexto de `model` en tokens, calculada de la misma manera que [`context_window.context_window_size`](#context-window-fields) de la línea de estado principal, por lo que puedes renderizar un porcentaje por fila desde `tokenCount`. Se omite cuando se omite `model`. Requiere Claude Code v2.1.205 o posterior |

1204| `tokenCount` | number | Recuento acumulado de tokens del subagente, la cifra que muestra la fila predeterminada |

1205| `tokenSamples` | array de numbers | Hasta las últimas 16 lecturas de `tokenCount`, una por tick de actualización, de la más antigua a la más reciente y terminando con la actual |

1206| `cwd` | string | Directorio de trabajo del subagente: su propio directorio cuando se ejecuta en uno, como un worktree aislado; de lo contrario, el directorio de trabajo de la sesión |

1207 

1181<h2 id="tips">1208<h2 id="tips">

1182 Consejos1209 Consejos

1183</h2>1210</h2>


1192 Solución de problemas1219 Solución de problemas

1193</h2>1220</h2>

1194 1221 

1195**La línea de estado no aparece**1222Si la línea de estado está en blanco, comienza con [La línea de estado no aparece](#status-line-not-appearing). Una carpeta en la que no has confiado y un script que falla también la dejan en blanco, como se describe en [Confianza del espacio de trabajo requerida](#workspace-trust-required) y [Errores de script o bloqueos](#script-errors-or-hangs).

1223 

1224<h3 id="status-line-not-appearing">

1225 La línea de estado no aparece

1226</h3>

1227 

1228Si configuraste una línea de estado y no se muestra nada en la parte inferior de la interfaz, revisa estas comprobaciones:

1196 1229 

1197* Verifica que tu script sea ejecutable: `chmod +x ~/.claude/statusline.sh`1230* Verifica que tu script sea ejecutable: `chmod +x ~/.claude/statusline.sh`

1198* Comprueba que tu script genere salida a stdout, no stderr1231* Comprueba que tu script genere salida a stdout, no stderr

1199* Ejecuta tu script manualmente para verificar que produce salida1232* Ejecuta tu script manualmente para verificar que produce salida

1200* En Windows con Git Bash instalado, es probable que las barras invertidas en la ruta del `command` se consuman como caracteres de escape antes de que se ejecute el script. Usa barras diagonales en la ruta. Consulta [Configuración de Windows](#windows-configuration).1233* En Windows con Git Bash instalado, es probable que las barras invertidas en la ruta del `command` se consuman como caracteres de escape antes de que se ejecute el script. Usa barras diagonales en la ruta. Consulta [Configuración de Windows](#windows-configuration).

1201* Si `disableAllHooks` es `true` fuera de la configuración administrada después de que se aplica la [precedencia de configuración](/docs/es/hooks#disable-or-remove-hooks), Claude Code ejecuta solo un `statusLine` de la configuración administrada, y sin un `statusLine` administrado la línea de estado está deshabilitada. Elimina la configuración o establécela en `false` en el archivo que la establece para volver a habilitarla. Consulta [`disableAllHooks`](/docs/es/settings-reference#disableallhooks).1234* Si `disableAllHooks` es `true` fuera de la configuración administrada después de que se aplica la [precedencia de configuración](/docs/es/hooks#disable-or-remove-hooks), Claude Code ejecuta solo un `statusLine` de la configuración administrada, y sin un `statusLine` administrado la línea de estado está deshabilitada. Elimina el ajuste o establécelo en `false` en el archivo que lo establece para volver a habilitarla. Consulta [`disableAllHooks`](/docs/es/settings-reference#disableallhooks).

1202* Si tu organización establece `allowManagedHooksOnly` en la configuración administrada, tu línea de estado personalizada desaparece sin advertencia: solo puedes obtener una línea de estado de un valor `statusLine` en esa configuración administrada. Consulta [qué se ejecuta bajo `allowManagedHooksOnly`](/docs/es/settings-reference#what-runs-under-allowmanagedhooksonly) para el comportamiento completo, y pregunta a tu administrador si esta configuración se aplica a ti.1235* Si tu organización establece `allowManagedHooksOnly` en la configuración administrada, tu línea de estado personalizada desaparece sin advertencia: solo puedes obtener una línea de estado de un valor `statusLine` en esa configuración administrada. Consulta [qué se ejecuta bajo `allowManagedHooksOnly`](/docs/es/settings-reference#what-runs-under-allowmanagedhooksonly) para el comportamiento completo, y pregunta a tu administrador si este ajuste se aplica a ti.

1203* Ejecuta `claude --debug` para registrar el stderr de tu script en cada invocación de línea de estado, y su código de salida en la primera invocación en una sesión1236* Ejecuta `claude --debug` para registrar el stderr de tu script en cada invocación de línea de estado, y su código de salida en la primera invocación en una sesión

1204* Pídele a Claude que lea tu archivo de configuración y ejecute el comando `statusLine` directamente para exponer errores1237* Pídele a Claude que lea tu archivo de configuración y ejecute el comando `statusLine` directamente para exponer errores

1205 1238 

1206**La línea de estado muestra `--` o valores vacíos**1239<h3 id="status-line-shows-or-empty-values">

1240 La línea de estado muestra `--` o valores vacíos

1241</h3>

1242 

1243Los campos pueden ser `null` antes de que se complete la primera respuesta de API, así que maneja los valores nulos en tu script con valores de respaldo como `// 0` en jq. Reinicia Claude Code si los valores permanecen vacíos después de múltiples mensajes.

1207 1244 

1208* Los campos pueden ser `null` antes de que se complete la primera respuesta de API1245<h3 id="context-percentage-shows-unexpected-values">

1209* Maneja valores nulos en tu script con valores predeterminados de respaldo como `// 0` en jq1246 El porcentaje de contexto muestra valores inesperados

1210* Reinicia Claude Code si los valores permanecen vacíos después de múltiples mensajes1247</h3>

1211 1248 

1212**El porcentaje de contexto muestra valores inesperados**1249La línea de estado reporta los conteos de la última respuesta de API, mientras que `/context` agrega una estimación para los mensajes añadidos desde esa respuesta, por lo que `/context` puede leer más alto hasta la siguiente respuesta. Usa `used_percentage` para el estado de contexto más simple y preciso. Para la fórmula detrás de `used_percentage`, consulta [Campos de la ventana de contexto](#context-window-fields).

1213 1250 

1214* Usa `used_percentage` para el estado de contexto más simple y preciso1251<h3 id="osc-8-links-not-clickable">

1215* La línea de estado reporta los conteos de la última respuesta de API, mientras que `/context` agrega una estimación para los mensajes añadidos desde esa respuesta, por lo que `/context` puede leer más alto hasta la siguiente respuesta1252 Los enlaces OSC 8 no son clickeables

1253</h3>

1216 1254 

1217**Los enlaces OSC 8 no son clickeables**1255Que un enlace sea clickeable depende de tu terminal, de si Claude Code detecta soporte de hipervínculos en ella, de si SSH o tmux eliminan la secuencia de escape y de cómo la imprime tu script:

1218 1256 

1219* Verifica que tu terminal admita hipervínculos OSC 8 (iTerm2, Kitty, WezTerm)1257* Verifica que tu terminal admita hipervínculos OSC 8 (iTerm2, Kitty, WezTerm)

1220 1258 

1221* Terminal.app no admite enlaces clickeables1259* Terminal.app no admite enlaces clickeables

1222 1260 

1223* Si el texto del enlace aparece pero no es clickeable, Claude Code puede no haber detectado soporte de hipervínculos en tu terminal. Establece la variable de entorno `FORCE_HYPERLINK` para anular la detección antes de lanzar Claude Code:1261* Si el texto del enlace aparece pero no es clickeable, Claude Code puede no haber detectado soporte de hipervínculos en tu terminal. Establece la variable de entorno `FORCE_HYPERLINK` para sobrescribir la detección antes de lanzar Claude Code:

1224 1262 

1225 ```bash theme={null}1263 ```bash theme={null}

1226 FORCE_HYPERLINK=1 claude1264 FORCE_HYPERLINK=1 claude


1236 1274 

1237* Si las secuencias de escape aparecen como texto literal como `\e]8;;`, usa `printf '%b'` en lugar de `echo -e` para un manejo más confiable de escapes1275* Si las secuencias de escape aparecen como texto literal como `\e]8;;`, usa `printf '%b'` en lugar de `echo -e` para un manejo más confiable de escapes

1238 1276 

1239**Problemas de visualización con secuencias de escape**1277<h3 id="display-glitches-with-escape-sequences">

1278 Problemas de visualización con secuencias de escape

1279</h3>

1240 1280 

1241* Las secuencias de escape complejas (colores ANSI, enlaces OSC 8) pueden ocasionalmente causar salida garbled si se superponen con otras actualizaciones de la interfaz1281Las secuencias de escape complejas (colores ANSI, enlaces OSC 8) pueden ocasionalmente causar salida distorsionada si se superponen con otras actualizaciones de la interfaz. Las líneas de estado de múltiples líneas con códigos de escape son más propensas a problemas de renderizado que el texto plano de una sola línea.

1242* Si ves texto corrupto, intenta simplificar tu script a salida de texto plano

1243* Las líneas de estado de múltiples líneas con códigos de escape son más propensas a problemas de renderizado que el texto plano de una sola línea

1244 1282 

1245**Confianza del espacio de trabajo requerida**1283Si ves texto corrupto, intenta simplificar tu script a salida de texto plano.

1246 1284 

1247* Debido a que `statusLine` ejecuta un comando de shell, Claude Code lo ejecuta bajo la misma [regla de confianza del espacio de trabajo que los hooks en archivos de configuración](/docs/es/permissions#what-runs-before-you-trust-a-folder). Aceptar el diálogo para la carpeta, o para un directorio padre cuya confianza se extiende a ella, es suficiente.1285<h3 id="workspace-trust-required">

1248* Hasta entonces, la línea de estado permanece en blanco, y `claude --debug` registra `Status line command skipped: workspace trust not accepted`. Reinicia Claude Code y acepta el diálogo de confianza para habilitarlo.1286 Confianza del espacio de trabajo requerida

1287</h3>

1249 1288 

1250**Errores de script o bloqueos**1289Hasta que aceptes el diálogo de confianza del espacio de trabajo, la línea de estado permanece en blanco. Debido a que `statusLine` ejecuta un comando de shell, Claude Code lo ejecuta bajo la misma [regla de confianza del espacio de trabajo que los hooks en archivos de configuración](/docs/es/permissions#what-runs-before-you-trust-a-folder). Aceptar el diálogo para la carpeta, o para un directorio padre cuya confianza se extiende a ella, es suficiente.

1290 

1291Hasta entonces, `claude --debug` registra `Status line command skipped: workspace trust not accepted`. Reinicia Claude Code y acepta el diálogo de confianza para habilitarlo.

1292 

1293<h3 id="script-errors-or-hangs">

1294 Errores de script o bloqueos

1295</h3>

1296 

1297Claude Code muestra la salida de tu script solo después de que el script termina con código 0:

1251 1298 

1252* Los scripts que salen con códigos distintos de cero o no producen salida hacen que la línea de estado se quede en blanco1299* Los scripts que salen con códigos distintos de cero o no producen salida hacen que la línea de estado se quede en blanco

1253* Los scripts lentos bloquean la línea de estado de actualizar hasta que se completen. Mantén los scripts rápidos para evitar salida obsoleta.1300* Los scripts lentos bloquean la línea de estado de actualizar hasta que se completen. Mantén los scripts rápidos para evitar salida obsoleta.

1254* Si una nueva actualización se activa mientras un script lento se está ejecutando, el script en vuelo se cancela1301* Si una nueva actualización se activa mientras un script lento se está ejecutando, el script en vuelo se cancela

1255* Prueba tu script de forma independiente con entrada simulada antes de configurarlo1302* Prueba tu script de forma independiente con entrada simulada antes de configurarlo

1256 1303 

1257**Las notificaciones comparten la fila de la línea de estado**1304<h3 id="notifications-share-the-status-line-row">

1305 Las notificaciones comparten la fila de la línea de estado

1306</h3>

1258 1307 

1259Fuera de la [representación a pantalla completa](/docs/es/fullscreen), Claude Code muestra notificaciones en la misma fila que tu línea de estado. En la representación a pantalla completa, Claude Code asigna a las notificaciones una fila propia.1308Fuera de la [representación a pantalla completa](/docs/es/fullscreen), Claude Code muestra notificaciones en la misma fila que tu línea de estado. En la representación a pantalla completa, Claude Code asigna a las notificaciones una fila propia.

1260 1309 

sub-agents.md +2 −0

Details

3793. La variable de entorno [`CLAUDE_CODE_SUBAGENT_MODEL`](/docs/es/model-config#environment-variables), cuando la establece en un alias de modelo o ID de modelo3793. La variable de entorno [`CLAUDE_CODE_SUBAGENT_MODEL`](/docs/es/model-config#environment-variables), cuando la establece en un alias de modelo o ID de modelo

3804. El modelo de la conversación principal3804. El modelo de la conversación principal

381 381 

382Si un [mod](/docs/es/plugins/mods/overview) instalado establece un modelo en su hook [`agent.spawn`](/docs/es/plugins/mods/reference#subagents), Claude Code usa ese modelo en lugar del parámetro por invocación.

383 

382En dos casos, un alias de familia como `opus` en el parámetro por invocación o el frontmatter se resuelve al modelo de la conversación principal en lugar de la [versión a la que apunta el alias](/docs/es/model-config#model-aliases):384En dos casos, un alias de familia como `opus` en el parámetro por invocación o el frontmatter se resuelve al modelo de la conversación principal en lugar de la [versión a la que apunta el alias](/docs/es/model-config#model-aliases):

383 385 

384* **El modelo de la conversación principal pertenece a esa familia**: el subagente se ejecuta en el modelo exacto de la conversación principal, incluyendo cualquier sufijo `[1m]`, por lo que obtiene la misma ventana de [contexto extendido](/docs/es/model-config#extended-context) que la conversación principal.386* **El modelo de la conversación principal pertenece a esa familia**: el subagente se ejecuta en el modelo exacto de la conversación principal, incluyendo cualquier sufijo `[1m]`, por lo que obtiene la misma ventana de [contexto extendido](/docs/es/model-config#extended-context) que la conversación principal.

tools-reference.md +34 −24

Details

154 Qué persiste entre comandos154 Qué persiste entre comandos

155</h3>155</h3>

156 156 

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

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

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

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

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

162* Los alias y funciones de shell definidos en su archivo de inicio de shell están disponibles. Al inicio de la sesión, Claude Code obtiene `~/.zshrc`, `~/.bashrc`, o `~/.profile` dependiendo de su shell, captura los alias, funciones y opciones de shell resultantes, y los aplica a cada comando Bash.162* Los alias y funciones de shell definidos en tu archivo de inicio de shell están disponibles. Al inicio de la sesión, Claude Code obtiene `~/.zshrc`, `~/.bashrc`, o `~/.profile` dependiendo de tu shell, captura los alias, funciones y opciones de shell resultantes, y los aplica a cada comando Bash.

163 163 

164Active su virtualenv o entorno conda antes de lanzar Claude Code. Para hacer que las variables de entorno persistan entre comandos Bash, establezca [`CLAUDE_ENV_FILE`](/docs/es/env-vars) en un script de shell antes de lanzar Claude Code, o use un [hook SessionStart](/docs/es/hooks#persist-environment-variables) para poblarlo dinámicamente.164Activa tu virtualenv o entorno conda antes de lanzar Claude Code. Para hacer que las variables de entorno persistan entre comandos Bash, establece [`CLAUDE_ENV_FILE`](/docs/es/env-vars) en un script de shell antes de lanzar Claude Code, o usa un [hook SessionStart](/docs/es/hooks#persist-environment-variables) para poblarlo dinámicamente.

165 165 

166<h3 id="timeout-and-output-limits">166<h3 id="timeout-and-output-limits">

167 Límites de tiempo de espera y salida167 Límites de tiempo de espera y salida

168</h3>168</h3>

169 169 

170Cada comando se ejecuta bajo un tiempo de espera, y Claude lo gestiona: cuando necesita más tiempo que el predeterminado para un comando, pasa el parámetro `timeout` con esa llamada. Nunca establece un tiempo de espera por comando.170Cada comando se ejecuta bajo un tiempo de espera, y Claude lo gestiona: cuando necesita más tiempo que el predeterminado para un comando, pasa el parámetro `timeout` con esa llamada. Nunca estableces un tiempo de espera por comando.

171 171 

172Dos [variables de entorno](/docs/es/env-vars) controlan lo que Claude obtiene para un comando que se ejecuta en primer plano:172Dos [variables de entorno](/docs/es/env-vars) controlan lo que Claude obtiene para un comando que se ejecuta en primer plano:

173 173 


189 189 

190Un comando que sale con código 1 cuenta como un resultado válido para la herramienta Bash solo cuando Claude Code reconoce el código de salida 1 como un resultado benigno para ese comando: `grep`, `rg`, `egrep`, `fgrep`, `find`, `diff`, `test`, y `[`, más `git diff` y `git grep`. Todos los demás comandos que salen con código 1 cuentan como un fallo, incluso cuando el código de salida 1 es un resultado informativo benigno: sin coincidencias para `pgrep` y `jq -e`, archivos que difieren para `cmp`.190Un comando que sale con código 1 cuenta como un resultado válido para la herramienta Bash solo cuando Claude Code reconoce el código de salida 1 como un resultado benigno para ese comando: `grep`, `rg`, `egrep`, `fgrep`, `find`, `diff`, `test`, y `[`, más `git diff` y `git grep`. Todos los demás comandos que salen con código 1 cuentan como un fallo, incluso cuando el código de salida 1 es un resultado informativo benigno: sin coincidencias para `pgrep` y `jq -e`, archivos que difieren para `cmp`.

191 191 

192[`BASH_MAX_OUTPUT_LENGTH`](/docs/es/env-vars) establece cuántos caracteres de salida Claude Code lee desde el archivo de trabajo hacia el resultado de un comando: 30.000 de forma predeterminada, hasta un límite máximo fijo de 150.000. Auméntelo cuando sus comandos se desborden rutinariamente de esa ventana, como una compilación detallada o un registro completo de suite de pruebas. Aumentarlo amplía la ventana de lectura, que también es la ventana de la que se corta el extracto de un comando fallido. No aumenta los límites en línea: un resultado válido sobre el límite en línea llega como una ruta de archivo más vista previa independientemente de esta variable.192[`BASH_MAX_OUTPUT_LENGTH`](/docs/es/env-vars) establece cuántos caracteres de salida Claude Code lee desde el archivo de trabajo hacia el resultado de un comando: 30.000 de forma predeterminada, hasta un límite máximo fijo de 150.000. Auméntalo cuando tus comandos se desborden rutinariamente de esa ventana, como una compilación detallada o un registro completo de suite de pruebas. Aumentarlo amplía la ventana de lectura, que también es la ventana de la que se corta el extracto de un comando fallido. No aumenta los límites en línea: un resultado válido sobre el límite en línea llega como una ruta de archivo más vista previa independientemente de esta variable.

193 193 

194Para cambiar cuánta salida válida recibe Claude en línea, establezca la configuración [`bashOutputMaxChars`](/docs/es/settings-reference#bashoutputmaxchars) en su lugar, hasta 128.000 caracteres. Dimensiona el límite en línea y la ventana de lectura juntos, y Claude Code ignora `BASH_MAX_OUTPUT_LENGTH`. Requiere Claude Code v2.1.261 o posterior.194Para cambiar cuánta salida válida recibe Claude en línea, establece el ajuste [`bashOutputMaxChars`](/docs/es/settings-reference#bashoutputmaxchars) en su lugar, hasta 128.000 caracteres. Dimensiona el límite en línea y la ventana de lectura juntos, y Claude Code ignora `BASH_MAX_OUTPUT_LENGTH`. Requiere Claude Code v2.1.261 o posterior.

195 195 

196<h3 id="background-commands">196<h3 id="background-commands">

197 Comandos en segundo plano197 Comandos en segundo plano

198</h3>198</h3>

199 199 

200Para procesos de larga duración como servidores de desarrollo o compilaciones de vigilancia, Claude puede establecer `run_in_background: true` para iniciar el comando como una tarea en segundo plano y continuar trabajando mientras se ejecuta. Liste y detenga tareas en segundo plano con `/tasks`. Después de detener una allí, o desde un cliente conectado como la aplicación de escritorio, Claude continúa en lugar de esperar. Si un subagente inició el comando, es ese subagente el que continúa.200Para procesos de larga duración como servidores de desarrollo o compilaciones de vigilancia, Claude puede establecer `run_in_background: true` para iniciar el comando como una tarea en segundo plano y continuar trabajando mientras se ejecuta. Lista y detén tareas en segundo plano con `/tasks`. Después de detener una allí, o desde un cliente conectado como la aplicación de escritorio, Claude continúa en lugar de esperar. Si un subagente inició el comando, es ese subagente el que continúa.

201 201 

202<h4 id="when-a-background-command-stops">202<h4 id="when-a-background-command-stops">

203 Cuándo se detiene un comando en segundo plano203 Cuándo se detiene un comando en segundo plano

204</h4>204</h4>

205 205 

206Un comando que un [subagente en primer plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background) inició se detiene cuando finaliza la ejecución de ese subagente, ya sea que se haya completado, fallado o fue interrumpido. Un comando que la conversación principal o un subagente en segundo plano inició continúa ejecutándose después de una respuesta final, hasta que sale, se detiene o alcanza su [límite de tiempo](#time-limit-for-background-commands). En modo no interactivo con la bandera `-p`, [los comandos en segundo plano terminan poco después del resultado final de la ejecución](/docs/es/headless#background-tasks-at-exit).206Un comando que un [subagente en primer plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background) inició se detiene cuando finaliza la ejecución de ese subagente, ya sea que se haya completado, fallado o fue interrumpido. Un comando que la conversación principal o un subagente en segundo plano inició continúa ejecutándose después de una respuesta final, hasta que sale, se detiene o alcanza su [límite de tiempo](#time-limit-for-background-commands).

207 

208Mientras un comando que inició la conversación principal sigue ejecutándose, una ejecución en modo no interactivo con el flag `-p` [permanece abierta después de su resultado](/docs/es/headless#background-tasks-at-exit) hasta que ese comando sale o alcanza su límite de tiempo. Un comando que inició un subagente en segundo plano se detiene cuando la ejecución termina.

207 209 

208<h4 id="time-limit-for-background-commands">210<h4 id="time-limit-for-background-commands">

209 Límite de tiempo para comandos en segundo plano211 Límite de tiempo para comandos en segundo plano


218* Un comando que Claude inicia en segundo plano obtiene 30 minutos, o el `timeout` que Claude pasa con `run_in_background`, hasta un máximo de 2 horas220* Un comando que Claude inicia en segundo plano obtiene 30 minutos, o el `timeout` que Claude pasa con `run_in_background`, hasta un máximo de 2 horas

219* Un comando que comienza en primer plano y luego se mueve a segundo plano, por ejemplo en su tiempo de espera, obtiene 30 minutos desde el movimiento221* Un comando que comienza en primer plano y luego se mueve a segundo plano, por ejemplo en su tiempo de espera, obtiene 30 minutos desde el movimiento

220 222 

223En una ejecución con el flag `-p` cuyo prompt pasas como texto en lugar de con `--input-format stream-json`, ambos predeterminados son de 10 minutos en lugar de 30, porque la ejecución [espera a los comandos en segundo plano después de su resultado](/docs/es/headless#background-tasks-at-exit).

224 

221Cuando un comando en segundo plano alcanza su límite de tiempo, Claude Code lo detiene y le dice a Claude por qué, y Claude puede iniciar el comando nuevamente con un `timeout` más largo si el trabajo aún lo necesita. El aviso de detención dice `Background command "<description>" was stopped after reaching its background time limit`.225Cuando un comando en segundo plano alcanza su límite de tiempo, Claude Code lo detiene y le dice a Claude por qué, y Claude puede iniciar el comando nuevamente con un `timeout` más largo si el trabajo aún lo necesita. El aviso de detención dice `Background command "<description>" was stopped after reaching its background time limit`.

222 226 

223<h4 id="raise-the-time-limit-for-background-commands">227<h4 id="raise-the-time-limit-for-background-commands">

224 Aumente el límite de tiempo para comandos en segundo plano228 Aumenta el límite de tiempo para comandos en segundo plano

225</h4>229</h4>

226 230 

227Dos [variables de entorno](/docs/es/env-vars) aumentan estos límites, para comandos Bash y PowerShell por igual. Ambas toman milisegundos, y ninguna puede acortar un límite: un valor más bajo deja el predeterminado de 30 minutos y el máximo de 2 horas en su lugar.231Dos [variables de entorno](/docs/es/env-vars) aumentan estos límites, para comandos Bash y PowerShell por igual. Ambas toman milisegundos, y ninguna puede acortar un límite: un valor más bajo deja los predeterminados y el máximo de 2 horas en su lugar.

228 232 

229* Establezca `BASH_DEFAULT_TIMEOUT_MS` por encima de `1800000` para reemplazar el predeterminado de 30 minutos con ese valor, tanto para comandos que Claude inicia sin un `timeout` como para comandos movidos233* Establece `BASH_DEFAULT_TIMEOUT_MS` por encima de `1800000` para reemplazar el predeterminado de 30 minutos con ese valor, tanto para comandos que Claude inicia sin un `timeout` como para comandos movidos. En una ejecución con `-p` cuyo prompt pasas como texto, cualquier valor por encima de `600000` reemplaza su predeterminado de 10 minutos

230* Establezca `BASH_MAX_TIMEOUT_MS` por encima de `7200000` para aumentar el máximo de 2 horas a ese valor. Establecer `BASH_DEFAULT_TIMEOUT_MS` por encima de `7200000` aumenta el máximo de la misma manera234* Establece `BASH_MAX_TIMEOUT_MS` por encima de `7200000` para aumentar el máximo de 2 horas a ese valor. Establecer `BASH_DEFAULT_TIMEOUT_MS` por encima de `7200000` aumenta el máximo de la misma manera

231 235 

232<h4 id="foreground-commands-that-move-to-the-background">236<h4 id="foreground-commands-that-move-to-the-background">

233 Comandos en primer plano que se mueven a segundo plano237 Comandos en primer plano que se mueven a segundo plano


246 Límite de memoria en Linux y WSL250 Límite de memoria en Linux y WSL

247</h3>251</h3>

248 252 

249En Linux y WSL, establezca [`CLAUDE_CODE_TOOL_MEMORY_LIMIT`](/docs/es/env-vars#variables) en un tamaño como `4G` para limitar la memoria que los comandos de las herramientas Bash, PowerShell y [Monitor](#monitor-tool) pueden usar, de modo que una compilación descontrolada no consuma la memoria que el resto de la sesión necesita. Requiere Claude Code v2.1.233 o posterior. Antes de v2.1.246, los comandos de la herramienta Monitor se ejecutaban fuera del límite.253En Linux y WSL, establece [`CLAUDE_CODE_TOOL_MEMORY_LIMIT`](/docs/es/env-vars#variables) en un tamaño como `4G` para limitar la memoria que los comandos de las herramientas Bash, PowerShell y [Monitor](#monitor-tool) pueden usar, de modo que una compilación descontrolada no consuma la memoria que el resto de la sesión necesita. Requiere Claude Code v2.1.233 o posterior. Antes de v2.1.246, los comandos de la herramienta Monitor se ejecutaban fuera del límite.

250 254 

251* Escriba el tamaño como un número de bytes o con un sufijo `K`, `M`, `G`, o `T`. Establezca `0`, `off`, `false`, `no`, o `none` para desactivar el límite. Claude Code ignora cualquier otro valor que no pueda leer como un tamaño, como `4e9`.255* Escribe el tamaño como un número de bytes o con un sufijo `K`, `M`, `G`, o `T`. Establece `0`, `off`, `false`, `no`, o `none` para desactivar el límite. Claude Code ignora cualquier otro valor que no pueda leer como un tamaño, como `4e9`.

252* Claude Code cuenta todos los comandos Bash, PowerShell y Monitor de una sesión contra el límite único, no cada comando por su cuenta.256* Claude Code cuenta todos los comandos Bash, PowerShell y Monitor de una sesión contra el límite único, no cada comando por su cuenta.

253* Claude Code aplica el límite con un cgroup de memoria. Cuando no puede configurar el cgroup, los comandos se ejecutan sin límite, y el registro de depuración de `claude --debug` dice por qué.257* Claude Code aplica el límite con un cgroup de memoria. Cuando no puede configurar el cgroup, los comandos se ejecutan sin límite, y el registro de depuración de `claude --debug` dice por qué.

254* Después de que el primer proceso que Claude Code inicia haya activado el límite, o lo haya desactivado debido a un valor off o una configuración de cgroup fallida, Claude Code mantiene ese resultado hasta que relance. Para aplicar un valor cambiado o eliminado, o una configuración fija, lance `claude` nuevamente.258* Después de que el primer proceso que Claude Code inicia haya activado el límite, o lo haya desactivado debido a un valor off o una configuración de cgroup fallida, Claude Code mantiene ese resultado hasta que vuelvas a lanzarlo. Para aplicar un valor cambiado o eliminado, o una configuración corregida, lanza `claude` nuevamente.

255* Cuando los comandos no pueden mantenerse bajo el límite, el kernel detiene un comando, y nada en su resultado nombra el límite.259* Cuando los comandos no pueden mantenerse bajo el límite, el kernel detiene un comando, y nada en su resultado nombra el límite.

256 260 

257Claude Code también puede contar otros tipos de procesos que inicia contra el mismo límite. Establezca [`CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE`](/docs/es/env-vars#variables) en una lista separada por comas de los tipos a eximir del límite; Claude Code aplica el límite a cada tipo que no esté en su lista. Establézcalo en `none` para limitar cada tipo, o en `all-new` para limitar solo los comandos de las herramientas Bash, PowerShell y Monitor. Requiere Claude Code v2.1.246 o posterior. Los tipos que puede nombrar:261Claude Code también puede contar otros tipos de procesos que inicia contra el mismo límite. Establece [`CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE`](/docs/es/env-vars#variables) en una lista separada por comas de los tipos a eximir del límite; Claude Code aplica el límite a cada tipo que no esté en tu lista. Establécelo en `none` para limitar cada tipo, o en `all-new` para limitar solo los comandos de las herramientas Bash, PowerShell y Monitor. Requiere Claude Code v2.1.246 o posterior. Los tipos que puedes nombrar:

258 262 

259* `mcp`: servidores [MCP](/docs/es/mcp) locales263* `mcp`: [servidores MCP](/docs/es/mcp) locales

260* `lsp`: [servidores de lenguaje](#lsp-tool-behavior)264* `lsp`: [servidores de lenguaje](#lsp-tool-behavior)

261* `hooks`: comandos de [hook](/docs/es/hooks)265* `hooks`: comandos de [hook](/docs/es/hooks)

262* `plugin`: comandos que ejecutan [plugins](/docs/es/plugins/overview)266* `plugin`: comandos que ejecutan [plugins](/docs/es/plugins/overview)

263* `helper`: comandos auxiliares propios de Claude Code, como `git`267* `helper`: comandos auxiliares propios de Claude Code, como `git`

264* `agent`: procesos secundarios de Claude Code, como [compañeros agentes](/docs/es/agent-teams)268* `agent`: procesos secundarios de Claude Code, como [compañeros agentes](/docs/es/agent-teams)

265 269 

266Sea lo que sea que liste, estas reglas se aplican:270Sea lo que sea que listes, estas reglas se aplican:

267 271 

268* **Nombres desconocidos**: Claude Code ignora nombres que no reconoce272* **Nombres desconocidos**: Claude Code ignora nombres que no reconoce

269* **Variable no establecida**: Claude Code toma el conjunto de otros tipos limitados de la configuración que Anthropic entrega desde el servidor, y ese conjunto puede cambiar con el tiempo, así que establezca la variable cuando necesite un conjunto que no cambie273* **Variable no establecida**: Claude Code toma el conjunto de otros tipos limitados de la configuración que Anthropic entrega desde el servidor, y ese conjunto puede cambiar con el tiempo, así que establece la variable cuando necesites un conjunto que no cambie

270* **Hooks de control de permisos**: incluso con cada tipo limitado, Claude Code excluye del límite un hook que puede bloquear o cambiar el resultado de una acción, y cualquier servidor MCP que tal hook llame, de modo que el kernel matando un hook de control de permisos no puede permitir la acción que estaba bloqueando274* **Hooks de control de permisos**: incluso con cada tipo limitado, Claude Code excluye del límite un hook que puede bloquear o cambiar el resultado de una acción, y cualquier servidor MCP que tal hook llame, de modo que el kernel matando un hook de control de permisos no puede permitir la acción que estaba bloqueando

271 275 

272<h2 id="edit-tool-behavior">276<h2 id="edit-tool-behavior">


285 289 

286Ver un archivo con Bash también satisface el requisito de read-before-edit cuando el comando es `cat`, `nl`, `bat`, `batcat`, `head`, `tail`, `sed -n 'X,Yp'`, `grep`, `egrep`, `fgrep`, o `rg` en un único archivo sin tuberías o redirecciones. La salida canalizada y otros comandos Bash no cuentan hacia la comprobación de read-before-edit.290Ver un archivo con Bash también satisface el requisito de read-before-edit cuando el comando es `cat`, `nl`, `bat`, `batcat`, `head`, `tail`, `sed -n 'X,Yp'`, `grep`, `egrep`, `fgrep`, o `rg` en un único archivo sin tuberías o redirecciones. La salida canalizada y otros comandos Bash no cuentan hacia la comprobación de read-before-edit.

287 291 

288Ver un archivo con Bash afecta solo la elegibilidad de edición, no los permisos. Consulte [Reglas de permisos Read y Edit](/docs/es/permissions#read-and-edit) para saber qué comandos Bash cubren sus reglas de denegación `Read` y `Edit`.292Cuando Claude ve un archivo de esta manera, Claude Code también carga cualquier [`CLAUDE.md` de subdirectorio](/docs/es/memory#how-claude-md-files-load) y las [reglas con alcance de ruta](/docs/es/memory#path-specific-rules) que se apliquen a ese archivo. Consulta [Reglas de permisos Read y Edit](/docs/es/permissions#read-and-edit) para saber qué comandos Bash cubren tus reglas de denegación `Read` y `Edit`.

289 293 

290<h2 id="endconversation-tool-behavior">294<h2 id="endconversation-tool-behavior">

291 Comportamiento de la herramienta EndConversation295 Comportamiento de la herramienta EndConversation


709El backend de búsqueda no es configurable. Para buscar con un proveedor diferente, agregue un [servidor MCP](/docs/es/mcp) que exponga una herramienta de búsqueda.713El backend de búsqueda no es configurable. Para buscar con un proveedor diferente, agregue un [servidor MCP](/docs/es/mcp) que exponga una herramienta de búsqueda.

710 714 

711<Note>715<Note>

712 WebSearch está disponible en la API de Claude y en [Claude Platform en AWS](/docs/es/claude-platform-on-aws). En Microsoft Foundry requiere un [despliegue alojado en Anthropic](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options): los despliegues alojados en Azure no admiten herramientas del lado del servidor, por lo que la llamada de WebSearch falla. En la plataforma de agentes de Google Cloud funciona con Claude 4 y modelos posteriores, incluidos Opus, Sonnet y Haiku. Amazon Bedrock no expone la herramienta de búsqueda web del lado del servidor.716 WebSearch está disponible en la API de Claude, en [Claude Platform en AWS](/docs/es/claude-platform-on-aws) y en Microsoft Foundry. En Agent Platform de Google Cloud funciona con Claude 4 y modelos posteriores, incluidos Opus, Sonnet y Haiku. Amazon Bedrock no expone la herramienta de búsqueda web del lado del servidor.

713</Note>717</Note>

714 718 

715<h3 id="session-search-limit">719<h3 id="session-search-limit">

716 Límite de búsqueda de sesión720 Límite de búsqueda de sesión

717</h3>721</h3>

718 722 

719Una sesión puede realizar como máximo 200 llamadas de WebSearch, contadas en toda la conversación principal y cada [subagente](/docs/es/sub-agents) que genera, por lo que las búsquedas realizadas por expansiones de investigación paralela cuentan contra el mismo límite. El límite requiere Claude Code v2.1.212 o posterior. Cuando Claude alcanza el límite, las llamadas posteriores devuelven un aviso que le dice a Claude que continúe con la información que ya ha recopilado, en lugar de un error que invitaría a un reintento. Usted no ve el aviso: una llamada limitada aparece en la conversación como una búsqueda que no hizo nada, y si Claude necesita más búsquedas, el aviso le dice que le pida que aumente el límite.723Una sesión interactiva de terminal tiene un límite de 200 llamadas de WebSearch. Las búsquedas de la conversación principal y de los [subagentes](/docs/es/sub-agents), como una expansión de investigación paralela, cuentan contra el mismo límite. El límite requiere Claude Code v2.1.212 o posterior.

724 

725Mientras una sesión está en el límite, las búsquedas aparecen en la conversación como llamadas que no hicieron nada. Claude recibe un aviso que le indica que continúe con la información que ya ha recopilado y, si necesita más búsquedas, que te pida que aumentes el límite.

726 

727Para obtener más búsquedas, aumenta el tope, espera a que el límite se recargue o inicia una nueva conversación:

720 728 

721Establezca la variable de entorno [`CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION`](/docs/es/env-vars) para cambiar el límite; acepta un número entero positivo, por lo que el límite se puede aumentar pero no desactivar. Ejecutar [`/clear`](/docs/es/commands#all-commands) reinicia el contador. Si el trabajo que aún puede generar [subagentes](/docs/es/sub-agents) sobrevive al borrado, como un flujo de trabajo en ejecución, el contador se mantiene en su lugar.729* **Aumentar el tope**: establece la variable de entorno [`CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION`](/docs/es/env-vars#variables) en un número entero positivo, como `500`. El tope se puede aumentar pero no desactivar.

730* **Esperar la recarga**: en Claude Code v2.1.290 o posterior, el límite de una sesión interactiva de terminal se recarga a razón de unas 100 llamadas por hora. Para cambiar la tasa, establece [`CLAUDE_CODE_WEB_SEARCH_REFILLS_PER_HOUR`](/docs/es/env-vars#variables) en un número de llamadas por hora, como `50`.

731* **Iniciar una nueva conversación**: ejecutar [`/clear`](/docs/es/commands#all-commands) en el prompt de Claude Code también reinicia el contador. Si el trabajo que aún puede generar subagentes sobrevive al borrado, como un flujo de trabajo en ejecución, el contador se mantiene en su lugar.

722 732 

723<h2 id="write-tool-behavior">733<h2 id="write-tool-behavior">

724 Comportamiento de la herramienta Write734 Comportamiento de la herramienta Write

vs-code.md +1 −0

Details

623* **Respuestas de Claude**: la extensión anuncia cada respuesta una sola vez, cuando está completa, y permanece en silencio mientras el texto se transmite. Su lector de pantalla lee los bloques de código como un resumen de recuento de líneas, lee los enlaces por su etiqueta y lee las tablas celda por celda; la respuesta completa permanece legible en la transcripción.623* **Respuestas de Claude**: la extensión anuncia cada respuesta una sola vez, cuando está completa, y permanece en silencio mientras el texto se transmite. Su lector de pantalla lee los bloques de código como un resumen de recuento de líneas, lee los enlaces por su etiqueta y lee las tablas celda por celda; la respuesta completa permanece legible en la transcripción.

624* **Solicitudes de permiso y preguntas**: la extensión anuncia una solicitud cuando aparece su solicitud de permiso, nombrando la herramienta que Claude desea utilizar. Anuncia de la misma manera cuando Claude le hace una pregunta y cuando Claude termina un plan y espera su revisión.624* **Solicitudes de permiso y preguntas**: la extensión anuncia una solicitud cuando aparece su solicitud de permiso, nombrando la herramienta que Claude desea utilizar. Anuncia de la misma manera cuando Claude le hace una pregunta y cuando Claude termina un plan y espera su revisión.

625* **Cambios de estado**: la extensión anuncia cuando Claude comienza a trabajar, cuando Claude está listo para su entrada y cuando Claude Code comienza a compactar la conversación.625* **Cambios de estado**: la extensión anuncia cuando Claude comienza a trabajar, cuando Claude está listo para su entrada y cuando Claude Code comienza a compactar la conversación.

626* **Mensajes en cola**: cuando envías un mensaje mientras Claude está trabajando, la extensión anuncia "Message queued." para ese mensaje.

626* **Errores y solicitudes de modelo**: la extensión anuncia errores en la conversación y anuncia cuando aparece la [solicitud de consentimiento de créditos de uso](/docs/es/model-config#fable-and-usage-credits) o la [solicitud de solicitud marcada](/docs/es/model-config#ask-before-switching).627* **Errores y solicitudes de modelo**: la extensión anuncia errores en la conversación y anuncia cuando aparece la [solicitud de consentimiento de créditos de uso](/docs/es/model-config#fable-and-usage-credits) o la [solicitud de solicitud marcada](/docs/es/model-config#ask-before-switching).

627 628 

628Mientras Claude trabaja, su lector de pantalla lee una etiqueta de texto en lugar de la animación del indicador de progreso.629Mientras Claude trabaja, su lector de pantalla lee una etiqueta de texto en lugar de la animación del indicador de progreso.

Details

12 12 

13Una sesión en la nube ejecuta Claude Code en la infraestructura en la nube en lugar de en tu máquina, administrada por Anthropic de forma predeterminada. Este inicio rápido inicia una desde [claude.ai/code](https://claude.ai/code) en tu navegador. También puedes iniciar una desde la aplicación móvil de Claude, la aplicación de Desktop, o tu terminal con `claude --cloud`.13Una sesión en la nube ejecuta Claude Code en la infraestructura en la nube en lugar de en tu máquina, administrada por Anthropic de forma predeterminada. Este inicio rápido inicia una desde [claude.ai/code](https://claude.ai/code) en tu navegador. También puedes iniciar una desde la aplicación móvil de Claude, la aplicación de Desktop, o tu terminal con `claude --cloud`.

14 14 

15Necesitarás un repositorio de GitHub para [comenzar](#connect-github). Claude lo clona en una máquina virtual aislada, realiza cambios e impulsa una rama para que la revises. Las sesiones persisten entre dispositivos, por lo que una tarea que comiences en tu portátil está lista para revisar desde tu teléfono más tarde.15Necesitarás un repositorio de GitHub para [comenzar](#connect-github). Claude lo clona en una máquina virtual aislada, realiza cambios e impulsa una rama para que la revises. Las sesiones persisten entre dispositivos, por lo que una tarea que comiences en tu portátil está lista para revisar desde tu teléfono más tarde. Cada sesión cuenta para los límites de uso de tu plan junto con el resto de tu uso de Claude y Claude Code, y no hay un cargo aparte por la VM en la nube.

16 16 

17Las sesiones en la nube funcionan bien para:17Las sesiones en la nube funcionan bien para:

18 18